diff --git a/README.md b/README.md index 710cf654..4dffd19b 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ![menu](misc/menu.jpg) ## NOTICE +* V2.33 Security policy is applied. * V2.21 [cm-cli](docs/en/cm-cli.md) tool is added. * V2.18 to V2.18.3 is not functioning due to a severe bug. Users on these versions are advised to promptly update to V2.18.4. Please navigate to the `ComfyUI/custom_nodes/ComfyUI-Manager` directory and execute `git pull` to update. * You can see whole nodes info on [ComfyUI Nodes Info](https://ltdrdata.github.io/) page. @@ -191,6 +192,7 @@ This repository provides Colab notebooks that allow you to install and use Comfy * NOTE: Before submitting the PR after making changes, please check `Use local DB` and ensure that the extension list loads without any issues in the `Install custom nodes` dialog. Occasionally, missing or extra commas can lead to JSON syntax errors. * The remaining JSON will be updated through scripts in the future, so you don't need to worry about it. + ## Custom node support guide * Currently, the system operates by cloning the git repository and sequentially installing the dependencies listed in requirements.txt using pip, followed by invoking the install.py script. In the future, we plan to discuss and determine the specifications for supporting custom nodes. @@ -338,6 +340,31 @@ When you run the `scan.sh` script: * Edit `config.ini` file: add `windows_selector_event_loop_policy = True` +## Security policy + * Edit `config.ini` file: add `security_level = ` + * `strong` + * doesn't allow `high` and `middle` level risky feature + * `normal` + * doesn't allow `high` level risky feature if `--listen` is specified and not starts with `127.` + * `middle` level risky feature is available + * `weak` + * all feature is available + + * `high` level risky features + * `Install via git url`, `pip install` + * Installation of custom nodes registered not in the `default channel`. + * Display terminal log + + * `middle` level risky features + * Uninstall/Update/Fix custom nodes + * Installation of custom nodes registered in the `default channel`. + * Restore/Remove Snapshot + * Restart + + * `low` level risky features + * Update ComfyUI + + ## TODO: Unconventional form of custom node list * https://github.com/diontimmer/Sample-Diffusion-ComfyUI-Extension diff --git a/cm-cli.py b/cm-cli.py index b026c099..093fa83f 100644 --- a/cm-cli.py +++ b/cm-cli.py @@ -1,4 +1,3 @@ - import os import sys import traceback @@ -8,38 +7,24 @@ import subprocess import shutil import concurrent import threading +from typing import Optional + +import typer +from rich import print +from typing_extensions import List, Annotated +import re +import git sys.path.append(os.path.dirname(__file__)) sys.path.append(os.path.join(os.path.dirname(__file__), "glob")) import manager_core as core import cm_global -import git - - -print(f"\n-= ComfyUI-Manager CLI ({core.version_str}) =-\n") - - -if not (len(sys.argv) == 2 and sys.argv[1] in ['save-snapshot', 'restore-dependencies', 'clear']) and len(sys.argv) < 3: - print(f"\npython cm-cli.py [OPTIONS]\n\n" - f"OPTIONS:\n" - f" [install|reinstall|uninstall|update|disable|enable|fix] node_name ... ?[--channel ] ?[--mode [remote|local|cache]]\n" - f" [update|disable|enable|fix] all ?[--channel ] ?[--mode [remote|local|cache]]\n" - f" [simple-show|show] [installed|enabled|not-installed|disabled|all|snapshot|snapshot-list] ?[--channel ] ?[--mode [remote|local|cache]]\n" - f" save-snapshot ?[--output ]\n" - f" restore-snapshot ?[--pip-non-url] ?[--pip-non-local-url] ?[--pip-local-url]\n" - f" cli-only-mode [enable|disable]\n" - f" restore-dependencies\n" - f" deps-in-workflow --workflow --output \n" - f" install-deps \n" - f" clear\n") - exit(-1) - comfyui_manager_path = os.path.dirname(__file__) comfy_path = os.environ.get('COMFYUI_PATH') if comfy_path is None: - print(f"WARN: The `COMFYUI_PATH` environment variable is not set. Assuming `custom_nodes/ComfyUI-Manager/../../` as the ComfyUI path.\n", file=sys.stderr) + print(f"\n[bold yellow]WARN: The `COMFYUI_PATH` environment variable is not set. Assuming `custom_nodes/ComfyUI-Manager/../../` as the ComfyUI path.[/bold yellow]", file=sys.stderr) comfy_path = os.path.abspath(os.path.join(comfyui_manager_path, '..', '..')) startup_script_path = os.path.join(comfyui_manager_path, "startup-scripts") @@ -57,146 +42,6 @@ if os.path.exists(pip_overrides_path): cm_global.pip_overrides = json.load(json_file) -processed_install = set() - - -def post_install(url): - try: - repository_name = url.split("/")[-1].strip() - repo_path = os.path.join(custom_nodes_path, repository_name) - repo_path = os.path.abspath(repo_path) - - requirements_path = os.path.join(repo_path, 'requirements.txt') - install_script_path = os.path.join(repo_path, 'install.py') - - if os.path.exists(requirements_path): - with (open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file): - for line in file: - package_name = core.remap_pip_package(line.strip()) - if package_name and not core.is_installed(package_name): - install_cmd = [sys.executable, "-m", "pip", "install", package_name] - output = subprocess.check_output(install_cmd, cwd=repo_path, text=True) - for msg_line in output.split('\n'): - if 'Requirement already satisfied:' in msg_line: - print('.', end='') - else: - print(msg_line) - - if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in processed_install: - processed_install.add(f'{repo_path}/install.py') - install_cmd = [sys.executable, install_script_path] - output = subprocess.check_output(install_cmd, cwd=repo_path, text=True) - for msg_line in output.split('\n'): - if 'Requirement already satisfied:' in msg_line: - print('.', end='') - else: - print(msg_line) - - except Exception: - print(f"ERROR: Restoring '{url}' is failed.") - - -def restore_dependencies(): - node_paths = [os.path.join(custom_nodes_path, name) for name in os.listdir(custom_nodes_path) - if os.path.isdir(os.path.join(custom_nodes_path, name)) and not name.endswith('.disabled')] - - total = len(node_paths) - i = 1 - for x in node_paths: - print(f"----------------------------------------------------------------------------------------------------") - print(f"Restoring [{i}/{total}]: {x}") - post_install(x) - i += 1 - - -def install_deps(): - if not os.path.exists(sys.argv[2]): - print(f"File not found: {sys.argv[2]}") - exit(-1) - else: - with open(sys.argv[2], 'r', encoding="UTF-8", errors="ignore") as json_file: - json_obj = json.load(json_file) - for k in json_obj['custom_nodes'].keys(): - state = core.simple_check_custom_node(k) - if state == 'installed': - continue - elif state == 'not-installed': - core.gitclone_install([k], instant_execution=True) - else: # disabled - core.gitclone_set_active([k], False) - - print("Dependency installation and activation complete.") - - -def restore_snapshot(): - global processed_install - - snapshot_name = sys.argv[2] - extras = [x for x in sys.argv if x in ['--pip-non-url', '--pip-local-url', '--pip-non-local-url']] - - print(f"pips restore mode: {extras}") - - if os.path.exists(snapshot_name): - snapshot_path = os.path.abspath(snapshot_name) - else: - snapshot_path = os.path.join(core.comfyui_manager_path, 'snapshots', snapshot_name) - if not os.path.exists(snapshot_path): - print(f"ERROR: `{snapshot_path}` is not exists.") - exit(-1) - - try: - cloned_repos = [] - checkout_repos = [] - skipped_repos = [] - enabled_repos = [] - disabled_repos = [] - is_failed = False - - def extract_infos(msg_lines): - nonlocal is_failed - - for x in msg_lines: - if x.startswith("CLONE: "): - cloned_repos.append(x[7:]) - elif x.startswith("CHECKOUT: "): - checkout_repos.append(x[10:]) - elif x.startswith("SKIPPED: "): - skipped_repos.append(x[9:]) - elif x.startswith("ENABLE: "): - enabled_repos.append(x[8:]) - elif x.startswith("DISABLE: "): - disabled_repos.append(x[9:]) - elif 'APPLY SNAPSHOT: False' in x: - is_failed = True - - print(f"Restore snapshot.") - cmd_str = [sys.executable, git_script_path, '--apply-snapshot', snapshot_path] + extras - output = subprocess.check_output(cmd_str, cwd=custom_nodes_path, text=True) - msg_lines = output.split('\n') - extract_infos(msg_lines) - - for url in cloned_repos: - post_install(url) - - # print summary - for x in cloned_repos: - print(f"[ INSTALLED ] {x}") - for x in checkout_repos: - print(f"[ CHECKOUT ] {x}") - for x in enabled_repos: - print(f"[ ENABLED ] {x}") - for x in disabled_repos: - print(f"[ DISABLED ] {x}") - - if is_failed: - print("ERROR: Failed to restore snapshot.") - - except Exception: - print("ERROR: Failed to restore snapshot.") - traceback.print_exc() - exit(-1) - - def check_comfyui_hash(): repo = git.Repo(comfy_path) core.comfy_ui_revision = len(list(repo.iter_commits('HEAD'))) @@ -207,7 +52,7 @@ def check_comfyui_hash(): core.comfy_ui_commit_datetime = repo.head.commit.committed_datetime -check_comfyui_hash() +check_comfyui_hash() # This is a preparation step for manager_core def read_downgrade_blacklist(): @@ -227,80 +72,132 @@ def read_downgrade_blacklist(): pass -read_downgrade_blacklist() - -channel = 'default' -mode = 'remote' -nodes = set() +read_downgrade_blacklist() # This is a preparation step for manager_core -def load_custom_nodes(): - channel_dict = core.get_channel_dict() - if channel not in channel_dict: - print(f"ERROR: Invalid channel is specified `--channel {channel}`", file=sys.stderr) - exit(-1) +class Ctx: + def __init__(self): + self.channel = 'default' + self.mode = 'remote' + self.processed_install = set() + self.custom_node_map_cache = None - if mode not in ['remote', 'local', 'cache']: - print(f"ERROR: Invalid mode is specified `--mode {mode}`", file=sys.stderr) - exit(-1) + def set_channel_mode(self, channel, mode): + if mode is not None: + self.mode = mode - channel_url = channel_dict[channel] + valid_modes = ["remote", "local", "cache"] + if mode and mode.lower() not in valid_modes: + typer.echo( + f"Invalid mode: {mode}. Allowed modes are 'remote', 'local', 'cache'.", + err=True, + ) + exit(1) - res = {} - json_obj = asyncio.run(core.get_data_by_mode(mode, 'custom-node-list.json', channel_url=channel_url)) - for x in json_obj['custom_nodes']: - for y in x['files']: - if 'github.com' in y and not (y.endswith('.py') or y.endswith('.js')): - repo_name = y.split('/')[-1] - res[repo_name] = x + if channel is not None: + self.channel = channel - if 'id' in x: - if x['id'] not in res: - res[x['id']] = x + def post_install(self, url): + try: + repository_name = url.split("/")[-1].strip() + repo_path = os.path.join(custom_nodes_path, repository_name) + repo_path = os.path.abspath(repo_path) - return res + requirements_path = os.path.join(repo_path, 'requirements.txt') + install_script_path = os.path.join(repo_path, 'install.py') + + if os.path.exists(requirements_path): + with (open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file): + for line in file: + package_name = core.remap_pip_package(line.strip()) + if package_name and not core.is_installed(package_name): + install_cmd = [sys.executable, "-m", "pip", "install", package_name] + output = subprocess.check_output(install_cmd, cwd=repo_path, text=True) + for msg_line in output.split('\n'): + if 'Requirement already satisfied:' in msg_line: + print('.', end='') + else: + print(msg_line) + + if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in self.processed_install: + self.processed_install.add(f'{repo_path}/install.py') + install_cmd = [sys.executable, install_script_path] + output = subprocess.check_output(install_cmd, cwd=repo_path, text=True) + for msg_line in output.split('\n'): + if 'Requirement already satisfied:' in msg_line: + print('.', end='') + else: + print(msg_line) + + except Exception: + print(f"ERROR: Restoring '{url}' is failed.") + + def restore_dependencies(self): + node_paths = [os.path.join(custom_nodes_path, name) for name in os.listdir(custom_nodes_path) + if os.path.isdir(os.path.join(custom_nodes_path, name)) and not name.endswith('.disabled')] + + total = len(node_paths) + i = 1 + for x in node_paths: + print(f"----------------------------------------------------------------------------------------------------") + print(f"Restoring [{i}/{total}]: {x}") + self.post_install(x) + i += 1 + + def load_custom_nodes(self): + channel_dict = core.get_channel_dict() + if self.channel not in channel_dict: + print(f"[bold red]ERROR: Invalid channel is specified `--channel {self.channel}`[/bold red]", file=sys.stderr) + exit(1) + + if self.mode not in ['remote', 'local', 'cache']: + print(f"[bold red]ERROR: Invalid mode is specified `--mode {self.mode}`[/bold red]", file=sys.stderr) + exit(1) + + channel_url = channel_dict[self.channel] + + res = {} + json_obj = asyncio.run(core.get_data_by_mode(self.mode, 'custom-node-list.json', channel_url=channel_url)) + for x in json_obj['custom_nodes']: + for y in x['files']: + if 'github.com' in y and not (y.endswith('.py') or y.endswith('.js')): + repo_name = y.split('/')[-1] + res[repo_name] = (x, False) + + if 'id' in x: + if x['id'] not in res: + res[x['id']] = (x, True) + + return res + + def get_custom_node_map(self): + if self.custom_node_map_cache is not None: + return self.custom_node_map_cache + + self.custom_node_map_cache = self.load_custom_nodes() + + return self.custom_node_map_cache + + def lookup_node_path(self, node_name, robust=False): + if '..' in node_name: + print(f"\n[bold red]ERROR: Invalid node name '{node_name}'[/bold red]\n") + exit(2) + + custom_node_map = self.get_custom_node_map() + if node_name in custom_node_map: + node_url = custom_node_map[node_name][0]['files'][0] + repo_name = node_url.split('/')[-1] + node_path = os.path.join(custom_nodes_path, repo_name) + return node_path, custom_node_map[node_name][0] + elif robust: + node_path = os.path.join(custom_nodes_path, node_name) + return node_path, None + + print(f"\n[bold red]ERROR: Invalid node name '{node_name}'[/bold red]\n") + exit(2) -def process_args(): - global channel - global mode - - i = 2 - while i < len(sys.argv): - if sys.argv[i] == '--channel': - if i+1 < len(sys.argv): - channel = sys.argv[i+1] - i += 1 - elif sys.argv[i] == '--mode': - if i+1 < len(sys.argv): - mode = sys.argv[i+1] - i += 1 - else: - nodes.add(sys.argv[i]) - - i += 1 - - -process_args() -custom_node_map = load_custom_nodes() - - -def lookup_node_path(node_name, robust=False): - if '..' in node_name: - print(f"ERROR: invalid node name '{node_name}'") - exit(-1) - - if node_name in custom_node_map: - node_url = custom_node_map[node_name]['files'][0] - repo_name = node_url.split('/')[-1] - node_path = os.path.join(custom_nodes_path, repo_name) - return node_path, custom_node_map[node_name] - elif robust: - node_path = os.path.join(custom_nodes_path, node_name) - return node_path, None - - print(f"ERROR: invalid node name '{node_name}'") - exit(-1) +cm_ctx = Ctx() def install_node(node_name, is_all=False, cnt_msg=''): @@ -308,38 +205,38 @@ def install_node(node_name, is_all=False, cnt_msg=''): # install via urls res = core.gitclone_install([node_name]) if not res: - print(f"ERROR: An error occurred while installing '{node_name}'.") + print(f"[bold red]ERROR: An error occurred while installing '{node_name}'.[/bold red]") else: print(f"{cnt_msg} [INSTALLED] {node_name:50}") else: - node_path, node_item = lookup_node_path(node_name) + node_path, node_item = cm_ctx.lookup_node_path(node_name) if os.path.exists(node_path): if not is_all: print(f"{cnt_msg} [ SKIPPED ] {node_name:50} => Already installed") - elif os.path.exists(node_path+'.disabled'): + elif os.path.exists(node_path + '.disabled'): enable_node(node_name) else: res = core.gitclone_install(node_item['files'], instant_execution=True, msg_prefix=f"[{cnt_msg}] ") if not res: - print(f"ERROR: An error occurred while installing '{node_name}'.") + print(f"[bold red]ERROR: An error occurred while installing '{node_name}'.[/bold red]") else: print(f"{cnt_msg} [INSTALLED] {node_name:50}") def reinstall_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name) + node_path, node_item = cm_ctx.lookup_node_path(node_name) if os.path.exists(node_path): shutil.rmtree(node_path) - if os.path.exists(node_path+'.disabled'): - shutil.rmtree(node_path+'.disabled') + if os.path.exists(node_path + '.disabled'): + shutil.rmtree(node_path + '.disabled') install_node(node_name, is_all=is_all, cnt_msg=cnt_msg) def fix_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name, robust=True) + node_path, node_item = cm_ctx.lookup_node_path(node_name, robust=True) files = node_item['files'] if node_item is not None else [node_path] @@ -348,18 +245,18 @@ def fix_node(node_name, is_all=False, cnt_msg=''): res = core.gitclone_fix(files, instant_execution=True) if not res: print(f"ERROR: An error occurred while fixing '{node_name}'.") - elif not is_all and os.path.exists(node_path+'.disabled'): + elif not is_all and os.path.exists(node_path + '.disabled'): print(f"{cnt_msg} [ SKIPPED ]: {node_name:50} => Disabled") elif not is_all: print(f"{cnt_msg} [ SKIPPED ]: {node_name:50} => Not installed") def uninstall_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name, robust=True) + node_path, node_item = cm_ctx.lookup_node_path(node_name, robust=True) files = node_item['files'] if node_item is not None else [node_path] - if os.path.exists(node_path) or os.path.exists(node_path+'.disabled'): + if os.path.exists(node_path) or os.path.exists(node_path + '.disabled'): res = core.gitclone_uninstall(files) if not res: print(f"ERROR: An error occurred while uninstalling '{node_name}'.") @@ -370,7 +267,7 @@ def uninstall_node(node_name, is_all=False, cnt_msg=''): def update_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name, robust=True) + node_path, node_item = cm_ctx.lookup_node_path(node_name, robust=True) files = node_item['files'] if node_item is not None else [node_path] @@ -383,13 +280,11 @@ def update_node(node_name, is_all=False, cnt_msg=''): return node_path -def update_parallel(): - global nodes - +def update_parallel(nodes): is_all = False if 'all' in nodes: is_all = True - nodes = [x for x in custom_node_map.keys() if os.path.exists(os.path.join(custom_nodes_path, x)) or os.path.exists(os.path.join(custom_nodes_path, x) + '.disabled')] + nodes = [x for x in cm_ctx.get_custom_node_map().keys() if os.path.exists(os.path.join(custom_nodes_path, x)) or os.path.exists(os.path.join(custom_nodes_path, x) + '.disabled')] nodes = [x for x in nodes if x.lower() not in ['comfy', 'comfyui', 'all']] @@ -421,8 +316,11 @@ def update_parallel(): i = 1 for node_path in processed: - print(f"[{i}/{total}] Post update: {node_path}") - post_install(node_path) + if node_path is None: + print(f"[{i}/{total}] Post update: ERROR") + else: + print(f"[{i}/{total}] Post update: {node_path}") + cm_ctx.post_install(node_path) i += 1 @@ -440,10 +338,10 @@ def enable_node(node_name, is_all=False, cnt_msg=''): if node_name == 'ComfyUI-Manager': return - node_path, node_item = lookup_node_path(node_name, robust=True) + node_path, node_item = cm_ctx.lookup_node_path(node_name, robust=True) - if os.path.exists(node_path+'.disabled'): - current_name = node_path+'.disabled' + if os.path.exists(node_path + '.disabled'): + current_name = node_path + '.disabled' os.rename(current_name, node_path) print(f"{cnt_msg} [ENABLED] {node_name:50}") elif os.path.exists(node_path): @@ -455,22 +353,25 @@ def enable_node(node_name, is_all=False, cnt_msg=''): def disable_node(node_name, is_all=False, cnt_msg=''): if node_name == 'ComfyUI-Manager': return - - node_path, node_item = lookup_node_path(node_name, robust=True) + + node_path, node_item = cm_ctx.lookup_node_path(node_name, robust=True) if os.path.exists(node_path): current_name = node_path - new_name = node_path+'.disabled' + new_name = node_path + '.disabled' os.rename(current_name, new_name) print(f"{cnt_msg} [DISABLED] {node_name:50}") - elif os.path.exists(node_path+'.disabled'): + elif os.path.exists(node_path + '.disabled'): print(f"{cnt_msg} [ SKIPPED] {node_name:50} => Already disabled") elif not is_all: print(f"{cnt_msg} [ SKIPPED] {node_name:50} => Not installed") def show_list(kind, simple=False): - for k, v in custom_node_map.items(): + for k, v in cm_ctx.get_custom_node_map().items(): + if v[1]: + continue + node_path = os.path.join(custom_nodes_path, k) states = set() @@ -479,7 +380,7 @@ def show_list(kind, simple=False): states.add('installed') states.add('enabled') states.add('all') - elif os.path.exists(node_path+'.disabled'): + elif os.path.exists(node_path + '.disabled'): prefix = '[ DISABLED ] ' states.add('installed') states.add('disabled') @@ -493,8 +394,8 @@ def show_list(kind, simple=False): if simple: print(f"{k:50}") else: - short_id = v.get('id', "") - print(f"{prefix} {k:50} {short_id:20} (author: {v['author']})") + short_id = v[0].get('id', "") + print(f"{prefix} {k:50} {short_id:20} (author: {v[0]['author']})") # unregistered nodes candidates = os.listdir(os.path.realpath(custom_nodes_path)) @@ -521,7 +422,7 @@ def show_list(kind, simple=False): states.add('enabled') states.add('all') - if k not in custom_node_map: + if k not in cm_ctx.get_custom_node_map(): if kind in states: if simple: print(f"{k:50}") @@ -561,68 +462,16 @@ def cancel(): os.remove(restore_snapshot_path) -def save_snapshot(): - output_path = None - for i in range(len(sys.argv)): - if sys.argv[i] == '--output': - if len(sys.argv) >= i: - output_path = sys.argv[i+1] - - return core.save_snapshot_with_postfix('snapshot', output_path) - - def auto_save_snapshot(): - return core.save_snapshot_with_postfix('cli-autosave') + path = core.save_snapshot_with_postfix('cli-autosave') + print(f"Current snapshot is saved as `{path}`") -def deps_in_workflow(): - input_path = None - output_path = None - - for i in range(len(sys.argv)): - if sys.argv[i] == '--workflow' and len(sys.argv) > i and not sys.argv[i+1].startswith('-'): - input_path = sys.argv[i+1] - - elif sys.argv[i] == '--output' and len(sys.argv) > i and not sys.argv[i+1].startswith('-'): - output_path = sys.argv[i+1] - - if input_path is None: - print(f"missing arguments: --workflow ") - exit(-1) - elif not os.path.exists(input_path): - print(f"File not found: {input_path}") - exit(-1) - - if output_path is None: - print(f"missing arguments: --output ") - exit(-1) - - used_exts, unknown_nodes = asyncio.run(core.extract_nodes_from_workflow(input_path, mode=mode, channel_url=channel)) - - custom_nodes = {} - for x in used_exts: - custom_nodes[x] = { 'state': core.simple_check_custom_node(x), - 'hash': '-' - } - - res = { - 'custom_nodes': custom_nodes, - 'unknown_nodes': list(unknown_nodes) - } - - with open(output_path, "w", encoding='utf-8') as output_file: - json.dump(res, output_file, indent=4) - - print(f"Workflow dependencies are being saved into {output_path}.") - - -def for_each_nodes(act, allow_all=True): - global nodes - +def for_each_nodes(nodes, act, allow_all=True): is_all = False if allow_all and 'all' in nodes: is_all = True - nodes = [x for x in custom_node_map.keys() if os.path.exists(os.path.join(custom_nodes_path, x)) or os.path.exists(os.path.join(custom_nodes_path, x) + '.disabled')] + nodes = [x for x in cm_ctx.get_custom_node_map().keys() if os.path.exists(os.path.join(custom_nodes_path, x)) or os.path.exists(os.path.join(custom_nodes_path, x) + '.disabled')] nodes = [x for x in nodes if x.lower() not in ['comfy', 'comfyui', 'all']] @@ -637,19 +486,98 @@ def for_each_nodes(act, allow_all=True): i += 1 -op = sys.argv[1] +app = typer.Typer() -if op == 'install': - for_each_nodes(install_node) +@app.command(help="Display help for commands") +def help(ctx: typer.Context): + print(ctx.find_root().get_help()) + ctx.exit(0) -elif op == 'reinstall': - for_each_nodes(reinstall_node) -elif op == 'uninstall': - for_each_nodes(uninstall_node) +@app.command(help="Install custom nodes") +def install( + nodes: List[str] = typer.Argument( + ..., help="List of custom nodes to install" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) + for_each_nodes(nodes, act=install_node) + + +@app.command(help="Reinstall custom nodes") +def reinstall( + nodes: List[str] = typer.Argument( + ..., help="List of custom nodes to reinstall" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) + for_each_nodes(nodes, act=reinstall_node) + + +@app.command(help="Uninstall custom nodes") +def uninstall( + nodes: List[str] = typer.Argument( + ..., help="List of custom nodes to uninstall" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) + for_each_nodes(nodes, act=uninstall_node) + + +@app.command(help="Disable custom nodes") +def update( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to update]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) -elif op == 'update': if 'all' in nodes: auto_save_snapshot() @@ -658,76 +586,433 @@ elif op == 'update': update_comfyui() break - update_parallel() + update_parallel(nodes) + + +@app.command(help="Disable custom nodes") +def disable( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to disable]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) -elif op == 'disable': if 'all' in nodes: auto_save_snapshot() - for_each_nodes(disable_node, allow_all=True) + for_each_nodes(nodes, disable_node, allow_all=True) + + +@app.command(help="Enable custom nodes") +def enable( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to enable]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) -elif op == 'enable': if 'all' in nodes: auto_save_snapshot() - for_each_nodes(enable_node, allow_all=True) + for_each_nodes(nodes, enable_node, allow_all=True) + + +@app.command(help="Fix dependencies of custom nodes") +def fix( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to fix]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) -elif op == 'fix': if 'all' in nodes: auto_save_snapshot() - for_each_nodes(fix_node, allow_all=True) + for_each_nodes(nodes, fix_node, allow_all=True) -elif op == 'show': - if sys.argv[2] == 'snapshot': + +@app.command("show", help="Show node list (simple mode)") +def show( + arg: str = typer.Argument( + help="[installed|enabled|not-installed|disabled|all|snapshot|snapshot-list]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + valid_commands = [ + "installed", + "enabled", + "not-installed", + "disabled", + "all", + "snapshot", + "snapshot-list", + ] + if arg not in valid_commands: + typer.echo(f"Invalid command: `show {arg}`", err=True) + exit(1) + + cm_ctx.set_channel_mode(channel, mode) + if arg == 'snapshot': show_snapshot() - elif sys.argv[2] == 'snapshot-list': + elif arg == 'snapshot-list': show_snapshot_list() else: - show_list(sys.argv[2]) + show_list(arg) -elif op == 'simple-show': - if sys.argv[2] == 'snapshot': + +@app.command("simple-show", help="Show node list (simple mode)") +def simple_show( + arg: str = typer.Argument( + help="[installed|enabled|not-installed|disabled|all|snapshot|snapshot-list]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + valid_commands = [ + "installed", + "enabled", + "not-installed", + "disabled", + "all", + "snapshot", + "snapshot-list", + ] + if arg not in valid_commands: + typer.echo(f"[bold red]Invalid command: `show {arg}`[/bold red]", err=True) + exit(1) + + cm_ctx.set_channel_mode(channel, mode) + if arg == 'snapshot': show_snapshot(True) - elif sys.argv[2] == 'snapshot-list': + elif arg == 'snapshot-list': show_snapshot_list(True) else: - show_list(sys.argv[2], True) + show_list(arg, True) -elif op == 'cli-only-mode': + +@app.command('cli-only-mode', help="Set whether to use ComfyUI-Manager in CLI-only mode.") +def cli_only_mode( + mode: str = typer.Argument( + ..., help="[enable|disable]" + )): cli_mode_flag = os.path.join(os.path.dirname(__file__), '.enable-cli-only-mode') - if sys.argv[2] == 'enable': + if mode.lower() == 'enable': with open(cli_mode_flag, 'w') as file: pass - print(f"\ncli-only-mode: enabled\n") - elif sys.argv[2] == 'disable': + print(f"\nINFO: `cli-only-mode` is enabled\n") + elif mode.lower() == 'disable': if os.path.exists(cli_mode_flag): os.remove(cli_mode_flag) - print(f"\ncli-only-mode: disabled\n") + print(f"\nINFO: `cli-only-mode` is disabled\n") else: - print(f"\ninvalid value for cli-only-mode: {sys.argv[2]}\n") + print(f"\n[bold red]Invalid value for cli-only-mode: {mode}[/bold red]\n") + exit(1) -elif op == "deps-in-workflow": - deps_in_workflow() -elif op == 'save-snapshot': - path = save_snapshot() +@app.command( + "deps-in-workflow", help="Generate dependencies file from workflow (.json/.png)" +) +def deps_in_workflow( + workflow: Annotated[ + str, typer.Option(show_default=False, help="Workflow file (.json/.png)") + ], + output: Annotated[ + str, typer.Option(show_default=False, help="Output file (.json)") + ], + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) + + input_path = workflow + output_path = output + + if not os.path.exists(input_path): + print(f"[bold red]File not found: {input_path}[/bold red]") + exit(1) + + used_exts, unknown_nodes = asyncio.run(core.extract_nodes_from_workflow(input_path, mode=cm_ctx.mode, channel_url=cm_ctx.channel)) + + custom_nodes = {} + for x in used_exts: + custom_nodes[x] = {'state': core.simple_check_custom_node(x), + 'hash': '-' + } + + res = { + 'custom_nodes': custom_nodes, + 'unknown_nodes': list(unknown_nodes) + } + + with open(output_path, "w", encoding='utf-8') as output_file: + json.dump(res, output_file, indent=4) + + print(f"Workflow dependencies are being saved into {output_path}.") + + +@app.command("save-snapshot", help="Save a snapshot of the current ComfyUI environment. If output path isn't provided. Save to ComfyUI-Manager/snapshots path.") +def save_snapshot( + output: Annotated[ + str, + typer.Option( + show_default=False, help="Specify the output file path. (.json/.yaml)" + ), + ] = None, +): + path = core.save_snapshot_with_postfix('snapshot', output) print(f"Current snapshot is saved as `{path}`") -elif op == 'restore-snapshot': - restore_snapshot() -elif op == 'restore-dependencies': - restore_dependencies() +@app.command("restore-snapshot", help="Restore snapshot from snapshot file") +def restore_snapshot( + snapshot_name: str, + pip_non_url: Optional[bool] = typer.Option( + default=None, + show_default=False, + is_flag=True, + help="Restore for pip packages registered on PyPI.", + ), + pip_non_local_url: Optional[bool] = typer.Option( + default=None, + show_default=False, + is_flag=True, + help="Restore for pip packages registered at web URLs.", + ), + pip_local_url: Optional[bool] = typer.Option( + default=None, + show_default=False, + is_flag=True, + help="Restore for pip packages specified by local paths.", + ), +): + extras = [] + if pip_non_url: + extras.append('--pip-non-url') -elif op == 'install-deps': + if pip_non_local_url: + extras.append('--pip-non-local-url') + + if pip_local_url: + extras.append('--pip-local-url') + + print(f"PIPs restore mode: {extras}") + + if os.path.exists(snapshot_name): + snapshot_path = os.path.abspath(snapshot_name) + else: + snapshot_path = os.path.join(core.comfyui_manager_path, 'snapshots', snapshot_name) + if not os.path.exists(snapshot_path): + print(f"[bold red]ERROR: `{snapshot_path}` is not exists.[/bold red]") + exit(1) + + try: + cloned_repos = [] + checkout_repos = [] + skipped_repos = [] + enabled_repos = [] + disabled_repos = [] + is_failed = False + + def extract_infos(msg): + nonlocal is_failed + + for x in msg: + if x.startswith("CLONE: "): + cloned_repos.append(x[7:]) + elif x.startswith("CHECKOUT: "): + checkout_repos.append(x[10:]) + elif x.startswith("SKIPPED: "): + skipped_repos.append(x[9:]) + elif x.startswith("ENABLE: "): + enabled_repos.append(x[8:]) + elif x.startswith("DISABLE: "): + disabled_repos.append(x[9:]) + elif 'APPLY SNAPSHOT: False' in x: + is_failed = True + + print(f"Restore snapshot.") + cmd_str = [sys.executable, git_script_path, '--apply-snapshot', snapshot_path] + extras + output = subprocess.check_output(cmd_str, cwd=custom_nodes_path, text=True) + msg_lines = output.split('\n') + extract_infos(msg_lines) + + for url in cloned_repos: + cm_ctx.post_install(url) + + # print summary + for x in cloned_repos: + print(f"[ INSTALLED ] {x}") + for x in checkout_repos: + print(f"[ CHECKOUT ] {x}") + for x in enabled_repos: + print(f"[ ENABLED ] {x}") + for x in disabled_repos: + print(f"[ DISABLED ] {x}") + + if is_failed: + print(output) + print("[bold red]ERROR: Failed to restore snapshot.[/bold red]") + + except Exception: + print("[bold red]ERROR: Failed to restore snapshot.[/bold red]") + traceback.print_exc() + raise typer.Exit(code=1) + + +@app.command( + "restore-dependencies", help="Restore dependencies from whole installed custom nodes." +) +def restore_dependencies(): + node_paths = [os.path.join(custom_nodes_path, name) for name in os.listdir(custom_nodes_path) + if os.path.isdir(os.path.join(custom_nodes_path, name)) and not name.endswith('.disabled')] + + total = len(node_paths) + i = 1 + for x in node_paths: + print(f"----------------------------------------------------------------------------------------------------") + print(f"Restoring [{i}/{total}]: {x}") + cm_ctx.post_install(x) + i += 1 + + +@app.command( + "install-deps", + help="Install dependencies from dependencies file(.json) or workflow(.png/.json)", +) +def install_deps( + deps: str = typer.Argument( + help="Dependency spec file (.json)", + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cm_ctx.set_channel_mode(channel, mode) auto_save_snapshot() - install_deps() -elif op == 'clear': + if not os.path.exists(deps): + print(f"[bold red]File not found: {deps}[/bold red]") + exit(1) + else: + with open(deps, 'r', encoding="UTF-8", errors="ignore") as json_file: + try: + json_obj = json.load(json_file) + except: + print(f"[bold red]Invalid json file: {deps}[/bold red]") + exit(1) + + for k in json_obj['custom_nodes'].keys(): + state = core.simple_check_custom_node(k) + if state == 'installed': + continue + elif state == 'not-installed': + core.gitclone_install([k], instant_execution=True) + else: # disabled + core.gitclone_set_active([k], False) + + print("Dependency installation and activation complete.") + + +@app.command(help="Clear reserved startup action in ComfyUI-Manager") +def clear(): cancel() -else: - print(f"\nInvalid command `{op}`") + +@app.command("export-custom-node-ids", help="Export custom node ids") +def export_custom_node_ids( + path: str, + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + )): + cm_ctx.set_channel_mode(channel, mode) + + with open(path, "w", encoding='utf-8') as output_file: + for x in cm_ctx.get_custom_node_map().keys(): + print(x, file=output_file) + + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(app()) print(f"") diff --git a/custom-node-list.json b/custom-node-list.json index a780bd11..1f97fc47 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -21,7 +21,7 @@ ], "pip": ["ultralytics"], "install_type": "git-clone", - "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.\n[w/NOTE:'Segs & Mask' has been renamed to 'ImpactSegsAndMask.' Please replace the node with the new name.]" + "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler." }, { "author": "Dr.Lt.Data", @@ -44,7 +44,7 @@ "https://github.com/comfyanonymous/ComfyUI_experiments" ], "install_type": "git-clone", - "description": "Nodes: ModelSamplerTonemapNoiseTest, TonemapNoiseWithRescaleCFG, ReferenceOnlySimple, RescaleClassifierFreeGuidanceTest, ModelMergeBlockNumber, ModelMergeSDXL, ModelMergeSDXLTransformers, ModelMergeSDXLDetailedTransformers.[w/NOTE: This is a consolidation of the previously separate custom nodes. Please delete the sampler_tonemap.py, sampler_rescalecfg.py, advanced_model_merging.py, sdxl_model_merging.py, and reference_only.py files installed in custom_nodes before.]" + "description": "Nodes: ModelSamplerTonemapNoiseTest, TonemapNoiseWithRescaleCFG, ReferenceOnlySimple, RescaleClassifierFreeGuidanceTest, ModelMergeBlockNumber, ModelMergeSDXL, ModelMergeSDXLTransformers, ModelMergeSDXLDetailedTransformers." }, { "author": "Stability-AI", @@ -918,7 +918,7 @@ "https://github.com/Nourepide/ComfyUI-Allor" ], "install_type": "git-clone", - "description": "Allor is a plugin for ComfyUI with an emphasis on transparency and performance.\n[w/NOTE: If you do not disable the default node override feature in the settings, the built-in nodes, namely ImageScale and ImageScaleBy nodes, will be disabled. (ref: [a/Configutation](https://github.com/Nourepide/ComfyUI-Allor#configuration))]" + "description": "Allor is a plugin for ComfyUI with an emphasis on transparency and performance." }, { "author": "melMass", @@ -1857,7 +1857,7 @@ { "author": "hustille", "title": "ComfyUI_Fooocus_KSampler", - "id": "fooocus", + "id": "fooocus-ksampler", "reference": "https://github.com/hustille/ComfyUI_Fooocus_KSampler", "files": [ "https://github.com/hustille/ComfyUI_Fooocus_KSampler" @@ -2031,6 +2031,17 @@ "install_type": "git-clone", "description": "Nodes:CLIP Text Encode (Batch), String Input, Batch String" }, + { + "author": "laksjdjf", + "title": "cgem156-ComfyUI🍌", + "id": "cgem156", + "reference": "https://github.com/laksjdjf/cgem156-ComfyUI", + "files": [ + "https://github.com/laksjdjf/cgem156-ComfyUI" + ], + "install_type": "git-clone", + "description": "The custom nodes of laksjdjf have been integrated into the node pack of cgem156🍌." + }, { "author": "alsritter", "title": "asymmetric-tiling-comfyui", @@ -2533,7 +2544,7 @@ "https://github.com/receyuki/comfyui-prompt-reader-node" ], "install_type": "git-clone", - "description": "ComfyUI node version of the SD Prompt Reader." + "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader." }, { "author": "rklaffehn", @@ -2747,7 +2758,7 @@ { "author": "kijai", "title": "ComfyUI-DDColor", - "id": "ddcolor", + "id": "ddcolor-kijai", "reference": "https://github.com/kijai/ComfyUI-DDColor", "files": [ "https://github.com/kijai/ComfyUI-DDColor" @@ -2791,6 +2802,7 @@ { "author": "kijai", "title": "ComfyUI-DynamiCrafterWrapper", + "id": "dynamicrafter-kijai", "reference": "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper", "files": [ "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper" @@ -3731,6 +3743,7 @@ { "author": "komojini", "title": "komojini-comfyui-nodes", + "id": "komojini-nodes", "reference": "https://github.com/komojini/komojini-comfyui-nodes", "files": [ "https://github.com/komojini/komojini-comfyui-nodes" @@ -3741,6 +3754,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "APISR IN COMFYUI", + "id": "apisr-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR" @@ -3751,6 +3765,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Text_Image-Composite [WIP]", + "id": "txtimg-composite", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite" @@ -3761,6 +3776,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Gemini", + "id": "gemini", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini" @@ -3771,6 +3787,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "comfyui-portrait-master-zh-cn", + "id": "portrait-master-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn", "files": [ "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn" @@ -3781,6 +3798,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Q-Align", + "id": "qalign-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align" @@ -3791,6 +3809,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-InstantID", + "id": "instantid-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID" @@ -3801,6 +3820,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI PhotoMaker (ZHO)", + "id": "photomaker-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO" @@ -3811,6 +3831,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Qwen-VL-API", + "id": "qwen-vl-api", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API" @@ -3821,6 +3842,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-SVD-ZHO (WIP)", + "id": "svd-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO" @@ -3831,6 +3853,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI SegMoE", + "id": "segmoe", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE" @@ -3852,6 +3875,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-PixArt-alpha-Diffusers", + "id": "pixart-alpha", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers" @@ -3862,6 +3886,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-BRIA_AI-RMBG", + "id": "bria-ai-rmbg", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG" @@ -3872,6 +3897,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "DepthFM IN COMFYUI", + "id": "depthfm", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM" @@ -3882,6 +3908,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-BiRefNet-ZHO", + "id": "birefnet", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO" @@ -3892,6 +3919,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "Phi-3-mini in ComfyUI", + "id": "phi3mini", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini" @@ -3899,6 +3927,17 @@ "install_type": "git-clone", "description": "Nodes:Phi3mini_4k_ModelLoader_Zho, Phi3mini_4k_Zho, Phi3mini_4k_Chat_Zho" }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-ArtGallery", + "id": "artgallery", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery" + ], + "install_type": "git-clone", + "description": "Prompt Visualization | Art Gallery\n[w/WARN: Installation requires 2GB of space, and it will involve a long download time.]" + }, { "author": "kenjiqq", "title": "qq-nodes-comfyui", @@ -4432,6 +4471,7 @@ { "author": "SpaceKendo", "title": "Text to video for Stable Video Diffusion in ComfyUI", + "id": "svd-txt2vid", "reference": "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid", "files": [ "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid" @@ -4442,6 +4482,7 @@ { "author": "NimaNzrii", "title": "comfyui-popup_preview", + "id": "popup-preview", "reference": "https://github.com/NimaNzrii/comfyui-popup_preview", "files": [ "https://github.com/NimaNzrii/comfyui-popup_preview" @@ -4452,6 +4493,7 @@ { "author": "NimaNzrii", "title": "comfyui-photoshop", + "id": "comfy-photoshop", "reference": "https://github.com/NimaNzrii/comfyui-photoshop", "files": [ "https://github.com/NimaNzrii/comfyui-photoshop" @@ -4462,6 +4504,7 @@ { "author": "Rui", "title": "RUI-Nodes", + "id": "rui-nodes", "reference": "https://github.com/rui40000/RUI-Nodes", "files": [ "https://github.com/rui40000/RUI-Nodes" @@ -4472,6 +4515,7 @@ { "author": "dmarx", "title": "ComfyUI-Keyframed", + "id": "keyframed", "reference": "https://github.com/dmarx/ComfyUI-Keyframed", "files": [ "https://github.com/dmarx/ComfyUI-Keyframed" @@ -4482,6 +4526,7 @@ { "author": "dmarx", "title": "ComfyUI-AudioReactive", + "id": "audioreactive", "reference": "https://github.com/dmarx/ComfyUI-AudioReactive", "files": [ "https://github.com/dmarx/ComfyUI-AudioReactive" @@ -4492,6 +4537,7 @@ { "author": "TripleHeadedMonkey", "title": "ComfyUI_MileHighStyler", + "id": "milehighstyler", "reference": "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler", "files": [ "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler" @@ -4502,6 +4548,7 @@ { "author": "BennyKok", "title": "ComfyUI Deploy", + "id": "comfy-deploy", "reference": "https://github.com/BennyKok/comfyui-deploy", "files": [ "https://github.com/BennyKok/comfyui-deploy" @@ -4512,6 +4559,7 @@ { "author": "florestefano1975", "title": "comfyui-portrait-master", + "id": "portrait-master", "reference": "https://github.com/florestefano1975/comfyui-portrait-master", "files": [ "https://github.com/florestefano1975/comfyui-portrait-master" @@ -4522,6 +4570,7 @@ { "author": "florestefano1975", "title": "comfyui-prompt-composer", + "id": "prompt-composer", "reference": "https://github.com/florestefano1975/comfyui-prompt-composer", "files": [ "https://github.com/florestefano1975/comfyui-prompt-composer" @@ -4532,6 +4581,7 @@ { "author": "florestefano1975", "title": "ComfyUI StabilityAI Suite", + "id": "sai-suite", "reference": "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite", "files": [ "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite" @@ -4542,6 +4592,7 @@ { "author": "florestefano1975", "title": "ComfyUI HiDiffusion", + "id": "hidiffusion", "reference": "https://github.com/florestefano1975/ComfyUI-HiDiffusion", "files": [ "https://github.com/florestefano1975/ComfyUI-HiDiffusion" @@ -4552,6 +4603,7 @@ { "author": "mozman", "title": "ComfyUI_mozman_nodes", + "id": "mozman-nodes", "reference": "https://github.com/mozman/ComfyUI_mozman_nodes", "files": [ "https://github.com/mozman/ComfyUI_mozman_nodes" @@ -4562,6 +4614,7 @@ { "author": "rcsaquino", "title": "rcsaquino/comfyui-custom-nodes", + "id": "rcsaquino-nodes", "reference": "https://github.com/rcsaquino/comfyui-custom-nodes", "files": [ "https://github.com/rcsaquino/comfyui-custom-nodes" @@ -4572,6 +4625,7 @@ { "author": "rcfcu2000", "title": "zhihuige-nodes-comfyui", + "id": "zhihuige-nodes", "reference": "https://github.com/rcfcu2000/zhihuige-nodes-comfyui", "files": [ "https://github.com/rcfcu2000/zhihuige-nodes-comfyui" @@ -4582,6 +4636,7 @@ { "author": "IDGallagher", "title": "IG Interpolation Nodes", + "id": "ig-nodes", "reference": "https://github.com/IDGallagher/ComfyUI-IG-Nodes", "files": [ "https://github.com/IDGallagher/ComfyUI-IG-Nodes" @@ -4993,6 +5048,7 @@ { "author": "SiliconFlow", "title": "OneDiff Nodes", + "id": "onddiff", "reference": "https://github.com/siliconflow/onediff_comfy_nodes", "files": [ "https://github.com/siliconflow/onediff_comfy_nodes" @@ -5000,19 +5056,10 @@ "install_type": "git-clone", "description": "[a/Onediff](https://github.com/siliconflow/onediff) ComfyUI Nodes." }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-ArtGallery", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery" - ], - "install_type": "git-clone", - "description": "Prompt Visualization | Art Gallery\n[w/WARN: Installation requires 2GB of space, and it will involve a long download time.]" - }, { "author": "hinablue", "title": "ComfyUI 3D Pose Editor", + "id": "3d-pose-editor", "reference": "https://github.com/hinablue/ComfyUI_3dPoseEditor", "files": [ "https://github.com/hinablue/ComfyUI_3dPoseEditor" @@ -5023,6 +5070,7 @@ { "author": "chaojie", "title": "ComfyUI-CameraCtrl-Wrapper", + "id": "cameractrl-wrapper", "reference": "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper", "files": [ "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper" @@ -5033,6 +5081,7 @@ { "author": "chaojie", "title": "ComfyUI-EasyAnimate", + "id": "easyanimate", "reference": "https://github.com/chaojie/ComfyUI-EasyAnimate", "files": [ "https://github.com/chaojie/ComfyUI-EasyAnimate" @@ -5043,6 +5092,7 @@ { "author": "chaojie", "title": "ComfyUI_StreamingT2V", + "id": "streamingt2v", "reference": "https://github.com/chaojie/ComfyUI_StreamingT2V", "files": [ "https://github.com/chaojie/ComfyUI_StreamingT2V" @@ -5053,6 +5103,7 @@ { "author": "chaojie", "title": "ComfyUI-Open-Sora-Plan", + "id": "opensora-plan", "reference": "https://github.com/chaojie/ComfyUI-Open-Sora-Plan", "files": [ "https://github.com/chaojie/ComfyUI-Open-Sora-Plan" @@ -5063,6 +5114,7 @@ { "author": "chaojie", "title": "ComfyUI-MuseTalk", + "id": "musetalk-chaojie", "reference": "https://github.com/chaojie/ComfyUI-MuseTalk", "files": [ "https://github.com/chaojie/ComfyUI-MuseTalk" @@ -5073,6 +5125,7 @@ { "author": "chaojie", "title": "ComfyUI-MuseV", + "id": "musev", "reference": "https://github.com/chaojie/ComfyUI-MuseV", "files": [ "https://github.com/chaojie/ComfyUI-MuseV" @@ -5083,6 +5136,7 @@ { "author": "chaojie", "title": "ComfyUI-AniPortrait", + "id": "aniportrait", "reference": "https://github.com/chaojie/ComfyUI-AniPortrait", "files": [ "https://github.com/chaojie/ComfyUI-AniPortrait" @@ -5093,6 +5147,7 @@ { "author": "chaojie", "title": "ComfyUI-Img2Img-Turbo", + "id": "img2img-turbo", "reference": "https://github.com/chaojie/ComfyUI-Img2Img-Turbo", "files": [ "https://github.com/chaojie/ComfyUI-Img2Img-Turbo" @@ -5103,6 +5158,7 @@ { "author": "chaojie", "title": "ComfyUI-Champ", + "id": "champ", "reference": "https://github.com/chaojie/ComfyUI-Champ", "files": [ "https://github.com/chaojie/ComfyUI-Champ" @@ -5113,6 +5169,7 @@ { "author": "chaojie", "title": "ComfyUI-Open-Sora", + "id": "opensora", "reference": "https://github.com/chaojie/ComfyUI-Open-Sora", "files": [ "https://github.com/chaojie/ComfyUI-Open-Sora" @@ -5123,6 +5180,7 @@ { "author": "chaojie", "title": "ComfyUI-Trajectory", + "id": "trajectory", "reference": "https://github.com/chaojie/ComfyUI-Trajectory", "files": [ "https://github.com/chaojie/ComfyUI-Trajectory" @@ -5133,6 +5191,7 @@ { "author": "chaojie", "title": "ComfyUI-dust3r", + "id": "dust3r", "reference": "https://github.com/chaojie/ComfyUI-dust3r", "files": [ "https://github.com/chaojie/ComfyUI-dust3r" @@ -5143,6 +5202,7 @@ { "author": "chaojie", "title": "ComfyUI-Gemma", + "id": "gamma", "reference": "https://github.com/chaojie/ComfyUI-Gemma", "files": [ "https://github.com/chaojie/ComfyUI-Gemma" @@ -5153,6 +5213,7 @@ { "author": "chaojie", "title": "ComfyUI-DynamiCrafter", + "id": "dynamicrafter-chaojie", "reference": "https://github.com/chaojie/ComfyUI-DynamiCrafter", "files": [ "https://github.com/chaojie/ComfyUI-DynamiCrafter" @@ -5163,6 +5224,7 @@ { "author": "chaojie", "title": "ComfyUI-Panda3d", + "id": "panda3d", "reference": "https://github.com/chaojie/ComfyUI-Panda3d", "files": [ "https://github.com/chaojie/ComfyUI-Panda3d" @@ -5173,6 +5235,7 @@ { "author": "chaojie", "title": "ComfyUI-Pymunk", + "id": "pymunk", "reference": "https://github.com/chaojie/ComfyUI-Pymunk", "files": [ "https://github.com/chaojie/ComfyUI-Pymunk" @@ -5183,6 +5246,7 @@ { "author": "chaojie", "title": "ComfyUI-MotionCtrl", + "id": "motionctrl", "reference": "https://github.com/chaojie/ComfyUI-MotionCtrl", "files": [ "https://github.com/chaojie/ComfyUI-MotionCtrl" @@ -5193,6 +5257,7 @@ { "author": "chaojie", "title": "ComfyUI-Motion-Vector-Extractor", + "id": "motion-vector-extractor", "reference": "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor", "files": [ "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor" @@ -5203,6 +5268,7 @@ { "author": "chaojie", "title": "ComfyUI-MotionCtrl-SVD", + "id": "motionctrl-svd", "reference": "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD", "files": [ "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD" @@ -5213,6 +5279,7 @@ { "author": "chaojie", "title": "ComfyUI-DragAnything", + "id": "draganything", "reference": "https://github.com/chaojie/ComfyUI-DragAnything", "files": [ "https://github.com/chaojie/ComfyUI-DragAnything" @@ -5223,6 +5290,7 @@ { "author": "chaojie", "title": "ComfyUI-DragNUWA", + "id": "dragnuwa", "reference": "https://github.com/chaojie/ComfyUI-DragNUWA", "files": [ "https://github.com/chaojie/ComfyUI-DragNUWA" @@ -5233,6 +5301,7 @@ { "author": "chaojie", "title": "ComfyUI-Moore-AnimateAnyone", + "id": "moore-animateanyone", "reference": "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone", "files": [ "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone" @@ -5243,6 +5312,7 @@ { "author": "chaojie", "title": "ComfyUI-I2VGEN-XL", + "id": "i2vgen-xl", "reference": "https://github.com/chaojie/ComfyUI-I2VGEN-XL", "files": [ "https://github.com/chaojie/ComfyUI-I2VGEN-XL" @@ -5253,6 +5323,7 @@ { "author": "chaojie", "title": "ComfyUI-LightGlue", + "id": "lightglue", "reference": "https://github.com/chaojie/ComfyUI-LightGlue", "files": [ "https://github.com/chaojie/ComfyUI-LightGlue" @@ -5263,6 +5334,7 @@ { "author": "chaojie", "title": "ComfyUI-RAFT", + "id": "raft", "reference": "https://github.com/chaojie/ComfyUI-RAFT", "files": [ "https://github.com/chaojie/ComfyUI-RAFT" @@ -5273,6 +5345,7 @@ { "author": "chaojie", "title": "ComfyUI-LaVIT", + "id": "lavit", "reference": "https://github.com/chaojie/ComfyUI-LaVIT", "files": [ "https://github.com/chaojie/ComfyUI-LaVIT" @@ -5283,6 +5356,7 @@ { "author": "chaojie", "title": "ComfyUI-SimDA", + "id": "simda", "reference": "https://github.com/chaojie/ComfyUI-SimDA", "files": [ "https://github.com/chaojie/ComfyUI-SimDA" @@ -5293,6 +5367,7 @@ { "author": "chaojie", "title": "ComfyUI-Video-Editing-X-Attention", + "id": "video-editing-x-attention", "reference": "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention", "files": [ "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention" @@ -5303,6 +5378,7 @@ { "author": "alexopus", "title": "ComfyUI Image Saver", + "id": "image-saver", "reference": "https://github.com/alexopus/ComfyUI-Image-Saver", "files": [ "https://github.com/alexopus/ComfyUI-Image-Saver" @@ -5313,6 +5389,7 @@ { "author": "kft334", "title": "Knodes", + "id": "knodes", "reference": "https://github.com/kft334/Knodes", "files": [ "https://github.com/kft334/Knodes" @@ -5323,6 +5400,7 @@ { "author": "MrForExample", "title": "ComfyUI-3D-Pack", + "id": "3dpack", "reference": "https://github.com/MrForExample/ComfyUI-3D-Pack", "files": [ "https://github.com/MrForExample/ComfyUI-3D-Pack" @@ -5334,6 +5412,7 @@ { "author": "Mr.ForExample", "title": "ComfyUI-AnimateAnyone-Evolved", + "id": "animateanyone-evolved", "reference": "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved", "files": [ "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved" @@ -5595,6 +5674,7 @@ { "author": "nkchocoai", "title": "ComfyUI-Dart", + "id": "dart", "reference": "https://github.com/nkchocoai/ComfyUI-Dart", "files": [ "https://github.com/nkchocoai/ComfyUI-Dart" @@ -5605,6 +5685,7 @@ { "author": "JaredTherriault", "title": "ComfyUI-JNodes", + "id": "jnodes", "reference": "https://github.com/JaredTherriault/ComfyUI-JNodes", "files": [ "https://github.com/JaredTherriault/ComfyUI-JNodes" @@ -5615,6 +5696,7 @@ { "author": "prozacgod", "title": "ComfyUI Multi-Workspace", + "id": "multi-workspace", "reference": "https://github.com/prozacgod/comfyui-pzc-multiworkspace", "files": [ "https://github.com/prozacgod/comfyui-pzc-multiworkspace" @@ -5625,6 +5707,7 @@ { "author": "Siberpone", "title": "Lazy Pony Prompter", + "id": "lazy-pony-prompter", "reference": "https://github.com/Siberpone/lazy-pony-prompter", "files": [ "https://github.com/Siberpone/lazy-pony-prompter" @@ -5635,6 +5718,7 @@ { "author": "dave-palt", "title": "comfyui_DSP_imagehelpers", + "id": "dsp-imagehelpers", "reference": "https://github.com/dave-palt/comfyui_DSP_imagehelpers", "files": [ "https://github.com/dave-palt/comfyui_DSP_imagehelpers" @@ -5645,6 +5729,7 @@ { "author": "Inzaniak", "title": "Ranbooru for ComfyUI", + "id": "ranbooru", "reference": "https://github.com/Inzaniak/comfyui-ranbooru", "files": [ "https://github.com/Inzaniak/comfyui-ranbooru" @@ -5655,6 +5740,7 @@ { "author": "miosp", "title": "ComfyUI-FBCNN", + "id": "fbcnn", "reference": "https://github.com/Miosp/ComfyUI-FBCNN", "files": [ "https://github.com/Miosp/ComfyUI-FBCNN" @@ -5665,6 +5751,7 @@ { "author": "JcandZero", "title": "ComfyUI_GLM4Node", + "id": "glm4node", "reference": "https://github.com/JcandZero/ComfyUI_GLM4Node", "files": [ "https://github.com/JcandZero/ComfyUI_GLM4Node" @@ -5675,6 +5762,7 @@ { "author": "darkpixel", "title": "DarkPrompts", + "id": "darkprompts", "reference": "https://github.com/darkpixel/darkprompts", "files": [ "https://github.com/darkpixel/darkprompts" @@ -5685,6 +5773,7 @@ { "author": "shiimizu", "title": "ComfyUI PhotoMaker Plus", + "id": "photomaker-plus", "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus", "files": [ "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus" @@ -5695,6 +5784,7 @@ { "author": "yytdfc", "title": "Amazon Bedrock nodes for ComfyUI", + "id": "bedrock", "reference": "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock", "files": [ "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock" @@ -5706,6 +5796,7 @@ { "author": "Qais Malkawi", "title": "ComfyUI-Qais-Helper", + "id": "qais-helper", "reference": "https://github.com/QaisMalkawi/ComfyUI-QaisHelper", "files": [ "https://github.com/QaisMalkawi/ComfyUI-QaisHelper" @@ -5716,6 +5807,7 @@ { "author": "longgui0318", "title": "comfyui-mask-util", + "id": "mask-util", "reference": "https://github.com/longgui0318/comfyui-mask-util", "files": [ "https://github.com/longgui0318/comfyui-mask-util" @@ -5726,6 +5818,7 @@ { "author": "longgui0318", "title": "comfyui-llm-assistant", + "id": "llm-assistant", "reference": "https://github.com/longgui0318/comfyui-llm-assistant", "files": [ "https://github.com/longgui0318/comfyui-llm-assistant" @@ -5736,6 +5829,7 @@ { "author": "longgui0318", "title": "comfyui-oms-diffusion", + "id": "oms-diffusion", "reference": "https://github.com/longgui0318/comfyui-oms-diffusion", "files": [ "https://github.com/longgui0318/comfyui-oms-diffusion" @@ -5746,6 +5840,7 @@ { "author": "longgui0318", "title": "comfyui-magic-clothing", + "id": "magic-clothing", "reference": "https://github.com/longgui0318/comfyui-magic-clothing", "files": [ "https://github.com/longgui0318/comfyui-magic-clothing" @@ -5766,6 +5861,7 @@ { "author": "adriflex", "title": "ComfyUI_Blender_Texdiff", + "id": "blender-texdiff", "reference": "https://github.com/adriflex/ComfyUI_Blender_Texdiff", "files": [ "https://github.com/adriflex/ComfyUI_Blender_Texdiff" @@ -5776,6 +5872,7 @@ { "author": "Shraknard", "title": "ComfyUI-Remover", + "id": "remover", "reference": "https://github.com/Shraknard/ComfyUI-Remover", "files": [ "https://github.com/Shraknard/ComfyUI-Remover" @@ -5796,6 +5893,7 @@ { "author": "Nlar", "title": "ComfyUI_CartoonSegmentation", + "id": "cartoon-seg", "reference": "https://github.com/Nlar/ComfyUI_CartoonSegmentation", "files": [ "https://github.com/Nlar/ComfyUI_CartoonSegmentation" @@ -5806,6 +5904,7 @@ { "author": "godspede", "title": "ComfyUI Substring", + "id": "substring", "reference": "https://github.com/godspede/ComfyUI_Substring", "files": [ "https://github.com/godspede/ComfyUI_Substring" @@ -5816,6 +5915,7 @@ { "author": "gokayfem", "title": "VLM_nodes", + "id": "vlm", "reference": "https://github.com/gokayfem/ComfyUI_VLM_nodes", "files": [ "https://github.com/gokayfem/ComfyUI_VLM_nodes" @@ -5826,6 +5926,7 @@ { "author": "gokayfem", "title": "ComfyUI-Dream-Interpreter", + "id": "dream-interpreter", "reference": "https://github.com/gokayfem/ComfyUI-Dream-Interpreter", "files": [ "https://github.com/gokayfem/ComfyUI-Dream-Interpreter" @@ -5836,6 +5937,7 @@ { "author": "gokayfem", "title": "ComfyUI-Depth-Visualization", + "id": "delpth-visualization", "reference": "https://github.com/gokayfem/ComfyUI-Depth-Visualization", "files": [ "https://github.com/gokayfem/ComfyUI-Depth-Visualization" @@ -5846,6 +5948,7 @@ { "author": "gokayfem", "title": "ComfyUI-Texture-Simple", + "id": "texture-simple", "reference": "https://github.com/gokayfem/ComfyUI-Texture-Simple", "files": [ "https://github.com/gokayfem/ComfyUI-Texture-Simple" @@ -5856,6 +5959,7 @@ { "author": "Hiero207", "title": "Hiero-Nodes", + "id": "hiero", "reference": "https://github.com/Hiero207/ComfyUI-Hiero-Nodes", "files": [ "https://github.com/Hiero207/ComfyUI-Hiero-Nodes" @@ -5866,6 +5970,7 @@ { "author": "azure-dragon-ai", "title": "ComfyUI-ClipScore-Nodes", + "id": "clipscore", "reference": "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes", "files": [ "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes" @@ -5876,6 +5981,7 @@ { "author": "yuvraj108c", "title": "ComfyUI Whisper", + "id": "whisper", "reference": "https://github.com/yuvraj108c/ComfyUI-Whisper", "files": [ "https://github.com/yuvraj108c/ComfyUI-Whisper" @@ -5886,6 +5992,7 @@ { "author": "yuvraj108c", "title": "ComfyUI-Pronodes", + "id": "pronodes", "reference": "https://github.com/yuvraj108c/ComfyUI-Pronodes", "files": [ "https://github.com/yuvraj108c/ComfyUI-Pronodes" @@ -5896,6 +6003,7 @@ { "author": "yuvraj108c", "title": "ComfyUI-Vsgan", + "id": "vsgan", "reference": "https://github.com/yuvraj108c/ComfyUI-Vsgan", "files": [ "https://github.com/yuvraj108c/ComfyUI-Vsgan" @@ -5906,6 +6014,7 @@ { "author": "yuvraj108c", "title": "ComfyUI Depth Anything TensorRT", + "id": "depth-anything-tensorrt", "reference": "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt", "files": [ "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt" @@ -5916,6 +6025,7 @@ { "author": "yuvraj108c", "title": "ComfyUI PiperTTS", + "id": "pipertts", "reference": "https://github.com/yuvraj108c/ComfyUI-PiperTTS", "files": [ "https://github.com/yuvraj108c/ComfyUI-PiperTTS" @@ -5926,6 +6036,7 @@ { "author": "yuvraj108c", "title": "ComfyUI Upscaler TensorRT", + "id": "upscaler-tensorrt", "reference": "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt", "files": [ "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt" @@ -5936,6 +6047,7 @@ { "author": "blepping", "title": "ComfyUI-bleh", + "id": "bleh", "reference": "https://github.com/blepping/ComfyUI-bleh", "files": [ "https://github.com/blepping/ComfyUI-bleh" @@ -5946,6 +6058,7 @@ { "author": "blepping", "title": "ComfyUI-sonar", + "id": "sonar", "reference": "https://github.com/blepping/ComfyUI-sonar", "files": [ "https://github.com/blepping/ComfyUI-sonar" @@ -5956,6 +6069,7 @@ { "author": "blepping", "title": "ComfyUI jank HiDiffusion", + "id": "jank-hidiffusion", "reference": "https://github.com/blepping/comfyui_jankhidiffusion", "files": [ "https://github.com/blepping/comfyui_jankhidiffusion" @@ -5986,6 +6100,7 @@ { "author": "mape", "title": "mape's helpers", + "id": "mape-helpers", "reference": "https://github.com/mape/ComfyUI-mape-Helpers", "files": [ "https://github.com/mape/ComfyUI-mape-Helpers" @@ -5996,6 +6111,7 @@ { "author": "zhongpei", "title": "Comfyui_image2prompt", + "id": "img2prompt", "reference": "https://github.com/zhongpei/Comfyui_image2prompt", "files": [ "https://github.com/zhongpei/Comfyui_image2prompt" @@ -6006,16 +6122,18 @@ { "author": "zhongpei", "title": "ComfyUI for InstructIR", + "id": "instructir", "reference": "https://github.com/zhongpei/ComfyUI-InstructIR", "files": [ "https://github.com/zhongpei/ComfyUI-InstructIR" ], "install_type": "git-clone", - "description": "Enhancing Image Restoration" + "description": "Enhancing Image Restoration. (ref:[a/InstructIR](https://github.com/mv-lab/InstructIR))" }, { "author": "Loewen-Hob", "title": "Rembg Background Removal Node for ComfyUI", + "id": "rembg", "reference": "https://github.com/Loewen-Hob/rembg-comfyui-node-better", "files": [ "https://github.com/Loewen-Hob/rembg-comfyui-node-better" @@ -6026,6 +6144,7 @@ { "author": "HaydenReeve", "title": "ComfyUI Better Strings", + "id": "better-string", "reference": "https://github.com/HaydenReeve/ComfyUI-Better-Strings", "files": [ "https://github.com/HaydenReeve/ComfyUI-Better-Strings" @@ -6036,6 +6155,7 @@ { "author": "StartHua", "title": "ComfyUI_Seg_VITON", + "id": "seg-viton", "reference": "https://github.com/StartHua/ComfyUI_Seg_VITON", "files": [ "https://github.com/StartHua/ComfyUI_Seg_VITON" @@ -6046,6 +6166,7 @@ { "author": "StartHua", "title": "Comfyui_joytag", + "id": "joytag", "reference": "https://github.com/StartHua/Comfyui_joytag", "files": [ "https://github.com/StartHua/Comfyui_joytag" @@ -6056,6 +6177,7 @@ { "author": "StartHua", "title": "comfyui_segformer_b2_clothes", + "id": "segformer-b2-clothes", "reference": "https://github.com/StartHua/Comfyui_segformer_b2_clothes", "files": [ "https://github.com/StartHua/Comfyui_segformer_b2_clothes" @@ -6066,6 +6188,7 @@ { "author": "StartHua", "title": "ComfyUI_OOTDiffusion_CXH", + "id": "ootdiffusion-cxh", "reference": "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH", "files": [ "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH" @@ -6076,6 +6199,7 @@ { "author": "ricklove", "title": "comfyui-ricklove", + "id": "ricklove", "reference": "https://github.com/ricklove/comfyui-ricklove", "files": [ "https://github.com/ricklove/comfyui-ricklove" @@ -6086,6 +6210,7 @@ { "author": "nosiu", "title": "ComfyUI InstantID Faceswapper", + "id": "instantid-faceswapper", "reference": "https://github.com/nosiu/comfyui-instantId-faceswap", "files": [ "https://github.com/nosiu/comfyui-instantId-faceswap" @@ -6093,16 +6218,6 @@ "install_type": "git-clone", "description": "Implementation of [a/faceswap](https://github.com/nosiu/InstantID-faceswap/tree/main) based on [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI. Allows usage of [a/LCM Lora](https://huggingface.co/latent-consistency/lcm-lora-sdxl) which can produce good results in only a few generation steps.\nNOTE:Works ONLY with SDXL checkpoints." }, - { - "author": "zhongpei", - "title": "ComfyUI for InstructIR", - "reference": "https://github.com/zhongpei/ComfyUI-InstructIR", - "files": [ - "https://github.com/zhongpei/ComfyUI-InstructIR" - ], - "install_type": "git-clone", - "description": "Enhancing Image Restoration. (ref:[a/InstructIR](https://github.com/mv-lab/InstructIR))" - }, { "author": "LyazS", "title": "Anime Character Segmentation node for comfyui", @@ -6307,6 +6422,7 @@ { "author": "ShmuelRonen", "title": "ComfyUI-SVDResizer", + "id": "svdresizer", "reference": "https://github.com/ShmuelRonen/ComfyUI-SVDResizer", "files": [ "https://github.com/ShmuelRonen/ComfyUI-SVDResizer" @@ -6314,9 +6430,21 @@ "install_type": "git-clone", "description": "SVDResizer is a helper for resizing the source image, according to the sizes enabled in Stable Video Diffusion. The rationale behind the possibility of changing the size of the image in steps between the ranges of 576 and 1024, is the use of the greatest common denominator of these two numbers which is 64. SVD is lenient with resizing that adheres to this rule, so the chance of coherent video that is not the standard size of 576X1024 is greater. It is advisable to keep the value 1024 constant and play with the second size to maintain the stability of the result." }, + { + "author": "ShmuelRonen", + "title": "Wav2Lip Node for ComfyUI", + "id": "wav2lip", + "reference": "https://github.com/ShmuelRonen/ComfyUI_wav2lip", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_wav2lip" + ], + "install_type": "git-clone", + "description": "The Wav2Lip node is a custom node for ComfyUI that allows you to perform lip-syncing on videos using the Wav2Lip model. It takes an input video and an audio file and generates a lip-synced output video." + }, { "author": "redhottensors", "title": "ComfyUI-Prediction", + "id": "prediction", "reference": "https://github.com/redhottensors/ComfyUI-Prediction", "files": [ "https://github.com/redhottensors/ComfyUI-Prediction" @@ -6327,6 +6455,7 @@ { "author": "Mamaaaamooooo", "title": "Batch Rembg for ComfyUI", + "id": "batch-rembg", "reference": "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes", "files": [ "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes" @@ -6337,6 +6466,7 @@ { "author": "jordoh", "title": "ComfyUI Deepface", + "id": "deepface", "reference": "https://github.com/jordoh/ComfyUI-Deepface", "files": [ "https://github.com/jordoh/ComfyUI-Deepface" @@ -6347,6 +6477,7 @@ { "author": "al-swaiti", "title": "ComfyUI-CascadeResolutions", + "id": "cascade-resolution", "reference": "https://github.com/al-swaiti/ComfyUI-CascadeResolutions", "files": [ "https://github.com/al-swaiti/ComfyUI-CascadeResolutions" @@ -6357,6 +6488,7 @@ { "author": "mirabarukaso", "title": "ComfyUI_Mira", + "id": "mira", "reference": "https://github.com/mirabarukaso/ComfyUI_Mira", "files": [ "https://github.com/mirabarukaso/ComfyUI_Mira" @@ -6367,6 +6499,7 @@ { "author": "1038lab", "title": "ComfyUI-GPT2P", + "id": "gpt2p", "reference": "https://github.com/1038lab/ComfyUI-GPT2P", "files": [ "https://github.com/1038lab/ComfyUI-GPT2P" @@ -6377,6 +6510,7 @@ { "author": "LykosAI", "title": "ComfyUI Nodes for Inference.Core", + "id": "inference-core", "reference": "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes", "files": [ "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes" @@ -6387,6 +6521,7 @@ { "author": "Klinter", "title": "Klinter_nodes", + "id": "klinter", "reference": "https://github.com/klinter007/klinter_nodes", "files": [ "https://github.com/klinter007/klinter_nodes" @@ -6397,6 +6532,7 @@ { "author": "Ludobico", "title": "ComfyUI-ScenarioPrompt", + "id": "scenarioprompt", "reference": "https://github.com/Ludobico/ComfyUI-ScenarioPrompt", "files": [ "https://github.com/Ludobico/ComfyUI-ScenarioPrompt" @@ -6407,6 +6543,7 @@ { "author": "logtd", "title": "InstanceDiffusion Nodes", + "id": "instancediffusion", "reference": "https://github.com/logtd/ComfyUI-InstanceDiffusion", "files": [ "https://github.com/logtd/ComfyUI-InstanceDiffusion" @@ -6417,6 +6554,7 @@ { "author": "logtd", "title": "Tracking Nodes for Videos", + "id": "tracking", "reference": "https://github.com/logtd/ComfyUI-TrackingNodes", "files": [ "https://github.com/logtd/ComfyUI-TrackingNodes" @@ -6427,6 +6565,7 @@ { "author": "logtd", "title": "ComfyUI-InversedNoise", + "id": "inversed-noise", "reference": "https://github.com/logtd/ComfyUI-InversedNoise", "files": [ "https://github.com/logtd/ComfyUI-InversedNoise" @@ -6437,6 +6576,7 @@ { "author": "logtd", "title": "ComfyUI-RefSampling", + "id": "refsampling", "reference": "https://github.com/logtd/ComfyUI-RefSampling", "files": [ "https://github.com/logtd/ComfyUI-RefSampling" @@ -6447,6 +6587,7 @@ { "author": "logtd", "title": "ComfyUI-FLATTEN", + "id": "flatten", "reference": "https://github.com/logtd/ComfyUI-FLATTEN", "files": [ "https://github.com/logtd/ComfyUI-FLATTEN" @@ -6457,6 +6598,7 @@ { "author": "logtd", "title": "ComfyUI-RAVE Attention", + "id": "rave", "reference": "https://github.com/logtd/ComfyUI-RAVE_ATTN", "files": [ "https://github.com/logtd/ComfyUI-RAVE_ATTN" @@ -6467,6 +6609,7 @@ { "author": "Big-Idea-Technology", "title": "ComfyUI-Book-Tools Nodes for ComfyUI", + "id": "booktool", "reference": "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools", "files": [ "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools" @@ -6486,7 +6629,8 @@ }, { "author": "Guillaume-Fgt", - "title": "ComfyUI-ScenarioPrompt", + "title": "ComfyUI_StableCascadeLatentRatio", + "id": "cascade-latent-ratio", "reference": "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio", "files": [ "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio" @@ -6497,6 +6641,7 @@ { "author": "AuroBit", "title": "ComfyUI OOTDiffusion", + "id": "ootdiffusion", "reference": "https://github.com/AuroBit/ComfyUI-OOTDiffusion", "files": [ "https://github.com/AuroBit/ComfyUI-OOTDiffusion" @@ -6507,6 +6652,7 @@ { "author": "AuroBit", "title": "ComfyUI-AnimateAnyone-reproduction", + "id": "animateanyone-reproduction", "reference": "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction", "files": [ "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction" @@ -6517,6 +6663,7 @@ { "author": "czcz1024", "title": "Face Compare", + "id": "facecompare", "reference": "https://github.com/czcz1024/Comfyui-FaceCompare", "files": [ "https://github.com/czcz1024/Comfyui-FaceCompare" @@ -6727,6 +6874,17 @@ "install_type": "git-clone", "description": "Port of [a/https://github.com/huchenlei/sd-webui-openpose-editor](https://github.com/huchenlei/sd-webui-openpose-editor) in ComfyUI" }, + { + "author": "huchenlei", + "title": "ComfyUI-IC-Light-Native", + "id": "ic-light-native", + "reference": "https://github.com/huchenlei/ComfyUI-IC-Light-Native", + "files": [ + "https://github.com/huchenlei/ComfyUI-IC-Light-Native" + ], + "install_type": "git-clone", + "description": "ComfyUI native implementation of [a/IC-Light](https://github.com/lllyasviel/IC-Light)." + }, { "author": "nathannlu", "title": "ComfyUI Pets", @@ -6892,6 +7050,7 @@ { "author": "ljleb", "title": "comfy-mecha", + "id": "mecha", "reference": "https://github.com/ljleb/comfy-mecha", "files": [ "https://github.com/ljleb/comfy-mecha" @@ -6902,6 +7061,7 @@ { "author": "diSty", "title": "ComfyUI Frame Maker", + "id": "frame-maker", "reference": "https://github.com/diStyApps/ComfyUI_FrameMaker", "files": [ "https://github.com/diStyApps/ComfyUI_FrameMaker" @@ -6912,6 +7072,7 @@ { "author": "hackkhai", "title": "ComfyUI-Image-Matting", + "id": "image-matting", "reference": "https://github.com/hackkhai/ComfyUI-Image-Matting", "files": [ "https://github.com/hackkhai/ComfyUI-Image-Matting" @@ -6922,6 +7083,7 @@ { "author": "Pos13", "title": "Cyclist", + "id": "cyclist", "reference": "https://github.com/Pos13/comfyui-cyclist", "files": [ "https://github.com/Pos13/comfyui-cyclist" @@ -6932,6 +7094,7 @@ { "author": "ExponentialML", "title": "ComfyUI_ModelScopeT2V", + "id": "modelscopet2v", "reference": "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V", "files": [ "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V" @@ -6942,6 +7105,7 @@ { "author": "ExponentialML", "title": "ComfyUI - Native DynamiCrafter", + "id": "dynamicrafter", "reference": "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter", "files": [ "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter" @@ -6952,6 +7116,7 @@ { "author": "ExponentialML", "title": "ComfyUI_VisualStylePrompting", + "id": "visual-style-prompting", "reference": "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting", "files": [ "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting" @@ -6972,6 +7137,7 @@ { "author": "stavsap", "title": "ComfyUI Ollama", + "id": "ollama", "reference": "https://github.com/stavsap/comfyui-ollama", "files": [ "https://github.com/stavsap/comfyui-ollama" @@ -6982,6 +7148,7 @@ { "author": "dchatel", "title": "comfyui_facetools", + "id": "facetools", "reference": "https://github.com/dchatel/comfyui_facetools", "files": [ "https://github.com/dchatel/comfyui_facetools" @@ -6992,6 +7159,7 @@ { "author": "prodogape", "title": "Comfyui-Minio", + "id": "minio", "reference": "https://github.com/prodogape/ComfyUI-Minio", "files": [ "https://github.com/prodogape/ComfyUI-Minio" @@ -7002,6 +7170,7 @@ { "author": "kingzcheung", "title": "ComfyUI_kkTranslator_nodes", + "id": "kktranslator", "reference": "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes", "files": [ "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes" @@ -7012,6 +7181,7 @@ { "author": "vsevolod-oparin", "title": "Kandinsky 2.2 ComfyUI Plugin", + "id": "kandinsky", "reference": "https://github.com/vsevolod-oparin/comfyui-kandinsky22", "files": [ "https://github.com/vsevolod-oparin/comfyui-kandinsky22" @@ -7022,6 +7192,7 @@ { "author": "Xyem", "title": "Xycuno Oobabooga", + "id": "xycuno-oobabooga", "reference": "https://github.com/Xyem/Xycuno-Oobabooga", "files": [ "https://github.com/Xyem/Xycuno-Oobabooga" @@ -7032,6 +7203,7 @@ { "author": "shi3z", "title": "ComfyUI_Memeplex_DALLE", + "id": "memeplex-dalle", "reference": "https://github.com/shi3z/ComfyUI_Memeplex_DALLE", "files": [ "https://github.com/shi3z/ComfyUI_Memeplex_DALLE" @@ -7042,6 +7214,7 @@ { "author": "if-ai", "title": "ComfyUI-IF_AI_tools", + "id": "if-ai-tools", "reference": "https://github.com/if-ai/ComfyUI-IF_AI_tools", "files": [ "https://github.com/if-ai/ComfyUI-IF_AI_tools" @@ -7052,6 +7225,7 @@ { "author": "if-ai", "title": "ComfyUI-IF_AI_WishperSpeechNode", + "id": "whisper-speech", "reference": "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode", "files": [ "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode" @@ -7062,6 +7236,7 @@ { "author": "dmMaze", "title": "Sketch2Manga", + "id": "sketch2manga", "reference": "https://github.com/dmMaze/sketch2manga", "files": [ "https://github.com/dmMaze/sketch2manga" @@ -7072,6 +7247,7 @@ { "author": "olduvai-jp", "title": "ComfyUI-HfLoader", + "id": "hfloader", "reference": "https://github.com/olduvai-jp/ComfyUI-HfLoader", "files": [ "https://github.com/olduvai-jp/ComfyUI-HfLoader" @@ -7082,6 +7258,7 @@ { "author": "AiMiDi", "title": "ComfyUI-Aimidi-nodes", + "id": "aimidi-nodes", "reference": "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes", "files": [ "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes" @@ -7092,6 +7269,7 @@ { "author": "ForeignGods", "title": "ComfyUI-Mana-Nodes", + "id": "mana-nodes", "reference": "https://github.com/ForeignGods/ComfyUI-Mana-Nodes", "files": [ "https://github.com/ForeignGods/ComfyUI-Mana-Nodes" @@ -7102,6 +7280,7 @@ { "author": "Cornea Valentin", "title": "ControlNet Auxiliar", + "id": "controlnet-aux-valentin", "reference": "https://github.com/madtunebk/ComfyUI-ControlnetAux", "files": [ "https://github.com/madtunebk/ComfyUI-ControlnetAux" @@ -7122,6 +7301,7 @@ { "author": "MarkoCa1", "title": "ComfyUI_Segment_Mask", + "id": "seg-mask", "reference": "https://github.com/MarkoCa1/ComfyUI_Segment_Mask", "files": [ "https://github.com/MarkoCa1/ComfyUI_Segment_Mask" @@ -7132,6 +7312,7 @@ { "author": "Shadetail", "title": "Eagleshadow Custom Nodes", + "id": "eagleshadow", "reference": "https://github.com/Shadetail/ComfyUI_Eagleshadow", "files": [ "https://github.com/Shadetail/ComfyUI_Eagleshadow" @@ -7142,6 +7323,7 @@ { "author": "ArdeniusAI", "title": "CPlus_Ardenius ComfyUI Control Box", + "id": "controlbox", "reference": "https://github.com/ArdeniusAI/CPlus_Ardenius", "files": [ "https://github.com/ArdeniusAI/CPlus_Ardenius" @@ -7162,6 +7344,7 @@ { "author": "daxcay", "title": "ComfyUI-JDCN", + "id": "jdcn", "reference": "https://github.com/daxcay/ComfyUI-JDCN", "files": [ "https://github.com/daxcay/ComfyUI-JDCN" @@ -7172,6 +7355,7 @@ { "author": "daxcay", "title": "ComfyUI-DRMN", + "id": "drmn", "reference": "https://github.com/daxcay/ComfyUI-DRMN", "files": [ "https://github.com/daxcay/ComfyUI-DRMN" @@ -7182,6 +7366,7 @@ { "author": "Seedsa", "title": "ComfyUI Fooocus Nodes", + "id": "fooocus-nodes", "reference": "https://github.com/Seedsa/Fooocus_Nodes", "files": [ "https://github.com/Seedsa/Fooocus_Nodes" @@ -7202,6 +7387,7 @@ { "author": "ratulrafsan", "title": "Comfyui-SAL-VTON", + "id": "sal-vton", "reference": "https://github.com/ratulrafsan/Comfyui-SAL-VTON", "files": [ "https://github.com/ratulrafsan/Comfyui-SAL-VTON" @@ -7212,6 +7398,7 @@ { "author": "Nevysha", "title": "ComfyUI-nevysha-top-menu", + "id": "nevysha-top-menu", "reference": "https://github.com/Nevysha/ComfyUI-nevysha-top-menu", "files": [ "https://github.com/Nevysha/ComfyUI-nevysha-top-menu" @@ -7221,17 +7408,19 @@ }, { "author": "alisson-anjos", - "title": "ComfyUI-LLaVA-Describer", - "reference": "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer", + "title": "ComfyUI-Ollama-Describer", + "id": "ollama-describer", + "reference": "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer", "files": [ - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer" + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer" ], "install_type": "git-clone", - "description": "This is an extension for ComfyUI to extract descriptions from your images using the multimodal model called LLaVa. The LLaVa model - Large Language and Vision Assistant, although trained on a relatively small dataset, demonstrates exceptional capabilities in understanding images and answering questions about them. This model shows behaviors similar to multimodal models like GPT-4, even when presented with unseen images and instructions." + "description": "This is an extension for ComfyUI that makes it possible to use some LLM models provided by Ollama, such as Gemma, Llava (multimodal), Llama2, Llama3 or Mistral. Speaking specifically of the LLaVa - Large Language and Vision Assistant model, although trained on a relatively small dataset, it demonstrates exceptional capabilities in understanding images and answering questions about them. This model presents similar behaviors to multimodal models such as GPT-4, even when presented with invisible images and instructions." }, { "author": "chaosaiart", "title": "Chaosaiart-Nodes", + "id": "chaosaiart", "reference": "https://github.com/chaosaiart/Chaosaiart-Nodes", "files": [ "https://github.com/chaosaiart/Chaosaiart-Nodes" @@ -7242,6 +7431,7 @@ { "author": "viperyl", "title": "ComfyUI-BiRefNet", + "id": "birefnet", "reference": "https://github.com/viperyl/ComfyUI-BiRefNet", "files": [ "https://github.com/viperyl/ComfyUI-BiRefNet" @@ -7252,6 +7442,7 @@ { "author": "SuperBeastsAI", "title": "ComfyUI-SuperBeasts", + "id": "superbeasts", "reference": "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts", "files": [ "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts" @@ -7272,6 +7463,7 @@ { "author": "hay86", "title": "ComfyUI Dreamtalk", + "id": "dreamtalk", "reference": "https://github.com/hay86/ComfyUI_Dreamtalk", "files": [ "https://github.com/hay86/ComfyUI_Dreamtalk" @@ -7282,6 +7474,7 @@ { "author": "hay86", "title": "ComfyUI OpenVoice", + "id": "openvoice-hay86", "reference": "https://github.com/hay86/ComfyUI_OpenVoice", "files": [ "https://github.com/hay86/ComfyUI_OpenVoice" @@ -7292,6 +7485,7 @@ { "author": "hay86", "title": "ComfyUI DDColor", + "id": "ddcolor-hay86", "reference": "https://github.com/hay86/ComfyUI_DDColor", "files": [ "https://github.com/hay86/ComfyUI_DDColor" @@ -7302,6 +7496,7 @@ { "author": "hay86", "title": "ComfyUI MiniCPM-V", + "id": "minicpm-v", "reference": "https://github.com/hay86/ComfyUI_MiniCPM-V", "files": [ "https://github.com/hay86/ComfyUI_MiniCPM-V" @@ -7656,6 +7851,7 @@ { "author": "jtydhr88", "title": "ComfyUI-Workflow-Encrypt", + "id": "workflow-encrypt", "reference": "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt", "files": [ "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt" @@ -7663,6 +7859,28 @@ "install_type": "git-clone", "description": "Encrypt your comfyui workflow, and share it with key" }, + { + "author": "jtydhr88", + "title": "ComfyUI-InstantMesh", + "id": "instant-mesh", + "reference": "https://github.com/jtydhr88/ComfyUI-InstantMesh", + "files": [ + "https://github.com/jtydhr88/ComfyUI-InstantMesh" + ], + "install_type": "git-clone", + "description": "ComfyUI InstantMesh is custom nodes that running TencentARC/InstantMesh into ComfyUI, this extension depends on ComfyUI-3D-Pack. Please refer to Readme carefully to install." + }, + { + "author": "jtydhr88", + "title": "ComfyUI LayerDivider", + "id": "layer-divider", + "reference": "https://github.com/jtydhr88/ComfyUI-LayerDivider", + "files": [ + "https://github.com/jtydhr88/ComfyUI-LayerDivider" + ], + "install_type": "git-clone", + "description": "ComfyUI LayerDivider is custom nodes that generating layered psd files inside ComfyUI[w/This plugin depends on Python 3.10, which means we cannot use the default Python that comes with ComfyUI, as it is Python 3.11. For this reason, it is recommended to use conda to manage and create the ComfyUI runtime environment.]" + }, { "author": "SeaArtLab", "title": "ComfyUI-Long-CLIP", @@ -7730,7 +7948,7 @@ { "author": "AIFSH", "title": "ComfyUI-MuseTalk_FSH", - "id": "musetalk", + "id": "musetalk-fsh", "reference": "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH", "files": [ "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH" @@ -7796,6 +8014,7 @@ { "author": "smthemex", "title": "ComfyUI_ChatGLM_API", + "id": "chatglm-api", "reference": "https://github.com/smthemex/ComfyUI_ChatGLM_API", "files": [ "https://github.com/smthemex/ComfyUI_ChatGLM_API" @@ -7805,14 +8024,14 @@ }, { "author": "smthemex", - "title": "ComfyUI_ParlerTTS", - "id": "parler-tts", - "reference": "https://github.com/smthemex/ComfyUI_ParlerTTS", + "title": "ComfyUI_HiDiffusion_Pro", + "id": "hidiffusion-pro", + "reference": "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro", "files": [ - "https://github.com/smthemex/ComfyUI_ParlerTTS" + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro" ], "install_type": "git-clone", - "description": "You can call the ParlerTTS tool in comfyUI, which currently only supports English." + "description": "A HiDiffusion node for ComfyUI." }, { "author": "smthemex", @@ -7823,21 +8042,12 @@ "https://github.com/smthemex/ComfyUI_Pic2Story" ], "install_type": "git-clone", - "description": "ComfyUI simple node based on BLIP method, with the function of 'Image to Txt'." - }, - { - "author": "smthemex", - "title": "ComfyUI_Pipeline_Tool", - "reference": "https://github.com/smthemex/ComfyUI_Pipeline_Tool", - "files": [ - "https://github.com/smthemex/ComfyUI_Pipeline_Tool" - ], - "install_type": "git-clone", - "description": "A tool for novice users in Chinese Mainland to call the huggingface hub and download the huggingface models." + "description": "ComfyUI simple node based on BLIP method, with the function of Image to Txt." }, { "author": "smthemex", "title": "ComfyUI_Llama3_8B", + "id": "llama3-8b", "reference": "https://github.com/smthemex/ComfyUI_Llama3_8B", "files": [ "https://github.com/smthemex/ComfyUI_Llama3_8B" @@ -7845,6 +8055,28 @@ "install_type": "git-clone", "description": "Llama3_8B for comfyUI, using pipeline workflow." }, + { + "author": "smthemex", + "title": "ComfyUI_ParlerTTS", + "id": "parlertts", + "reference": "https://github.com/smthemex/ComfyUI_ParlerTTS", + "files": [ + "https://github.com/smthemex/ComfyUI_ParlerTTS" + ], + "install_type": "git-clone", + "description": "You can call the ParlerTTS tool in comfyUI, which currently only supports English." + }, + { + "author": "smthemex", + "title": "ComfyUI_Pipeline_Tool", + "id": "pipeline-tool", + "reference": "https://github.com/smthemex/ComfyUI_Pipeline_Tool", + "files": [ + "https://github.com/smthemex/ComfyUI_Pipeline_Tool" + ], + "install_type": "git-clone", + "description": "A tool for novice users in Chinese Mainland to call the huggingface hub and download the huggingface models." + }, { "author": "choey", "title": "Comfy-Topaz", @@ -7984,6 +8216,7 @@ { "author": "turkyden", "title": "ComfyUI-Comic", + "id": "comic", "reference": "https://github.com/turkyden/ComfyUI-Comic", "files": [ "https://github.com/turkyden/ComfyUI-Comic" @@ -7994,6 +8227,7 @@ { "author": "royceschultz", "title": "ComfyUI-TranscriptionTools", + "id": "transcription-tools", "reference": "https://github.com/royceschultz/ComfyUI-TranscriptionTools", "files": [ "https://github.com/royceschultz/ComfyUI-TranscriptionTools" @@ -8004,6 +8238,7 @@ { "author": "kunieone", "title": "ComfyUI_alkaid", + "id": "alkadi", "reference": "https://github.com/kunieone/ComfyUI_alkaid", "files": [ "https://github.com/kunieone/ComfyUI_alkaid" @@ -8011,19 +8246,10 @@ "install_type": "git-clone", "description": "Nodes:A_Face3DSwapper, A_FaceCrop, A_FacePaste, A_OpenPosePreprocessor, A_EmptyLatentImageLongside, A_GetImageSize, AlkaidLoader, AdapterFaceLoader, AdapterStyleLoader, ..." }, - { - "author": "jtydhr88", - "title": "ComfyUI-InstantMesh", - "reference": "https://github.com/jtydhr88/ComfyUI-InstantMesh", - "files": [ - "https://github.com/jtydhr88/ComfyUI-InstantMesh" - ], - "install_type": "git-clone", - "description": "ComfyUI InstantMesh is custom nodes that running TencentARC/InstantMesh into ComfyUI, this extension depends on ComfyUI-3D-Pack. Please refer to Readme carefully to install." - }, { "author": "txt2any", "title": "ComfyUI-PromptOrganizer", + "id": "prompt-organizer", "reference": "https://github.com/txt2any/ComfyUI-PromptOrganizer", "files": [ "https://github.com/txt2any/ComfyUI-PromptOrganizer" @@ -8034,6 +8260,7 @@ { "author": "kealiu", "title": "ComfyUI Load and Save file to S3", + "id": "savefile-to-s3", "reference": "https://github.com/kealiu/ComfyUI-S3-Tools", "files": [ "https://github.com/kealiu/ComfyUI-S3-Tools" @@ -8044,6 +8271,7 @@ { "author": "kealiu", "title": "ComfyUI-ZeroShot-MTrans", + "id": "zeroshot-mtrans", "reference": "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans", "files": [ "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans" @@ -8054,6 +8282,7 @@ { "author": "kealiu", "title": "ComfyUI-Zero123-Porting", + "id": "zero123-porting", "reference": "https://github.com/kealiu/ComfyUI-Zero123-Porting", "files": [ "https://github.com/kealiu/ComfyUI-Zero123-Porting" @@ -8064,6 +8293,7 @@ { "author": "TashaSkyUp", "title": "ComfyUI_LiteLLM", + "id": "litellm", "reference": "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM", "files": [ "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM" @@ -8074,6 +8304,7 @@ { "author": "AonekoSS", "title": "ComfyUI-SimpleCounter", + "id": "simplecounter", "reference": "https://github.com/AonekoSS/ComfyUI-SimpleCounter", "files": [ "https://github.com/AonekoSS/ComfyUI-SimpleCounter" @@ -8084,6 +8315,7 @@ { "author": "heshengtao", "title": "comfyui_LLM_party", + "id": "llm-party", "reference": "https://github.com/heshengtao/comfyui_LLM_party", "files": [ "https://github.com/heshengtao/comfyui_LLM_party" @@ -8094,6 +8326,7 @@ { "author": "VAST-AI-Research", "title": "Tripo for ComfyUI", + "id": "tripo", "reference": "https://github.com/VAST-AI-Research/ComfyUI-Tripo", "files": [ "https://github.com/VAST-AI-Research/ComfyUI-Tripo" @@ -8104,6 +8337,7 @@ { "author": "JettHu", "title": "ComfyUI_TGate", + "id": "tgate", "reference": "https://github.com/JettHu/ComfyUI_TGate", "files": [ "https://github.com/JettHu/ComfyUI_TGate" @@ -8223,12 +8457,24 @@ { "author": "lquesada", "title": "ComfyUI-Prompt-Combinator", + "id": "prompt-combinator", "reference": "https://github.com/lquesada/ComfyUI-Prompt-Combinator", "files": [ "https://github.com/lquesada/ComfyUI-Prompt-Combinator" ], "install_type": "git-clone", - "description": "'🔢 Prompt Combinator' is a node that generates all possible combinations of prompts from several lists of strings." + "description": "'🔢 Prompt Combinator' is a node that generates all possible combinations of prompts from several lists of strings.\n'🔢 Prompt Combinator Merger' is a node that enables merging the output of two different '🔢 Prompt Combinator' nodes." + }, + { + "author": "lquesada", + "title": "ComfyUI-Inpaint-CropAndStitch", + "id": "crop-and-stitch", + "reference": "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch", + "files": [ + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch" + ], + "install_type": "git-clone", + "description": "'✂️ Inpaint Crop' is a node that crops an image before sampling. The context area can be specified via the mask, expand pixels and expand factor or via a separate (optional) mask.\n'✂️ Inpaint Stitch' is a node that stitches the inpainted image back into the original image without altering unmasked areas." }, { "author": "randjtw", @@ -8243,6 +8489,7 @@ { "author": "FredBill1", "title": "comfyui-fb-utils", + "id": "fb-utils", "reference": "https://github.com/FredBill1/comfyui-fb-utils", "files": [ "https://github.com/FredBill1/comfyui-fb-utils" @@ -8252,7 +8499,8 @@ }, { "author": "jeffy5", - "title": "comfyui-fb-utils", + "title": "Faceless Node for ComfyUI", + "id": "faceless", "reference": "https://github.com/jeffy5/comfyui-faceless-node", "files": [ "https://github.com/jeffy5/comfyui-faceless-node" @@ -8337,6 +8585,27 @@ "install_type": "git-clone", "description": "Transceiver is a python library that swiftly exchanges fundamental data structures, specifically numpy arrays, between processes, optimizing AI inference tasks that utilize ComfyUI." }, + { + "author": "nat-chan", + "title": "ComfyUI-graphToPrompt", + "id": "graph2prompt", + "reference": "https://github.com/nat-chan/ComfyUI-graphToPrompt", + "files": [ + "https://github.com/nat-chan/ComfyUI-graphToPrompt" + ], + "install_type": "git-clone", + "description": "workflow.json -> workflow_api.json" + }, + { + "author": "nat-chan", + "title": "comfyui-paint", + "reference": "https://github.com/nat-chan/comfyui-paint", + "files": [ + "https://github.com/nat-chan/comfyui-paint" + ], + "install_type": "git-clone", + "description": "comfyui-paint" + }, { "author": "web3nomad", "title": "ComfyUI Invisible Watermark", @@ -8590,15 +8859,146 @@ "description": "Nodes:Image Gradient,Mask Gradient" }, { - "author": "YouFunnyGuys", - "title": "ComfyUI_YFG_Comical", + "author": "YFG", + "title": "😸 YFG Comical Nodes", "id": "comical", "reference": "https://github.com/gonzalu/ComfyUI_YFG_Comical", "files": [ "https://github.com/gonzalu/ComfyUI_YFG_Comical" ], "install_type": "git-clone", - "description": "Nodes: image2histogram" + "description": "Image Historgram Generator - Outputs a set of images displaying the Histogram of the input image. Nodes: img2histograms, img2histogramsSelf" + }, + { + "author": "ruiqutech", + "title": "RuiquNodes for ComfyUI", + "id": "RuiquNodes", + "reference": "https://github.com/ruiqutech/ComfyUI-RuiquNodes", + "files": [ + "https://github.com/ruiqutech/ComfyUI-RuiquNodes" + ], + "install_type": "git-clone", + "description": "Nodes of EvaluateMultiple1, EvaluateMultiple3...\nSupport the execution of any fragment of Python code, generating multiple outputs from multiple inputs." + }, + { + "author": "teward", + "title": "ComfyUI-Helper-Nodes", + "id": "helper-nodes", + "reference": "https://github.com/teward/ComfyUI-Helper-Nodes", + "files": [ + "https://github.com/teward/ComfyUI-Helper-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes: HelperNodes_MultilineStringLiteral, HelperNodes_StringLiteral, HelperNodes_Steps, HelperNodes_CfgScale, HelperNodes_WidthHeight, HelperNodes_SchedulerSelector, HelperNodes_SamplerSelector, ..." + }, + { + "author": "fmatray", + "title": "ComfyUI_BattlemapGrid", + "id": "battlemap-grid", + "reference": "https://github.com/fmatray/ComfyUI_BattlemapGrid", + "files": [ + "https://github.com/fmatray/ComfyUI_BattlemapGrid" + ], + "install_type": "git-clone", + "description": "Nodes for ComfyUI in order to generate battelmaps" + }, + { + "author": "christian-byrne", + "title": "img2txt-comfyui-nodes", + "id": "img2txt-nodes", + "reference": "https://github.com/christian-byrne/img2txt-comfyui-nodes", + "files": [ + "https://github.com/christian-byrne/img2txt-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:img2txt BLIP SalesForce Large" + }, + { + "author": "ray", + "title": "Light Gradient for ComfyUI", + "id": "light-gradient", + "reference": "https://github.com/huagetai/ComfyUI_LightGradient", + "files": [ + "https://github.com/huagetai/ComfyUI_LightGradient" + ], + "install_type": "git-clone", + "description": "Nodes:Image Gradient,Mask Gradient" + }, + { + "author": "ray", + "title": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )", + "id": "gaffer", + "reference": "https://github.com/huagetai/ComfyUI-Gaffer", + "files": [ + "https://github.com/huagetai/ComfyUI-Gaffer" + ], + "install_type": "git-clone", + "description": "Nodes:Load ICLight Model,Apply ICLight,Simple Light Source,Calculate Normal Map" + }, + { + "author": "oztrkoguz", + "title": "ComfyUI StoryCreater", + "id": "storycreater", + "reference": "https://github.com/oztrkoguz/ComfyUI_StoryCreator", + "files": [ + "https://github.com/oztrkoguz/ComfyUI_StoryCreator" + ], + "install_type": "git-clone", + "description": "Nodes:story_sampler_simple, text2, kosmos2_sampler.\nI created a dataset for generating short stories [a/Short-Story](https://huggingface.co/datasets/oztrkoguz/Short-Story) and used it to fine-tune my own model using Phi-3." + }, + { + "author": "GraftingRayman", + "title": "GR Prompt Selector", + "id": "gr-prompt-selector", + "reference": "https://github.com/GraftingRayman/ComfyUI_GraftingRayman", + "files": [ + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman" + ], + "install_type": "git-clone", + "description": "Prompt and Masking nodes." + }, + { + "author": "royceschultz", + "title": "ComfyUI-Notifications", + "reference": "https://github.com/royceschultz/ComfyUI-Notifications", + "files": [ + "https://github.com/royceschultz/ComfyUI-Notifications" + ], + "install_type": "git-clone", + "description": "Send notifications when a workflow completes." + }, + { + "author": "katalist-ai", + "title": "comfyUI-nsfw-detection", + "id": "nsfw-detection", + "reference": "https://github.com/katalist-ai/comfyUI-nsfw-detection", + "files": [ + "https://github.com/katalist-ai/comfyUI-nsfw-detection" + ], + "install_type": "git-clone", + "description": "Nodes: NudenetDetector" + }, + { + "author": "kaanyalova", + "title": "Extended Image Formats for ComfyUI", + "id": "extended-image-format", + "reference": "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats", + "files": [ + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats" + ], + "install_type": "git-clone", + "description": "Adds a custom node for saving images in webp, jpeg, avif, jxl (no metadata) and supports loading workflows from saved images" + }, + { + "author": "badayvedat", + "title": "ComfyUI-fal-Connector", + "id": "fal", + "reference": "https://github.com/badayvedat/ComfyUI-fal-Connector", + "files": [ + "https://github.com/badayvedat/ComfyUI-fal-Connector" + ], + "install_type": "git-clone", + "description": "The ComfyUI-fal-Connector is a tool designed to provide an integration between ComfyUI and fal. This extension allows users to execute their ComfyUI workflows directly on [a/fal.ai](https://fal.ai/). This enables users to leverage the computational power and resources provided by fal.ai for running their ComfyUI workflows." }, diff --git a/extension-node-map.json b/extension-node-map.json index b4a07c6c..57f6cf30 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -416,6 +416,7 @@ "IntToString-badger", "IntToStringAdvanced-badger", "LoadImageAdvanced-badger", + "LoadImagesFromDirListAdvanced-badger", "SegmentToMaskByPoint-badger", "SimpleBoolean-badger", "StringToFizz-badger", @@ -682,6 +683,7 @@ "ComfyUIDeployExternalLora", "ComfyUIDeployExternalNumber", "ComfyUIDeployExternalNumberInt", + "ComfyUIDeployExternalNumberSlider", "ComfyUIDeployExternalText", "ComfyUIDeployExternalVid", "ComfyUIDeployExternalVideo" @@ -1123,8 +1125,13 @@ [ "Automatic CFG", "Automatic CFG - Advanced", + "Automatic CFG - Attention modifiers", + "Automatic CFG - Attention modifiers tester", + "Automatic CFG - Custom attentions", + "Automatic CFG - Excellent attention", "Automatic CFG - Negative", "Automatic CFG - Post rescale only", + "Automatic CFG - Preset Loader", "Automatic CFG - Unpatch function", "Automatic CFG - Warp Drive", "SAG delayed activation" @@ -1412,6 +1419,7 @@ "TilePreprocessor", "UniFormer-SemSegPreprocessor", "Unimatch_OptFlowPreprocessor", + "UpperBodyTrackingFromPoseKps", "Zoe-DepthMapPreprocessor", "Zoe_DepthAnythingPreprocessor" ], @@ -1646,12 +1654,24 @@ "title_aux": "ReActor Node for ComfyUI" } ], + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": [ + [ + "GR Image Resize", + "GR Mask Create", + "GR Mask Resize", + "GR Multi Mask Create", + "GR Prompt Selector" + ], + { + "title_aux": "GR Prompt Selector" + } + ], "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": [ [ "StableCascadeLatentRatio" ], { - "title_aux": "ComfyUI-ScenarioPrompt" + "title_aux": "ComfyUI_StableCascadeLatentRatio" } ], "https://github.com/HAL41/ComfyUI-aichemy-nodes": [ @@ -2117,6 +2137,8 @@ "ACN_SparseCtrlMergedLoaderAdvanced", "ACN_SparseCtrlRGBPreprocessor", "ACN_SparseCtrlSpreadMethodNode", + "ACN_TimestepKeyframeFromStrengthList", + "ACN_TimestepKeyframeInterpolation", "ControlNetLoaderAdvanced", "CustomControlNetWeights", "CustomT2IAdapterWeights", @@ -2644,6 +2666,8 @@ "DoubleClipTextEncode", "EmbeddingLoader", "FilmCharDir", + "FuseImages", + "FuseImages2", "HashText", "HueSatLum", "HueShift", @@ -2654,6 +2678,7 @@ "IntEvaluate", "IntFloatDict", "IntStringDict", + "JsonSearch", "LandscapeBackgrounds", "LandscapeDir", "MakeupStylesDir", @@ -2664,11 +2689,18 @@ "PhotomontageB", "PhotomontageC", "PostSamplerCrop", + "PresetLoad", + "PresetRemove", + "PresetSave", + "RandomString", "SDXLEmptyLatent", + "SavePrompt", "SaveWithMetaData", "SaveWithMetaData2", + "SearchReplace", "SimplePrompts", "SpecificStylesDir", + "StringJoin", "TimeStamp", "TricolorComposition", "WorkflowSettings", @@ -3483,6 +3515,14 @@ "title_aux": "ComfyUI-SVDResizer" } ], + "https://github.com/ShmuelRonen/ComfyUI_wav2lip": [ + [ + "Wav2Lip" + ], + { + "title_aux": "Wav2Lip Node for ComfyUI" + } + ], "https://github.com/Shraknard/ComfyUI-Remover": [ [ "Remover" @@ -3629,7 +3669,8 @@ "Image Batch Manager (SuperBeasts.AI)", "Make Resized Mask Batch (SuperBeasts.AI)", "Mask Batch Manager (SuperBeasts.AI)", - "Pixel Deflicker (SuperBeasts.AI)" + "Pixel Deflicker (SuperBeasts.AI)", + "String List Manager (SuperBeasts.AI)" ], { "title_aux": "ComfyUI-SuperBeasts" @@ -3948,6 +3989,7 @@ "tri3d-atr-parse", "tri3d-atr-parse-batch", "tri3d-clipdrop-bgremove-api", + "tri3d-clipdrop-bgreplace-api", "tri3d-composite-image-splitter", "tri3d-dwpose", "tri3d-extract-hand", @@ -4493,6 +4535,7 @@ "Text Dictionary To Text", "Text Dictionary Update", "Text File History Loader", + "Text Find", "Text Find and Replace", "Text Find and Replace Input", "Text Find and Replace by Dictionary", @@ -4900,6 +4943,7 @@ ], "https://github.com/abyz22/image_control": [ [ + "abyz22_AddPrompt", "abyz22_Convertpipe", "abyz22_Editpipe", "abyz22_FirstNonNull", @@ -4909,6 +4953,7 @@ "abyz22_ImpactWildcardEncode_GetPrompt", "abyz22_Ksampler", "abyz22_Padding Image", + "abyz22_RandomMask", "abyz22_RemoveControlnet", "abyz22_SaveImage", "abyz22_SetQueue", @@ -4917,6 +4962,7 @@ "abyz22_blend_onecolor", "abyz22_blendimages", "abyz22_bypass", + "abyz22_censoring", "abyz22_drawmask", "abyz22_lamaInpaint", "abyz22_lamaPreprocessor", @@ -5050,12 +5096,13 @@ "title_aux": "ComfyUI Image Saver" } ], - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": [ + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": [ [ - "LLaVaDescriber" + "LLaVaDescriber", + "OllamaDescriber" ], { - "title_aux": "ComfyUI-LLaVA-Describer" + "title_aux": "ComfyUI-Ollama-Describer" } ], "https://github.com/alpertunga-bile/prompt-generator-comfyui": [ @@ -5348,6 +5395,18 @@ "title_aux": "ComfyUI-ClipScore-Nodes" } ], + "https://github.com/badayvedat/ComfyUI-fal-Connector": [ + [ + "BooleanInput_fal", + "ComboInput_fal", + "FloatInput_fal", + "IntegerInput_fal", + "StringInput_fal" + ], + { + "title_aux": "ComfyUI-fal-Connector" + } + ], "https://github.com/badjeff/comfyui_lora_tag_loader": [ [ "LoraTagLoader" @@ -5883,6 +5942,7 @@ "ImageDirIterator", "Modelscopet2v", "Modelscopev2v", + "TextFileLineIterator", "VidDirIterator" ], { @@ -6347,6 +6407,7 @@ ], "https://github.com/chflame163/ComfyUI_LayerStyle": [ [ + "LayerColor: AutoAdjust", "LayerColor: AutoBrightness", "LayerColor: Brightness & Contrast", "LayerColor: Color of Shadow & Highlight", @@ -6453,7 +6514,9 @@ "LayerUtility: PromptEmbellish", "LayerUtility: PromptTagger", "LayerUtility: QWenImage2Prompt", + "LayerUtility: RGB Value", "LayerUtility: RestoreCropBox", + "LayerUtility: Seed", "LayerUtility: SimpleTextImage", "LayerUtility: TextBox", "LayerUtility: TextImage", @@ -6461,10 +6524,10 @@ "LayerUtility: XY to Percent" ], { - "author": "Chris Freilich", - "description": "This extension provides a blend modes node with 30 blend modes.", - "nickname": "Virtuoso Pack - Blend Nodes", - "title": "Virtuoso Pack - Blend Modes", + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", "title_aux": "ComfyUI Layer Style" } ], @@ -6967,6 +7030,7 @@ ], "https://github.com/cubiq/ComfyUI_FaceAnalysis": [ [ + "FaceAlign", "FaceAnalysisModels", "FaceBoundingBox", "FaceEmbedDistance" @@ -7036,6 +7100,7 @@ ], "https://github.com/cubiq/ComfyUI_essentials": [ [ + "ApplyCLIPSeg+", "BatchCount+", "CLIPTextEncodeSDXL+", "ConditioningCombineMultiple+", @@ -7061,6 +7126,7 @@ "ImageSeamCarving+", "KSamplerVariationsStochastic+", "KSamplerVariationsWithNoise+", + "LoadCLIPSegModels+", "MaskBatch+", "MaskBlur+", "MaskBoundingBox+", @@ -7089,6 +7155,7 @@ "https://github.com/cubiq/PuLID_ComfyUI": [ [ "ApplyPulid", + "ApplyPulidAdvanced", "PulidEvaClipLoader", "PulidInsightFaceLoader", "PulidModelLoader" @@ -7728,13 +7795,17 @@ "FL_CodeNode", "FL_DirectoryCrawl", "FL_Glitch", + "FL_HalftonePattern", "FL_HexagonalPattern", "FL_ImageCaptionSaver", "FL_ImageDimensionDisplay", "FL_ImageDurationSync", "FL_ImagePixelator", "FL_ImageRandomizer", + "FL_NFTGenerator", "FL_PixelSort", + "FL_PromptSelector", + "FL_RandomNumber", "FL_Ripple" ], { @@ -7864,6 +7935,16 @@ "title_aux": "As_ComfyUI_CustomNodes" } ], + "https://github.com/fmatray/ComfyUI_BattlemapGrid": [ + [ + "Battlemap Grid", + "Map Generator", + "Map Generator(Outdoors)" + ], + { + "title_aux": "ComfyUI_BattlemapGrid" + } + ], "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": [ [ "HyperSDXL1StepUnetScheduler" @@ -7943,6 +8024,7 @@ ], "https://github.com/fsdymy1024/ComfyUI_fsdymy": [ [ + "Preview Image Without Metadata", "Save Image Without Metadata" ], { @@ -8227,17 +8309,15 @@ ], "https://github.com/gonzalu/ComfyUI_YFG_Comical": [ [ - "hello_world", - "image_histogram_node", "image_histograms_node", - "meme_generator_node" + "image_histograms_node_compact" ], { "author": "YFG", - "description": "This extension just outputs Hello World! as a string.", - "nickname": "YFG Hello World", - "title": "YFG Hello World", - "title_aux": "ComfyUI_YFG_Comical" + "description": "This extension calculates the histogram of an image and outputs the results as graph images for individual channels as well as RGB and Luminosity.", + "nickname": "\ud83d\udc31 YFG Histograms", + "title": "YFG Histograms", + "title_aux": "\ud83d\ude38 YFG Comical Nodes" } ], "https://github.com/guill/abracadabra-comfyui": [ @@ -8270,6 +8350,7 @@ ], "https://github.com/hay86/ComfyUI_AceNodes": [ [ + "ACE_AnyInputSwitchBool", "ACE_AudioLoad", "ACE_AudioPlay", "ACE_AudioSave", @@ -8328,7 +8409,8 @@ "https://github.com/hay86/ComfyUI_OpenVoice": [ [ "D_OpenVoice_STS", - "D_OpenVoice_TTS" + "D_OpenVoice_TTS", + "D_OpenVoice_TTS_V2" ], { "title_aux": "ComfyUI OpenVoice" @@ -8336,6 +8418,7 @@ ], "https://github.com/heshengtao/comfyui_LLM_party": [ [ + "About_us", "CLIPTextEncode_party", "KSampler_party", "LLM", @@ -8431,6 +8514,18 @@ "title_aux": "ComfyUI-ModelDownloader" } ], + "https://github.com/huagetai/ComfyUI-Gaffer": [ + [ + "ApplyICLight", + "CalculateNormalMap", + "GrayScaler", + "ICLightModelLoader", + "LightSource" + ], + { + "title_aux": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )" + } + ], "https://github.com/huagetai/ComfyUI_LightGradient": [ [ "ImageGradient", @@ -8440,6 +8535,16 @@ "title_aux": "Light Gradient for ComfyUI" } ], + "https://github.com/huchenlei/ComfyUI-IC-Light-Native": [ + [ + "ICLightApplyMaskGrey", + "ICLightAppply", + "VAEEncodeArgMax" + ], + { + "title_aux": "ComfyUI-IC-Light-Native" + } + ], "https://github.com/huchenlei/ComfyUI-layerdiffuse": [ [ "LayeredDiffusionApply", @@ -8790,13 +8895,16 @@ "FacelessLoadImageUrl", "FacelessLoadVideo", "FacelessLoadVideoUrl", + "FacelessMergeVideos", + "FacelessRemoveBackground", "FacelessSaveVideo", "FacelessUploadVideo", "FacelessVideoFaceRestore", - "FacelessVideoFaceSwap" + "FacelessVideoFaceSwap", + "FacelessVideoRemoveBackground" ], { - "title_aux": "comfyui-fb-utils" + "title_aux": "Faceless Node for ComfyUI" } ], "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [ @@ -8884,6 +8992,17 @@ "title_aux": "ComfyUI-InstantMesh" } ], + "https://github.com/jtydhr88/ComfyUI-LayerDivider": [ + [ + "LayerDivider - Color Base", + "LayerDivider - Divide Layer", + "LayerDivider - Load SAM Mask Generator", + "LayerDivider - Segment Mask" + ], + { + "title_aux": "ComfyUI LayerDivider" + } + ], "https://github.com/ka-puna/comfyui-yanc": [ [ "YANC.ConcatStrings", @@ -8897,6 +9016,14 @@ "title_aux": "comfyui-yanc" } ], + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": [ + [ + "ExtendedSaveImage" + ], + { + "title_aux": "Extended Image Formats for ComfyUI" + } + ], "https://github.com/kadirnar/ComfyUI-Transformers": [ [ "DepthEstimationPipeline", @@ -9022,6 +9149,14 @@ "title_aux": "ComfyUI-text-file-util" } ], + "https://github.com/katalist-ai/comfyUI-nsfw-detection": [ + [ + "NudenetDetector" + ], + { + "title_aux": "comfyUI-nsfw-detection" + } + ], "https://github.com/kealiu/ComfyUI-S3-Tools": [ [ "Load Image From S3", @@ -9176,10 +9311,12 @@ ], "https://github.com/kijai/ComfyUI-IC-Light": [ [ + "BackgroundScaler", "CalculateNormalsFromImages", "ICLightConditioning", "LightSource", - "LoadAndApplyICLightUnet" + "LoadAndApplyICLightUnet", + "LoadHDRImage" ], { "title_aux": "ComfyUI-IC-Light" @@ -9213,6 +9350,7 @@ "CreateGradientMask", "CreateInstanceDiffusionTracking", "CreateMagicMask", + "CreateShapeImageOnPath", "CreateShapeMask", "CreateShapeMaskOnPath", "CreateTextMask", @@ -9220,6 +9358,7 @@ "CreateVoronoiMask", "CrossFadeImages", "CustomSigmas", + "DownloadAndLoadCLIPSeg", "DrawInstanceDiffusionTracking", "DummyLatentOut", "EmptyLatentImagePresets", @@ -9238,6 +9377,7 @@ "GradientToFloat", "GrowMaskWithBlur", "INTConstant", + "ImageAddMulti", "ImageAndMaskPreview", "ImageBatchMulti", "ImageBatchRepeatInterleaving", @@ -9248,7 +9388,9 @@ "ImageGridComposite3x3", "ImageNormalize_Neg1_To_1", "ImagePadForOutpaintMasked", + "ImagePadForOutpaintTargetSize", "ImagePass", + "ImageResizeKJ", "ImageTransformByNormalizedAmplitude", "ImageUpscaleWithModelBatched", "InjectNoiseToLatent", @@ -9258,7 +9400,7 @@ "Intrinsic_lora_sampling", "JoinStringMulti", "JoinStrings", - "LoadICLightUnet", + "LoadAndResizeImage", "LoadResAdapterNormalization", "MaskBatchMulti", "MaskOrImageToWeight", @@ -9542,6 +9684,19 @@ "title_aux": "cd-tuner_negpip-ComfyUI" } ], + "https://github.com/laksjdjf/cgem156-ComfyUI": [ + [ + "GradualLatentSampler", + "LCMSamplerRCFG", + "LoadAestheticShadow", + "PredictAesthetic", + "TCDSampler", + "TextScheduler" + ], + { + "title_aux": "cgem156-ComfyUI\ud83c\udf4c" + } + ], "https://github.com/laksjdjf/pfg-ComfyUI": [ [ "PFG" @@ -9592,6 +9747,14 @@ "title_aux": "ComfyUI-Debug" } ], + "https://github.com/liusida/ComfyUI-Login": [ + [ + "LoadImageIncognito" + ], + { + "title_aux": "ComfyUI-Login" + } + ], "https://github.com/ljleb/comfy-mecha": [ [ "Blocks Mecha Hyper", @@ -9756,6 +9919,15 @@ "title_aux": "Wildcards" } ], + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": [ + [ + "InpaintCrop", + "InpaintStitch" + ], + { + "title_aux": "ComfyUI-Inpaint-CropAndStitch" + } + ], "https://github.com/lquesada/ComfyUI-Prompt-Combinator": [ [ "PromptCombinator", @@ -10027,6 +10199,7 @@ "PromptBuilder //Inspire", "PromptExtractor //Inspire", "RandomGeneratorForList //Inspire", + "RandomNoise //Inspire", "RegionalConditioningColorMask //Inspire", "RegionalConditioningSimple //Inspire", "RegionalIPAdapterColorMask //Inspire", @@ -10268,16 +10441,21 @@ "PettyPaintComponent", "PettyPaintConditioningSetMaskAndCombine", "PettyPaintConvert", + "PettyPaintCountFiles", + "PettyPaintEnsureDirectory", "PettyPaintExec", "PettyPaintImageCompositeMasked", + "PettyPaintImagePlacement", "PettyPaintImageSave", "PettyPaintImageStore", "PettyPaintImageToMask", "PettyPaintJsonMap", "PettyPaintJsonRead", "PettyPaintJsonReadArray", + "PettyPaintLoadImage", "PettyPaintLoadImages", "PettyPaintMap", + "PettyPaintProcessor", "PettyPaintRemoveAddText", "PettyPaintSDTurboScheduler", "PettyPaintText", @@ -10480,11 +10658,14 @@ [ "DanbooruTagsTransformerBanTagsFromRegex", "DanbooruTagsTransformerComposePrompt", + "DanbooruTagsTransformerComposePromptV2", "DanbooruTagsTransformerDecode", "DanbooruTagsTransformerDecodeBySplitedParts", "DanbooruTagsTransformerGenerate", "DanbooruTagsTransformerGenerateAdvanced", "DanbooruTagsTransformerGenerationConfig", + "DanbooruTagsTransformerGetAspectRatio", + "DanbooruTagsTransformerLoader", "DanbooruTagsTransformerRearrangedByAnimagine", "DanbooruTagsTransformerRemoveTagToken" ], @@ -10608,8 +10789,10 @@ "BlendInpaint", "BrushNet", "BrushNetLoader", + "CutForInpaint", "PowerPaint", - "PowerPaintCLIPLoader" + "PowerPaintCLIPLoader", + "RAUNet" ], { "author": "nullquant", @@ -10729,6 +10912,18 @@ "title_aux": "ComfyUI-TrollSuite" } ], + "https://github.com/oztrkoguz/ComfyUI_StoryCreator": [ + [ + "Kosmos2SamplerSimple2", + "KosmosLoader2", + "StoryLoader", + "StorySamplerSimple", + "Write2" + ], + { + "title_aux": "ComfyUI StoryCreater" + } + ], "https://github.com/palant/extended-saveimage-comfyui": [ [ "SaveImageExtended" @@ -10933,7 +11128,7 @@ ], { "author": "receyuki", - "description": "ComfyUI node version of the SD Prompt Reader", + "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader", "nickname": "SD Prompt Reader", "title": "SD Prompt Reader", "title_aux": "SD Prompt Reader" @@ -10943,12 +11138,18 @@ [ "AvoidErasePrediction", "CFGPrediction", + "CharacteristicGuidancePrediction", "CombinePredictions", "ConditionedPrediction", + "EarlyMiddleLatePrediction", + "InterpolatePredictions", + "LogSigmas", "PerpNegPrediction", "SamplerCustomPrediction", "ScalePrediction", "ScaledGuidancePrediction", + "SelectSigmas", + "SplitAtSigma", "SwitchPredictions" ], { @@ -11039,6 +11240,15 @@ "title_aux": "ComfyUI-Tara-LLM-Integration" } ], + "https://github.com/royceschultz/ComfyUI-Notifications": [ + [ + "Notif-PlaySound", + "Notif-SystemNotification" + ], + { + "title_aux": "ComfyUI-Notifications" + } + ], "https://github.com/royceschultz/ComfyUI-TranscriptionTools": [ [ "TT-AudioSink", @@ -11063,6 +11273,37 @@ "title_aux": "RUI-Nodes" } ], + "https://github.com/ruiqutech/ComfyUI-RuiquNodes": [ + [ + "EvaluateListMultiple1", + "EvaluateListMultiple3", + "EvaluateListMultiple6", + "EvaluateListMultiple9", + "EvaluateMultiple1", + "EvaluateMultiple3", + "EvaluateMultiple6", + "EvaluateMultiple9", + "ImageDilate", + "ImageErode", + "ListPath", + "MaskDilate", + "MaskErode", + "PreviewMask", + "RangeSplit", + "SaveMask", + "StringAsAny", + "StringConcat1", + "StringConcat3", + "StringConcat6", + "StringConcat9", + "StringPathStem", + "TermsToList", + "VAEDecodeSave" + ], + { + "title_aux": "RuiquNodes for ComfyUI" + } + ], "https://github.com/runtime44/comfyui_r44_nodes": [ [ "Runtime44ColorMatch", @@ -11091,7 +11332,8 @@ "https://github.com/saftle/suplex_comfy_nodes": [ [ "ControlNet Selector", - "ControlNetOptionalLoader" + "ControlNetOptionalLoader", + "DiffusersSelector" ], { "title_aux": "Suplex Misc ComfyUI Nodes" @@ -11167,6 +11409,7 @@ "ChatGPTOpenAI", "CkptNames_", "Color", + "ComparingTwoFrames_", "CompositeImages_", "DynamicDelayProcessor", "EmbeddingPrompt", @@ -11469,6 +11712,15 @@ "title_aux": "ComfyUI_ChatGLM_API" } ], + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": [ + [ + "Hidiffusion_Controlnet_Image", + "Hidiffusion_Text2Image" + ], + { + "title_aux": "ComfyUI_HiDiffusion_Pro" + } + ], "https://github.com/smthemex/ComfyUI_Llama3_8B": [ [ "ChatQA_1p5_8B", @@ -11731,7 +11983,8 @@ "https://github.com/sugarkwork/comfyui_tag_fillter": [ [ "TagFilter", - "TagRemover" + "TagRemover", + "TagReplace" ], { "title_aux": "comfyui_tag_filter" @@ -11850,6 +12103,26 @@ "title_aux": "ComfyUI Browser" } ], + "https://github.com/teward/ComfyUI-Helper-Nodes": [ + [ + "HelperNodes_CfgScale", + "HelperNodes_CheckpointSelector", + "HelperNodes_MultilineStringLiteral", + "HelperNodes_Prompt", + "HelperNodes_SDXLCommonResolutions", + "HelperNodes_SamplerSelector", + "HelperNodes_SaveImage", + "HelperNodes_SchedulerSelector", + "HelperNodes_SeedSelector", + "HelperNodes_Steps", + "HelperNodes_StringLiteral", + "HelperNodes_VAESelector", + "HelperNodes_WidthHeight" + ], + { + "title_aux": "ComfyUI-Helper-Nodes" + } + ], "https://github.com/theUpsider/ComfyUI-Logic": [ [ "Bool", @@ -12800,8 +13073,10 @@ "ImageConcanateOfUtils", "IntAndIntAddOffsetLiteral", "IntMultipleAddLiteral", + "LoadImageMaskWithSwitch", "LoadImageWithSwitch", - "ModifyTextGender" + "ModifyTextGender", + "SplitMask" ], { "title_aux": "zhangp365/Some Utils for ComfyUI" @@ -12853,6 +13128,8 @@ "https://github.com/zombieyang/sd-ppp": [ [ "Get Image From Photoshop Layer", + "Image Times Opacity", + "Mask Times Opacity", "Send Images To Photoshop" ], { diff --git a/git_helper.py b/git_helper.py index 37f7d265..38dd24f7 100644 --- a/git_helper.py +++ b/git_helper.py @@ -336,7 +336,7 @@ def restore_pip_snapshot(pips, options): non_local_url = [] for k, v in pips.items(): if v == "": - non_url.append(v) + non_url.append(k) else: if v.startswith('file:'): local_url.append(v) diff --git a/github-stats.json b/github-stats.json index bcf85350..e5d1c661 100644 --- a/github-stats.json +++ b/github-stats.json @@ -1,104 +1,108 @@ { - "https://github.com/ltdrdata/ComfyUI-Manager": { - "stars": 3742, - "last_update": "2024-05-10 23:39:52" - }, - "https://github.com/ltdrdata/ComfyUI-Impact-Pack": { - "stars": 1236, - "last_update": "2024-05-08 17:02:07" - }, - "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": { - "stars": 240, - "last_update": "2024-05-09 15:26:59" + "https://github.com/Fannovel16/ComfyUI-MotionDiff": { + "stars": 136, + "last_update": "2024-05-05 08:46:25" }, "https://github.com/comfyanonymous/ComfyUI_experiments": { - "stars": 125, + "stars": 126, "last_update": "2023-09-13 06:28:20" }, - "https://github.com/Stability-AI/stability-ComfyUI-nodes": { - "stars": 170, - "last_update": "2023-08-18 19:03:06" + "https://github.com/Fannovel16/ComfyUI-Video-Matting": { + "stars": 132, + "last_update": "2024-04-29 09:19:33" + }, + "https://github.com/Stability-AI/ComfyUI-SAI_API": { + "stars": 33, + "last_update": "2024-04-24 23:40:33" + }, + "https://github.com/ltdrdata/ComfyUI-Manager": { + "stars": 3837, + "last_update": "2024-05-16 06:57:36" + }, + "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": { + "stars": 247, + "last_update": "2024-05-14 16:26:59" }, "https://github.com/Fannovel16/comfyui_controlnet_aux": { - "stars": 1326, - "last_update": "2024-05-09 15:03:21" - }, - "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": { - "stars": 293, - "last_update": "2024-05-07 03:30:35" + "stars": 1364, + "last_update": "2024-05-15 16:20:05" }, "https://github.com/Fannovel16/ComfyUI-Loopchain": { "stars": 25, "last_update": "2023-12-15 14:25:35" }, - "https://github.com/Fannovel16/ComfyUI-MotionDiff": { - "stars": 133, - "last_update": "2024-05-05 08:46:25" + "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": { + "stars": 303, + "last_update": "2024-05-07 03:30:35" }, - "https://github.com/Fannovel16/ComfyUI-Video-Matting": { - "stars": 122, - "last_update": "2024-04-29 09:19:33" + "https://github.com/ltdrdata/ComfyUI-Impact-Pack": { + "stars": 1249, + "last_update": "2024-05-15 09:39:13" }, - "https://github.com/BlenderNeko/ComfyUI_Cutoff": { - "stars": 310, - "last_update": "2024-04-08 22:34:21" + "https://github.com/Stability-AI/stability-ComfyUI-nodes": { + "stars": 172, + "last_update": "2023-08-18 19:03:06" + }, + "https://github.com/Fannovel16/ComfyUI-MagickWand": { + "stars": 60, + "last_update": "2024-04-28 10:13:50" }, "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": { - "stars": 243, + "stars": 246, "last_update": "2024-04-08 22:18:59" }, - "https://github.com/BlenderNeko/ComfyUI_Noise": { - "stars": 192, - "last_update": "2024-04-19 13:09:18" - }, "https://github.com/BlenderNeko/ComfyUI_TiledKSampler": { - "stars": 260, + "stars": 262, "last_update": "2024-04-08 22:15:55" }, - "https://github.com/BlenderNeko/ComfyUI_SeeCoder": { - "stars": 35, - "last_update": "2023-09-11 10:09:22" - }, - "https://github.com/jags111/efficiency-nodes-comfyui": { - "stars": 591, - "last_update": "2024-04-11 15:08:50" + "https://github.com/BlenderNeko/ComfyUI_Cutoff": { + "stars": 314, + "last_update": "2024-04-08 22:34:21" }, "https://github.com/jags111/ComfyUI_Jags_VectorMagic": { "stars": 42, "last_update": "2024-02-03 04:00:30" }, "https://github.com/jags111/ComfyUI_Jags_Audiotools": { - "stars": 23, - "last_update": "2023-12-27 16:47:20" + "stars": 25, + "last_update": "2024-05-15 04:01:49" }, - "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": { - "stars": 253, - "last_update": "2024-04-29 10:46:24" + "https://github.com/BlenderNeko/ComfyUI_Noise": { + "stars": 196, + "last_update": "2024-04-19 13:09:18" }, "https://github.com/paulo-coronado/comfy_clip_blip_node": { "stars": 25, "last_update": "2023-09-27 00:33:21" }, - "https://github.com/WASasquatch/was-node-suite-comfyui": { - "stars": 830, - "last_update": "2024-05-04 16:31:49" + "https://github.com/jags111/efficiency-nodes-comfyui": { + "stars": 600, + "last_update": "2024-04-11 15:08:50" }, - "https://github.com/WASasquatch/ComfyUI_Preset_Merger": { - "stars": 20, - "last_update": "2023-08-23 04:57:58" + "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": { + "stars": 259, + "last_update": "2024-04-29 10:46:24" + }, + "https://github.com/BlenderNeko/ComfyUI_SeeCoder": { + "stars": 35, + "last_update": "2023-09-11 10:09:22" + }, + "https://github.com/WASasquatch/was-node-suite-comfyui": { + "stars": 843, + "last_update": "2024-05-15 19:38:59" }, "https://github.com/WASasquatch/PPF_Noise_ComfyUI": { "stars": 19, "last_update": "2023-10-01 03:36:57" }, - "https://github.com/WASasquatch/PowerNoiseSuite": { - "stars": 48, - "last_update": "2023-09-19 17:04:01" - }, "https://github.com/WASasquatch/FreeU_Advanced": { "stars": 93, "last_update": "2024-03-05 15:36:38" }, + "https://github.com/WASasquatch/ComfyUI_Preset_Merger": { + "stars": 20, + "last_update": "2023-08-23 04:57:58" + }, "https://github.com/WASasquatch/ASTERR": { "stars": 9, "last_update": "2023-09-30 01:11:46" @@ -107,28 +111,40 @@ "stars": 23, "last_update": "2023-11-20 17:14:58" }, - "https://github.com/get-salt-AI/SaltAI": { - "stars": 42, - "last_update": "2024-05-03 18:02:30" + "https://github.com/lilly1987/ComfyUI_node_Lilly": { + "stars": 49, + "last_update": "2023-11-24 20:13:20" + }, + "https://github.com/WASasquatch/PowerNoiseSuite": { + "stars": 49, + "last_update": "2023-09-19 17:04:01" }, "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": { "stars": 102, "last_update": "2024-02-13 05:05:31" }, - "https://github.com/lilly1987/ComfyUI_node_Lilly": { - "stars": 49, - "last_update": "2023-11-24 20:13:20" + "https://github.com/get-salt-AI/SaltAI_LlamaIndex": { + "stars": 6, + "last_update": "2024-05-09 16:16:26" + }, + "https://github.com/get-salt-AI/SaltAI": { + "stars": 43, + "last_update": "2024-05-03 18:02:30" }, "https://github.com/sylym/comfy_vid2vid": { "stars": 57, "last_update": "2023-08-29 08:07:35" }, "https://github.com/EllangoK/ComfyUI-post-processing-nodes": { - "stars": 139, + "stars": 141, "last_update": "2024-02-07 01:59:01" }, + "https://github.com/BadCafeCode/masquerade-nodes-comfyui": { + "stars": 275, + "last_update": "2024-02-26 04:23:37" + }, "https://github.com/LEv145/images-grid-comfy-plugin": { - "stars": 114, + "stars": 116, "last_update": "2024-02-23 08:22:13" }, "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": { @@ -139,192 +155,200 @@ "stars": 3, "last_update": "2024-01-01 20:01:25" }, - "https://github.com/BadCafeCode/masquerade-nodes-comfyui": { - "stars": 272, - "last_update": "2024-02-26 04:23:37" - }, - "https://github.com/guoyk93/yk-node-suite-comfyui": { - "stars": 10, - "last_update": "2023-03-28 16:19:46" - }, "https://github.com/Jcd1230/rembg-comfyui-node": { - "stars": 107, + "stars": 110, "last_update": "2023-04-03 00:12:22" }, - "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": { - "stars": 14, - "last_update": "2023-05-23 19:57:46" - }, - "https://github.com/trojblue/trNodes": { - "stars": 8, - "last_update": "2024-03-17 00:16:43" - }, "https://github.com/szhublox/ambw_comfyui": { "stars": 11, "last_update": "2024-01-09 14:14:18" }, + "https://github.com/trojblue/trNodes": { + "stars": 8, + "last_update": "2024-03-17 00:16:43" + }, + "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": { + "stars": 14, + "last_update": "2023-05-23 19:57:46" + }, "https://github.com/city96/ComfyUI_NetDist": { - "stars": 188, + "stars": 193, "last_update": "2024-02-15 17:34:51" }, "https://github.com/city96/SD-Latent-Interposer": { - "stars": 149, + "stars": 151, "last_update": "2024-03-20 21:55:09" }, + "https://github.com/city96/SD-Latent-Upscaler": { + "stars": 101, + "last_update": "2023-11-27 00:26:14" + }, "https://github.com/city96/SD-Advanced-Noise": { "stars": 16, "last_update": "2023-08-14 15:17:54" }, - "https://github.com/city96/SD-Latent-Upscaler": { - "stars": 99, - "last_update": "2023-11-27 00:26:14" + "https://github.com/guoyk93/yk-node-suite-comfyui": { + "stars": 10, + "last_update": "2023-03-28 16:19:46" }, "https://github.com/city96/ComfyUI_DiT": { "stars": 2, "last_update": "2023-09-06 17:15:54" }, - "https://github.com/city96/ComfyUI_ColorMod": { - "stars": 27, - "last_update": "2024-04-09 03:35:11" - }, "https://github.com/city96/ComfyUI_ExtraModels": { - "stars": 137, - "last_update": "2024-05-08 11:21:07" + "stars": 169, + "last_update": "2024-05-16 13:46:32" + }, + "https://github.com/city96/ComfyUI_ColorMod": { + "stars": 29, + "last_update": "2024-05-16 14:06:09" }, "https://github.com/Kaharos94/ComfyUI-Saveaswebp": { "stars": 28, "last_update": "2023-11-11 19:53:48" }, "https://github.com/SLAPaper/ComfyUI-Image-Selector": { - "stars": 47, + "stars": 49, "last_update": "2024-01-10 10:02:25" }, "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": { - "stars": 6, + "stars": 7, "last_update": "2024-02-29 02:08:28" }, "https://github.com/Zuellni/ComfyUI-Custom-Nodes": { "stars": 43, "last_update": "2023-09-19 12:11:26" }, - "https://github.com/Zuellni/ComfyUI-ExLlama": { - "stars": 85, + "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes": { + "stars": 86, "last_update": "2024-05-04 07:13:01" }, "https://github.com/Zuellni/ComfyUI-PickScore-Nodes": { "stars": 21, "last_update": "2024-04-22 13:30:47" }, + "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": { + "stars": 351, + "last_update": "2024-05-11 19:28:37" + }, "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet": { - "stars": 579, + "stars": 594, "last_update": "2024-05-10 11:10:13" }, - "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": { - "stars": 339, - "last_update": "2024-04-04 01:15:12" + "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler": { + "stars": 3, + "last_update": "2024-04-25 07:58:30" }, "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": { - "stars": 1161, - "last_update": "2024-05-09 02:15:21" - }, - "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": { - "stars": 22, - "last_update": "2024-03-01 23:00:05" + "stars": 1180, + "last_update": "2024-05-16 10:16:53" }, "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": { - "stars": 274, - "last_update": "2024-05-10 08:20:45" + "stars": 281, + "last_update": "2024-05-13 22:22:20" }, "https://github.com/Jordach/comfy-plasma": { - "stars": 43, + "stars": 44, "last_update": "2023-07-31 00:57:50" }, "https://github.com/bvhari/ComfyUI_ImageProcessing": { "stars": 16, "last_update": "2023-05-25 10:49:24" }, + "https://github.com/Zuellni/ComfyUI-ExLlama": { + "stars": 86, + "last_update": "2024-05-04 07:13:01" + }, "https://github.com/bvhari/ComfyUI_LatentToRGB": { "stars": 11, "last_update": "2023-05-20 06:50:37" }, + "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": { + "stars": 562, + "last_update": "2024-05-07 18:56:07" + }, + "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": { + "stars": 22, + "last_update": "2024-03-01 23:00:05" + }, + "https://github.com/ssitu/ComfyUI_restart_sampling": { + "stars": 69, + "last_update": "2024-05-11 01:25:41" + }, + "https://github.com/bvhari/ComfyUI_SUNoise": { + "stars": 3, + "last_update": "2024-05-07 15:20:05" + }, + "https://github.com/ssitu/ComfyUI_roop": { + "stars": 59, + "last_update": "2023-09-05 16:18:48" + }, "https://github.com/bvhari/ComfyUI_PerpWeight": { "stars": 10, "last_update": "2024-03-25 07:05:23" }, - "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": { - "stars": 557, - "last_update": "2024-05-07 18:56:07" - }, - "https://github.com/ssitu/ComfyUI_restart_sampling": { - "stars": 67, - "last_update": "2024-05-07 22:02:07" - }, - "https://github.com/ssitu/ComfyUI_roop": { - "stars": 58, - "last_update": "2023-09-05 16:18:48" - }, "https://github.com/ssitu/ComfyUI_fabric": { - "stars": 76, + "stars": 77, "last_update": "2024-05-06 18:11:12" }, "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": { "stars": 42, "last_update": "2023-09-12 07:35:52" }, - "https://github.com/space-nuko/ComfyUI-OpenPose-Editor": { - "stars": 136, - "last_update": "2024-01-05 17:45:55" - }, "https://github.com/space-nuko/nui-suite": { "stars": 10, "last_update": "2023-06-04 22:08:46" }, + "https://github.com/space-nuko/ComfyUI-OpenPose-Editor": { + "stars": 140, + "last_update": "2024-01-05 17:45:55" + }, "https://github.com/Nourepide/ComfyUI-Allor": { - "stars": 156, + "stars": 161, "last_update": "2024-03-21 07:40:20" }, "https://github.com/melMass/comfy_mtb": { - "stars": 296, - "last_update": "2024-05-07 21:45:23" - }, - "https://github.com/xXAdonesXx/NodeGPT": { - "stars": 310, - "last_update": "2024-02-01 23:20:08" - }, - "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": { - "stars": 410, - "last_update": "2024-04-19 21:02:12" + "stars": 302, + "last_update": "2024-05-15 10:21:16" }, "https://github.com/bmad4ever/ComfyUI-Bmad-DirtyUndoRedo": { "stars": 50, "last_update": "2023-11-29 14:41:23" }, + "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": { + "stars": 421, + "last_update": "2024-04-19 21:02:12" + }, + "https://github.com/xXAdonesXx/NodeGPT": { + "stars": 314, + "last_update": "2024-02-01 23:20:08" + }, "https://github.com/bmad4ever/comfyui_bmad_nodes": { - "stars": 39, + "stars": 40, "last_update": "2024-04-07 19:57:43" }, - "https://github.com/bmad4ever/comfyui_ab_samplercustom": { - "stars": 4, - "last_update": "2023-11-06 17:45:57" + "https://github.com/bmad4ever/comfyui_wfc_like": { + "stars": 3, + "last_update": "2024-05-15 18:36:18" }, "https://github.com/bmad4ever/comfyui_lists_cartesian_product": { "stars": 2, "last_update": "2023-12-22 00:54:35" }, - "https://github.com/bmad4ever/comfyui_wfc_like": { - "stars": 3, - "last_update": "2024-03-19 23:02:45" + "https://github.com/bmad4ever/comfyui_ab_samplercustom": { + "stars": 4, + "last_update": "2023-11-06 17:45:57" }, "https://github.com/bmad4ever/comfyui_quilting": { "stars": 2, "last_update": "2024-03-04 22:48:03" }, "https://github.com/FizzleDorf/ComfyUI_FizzNodes": { - "stars": 286, - "last_update": "2024-04-24 04:23:42" + "stars": 290, + "last_update": "2024-05-14 14:42:14" }, "https://github.com/FizzleDorf/ComfyUI-AIT": { - "stars": 42, + "stars": 43, "last_update": "2023-11-08 14:03:03" }, "https://github.com/filipemeneses/comfy_pixelization": { @@ -332,41 +356,45 @@ "last_update": "2024-02-01 04:09:13" }, "https://github.com/shiimizu/ComfyUI_smZNodes": { - "stars": 129, - "last_update": "2024-05-10 00:26:33" + "stars": 135, + "last_update": "2024-05-15 10:52:09" }, "https://github.com/shiimizu/ComfyUI-TiledDiffusion": { - "stars": 172, - "last_update": "2024-04-11 21:32:24" + "stars": 173, + "last_update": "2024-05-14 22:01:41" + }, + "https://github.com/SeargeDP/SeargeSDXL": { + "stars": 711, + "last_update": "2024-04-10 14:29:50" }, "https://github.com/ZaneA/ComfyUI-ImageReward": { "stars": 22, "last_update": "2024-02-04 23:38:10" }, - "https://github.com/SeargeDP/SeargeSDXL": { - "stars": 706, - "last_update": "2024-04-10 14:29:50" - }, - "https://github.com/cubiq/ComfyUI_SimpleMath": { - "stars": 10, - "last_update": "2023-09-26 06:31:44" - }, "https://github.com/cubiq/ComfyUI_IPAdapter_plus": { - "stars": 2581, + "stars": 2656, "last_update": "2024-05-08 14:10:24" }, + "https://github.com/cubiq/ComfyUI_SimpleMath": { + "stars": 11, + "last_update": "2023-09-26 06:31:44" + }, "https://github.com/cubiq/ComfyUI_InstantID": { - "stars": 766, + "stars": 787, "last_update": "2024-05-08 14:56:00" }, "https://github.com/cubiq/ComfyUI_FaceAnalysis": { - "stars": 134, - "last_update": "2024-05-06 22:53:00" + "stars": 158, + "last_update": "2024-05-13 08:09:56" }, "https://github.com/shockz0rz/ComfyUI_InterpolateEverything": { "stars": 21, "last_update": "2023-12-23 04:13:06" }, + "https://github.com/cubiq/PuLID_ComfyUI": { + "stars": 309, + "last_update": "2024-05-13 08:18:28" + }, "https://github.com/shockz0rz/comfy-easy-grids": { "stars": 10, "last_update": "2024-01-01 02:40:59" @@ -375,109 +403,109 @@ "stars": 5, "last_update": "2023-07-15 15:19:30" }, - "https://github.com/yolanother/DTAIImageToTextNode": { - "stars": 14, - "last_update": "2024-01-25 02:53:22" - }, "https://github.com/yolanother/DTAIComfyLoaders": { "stars": 1, "last_update": "2023-12-25 04:37:43" }, - "https://github.com/yolanother/DTAIComfyImageSubmit": { - "stars": 1, - "last_update": "2023-12-25 04:37:20" - }, - "https://github.com/yolanother/DTAIComfyQRCodes": { - "stars": 2, - "last_update": "2023-12-25 04:38:00" + "https://github.com/yolanother/DTAIImageToTextNode": { + "stars": 14, + "last_update": "2024-01-25 02:53:22" }, "https://github.com/yolanother/DTAIComfyVariables": { "stars": 7, "last_update": "2023-12-25 04:37:03" }, - "https://github.com/sipherxyz/comfyui-art-venture": { - "stars": 68, - "last_update": "2024-05-10 02:54:08" + "https://github.com/yolanother/DTAIComfyImageSubmit": { + "stars": 1, + "last_update": "2023-12-25 04:37:20" }, - "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes": { - "stars": 4, - "last_update": "2023-07-21 11:22:18" + "https://github.com/sipherxyz/comfyui-art-venture": { + "stars": 69, + "last_update": "2024-05-16 08:04:21" + }, + "https://github.com/yolanother/DTAIComfyQRCodes": { + "stars": 2, + "last_update": "2023-12-25 04:38:00" }, "https://github.com/pants007/comfy-pants": { "stars": 2, "last_update": "2023-08-13 12:02:23" }, + "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes": { + "stars": 4, + "last_update": "2023-07-21 11:22:18" + }, "https://github.com/evanspearman/ComfyMath": { - "stars": 41, + "stars": 43, "last_update": "2023-08-27 03:29:04" }, - "https://github.com/civitai/comfy-nodes": { - "stars": 77, - "last_update": "2024-02-29 12:23:11" - }, - "https://github.com/andersxa/comfyui-PromptAttention": { - "stars": 19, - "last_update": "2023-09-22 22:48:52" - }, "https://github.com/ArtVentureX/comfyui-animatediff": { - "stars": 600, + "stars": 603, "last_update": "2024-01-06 09:18:52" }, - "https://github.com/twri/sdxl_prompt_styler": { - "stars": 556, - "last_update": "2024-03-24 18:55:24" + "https://github.com/andersxa/comfyui-PromptAttention": { + "stars": 18, + "last_update": "2023-09-22 22:48:52" }, - "https://github.com/wolfden/ComfyUi_PromptStylers": { - "stars": 55, - "last_update": "2023-10-22 21:34:59" + "https://github.com/twri/sdxl_prompt_styler": { + "stars": 564, + "last_update": "2024-03-24 18:55:24" }, "https://github.com/wolfden/ComfyUi_String_Function_Tree": { "stars": 7, "last_update": "2023-10-22 22:12:55" }, - "https://github.com/daxthin/DZ-FaceDetailer": { - "stars": 89, - "last_update": "2023-12-16 17:31:44" - }, - "https://github.com/asagi4/comfyui-prompt-control": { - "stars": 145, - "last_update": "2024-05-05 16:02:52" + "https://github.com/wolfden/ComfyUi_PromptStylers": { + "stars": 56, + "last_update": "2023-10-22 21:34:59" }, "https://github.com/asagi4/ComfyUI-CADS": { - "stars": 27, + "stars": 29, "last_update": "2024-04-08 15:52:29" }, + "https://github.com/asagi4/comfyui-prompt-control": { + "stars": 146, + "last_update": "2024-05-05 16:02:52" + }, "https://github.com/asagi4/comfyui-utility-nodes": { "stars": 7, "last_update": "2024-03-10 16:04:01" }, + "https://github.com/civitai/comfy-nodes": { + "stars": 78, + "last_update": "2024-02-29 12:23:11" + }, "https://github.com/jamesWalker55/comfyui-p2ldgan": { "stars": 12, "last_update": "2023-08-11 20:15:26" }, - "https://github.com/jamesWalker55/comfyui-various": { - "stars": 24, - "last_update": "2024-03-10 06:45:45" - }, - "https://github.com/adieyal/comfyui-dynamicprompts": { - "stars": 163, - "last_update": "2024-02-05 06:55:50" - }, "https://github.com/mihaiiancu/ComfyUI_Inpaint": { "stars": 9, "last_update": "2023-07-30 22:32:41" }, + "https://github.com/jamesWalker55/comfyui-various": { + "stars": 26, + "last_update": "2024-03-10 06:45:45" + }, + "https://github.com/adieyal/comfyui-dynamicprompts": { + "stars": 168, + "last_update": "2024-02-05 06:55:50" + }, "https://github.com/kwaroran/abg-comfyui": { "stars": 20, "last_update": "2023-08-03 08:57:52" }, + "https://github.com/daxthin/DZ-FaceDetailer": { + "stars": 92, + "last_update": "2023-12-16 17:31:44" + }, "https://github.com/bash-j/mikey_nodes": { "stars": 71, "last_update": "2024-05-05 23:32:05" }, - "https://github.com/failfa-st/failfast-comfyui-extensions": { - "stars": 115, - "last_update": "2024-05-09 19:24:22" + "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": { + "stars": 370, + "last_update": "2024-05-16 09:15:37" }, "https://github.com/Pfaeff/pfaeff-comfyui": { "stars": 18, @@ -487,102 +515,98 @@ "stars": 74, "last_update": "2024-03-28 23:02:54" }, - "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": { - "stars": 361, - "last_update": "2024-05-10 03:03:08" - }, "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": { - "stars": 2057, - "last_update": "2024-05-09 23:40:15" - }, - "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": { - "stars": 328, - "last_update": "2024-04-20 18:24:00" + "stars": 2083, + "last_update": "2024-05-14 08:52:34" }, "https://github.com/Gourieff/comfyui-reactor-node": { - "stars": 914, - "last_update": "2024-05-07 19:13:48" + "stars": 934, + "last_update": "2024-05-14 03:51:38" + }, + "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": { + "stars": 342, + "last_update": "2024-04-20 18:24:00" }, "https://github.com/imb101/ComfyUI-FaceSwap": { - "stars": 28, + "stars": 29, "last_update": "2023-08-04 23:54:24" }, + "https://github.com/AIrjen/OneButtonPrompt": { + "stars": 676, + "last_update": "2024-05-04 07:25:31" + }, "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes": { "stars": 11, "last_update": "2024-04-05 11:14:24" }, - "https://github.com/AIrjen/OneButtonPrompt": { - "stars": 668, - "last_update": "2024-05-04 07:25:31" - }, "https://github.com/coreyryanhanson/ComfyQR": { - "stars": 39, + "stars": 42, "last_update": "2024-03-20 20:10:27" }, + "https://github.com/failfa-st/failfast-comfyui-extensions": { + "stars": 118, + "last_update": "2024-05-09 19:24:22" + }, "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes": { "stars": 8, "last_update": "2023-10-15 03:19:16" }, "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": { - "stars": 154, + "stars": 155, "last_update": "2024-01-07 03:29:57" }, - "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": { - "stars": 6, - "last_update": "2023-12-10 13:57:48" - }, "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": { - "stars": 25, + "stars": 26, "last_update": "2023-10-23 14:55:53" }, - "https://github.com/M1kep/Comfy_KepListStuff": { - "stars": 24, - "last_update": "2023-10-30 01:30:09" - }, - "https://github.com/M1kep/ComfyLiterals": { - "stars": 8, - "last_update": "2023-11-20 01:08:21" - }, "https://github.com/M1kep/KepPromptLang": { "stars": 4, "last_update": "2023-11-19 08:27:04" }, - "https://github.com/M1kep/Comfy_KepMatteAnything": { - "stars": 9, - "last_update": "2023-09-27 01:16:51" + "https://github.com/M1kep/ComfyLiterals": { + "stars": 8, + "last_update": "2023-11-20 01:08:21" + }, + "https://github.com/M1kep/Comfy_KepListStuff": { + "stars": 24, + "last_update": "2023-10-30 01:30:09" }, "https://github.com/M1kep/Comfy_KepKitchenSink": { "stars": 0, "last_update": "2023-09-25 05:58:26" }, - "https://github.com/M1kep/ComfyUI-OtherVAEs": { - "stars": 1, - "last_update": "2023-10-29 03:21:34" - }, - "https://github.com/M1kep/ComfyUI-KepOpenAI": { - "stars": 24, - "last_update": "2023-11-08 22:43:37" + "https://github.com/M1kep/Comfy_KepMatteAnything": { + "stars": 9, + "last_update": "2023-09-27 01:16:51" }, "https://github.com/uarefans/ComfyUI-Fans": { "stars": 12, "last_update": "2023-08-15 18:42:40" }, + "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": { + "stars": 7, + "last_update": "2023-12-10 13:57:48" + }, + "https://github.com/M1kep/ComfyUI-KepOpenAI": { + "stars": 24, + "last_update": "2023-11-08 22:43:37" + }, "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": { "stars": 13, "last_update": "2024-02-02 11:09:18" }, + "https://github.com/M1kep/ComfyUI-OtherVAEs": { + "stars": 1, + "last_update": "2023-10-29 03:21:34" + }, "https://github.com/ManglerFTW/ComfyI2I": { - "stars": 131, + "stars": 133, "last_update": "2023-11-03 11:09:53" }, "https://github.com/theUpsider/ComfyUI-Logic": { - "stars": 81, + "stars": 82, "last_update": "2023-12-12 20:29:49" }, - "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": { - "stars": 14, - "last_update": "2023-08-14 11:27:09" - }, "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": { "stars": 1, "last_update": "2023-08-16 11:33:14" @@ -592,81 +616,85 @@ "last_update": "2023-08-21 22:04:31" }, "https://github.com/Extraltodeus/LoadLoraWithTags": { - "stars": 30, + "stars": 31, "last_update": "2023-10-28 15:51:44" }, "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": { - "stars": 38, + "stars": 40, "last_update": "2024-05-07 16:18:48" }, - "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": { - "stars": 195, - "last_update": "2024-05-07 16:17:50" - }, "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": { "stars": 69, "last_update": "2024-04-04 20:20:54" }, + "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": { + "stars": 215, + "last_update": "2024-05-16 02:41:22" + }, "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": { - "stars": 27, + "stars": 28, "last_update": "2024-04-21 09:44:11" }, "https://github.com/hustille/ComfyUI_hus_utils": { "stars": 5, "last_update": "2023-08-16 15:44:24" }, - "https://github.com/hustille/ComfyUI_Fooocus_KSampler": { - "stars": 57, - "last_update": "2023-09-10 01:51:24" - }, "https://github.com/badjeff/comfyui_lora_tag_loader": { "stars": 38, "last_update": "2024-02-12 07:46:02" }, - "https://github.com/rgthree/rgthree-comfy": { - "stars": 560, - "last_update": "2024-05-07 02:30:40" + "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": { + "stars": 15, + "last_update": "2023-08-14 11:27:09" }, - "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION": { - "stars": 752, - "last_update": "2024-05-10 08:29:34" + "https://github.com/hustille/ComfyUI_Fooocus_KSampler": { + "stars": 57, + "last_update": "2023-09-10 01:51:24" + }, + "https://github.com/rgthree/rgthree-comfy": { + "stars": 584, + "last_update": "2024-05-16 03:49:32" }, "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio": { - "stars": 188, - "last_update": "2024-04-03 03:59:31" + "stars": 190, + "last_update": "2024-05-15 05:31:09" + }, + "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION": { + "stars": 765, + "last_update": "2024-05-15 08:16:10" }, "https://github.com/AIGODLIKE/ComfyUI-CUP": { - "stars": 1, + "stars": 2, "last_update": "2024-03-22 07:26:43" }, "https://github.com/syllebra/bilbox-comfyui": { - "stars": 72, - "last_update": "2024-04-03 22:58:07" + "stars": 74, + "last_update": "2024-05-15 01:21:37" + }, + "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": { + "stars": 25, + "last_update": "2023-08-17 07:51:02" }, "https://github.com/giriss/comfy-image-saver": { - "stars": 120, + "stars": 126, "last_update": "2023-11-16 10:39:05" }, "https://github.com/shingo1228/ComfyUI-send-eagle-slim": { "stars": 19, "last_update": "2024-04-11 17:41:50" }, - "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": { - "stars": 24, - "last_update": "2023-08-17 07:51:02" - }, "https://github.com/laksjdjf/pfg-ComfyUI": { "stars": 9, "last_update": "2023-07-12 06:33:40" }, - "https://github.com/laksjdjf/attention-couple-ComfyUI": { - "stars": 54, - "last_update": "2024-03-25 03:38:55" - }, "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": { "stars": 17, "last_update": "2023-11-23 02:06:20" }, + "https://github.com/laksjdjf/attention-couple-ComfyUI": { + "stars": 54, + "last_update": "2024-03-25 03:38:55" + }, "https://github.com/laksjdjf/LCMSampler-ComfyUI": { "stars": 14, "last_update": "2023-11-08 11:07:04" @@ -675,26 +703,30 @@ "stars": 10, "last_update": "2024-03-07 12:27:44" }, - "https://github.com/laksjdjf/Batch-Condition-ComfyUI": { - "stars": 1, - "last_update": "2024-03-09 12:22:07" + "https://github.com/laksjdjf/cgem156-ComfyUI": { + "stars": 25, + "last_update": "2024-05-14 13:40:44" }, "https://github.com/alsritter/asymmetric-tiling-comfyui": { "stars": 14, "last_update": "2023-08-18 16:32:27" }, - "https://github.com/meap158/ComfyUI-GPU-temperature-protection": { - "stars": 3, - "last_update": "2023-10-07 09:45:25" + "https://github.com/laksjdjf/Batch-Condition-ComfyUI": { + "stars": 1, + "last_update": "2024-03-09 12:22:07" }, "https://github.com/meap158/ComfyUI-Prompt-Expansion": { - "stars": 57, + "stars": 59, "last_update": "2023-09-17 00:00:31" }, "https://github.com/meap158/ComfyUI-Background-Replacement": { - "stars": 32, + "stars": 33, "last_update": "2023-12-17 14:05:08" }, + "https://github.com/meap158/ComfyUI-GPU-temperature-protection": { + "stars": 3, + "last_update": "2023-10-07 09:45:25" + }, "https://github.com/TeaCrab/ComfyUI-TeaNodes": { "stars": 4, "last_update": "2024-04-26 01:35:01" @@ -708,49 +740,49 @@ "last_update": "2023-08-19 06:52:19" }, "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": { - "stars": 131, + "stars": 135, "last_update": "2024-05-05 09:31:39" }, + "https://github.com/dagthomas/comfyui_dagthomas": { + "stars": 55, + "last_update": "2024-05-15 13:34:59" + }, "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes": { "stars": 4, "last_update": "2023-08-19 19:17:07" }, - "https://github.com/dagthomas/comfyui_dagthomas": { - "stars": 55, - "last_update": "2024-05-04 16:10:21" - }, "https://github.com/marhensa/sdxl-recommended-res-calc": { "stars": 50, "last_update": "2024-03-15 05:43:38" }, "https://github.com/Nuked88/ComfyUI-N-Nodes": { - "stars": 153, + "stars": 156, "last_update": "2024-03-16 11:27:55" }, + "https://github.com/Beinsezii/bsz-cui-extras": { + "stars": 19, + "last_update": "2024-05-07 22:06:18" + }, "https://github.com/Nuked88/ComfyUI-N-Sidebar": { - "stars": 306, + "stars": 312, "last_update": "2024-04-27 07:19:24" }, "https://github.com/richinsley/Comfy-LFO": { "stars": 4, "last_update": "2023-08-23 23:08:16" }, - "https://github.com/Beinsezii/bsz-cui-extras": { - "stars": 19, - "last_update": "2024-05-07 22:06:18" - }, "https://github.com/youyegit/tdxh_node_comfyui": { "stars": 2, "last_update": "2023-09-21 08:40:50" }, - "https://github.com/Sxela/ComfyWarp": { - "stars": 20, - "last_update": "2023-11-04 10:45:11" - }, "https://github.com/skfoo/ComfyUI-Coziness": { "stars": 18, "last_update": "2024-02-23 18:59:41" }, + "https://github.com/Sxela/ComfyWarp": { + "stars": 21, + "last_update": "2023-11-04 10:45:11" + }, "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": { "stars": 13, "last_update": "2023-08-30 16:06:45" @@ -760,69 +792,57 @@ "last_update": "2024-01-25 22:09:37" }, "https://github.com/Ttl/ComfyUi_NNLatentUpscale": { - "stars": 144, + "stars": 148, "last_update": "2023-08-28 13:56:20" }, - "https://github.com/spro/comfyui-mirror": { - "stars": 4, - "last_update": "2023-08-28 02:37:52" - }, "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": { "stars": 20, "last_update": "2024-01-06 14:15:12" }, + "https://github.com/spro/comfyui-mirror": { + "stars": 4, + "last_update": "2023-08-28 02:37:52" + }, "https://github.com/Acly/comfyui-tooling-nodes": { - "stars": 179, + "stars": 182, "last_update": "2024-03-04 08:52:39" }, "https://github.com/Acly/comfyui-inpaint-nodes": { - "stars": 315, + "stars": 329, "last_update": "2024-04-24 04:17:56" }, + "https://github.com/alt-key-project/comfyui-dream-project": { + "stars": 66, + "last_update": "2023-12-21 19:36:51" + }, "https://github.com/picturesonpictures/comfy_PoP": { "stars": 11, "last_update": "2024-02-01 03:04:42" }, - "https://github.com/alt-key-project/comfyui-dream-project": { - "stars": 65, - "last_update": "2023-12-21 19:36:51" - }, - "https://github.com/alt-key-project/comfyui-dream-video-batches": { - "stars": 47, - "last_update": "2023-12-03 10:31:55" - }, "https://github.com/seanlynch/comfyui-optical-flow": { "stars": 20, "last_update": "2023-10-20 21:22:17" }, + "https://github.com/alt-key-project/comfyui-dream-video-batches": { + "stars": 46, + "last_update": "2023-12-03 10:31:55" + }, + "https://github.com/ArtBot2023/CharacterFaceSwap": { + "stars": 51, + "last_update": "2023-10-25 04:29:40" + }, "https://github.com/ealkanat/comfyui_easy_padding": { "stars": 10, "last_update": "2023-09-26 14:56:04" }, - "https://github.com/ArtBot2023/CharacterFaceSwap": { - "stars": 50, - "last_update": "2023-10-25 04:29:40" - }, "https://github.com/mav-rik/facerestore_cf": { - "stars": 136, + "stars": 139, "last_update": "2024-03-19 21:36:31" }, "https://github.com/braintacles/braintacles-comfyui-nodes": { "stars": 1, "last_update": "2023-09-06 12:12:32" }, - "https://github.com/hayden-fr/ComfyUI-Model-Manager": { - "stars": 20, - "last_update": "2024-04-21 07:42:28" - }, - "https://github.com/hayden-fr/ComfyUI-Image-Browsing": { - "stars": 2, - "last_update": "2023-09-07 14:06:12" - }, - "https://github.com/ali1234/comfyui-job-iterator": { - "stars": 47, - "last_update": "2023-09-10 23:42:15" - }, "https://github.com/jmkl/ComfyUI-ricing": { "stars": 9, "last_update": "2023-09-11 03:33:34" @@ -831,78 +851,94 @@ "stars": 1, "last_update": "2023-11-08 14:26:20" }, - "https://github.com/ramyma/A8R8_ComfyUI_nodes": { - "stars": 4, - "last_update": "2023-09-13 02:56:53" + "https://github.com/hayden-fr/ComfyUI-Image-Browsing": { + "stars": 2, + "last_update": "2023-09-07 14:06:12" + }, + "https://github.com/hayden-fr/ComfyUI-Model-Manager": { + "stars": 21, + "last_update": "2024-04-21 07:42:28" + }, + "https://github.com/ali1234/comfyui-job-iterator": { + "stars": 47, + "last_update": "2023-09-10 23:42:15" }, "https://github.com/spinagon/ComfyUI-seamless-tiling": { "stars": 62, "last_update": "2024-01-29 03:45:40" }, + "https://github.com/ramyma/A8R8_ComfyUI_nodes": { + "stars": 4, + "last_update": "2024-05-12 01:06:49" + }, "https://github.com/tusharbhutt/Endless-Nodes": { "stars": 21, "last_update": "2023-10-21 23:02:19" }, - "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": { - "stars": 23, - "last_update": "2024-05-01 21:05:26" - }, "https://github.com/spacepxl/ComfyUI-Image-Filters": { - "stars": 54, + "stars": 55, "last_update": "2024-04-25 23:07:26" }, + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": { + "stars": 24, + "last_update": "2024-05-16 04:55:48" + }, "https://github.com/spacepxl/ComfyUI-RAVE": { "stars": 77, "last_update": "2024-01-28 09:08:08" }, + "https://github.com/cubiq/ComfyUI_essentials": { + "stars": 247, + "last_update": "2024-05-16 11:09:28" + }, "https://github.com/phineas-pta/comfyui-auto-nodes-layout": { - "stars": 15, + "stars": 16, "last_update": "2023-09-21 14:49:12" }, "https://github.com/receyuki/comfyui-prompt-reader-node": { - "stars": 167, - "last_update": "2024-04-08 18:19:54" - }, - "https://github.com/rklaffehn/rk-comfy-nodes": { - "stars": 2, - "last_update": "2024-01-23 17:12:45" - }, - "https://github.com/cubiq/ComfyUI_essentials": { - "stars": 234, - "last_update": "2024-04-29 14:50:30" + "stars": 170, + "last_update": "2024-05-15 15:25:04" }, "https://github.com/Clybius/ComfyUI-Latent-Modifiers": { "stars": 40, "last_update": "2024-01-02 21:57:58" }, + "https://github.com/rklaffehn/rk-comfy-nodes": { + "stars": 2, + "last_update": "2024-01-23 17:12:45" + }, "https://github.com/Clybius/ComfyUI-Extra-Samplers": { "stars": 43, "last_update": "2024-04-18 04:28:09" }, "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": { - "stars": 1023, + "stars": 1026, "last_update": "2024-05-09 23:04:40" }, - "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": { - "stars": 5, - "last_update": "2024-04-25 19:22:54" - }, "https://github.com/chrisgoringe/cg-noise": { "stars": 22, "last_update": "2024-02-02 23:38:25" }, "https://github.com/chrisgoringe/cg-image-picker": { - "stars": 141, + "stars": 144, "last_update": "2024-05-10 07:27:18" }, + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": { + "stars": 5, + "last_update": "2024-04-25 19:22:54" + }, "https://github.com/chrisgoringe/cg-use-everywhere": { - "stars": 283, + "stars": 288, "last_update": "2024-05-05 04:17:49" }, "https://github.com/chrisgoringe/cg-prompt-info": { "stars": 24, "last_update": "2024-04-10 01:08:34" }, + "https://github.com/kijai/ComfyUI-KJNodes": { + "stars": 256, + "last_update": "2024-05-16 12:04:35" + }, "https://github.com/TGu-97/ComfyUI-TGu-utils": { "stars": 1, "last_update": "2023-09-25 04:06:55" @@ -915,86 +951,102 @@ "stars": 54, "last_update": "2024-05-04 14:00:29" }, - "https://github.com/mlinmg/ComfyUI-LaMA-Preprocessor": { - "stars": 64, - "last_update": "2024-04-12 12:59:58" - }, - "https://github.com/kijai/ComfyUI-KJNodes": { - "stars": 231, - "last_update": "2024-05-10 08:46:48" - }, - "https://github.com/kijai/ComfyUI-CCSR": { - "stars": 115, - "last_update": "2024-03-18 10:10:20" - }, "https://github.com/kijai/ComfyUI-SVD": { - "stars": 150, + "stars": 151, "last_update": "2023-11-25 10:16:57" }, + "https://github.com/kijai/ComfyUI-CCSR": { + "stars": 118, + "last_update": "2024-03-18 10:10:20" + }, "https://github.com/kijai/ComfyUI-Marigold": { - "stars": 341, + "stars": 344, "last_update": "2024-04-08 08:33:04" }, "https://github.com/kijai/ComfyUI-Geowizard": { - "stars": 74, + "stars": 76, "last_update": "2024-04-07 12:46:47" }, "https://github.com/kijai/ComfyUI-depth-fm": { - "stars": 44, + "stars": 45, "last_update": "2024-04-24 22:53:30" }, "https://github.com/kijai/ComfyUI-DDColor": { - "stars": 70, + "stars": 71, "last_update": "2024-01-18 08:05:17" }, "https://github.com/kijai/ComfyUI-ADMotionDirector": { - "stars": 105, + "stars": 112, "last_update": "2024-03-27 19:38:20" }, + "https://github.com/kijai/ComfyUI-SUPIR": { + "stars": 1025, + "last_update": "2024-04-23 10:04:12" + }, "https://github.com/kijai/ComfyUI-moondream": { "stars": 68, "last_update": "2024-03-11 00:50:24" }, - "https://github.com/kijai/ComfyUI-SUPIR": { - "stars": 989, - "last_update": "2024-04-23 10:04:12" + "https://github.com/kijai/ComfyUI-APISR-KJ": { + "stars": 53, + "last_update": "2024-04-19 16:38:57" }, "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": { - "stars": 201, + "stars": 205, "last_update": "2024-04-18 11:22:03" }, + "https://github.com/kijai/ComfyUI-ELLA-wrapper": { + "stars": 97, + "last_update": "2024-05-09 12:22:38" + }, + "https://github.com/kijai/ComfyUI-DiffusionLight": { + "stars": 45, + "last_update": "2024-04-02 19:18:34" + }, + "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": { + "stars": 17, + "last_update": "2024-04-11 15:56:49" + }, + "https://github.com/kijai/ComfyUI-BrushNet-Wrapper": { + "stars": 98, + "last_update": "2024-05-01 16:10:34" + }, + "https://github.com/kijai/ComfyUI-IC-Light": { + "stars": 220, + "last_update": "2024-05-16 13:39:48" + }, "https://github.com/hhhzzyang/Comfyui_Lama": { "stars": 33, "last_update": "2024-04-15 09:44:58" }, - "https://github.com/thedyze/save-image-extended-comfyui": { - "stars": 60, - "last_update": "2024-05-04 17:53:11" - }, "https://github.com/SOELexicon/ComfyUI-LexTools": { "stars": 18, "last_update": "2024-03-15 17:45:41" }, + "https://github.com/audioscavenger/save-image-extended-comfyui": { + "stars": 2, + "last_update": "2024-05-15 15:15:16" + }, "https://github.com/mikkel/ComfyUI-text-overlay": { "stars": 23, "last_update": "2023-10-05 03:05:03" }, - "https://github.com/avatechai/avatar-graph-comfyui": { - "stars": 193, - "last_update": "2024-02-06 08:56:30" + "https://github.com/storyicon/comfyui_segment_anything": { + "stars": 446, + "last_update": "2024-04-29 15:07:42" }, "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": { - "stars": 11, - "last_update": "2024-05-09 04:11:03" - }, - "https://github.com/storyicon/comfyui_segment_anything": { - "stars": 432, - "last_update": "2024-04-29 15:07:42" + "stars": 15, + "last_update": "2024-05-14 09:32:51" }, "https://github.com/a1lazydog/ComfyUI-AudioScheduler": { "stars": 86, "last_update": "2024-05-06 16:53:15" }, + "https://github.com/avatechai/avatar-graph-comfyui": { + "stars": 195, + "last_update": "2024-02-06 08:56:30" + }, "https://github.com/whatbirdisthat/cyberdolphin": { "stars": 14, "last_update": "2023-11-11 23:35:44" @@ -1012,39 +1064,39 @@ "last_update": "2023-12-27 14:18:04" }, "https://github.com/chibiace/ComfyUI-Chibi-Nodes": { - "stars": 23, + "stars": 24, "last_update": "2024-04-09 09:23:35" }, "https://github.com/DigitalIO/ComfyUI-stable-wildcards": { - "stars": 19, + "stars": 18, "last_update": "2023-12-18 23:42:52" }, "https://github.com/THtianhao/ComfyUI-Portrait-Maker": { - "stars": 162, + "stars": 163, "last_update": "2024-03-07 06:45:14" }, - "https://github.com/THtianhao/ComfyUI-FaceChain": { - "stars": 75, - "last_update": "2024-04-12 03:48:33" - }, "https://github.com/zer0TF/cute-comfy": { "stars": 27, "last_update": "2024-01-04 04:20:46" }, - "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": { - "stars": 16, - "last_update": "2024-02-20 01:27:38" - }, "https://github.com/chflame163/ComfyUI_WordCloud": { - "stars": 53, + "stars": 54, "last_update": "2024-02-27 12:47:52" }, + "https://github.com/THtianhao/ComfyUI-FaceChain": { + "stars": 76, + "last_update": "2024-04-12 03:48:33" + }, + "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": { + "stars": 18, + "last_update": "2024-02-20 01:27:38" + }, "https://github.com/chflame163/ComfyUI_LayerStyle": { - "stars": 461, - "last_update": "2024-05-07 07:34:37" + "stars": 482, + "last_update": "2024-05-14 06:11:38" }, "https://github.com/chflame163/ComfyUI_FaceSimilarity": { - "stars": 3, + "stars": 4, "last_update": "2024-03-22 05:35:23" }, "https://github.com/drustan-hawk/primitive-types": { @@ -1052,49 +1104,45 @@ "last_update": "2023-10-20 16:33:23" }, "https://github.com/shadowcz007/comfyui-mixlab-nodes": { - "stars": 729, - "last_update": "2024-05-10 06:38:35" + "stars": 771, + "last_update": "2024-05-16 05:20:10" }, "https://github.com/shadowcz007/comfyui-ultralytics-yolo": { "stars": 13, "last_update": "2024-04-23 02:35:25" }, + "https://github.com/shadowcz007/comfyui-Image-reward": { + "stars": 15, + "last_update": "2024-03-25 05:41:04" + }, "https://github.com/shadowcz007/comfyui-consistency-decoder": { "stars": 1, "last_update": "2024-02-02 01:46:54" }, - "https://github.com/shadowcz007/comfyui-Image-reward": { - "stars": 14, - "last_update": "2024-03-25 05:41:04" - }, "https://github.com/ostris/ostris_nodes_comfyui": { "stars": 19, "last_update": "2023-11-26 21:41:27" }, - "https://github.com/0xbitches/ComfyUI-LCM": { - "stars": 241, - "last_update": "2023-11-11 21:24:33" - }, "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": { - "stars": 78, + "stars": 79, "last_update": "2023-12-01 00:09:15" }, - "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": { - "stars": 215, - "last_update": "2024-04-07 21:32:38" + "https://github.com/0xbitches/ComfyUI-LCM": { + "stars": 244, + "last_update": "2023-11-11 21:24:33" }, "https://github.com/noxinias/ComfyUI_NoxinNodes": { "stars": 5, "last_update": "2023-11-01 00:11:28" }, - "https://github.com/GMapeSplat/ComfyUI_ezXY": { - "stars": 17, - "last_update": "2023-11-30 00:32:24" - }, "https://github.com/kinfolk0117/ComfyUI_SimpleTiles": { "stars": 22, "last_update": "2024-01-29 19:27:12" }, + "https://github.com/GMapeSplat/ComfyUI_ezXY": { + "stars": 17, + "last_update": "2023-11-30 00:32:24" + }, "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": { "stars": 21, "last_update": "2023-12-01 20:13:00" @@ -1103,34 +1151,38 @@ "stars": 6, "last_update": "2024-01-07 14:49:46" }, + "https://github.com/noembryo/ComfyUI-noEmbryo": { + "stars": 11, + "last_update": "2024-05-13 04:25:15" + }, + "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": { + "stars": 75, + "last_update": "2024-04-09 20:35:52" + }, "https://github.com/Fictiverse/ComfyUI_Fictiverse": { "stars": 7, "last_update": "2024-04-29 03:36:52" }, - "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": { - "stars": 72, - "last_update": "2024-04-09 20:35:52" - }, "https://github.com/aianimation55/ComfyUI-FatLabels": { "stars": 4, "last_update": "2023-10-31 14:25:23" }, - "https://github.com/noembryo/ComfyUI-noEmbryo": { - "stars": 11, - "last_update": "2024-03-22 17:52:32" + "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": { + "stars": 217, + "last_update": "2024-04-07 21:32:38" }, "https://github.com/mikkel/comfyui-mask-boundingbox": { "stars": 22, "last_update": "2024-03-07 08:11:06" }, - "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts": { - "stars": 0, - "last_update": "2023-11-03 04:16:28" - }, "https://github.com/matan1905/ComfyUI-Serving-Toolkit": { "stars": 32, "last_update": "2024-02-28 18:30:35" }, + "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts": { + "stars": 0, + "last_update": "2023-11-03 04:16:28" + }, "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": { "stars": 11, "last_update": "2023-11-06 06:34:25" @@ -1145,11 +1197,7 @@ }, "https://github.com/AbyssYuan0/ComfyUI_BadgerTools": { "stars": 6, - "last_update": "2024-04-25 05:10:53" - }, - "https://github.com/palant/image-resize-comfyui": { - "stars": 46, - "last_update": "2024-01-18 20:59:55" + "last_update": "2024-05-13 09:33:01" }, "https://github.com/palant/integrated-nodes-comfyui": { "stars": 30, @@ -1159,6 +1207,10 @@ "stars": 9, "last_update": "2024-03-27 14:08:21" }, + "https://github.com/palant/image-resize-comfyui": { + "stars": 50, + "last_update": "2024-01-18 20:59:55" + }, "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus": { "stars": 13, "last_update": "2024-01-06 18:32:07" @@ -1168,8 +1220,8 @@ "last_update": "2024-02-15 05:52:28" }, "https://github.com/banodoco/steerable-motion": { - "stars": 608, - "last_update": "2024-05-09 09:42:02" + "stars": 639, + "last_update": "2024-05-15 22:50:41" }, "https://github.com/gemell1/ComfyUI_GMIC": { "stars": 5, @@ -1187,42 +1239,42 @@ "stars": 3, "last_update": "2024-01-04 17:52:44" }, + "https://github.com/Amorano/Jovimetrix": { + "stars": 134, + "last_update": "2024-05-11 01:49:25" + }, "https://github.com/ka-puna/comfyui-yanc": { "stars": 5, "last_update": "2023-12-10 21:29:12" }, - "https://github.com/Amorano/Jovimetrix": { - "stars": 126, - "last_update": "2024-05-10 20:55:18" - }, "https://github.com/Umikaze-job/select_folder_path_easy": { "stars": 4, "last_update": "2023-11-18 14:59:56" }, - "https://github.com/Niutonian/ComfyUi-NoodleWebcam": { - "stars": 27, - "last_update": "2023-11-20 11:25:01" + "https://github.com/wutipong/ComfyUI-TextUtils": { + "stars": 1, + "last_update": "2023-11-20 21:32:07" }, "https://github.com/Feidorian/feidorian-ComfyNodes": { "stars": 5, "last_update": "2024-01-03 09:01:58" }, - "https://github.com/wutipong/ComfyUI-TextUtils": { - "stars": 1, - "last_update": "2023-11-20 21:32:07" + "https://github.com/Niutonian/ComfyUi-NoodleWebcam": { + "stars": 27, + "last_update": "2023-11-20 11:25:01" }, "https://github.com/natto-maki/ComfyUI-NegiTools": { - "stars": 21, + "stars": 26, "last_update": "2024-02-02 07:50:01" }, + "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": { + "stars": 89, + "last_update": "2024-04-07 00:30:45" + }, "https://github.com/LonicaMewinsky/ComfyUI-RawSaver": { "stars": 1, "last_update": "2023-11-21 14:34:54" }, - "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": { - "stars": 88, - "last_update": "2024-04-07 00:30:45" - }, "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": { "stars": 6, "last_update": "2023-12-10 01:20:36" @@ -1231,153 +1283,157 @@ "stars": 0, "last_update": "2023-11-21 01:46:07" }, - "https://github.com/drago87/ComfyUI_Dragos_Nodes": { - "stars": 3, - "last_update": "2023-11-24 19:04:31" - }, - "https://github.com/ansonkao/comfyui-geometry": { - "stars": 7, - "last_update": "2023-11-30 02:45:49" - }, "https://github.com/bronkula/comfyui-fitsize": { - "stars": 27, + "stars": 29, "last_update": "2023-12-03 12:32:49" }, - "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": { - "stars": 412, - "last_update": "2024-04-27 10:15:08" - }, "https://github.com/thecooltechguy/ComfyUI-Stable-Video-Diffusion": { "stars": 268, "last_update": "2023-11-24 06:14:27" }, + "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": { + "stars": 416, + "last_update": "2024-04-27 10:15:08" + }, + "https://github.com/drago87/ComfyUI_Dragos_Nodes": { + "stars": 3, + "last_update": "2023-11-24 19:04:31" + }, "https://github.com/thecooltechguy/ComfyUI-ComfyRun": { "stars": 75, "last_update": "2023-12-27 18:16:34" }, "https://github.com/thecooltechguy/ComfyUI-MagicAnimate": { - "stars": 189, + "stars": 190, "last_update": "2024-01-09 19:24:47" }, "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows": { - "stars": 27, + "stars": 28, "last_update": "2024-03-11 09:48:04" }, "https://github.com/Danand/ComfyUI-ComfyCouple": { - "stars": 16, + "stars": 17, "last_update": "2024-05-07 23:06:53" }, "https://github.com/42lux/ComfyUI-safety-checker": { - "stars": 15, + "stars": 14, "last_update": "2024-03-15 18:39:38" }, "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": { "stars": 2, "last_update": "2024-04-06 15:42:48" }, - "https://github.com/komojini/ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes": { - "stars": 3, - "last_update": "2023-12-15 23:36:59" + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": { + "stars": 292, + "last_update": "2024-04-17 19:59:18" + }, + "https://github.com/ansonkao/comfyui-geometry": { + "stars": 7, + "last_update": "2023-11-30 02:45:49" }, "https://github.com/komojini/komojini-comfyui-nodes": { - "stars": 56, + "stars": 57, "last_update": "2024-02-10 14:58:22" }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": { - "stars": 284, - "last_update": "2024-04-17 19:59:18" - }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite": { "stars": 62, "last_update": "2024-04-17 20:02:42" }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": { - "stars": 532, - "last_update": "2024-04-17 19:57:55" + "https://github.com/komojini/ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes": { + "stars": 3, + "last_update": "2023-12-15 23:36:59" }, - "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": { - "stars": 1388, - "last_update": "2024-04-17 19:57:18" + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": { + "stars": 543, + "last_update": "2024-04-17 19:57:55" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": { "stars": 2, "last_update": "2024-01-03 15:22:13" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": { - "stars": 1118, + "stars": 1128, "last_update": "2024-04-17 20:02:02" }, + "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": { + "stars": 1395, + "last_update": "2024-04-17 19:57:18" + }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": { - "stars": 718, + "stars": 723, "last_update": "2024-04-17 20:01:40" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API": { - "stars": 170, + "stars": 173, "last_update": "2024-04-17 19:58:21" }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": { - "stars": 81, - "last_update": "2024-04-17 20:04:09" - }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE": { "stars": 71, "last_update": "2024-04-17 20:03:27" }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": { - "stars": 381, - "last_update": "2024-04-30 01:42:11" - }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers": { - "stars": 38, + "stars": 39, "last_update": "2024-04-17 20:03:46" }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": { + "stars": 390, + "last_update": "2024-04-30 01:42:11" + }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG": { - "stars": 494, + "stars": 509, "last_update": "2024-04-17 20:00:02" }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": { + "stars": 82, + "last_update": "2024-04-17 20:04:09" + }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": { - "stars": 60, + "stars": 61, "last_update": "2024-04-17 20:00:46" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": { - "stars": 106, + "stars": 113, "last_update": "2024-04-17 19:59:42" }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini": { + "stars": 143, + "last_update": "2024-04-26 15:03:13" + }, "https://github.com/kenjiqq/qq-nodes-comfyui": { - "stars": 20, + "stars": 21, "last_update": "2024-02-23 01:57:06" }, "https://github.com/80sVectorz/ComfyUI-Static-Primitives": { "stars": 9, "last_update": "2023-12-11 11:06:16" }, - "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": { - "stars": 157, - "last_update": "2023-12-12 12:23:04" - }, "https://github.com/zhuanqianfish/ComfyUI-EasyNode": { - "stars": 54, + "stars": 55, "last_update": "2024-04-04 00:20:08" }, + "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": { + "stars": 160, + "last_update": "2023-12-12 12:23:04" + }, "https://github.com/discopixel-studio/comfyui-discopixel": { "stars": 7, "last_update": "2023-11-30 02:45:49" }, - "https://github.com/zcfrank1st/Comfyui-Yolov8": { - "stars": 15, - "last_update": "2024-02-25 06:28:49" - }, "https://github.com/SoftMeng/ComfyUI_Mexx_Styler": { "stars": 15, "last_update": "2024-04-06 06:49:01" }, + "https://github.com/zcfrank1st/Comfyui-Yolov8": { + "stars": 15, + "last_update": "2024-02-25 06:28:49" + }, "https://github.com/SoftMeng/ComfyUI_Mexx_Poster": { "stars": 15, "last_update": "2023-12-05 09:44:42" }, - "https://github.com/wmatson/easy-comfy-nodes": { - "stars": 10, - "last_update": "2024-04-03 15:31:07" + "https://github.com/SoftMeng/ComfyUI_ImageToText": { + "stars": 3, + "last_update": "2024-04-07 07:27:14" }, "https://github.com/DrJKL/ComfyUI-Anchors": { "stars": 4, @@ -1387,6 +1443,10 @@ "stars": 3, "last_update": "2024-04-09 01:57:14" }, + "https://github.com/wmatson/easy-comfy-nodes": { + "stars": 10, + "last_update": "2024-05-15 23:10:21" + }, "https://github.com/WebDev9000/WebDev9000-Nodes": { "stars": 1, "last_update": "2023-12-01 02:23:18" @@ -1399,14 +1459,14 @@ "stars": 41, "last_update": "2024-05-08 04:00:04" }, - "https://github.com/Haoming02/comfyui-prompt-format": { - "stars": 27, - "last_update": "2023-12-11 13:44:03" - }, "https://github.com/Haoming02/comfyui-clear-screen": { "stars": 1, "last_update": "2023-12-12 08:16:28" }, + "https://github.com/Haoming02/comfyui-prompt-format": { + "stars": 28, + "last_update": "2023-12-11 13:44:03" + }, "https://github.com/Haoming02/comfyui-menu-anchor": { "stars": 3, "last_update": "2024-01-26 03:54:55" @@ -1419,38 +1479,38 @@ "stars": 24, "last_update": "2024-01-31 09:08:14" }, - "https://github.com/bedovyy/ComfyUI_NAIDGenerator": { - "stars": 16, - "last_update": "2024-03-13 09:36:48" - }, "https://github.com/Off-Live/ComfyUI-off-suite": { "stars": 0, "last_update": "2024-04-19 07:13:08" }, + "https://github.com/bedovyy/ComfyUI_NAIDGenerator": { + "stars": 16, + "last_update": "2024-03-13 09:36:48" + }, "https://github.com/ningxiaoxiao/comfyui-NDI": { - "stars": 33, + "stars": 34, "last_update": "2024-03-07 02:08:05" }, "https://github.com/subtleGradient/TinkerBot-tech-for-ComfyUI-Touchpad": { "stars": 13, "last_update": "2024-01-14 20:01:01" }, + "https://github.com/Electrofried/ComfyUI-OpenAINode": { + "stars": 17, + "last_update": "2023-12-05 21:34:23" + }, "https://github.com/zcfrank1st/comfyui_visual_anagrams": { "stars": 5, "last_update": "2023-12-05 12:31:26" }, - "https://github.com/Electrofried/ComfyUI-OpenAINode": { - "stars": 16, - "last_update": "2023-12-05 21:34:23" + "https://github.com/11cafe/comfyui-workspace-manager": { + "stars": 692, + "last_update": "2024-05-14 10:45:32" }, "https://github.com/AustinMroz/ComfyUI-SpliceTools": { "stars": 7, "last_update": "2024-04-21 07:59:14" }, - "https://github.com/11cafe/comfyui-workspace-manager": { - "stars": 674, - "last_update": "2024-05-10 07:35:30" - }, "https://github.com/knuknX/ComfyUI-Image-Tools": { "stars": 2, "last_update": "2024-01-01 03:30:49" @@ -1460,57 +1520,61 @@ "last_update": "2023-12-25 17:55:50" }, "https://github.com/filliptm/ComfyUI_Fill-Nodes": { - "stars": 40, - "last_update": "2024-05-07 15:15:45" + "stars": 43, + "last_update": "2024-05-15 05:55:41" }, "https://github.com/zfkun/ComfyUI_zfkun": { - "stars": 11, + "stars": 12, "last_update": "2024-01-21 06:21:35" }, "https://github.com/zcfrank1st/Comfyui-Toolbox": { - "stars": 2, + "stars": 3, "last_update": "2023-12-13 11:36:14" }, - "https://github.com/talesofai/comfyui-browser": { - "stars": 372, - "last_update": "2024-05-05 03:46:04" - }, "https://github.com/yolain/ComfyUI-Easy-Use": { - "stars": 375, - "last_update": "2024-05-10 18:14:57" + "stars": 385, + "last_update": "2024-05-16 04:52:09" + }, + "https://github.com/talesofai/comfyui-browser": { + "stars": 376, + "last_update": "2024-05-05 03:46:04" }, "https://github.com/bruefire/ComfyUI-SeqImageLoader": { "stars": 25, "last_update": "2024-04-06 18:12:44" }, + "https://github.com/aria1th/ComfyUI-LogicUtils": { + "stars": 14, + "last_update": "2024-05-13 00:25:11" + }, "https://github.com/modusCell/ComfyUI-dimension-node-modusCell": { "stars": 0, "last_update": "2023-12-13 21:01:18" }, - "https://github.com/aria1th/ComfyUI-LogicUtils": { - "stars": 14, - "last_update": "2023-12-24 09:07:07" - }, "https://github.com/MitoshiroPJ/comfyui_slothful_attention": { "stars": 5, "last_update": "2023-12-16 09:10:38" }, "https://github.com/brianfitzgerald/style_aligned_comfy": { - "stars": 232, + "stars": 235, "last_update": "2024-03-12 03:42:07" }, "https://github.com/deroberon/demofusion-comfyui": { "stars": 80, "last_update": "2023-12-19 22:54:02" }, - "https://github.com/deroberon/StableZero123-comfyui": { - "stars": 124, - "last_update": "2024-01-15 10:38:27" - }, "https://github.com/glifxyz/ComfyUI-GlifNodes": { "stars": 6, "last_update": "2024-04-16 16:27:56" }, + "https://github.com/deroberon/StableZero123-comfyui": { + "stars": 126, + "last_update": "2024-01-15 10:38:27" + }, + "https://github.com/aegis72/comfyui-styles-all": { + "stars": 24, + "last_update": "2024-04-18 04:30:06" + }, "https://github.com/concarne000/ConCarneNode": { "stars": 4, "last_update": "2024-04-02 23:10:42" @@ -1519,66 +1583,74 @@ "stars": 21, "last_update": "2024-03-06 14:04:56" }, - "https://github.com/aegis72/comfyui-styles-all": { - "stars": 24, - "last_update": "2024-04-18 04:30:06" - }, "https://github.com/glibsonoran/Plush-for-ComfyUI": { "stars": 94, - "last_update": "2024-04-29 21:57:49" + "last_update": "2024-05-14 23:39:31" }, "https://github.com/vienteck/ComfyUI-Chat-GPT-Integration": { - "stars": 24, + "stars": 26, "last_update": "2024-04-10 23:47:22" }, - "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": { - "stars": 17, - "last_update": "2024-05-02 11:13:16" - }, "https://github.com/AI2lab/comfyUI-tool-2lab": { - "stars": 3, + "stars": 4, "last_update": "2024-04-24 09:16:07" }, + "https://github.com/AI2lab/comfyUI-DeepSeek-2lab": { + "stars": 1, + "last_update": "2024-05-10 01:53:54" + }, + "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": { + "stars": 18, + "last_update": "2024-05-02 11:13:16" + }, "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid": { "stars": 6, "last_update": "2023-12-15 21:07:36" }, "https://github.com/NimaNzrii/comfyui-popup_preview": { - "stars": 31, + "stars": 33, "last_update": "2024-01-07 12:21:43" }, "https://github.com/NimaNzrii/comfyui-photoshop": { - "stars": 78, - "last_update": "2024-05-10 16:25:14" + "stars": 110, + "last_update": "2024-05-15 12:39:20" + }, + "https://github.com/dmarx/ComfyUI-Keyframed": { + "stars": 74, + "last_update": "2023-12-30 00:37:20" }, "https://github.com/rui40000/RUI-Nodes": { "stars": 13, "last_update": "2023-12-15 07:37:43" }, - "https://github.com/dmarx/ComfyUI-Keyframed": { - "stars": 73, - "last_update": "2023-12-30 00:37:20" - }, "https://github.com/dmarx/ComfyUI-AudioReactive": { "stars": 10, "last_update": "2024-01-03 08:27:32" }, + "https://github.com/BennyKok/comfyui-deploy": { + "stars": 602, + "last_update": "2024-05-11 06:50:53" + }, "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": { - "stars": 15, + "stars": 16, "last_update": "2023-12-16 19:21:57" }, - "https://github.com/BennyKok/comfyui-deploy": { - "stars": 590, - "last_update": "2024-05-10 04:08:40" + "https://github.com/florestefano1975/comfyui-prompt-composer": { + "stars": 199, + "last_update": "2024-04-18 16:19:36" + }, + "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": { + "stars": 2, + "last_update": "2024-04-21 07:34:21" + }, + "https://github.com/florestefano1975/ComfyUI-HiDiffusion": { + "stars": 114, + "last_update": "2024-05-04 14:01:06" }, "https://github.com/florestefano1975/comfyui-portrait-master": { - "stars": 692, + "stars": 701, "last_update": "2024-05-02 10:01:11" }, - "https://github.com/florestefano1975/comfyui-prompt-composer": { - "stars": 197, - "last_update": "2024-04-18 16:19:36" - }, "https://github.com/mozman/ComfyUI_mozman_nodes": { "stars": 0, "last_update": "2023-12-18 06:07:50" @@ -1596,25 +1668,21 @@ "last_update": "2024-04-15 15:09:48" }, "https://github.com/violet-chen/comfyui-psd2png": { - "stars": 7, - "last_update": "2024-01-18 05:00:49" - }, - "https://github.com/lldacing/comfyui-easyapi-nodes": { - "stars": 21, - "last_update": "2024-05-07 10:11:16" + "stars": 8, + "last_update": "2024-05-13 04:37:13" }, "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": { - "stars": 59, + "stars": 66, "last_update": "2024-05-01 08:26:32" }, + "https://github.com/lldacing/comfyui-easyapi-nodes": { + "stars": 22, + "last_update": "2024-05-07 10:11:16" + }, "https://github.com/RenderRift/ComfyUI-RenderRiftNodes": { "stars": 6, "last_update": "2023-12-31 11:14:29" }, - "https://github.com/OpenArt-AI/ComfyUI-Assistant": { - "stars": 12, - "last_update": "2024-01-24 21:44:12" - }, "https://github.com/ttulttul/ComfyUI-Iterative-Mixer": { "stars": 94, "last_update": "2024-04-09 00:15:26" @@ -1623,22 +1691,26 @@ "stars": 4, "last_update": "2024-02-07 21:22:45" }, + "https://github.com/OpenArt-AI/ComfyUI-Assistant": { + "stars": 12, + "last_update": "2024-01-24 21:44:12" + }, "https://github.com/jitcoder/lora-info": { "stars": 27, "last_update": "2024-04-30 17:19:25" }, "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner": { - "stars": 64, + "stars": 66, "last_update": "2024-03-04 10:07:53" }, - "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale": { - "stars": 23, - "last_update": "2024-05-03 02:53:03" - }, "https://github.com/styler00dollar/ComfyUI-deepcache": { "stars": 6, "last_update": "2023-12-26 17:53:44" }, + "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale": { + "stars": 23, + "last_update": "2024-05-03 02:53:03" + }, "https://github.com/NotHarroweD/Harronode": { "stars": 5, "last_update": "2023-12-31 06:00:14" @@ -1651,18 +1723,18 @@ "stars": 98, "last_update": "2024-03-08 11:07:01" }, + "https://github.com/pkpkTech/ComfyUI-ngrok": { + "stars": 2, + "last_update": "2024-01-23 18:52:25" + }, + "https://github.com/pkpkTech/ComfyUI-SaveAVIF": { + "stars": 0, + "last_update": "2023-12-27 01:33:08" + }, "https://github.com/edenartlab/eden_comfy_pipelines": { "stars": 32, "last_update": "2024-05-09 12:52:18" }, - "https://github.com/pkpkTech/ComfyUI-SaveAVIF": { - "stars": 1, - "last_update": "2023-12-27 01:33:08" - }, - "https://github.com/pkpkTech/ComfyUI-ngrok": { - "stars": 1, - "last_update": "2024-01-23 18:52:25" - }, "https://github.com/pkpkTech/ComfyUI-TemporaryLoader": { "stars": 1, "last_update": "2024-02-10 20:52:21" @@ -1672,96 +1744,116 @@ "last_update": "2024-02-17 14:26:26" }, "https://github.com/crystian/ComfyUI-Crystools": { - "stars": 388, + "stars": 403, "last_update": "2024-05-04 01:51:37" }, "https://github.com/crystian/ComfyUI-Crystools-save": { - "stars": 22, + "stars": 24, "last_update": "2024-01-28 14:37:54" }, + "https://github.com/54rt1n/ComfyUI-DareMerge": { + "stars": 32, + "last_update": "2024-01-29 23:23:01" + }, "https://github.com/Kangkang625/ComfyUI-paint-by-example": { "stars": 13, "last_update": "2024-01-29 02:37:38" }, - "https://github.com/54rt1n/ComfyUI-DareMerge": { - "stars": 31, - "last_update": "2024-01-29 23:23:01" - }, "https://github.com/an90ray/ComfyUI_RErouter_CustomNodes": { "stars": 0, "last_update": "2023-12-30 01:42:04" }, - "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": { - "stars": 96, - "last_update": "2023-12-29 09:41:48" - }, "https://github.com/ai-liam/comfyui_liam_util": { "stars": 2, "last_update": "2023-12-29 04:44:00" }, - "https://github.com/Ryuukeisyou/comfyui_face_parsing": { - "stars": 28, - "last_update": "2024-02-17 11:00:34" - }, "https://github.com/tocubed/ComfyUI-AudioReactor": { - "stars": 6, + "stars": 8, "last_update": "2024-01-02 07:51:03" }, - "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": { - "stars": 19, - "last_update": "2024-01-05 03:38:18" + "https://github.com/Ryuukeisyou/comfyui_face_parsing": { + "stars": 30, + "last_update": "2024-02-17 11:00:34" + }, + "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": { + "stars": 96, + "last_update": "2023-12-29 09:41:48" }, "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio": { "stars": 1, "last_update": "2024-01-02 04:07:20" }, - "https://github.com/ownimage/ComfyUI-ownimage": { - "stars": 0, - "last_update": "2024-01-01 16:36:42" + "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": { + "stars": 20, + "last_update": "2024-01-05 03:38:18" }, "https://github.com/Millyarde/Pomfy": { "stars": 7, "last_update": "2024-01-13 08:01:42" }, + "https://github.com/ownimage/ComfyUI-ownimage": { + "stars": 0, + "last_update": "2024-01-01 16:36:42" + }, "https://github.com/Ryuukeisyou/comfyui_io_helpers": { "stars": 0, "last_update": "2024-03-04 13:20:38" }, "https://github.com/flowtyone/ComfyUI-Flowty-LDSR": { - "stars": 150, + "stars": 151, "last_update": "2024-03-24 19:03:45" }, - "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": { - "stars": 325, - "last_update": "2024-03-19 10:49:59" - }, "https://github.com/flowtyone/ComfyUI-Flowty-CRM": { "stars": 112, "last_update": "2024-04-03 23:47:03" }, + "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": { + "stars": 330, + "last_update": "2024-03-19 10:49:59" + }, + "https://github.com/siliconflow/onediff_comfy_nodes": { + "stars": 10, + "last_update": "2024-05-10 06:59:23" + }, + "https://github.com/hinablue/ComfyUI_3dPoseEditor": { + "stars": 101, + "last_update": "2024-01-04 14:41:18" + }, "https://github.com/massao000/ComfyUI_aspect_ratios": { "stars": 3, "last_update": "2024-01-05 09:36:52" }, - "https://github.com/siliconflow/onediff_comfy_nodes": { - "stars": 9, - "last_update": "2024-05-10 06:59:23" + "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper": { + "stars": 11, + "last_update": "2024-04-19 03:46:18" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": { - "stars": 298, + "stars": 301, "last_update": "2024-05-07 05:13:49" }, - "https://github.com/hinablue/ComfyUI_3dPoseEditor": { - "stars": 95, - "last_update": "2024-01-04 14:41:18" + "https://github.com/chaojie/ComfyUI-EasyAnimate": { + "stars": 34, + "last_update": "2024-04-16 14:45:13" + }, + "https://github.com/chaojie/ComfyUI_StreamingT2V": { + "stars": 22, + "last_update": "2024-05-10 09:14:57" + }, + "https://github.com/chaojie/ComfyUI-Open-Sora-Plan": { + "stars": 46, + "last_update": "2024-04-23 08:01:58" + }, + "https://github.com/chaojie/ComfyUI-MuseTalk": { + "stars": 92, + "last_update": "2024-04-05 15:26:14" }, "https://github.com/chaojie/ComfyUI-AniPortrait": { - "stars": 218, + "stars": 220, "last_update": "2024-04-02 03:06:43" }, - "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": { - "stars": 35, - "last_update": "2024-03-27 01:10:14" + "https://github.com/chaojie/ComfyUI-MuseV": { + "stars": 106, + "last_update": "2024-04-04 02:07:29" }, "https://github.com/chaojie/ComfyUI-Champ": { "stars": 17, @@ -1771,6 +1863,10 @@ "stars": 79, "last_update": "2024-03-26 05:54:18" }, + "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": { + "stars": 36, + "last_update": "2024-03-27 01:10:14" + }, "https://github.com/chaojie/ComfyUI-Trajectory": { "stars": 5, "last_update": "2024-03-14 14:41:18" @@ -1784,7 +1880,7 @@ "last_update": "2024-02-24 10:02:51" }, "https://github.com/chaojie/ComfyUI-DynamiCrafter": { - "stars": 91, + "stars": 95, "last_update": "2024-03-16 19:08:28" }, "https://github.com/chaojie/ComfyUI-Panda3d": { @@ -1795,110 +1891,122 @@ "stars": 16, "last_update": "2024-01-31 15:36:36" }, - "https://github.com/chaojie/ComfyUI-MotionCtrl": { - "stars": 120, - "last_update": "2024-01-08 14:18:40" - }, "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor": { "stars": 0, "last_update": "2024-01-20 16:51:06" }, + "https://github.com/chaojie/ComfyUI-MotionCtrl": { + "stars": 120, + "last_update": "2024-01-08 14:18:40" + }, "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD": { "stars": 76, "last_update": "2024-01-16 09:41:07" }, "https://github.com/chaojie/ComfyUI-DragAnything": { "stars": 60, - "last_update": "2024-03-19 03:37:48" - }, - "https://github.com/chaojie/ComfyUI-DragNUWA": { - "stars": 347, - "last_update": "2024-03-14 06:56:41" + "last_update": "2024-05-16 07:13:53" }, "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone": { "stars": 196, "last_update": "2024-02-24 13:48:57" }, + "https://github.com/chaojie/ComfyUI-DragNUWA": { + "stars": 348, + "last_update": "2024-03-14 06:56:41" + }, "https://github.com/chaojie/ComfyUI-I2VGEN-XL": { "stars": 27, "last_update": "2024-01-19 09:02:08" }, - "https://github.com/chaojie/ComfyUI-LightGlue": { - "stars": 48, - "last_update": "2024-01-20 16:53:51" - }, "https://github.com/chaojie/ComfyUI-RAFT": { "stars": 23, "last_update": "2024-01-29 08:08:13" }, + "https://github.com/chaojie/ComfyUI-SimDA": { + "stars": 13, + "last_update": "2024-04-25 03:38:51" + }, + "https://github.com/chaojie/ComfyUI-LightGlue": { + "stars": 48, + "last_update": "2024-01-20 16:53:51" + }, + "https://github.com/chaojie/ComfyUI-LaVIT": { + "stars": 8, + "last_update": "2024-04-24 13:41:02" + }, + "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention": { + "stars": 17, + "last_update": "2024-05-08 00:59:14" + }, + "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": { + "stars": 411, + "last_update": "2024-02-02 14:19:37" + }, "https://github.com/alexopus/ComfyUI-Image-Saver": { - "stars": 20, + "stars": 21, "last_update": "2024-05-10 19:30:59" }, + "https://github.com/MrForExample/ComfyUI-3D-Pack": { + "stars": 1468, + "last_update": "2024-04-13 17:45:06" + }, "https://github.com/kft334/Knodes": { "stars": 2, "last_update": "2024-01-14 04:23:09" }, - "https://github.com/MrForExample/ComfyUI-3D-Pack": { - "stars": 1450, - "last_update": "2024-04-13 17:45:06" - }, - "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": { - "stars": 408, - "last_update": "2024-02-02 14:19:37" - }, - "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": { - "stars": 25, - "last_update": "2024-04-06 11:02:44" - }, "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": { "stars": 33, "last_update": "2024-05-07 15:00:31" }, + "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": { + "stars": 26, + "last_update": "2024-04-06 11:02:44" + }, + "https://github.com/tzwm/comfyui-profiler": { + "stars": 34, + "last_update": "2024-01-12 07:38:40" + }, "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": { "stars": 11, "last_update": "2024-04-04 11:58:20" }, - "https://github.com/tzwm/comfyui-profiler": { - "stars": 33, - "last_update": "2024-01-12 07:38:40" - }, "https://github.com/daniel-lewis-ab/ComfyUI-Llama": { "stars": 23, "last_update": "2024-04-02 06:33:08" }, + "https://github.com/djbielejeski/a-person-mask-generator": { + "stars": 199, + "last_update": "2024-02-16 16:26:02" + }, "https://github.com/daniel-lewis-ab/ComfyUI-TTS": { "stars": 11, "last_update": "2024-04-02 06:32:21" }, - "https://github.com/djbielejeski/a-person-mask-generator": { - "stars": 197, - "last_update": "2024-02-16 16:26:02" - }, - "https://github.com/smagnetize/kb-comfyui-nodes": { - "stars": 0, - "last_update": "2024-01-06 17:04:40" - }, "https://github.com/ginlov/segment_to_mask_comfyui": { "stars": 1, "last_update": "2024-01-07 14:03:21" }, + "https://github.com/AInseven/ComfyUI-fastblend": { + "stars": 87, + "last_update": "2024-04-03 11:50:44" + }, "https://github.com/glowcone/comfyui-base64-to-image": { "stars": 5, "last_update": "2024-01-09 08:33:02" }, - "https://github.com/AInseven/ComfyUI-fastblend": { - "stars": 86, - "last_update": "2024-04-03 11:50:44" - }, - "https://github.com/HebelHuber/comfyui-enhanced-save-node": { + "https://github.com/smagnetize/kb-comfyui-nodes": { "stars": 0, - "last_update": "2024-01-12 14:34:55" + "last_update": "2024-01-06 17:04:40" }, "https://github.com/LarryJane491/Lora-Training-in-Comfy": { - "stars": 199, + "stars": 204, "last_update": "2024-03-03 17:16:51" }, + "https://github.com/HebelHuber/comfyui-enhanced-save-node": { + "stars": 1, + "last_update": "2024-01-12 14:34:55" + }, "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": { "stars": 21, "last_update": "2024-03-08 19:59:00" @@ -1907,10 +2015,6 @@ "stars": 43, "last_update": "2024-01-13 04:58:58" }, - "https://github.com/Taremin/comfyui-prompt-extranetworks": { - "stars": 2, - "last_update": "2024-01-27 05:51:35" - }, "https://github.com/Taremin/comfyui-string-tools": { "stars": 1, "last_update": "2024-02-16 16:28:32" @@ -1919,21 +2023,21 @@ "stars": 24, "last_update": "2024-01-21 06:45:42" }, - "https://github.com/foxtrot-roger/comfyui-rf-nodes": { - "stars": 1, - "last_update": "2024-01-26 16:40:43" + "https://github.com/Taremin/comfyui-prompt-extranetworks": { + "stars": 2, + "last_update": "2024-01-27 05:51:35" }, "https://github.com/abyz22/image_control": { "stars": 2, - "last_update": "2024-02-18 23:17:53" + "last_update": "2024-05-14 02:30:47" }, "https://github.com/HAL41/ComfyUI-aichemy-nodes": { "stars": 4, "last_update": "2024-01-15 22:25:46" }, - "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": { - "stars": 3, - "last_update": "2024-04-29 07:53:22" + "https://github.com/foxtrot-roger/comfyui-rf-nodes": { + "stars": 1, + "last_update": "2024-01-26 16:40:43" }, "https://github.com/nkchocoai/ComfyUI-PromptUtilities": { "stars": 6, @@ -1943,17 +2047,21 @@ "stars": 4, "last_update": "2024-02-12 06:05:47" }, + "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": { + "stars": 4, + "last_update": "2024-04-29 07:53:22" + }, "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": { - "stars": 2, + "stars": 3, "last_update": "2024-04-16 13:28:45" }, "https://github.com/nkchocoai/ComfyUI-Dart": { "stars": 15, - "last_update": "2024-05-10 12:02:13" + "last_update": "2024-05-15 08:36:22" }, "https://github.com/JaredTherriault/ComfyUI-JNodes": { "stars": 7, - "last_update": "2024-05-08 03:39:42" + "last_update": "2024-05-13 00:54:32" }, "https://github.com/prozacgod/comfyui-pzc-multiworkspace": { "stars": 6, @@ -1963,6 +2071,10 @@ "stars": 17, "last_update": "2024-03-30 05:31:25" }, + "https://github.com/Miosp/ComfyUI-FBCNN": { + "stars": 3, + "last_update": "2024-01-19 21:30:27" + }, "https://github.com/dave-palt/comfyui_DSP_imagehelpers": { "stars": 0, "last_update": "2024-01-18 04:59:26" @@ -1971,12 +2083,8 @@ "stars": 6, "last_update": "2024-05-01 07:07:42" }, - "https://github.com/Miosp/ComfyUI-FBCNN": { - "stars": 3, - "last_update": "2024-01-19 21:30:27" - }, "https://github.com/JcandZero/ComfyUI_GLM4Node": { - "stars": 22, + "stars": 23, "last_update": "2024-02-21 01:48:08" }, "https://github.com/darkpixel/darkprompts": { @@ -1984,36 +2092,40 @@ "last_update": "2024-04-15 16:40:05" }, "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": { - "stars": 135, + "stars": 136, "last_update": "2024-04-17 09:02:51" }, - "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": { - "stars": 2, - "last_update": "2024-01-22 10:39:27" - }, - "https://github.com/longgui0318/comfyui-mask-util": { - "stars": 4, - "last_update": "2024-04-25 17:36:58" - }, "https://github.com/longgui0318/comfyui-llm-assistant": { "stars": 5, "last_update": "2024-05-06 01:34:45" }, - "https://github.com/longgui0318/comfyui-oms-diffusion": { - "stars": 15, + "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock": { + "stars": 4, + "last_update": "2024-05-13 10:47:47" + }, + "https://github.com/longgui0318/comfyui-mask-util": { + "stars": 4, + "last_update": "2024-04-25 17:36:58" + }, + "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": { + "stars": 2, + "last_update": "2024-01-22 10:39:27" + }, + "https://github.com/longgui0318/comfyui-magic-clothing": { + "stars": 16, "last_update": "2024-04-28 03:29:42" }, - "https://github.com/DimaChaichan/LAizypainter-Exporter-ComfyUI": { - "stars": 7, - "last_update": "2024-02-08 13:57:21" + "https://github.com/Shraknard/ComfyUI-Remover": { + "stars": 4, + "last_update": "2024-01-23 23:14:23" }, "https://github.com/adriflex/ComfyUI_Blender_Texdiff": { "stars": 1, "last_update": "2024-01-26 10:25:05" }, - "https://github.com/Shraknard/ComfyUI-Remover": { - "stars": 4, - "last_update": "2024-01-23 23:14:23" + "https://github.com/DimaChaichan/LAizypainter-Exporter-ComfyUI": { + "stars": 7, + "last_update": "2024-02-08 13:57:21" }, "https://github.com/FlyingFireCo/tiled_ksampler": { "stars": 56, @@ -2027,64 +2139,92 @@ "stars": 0, "last_update": "2024-01-26 06:28:40" }, - "https://github.com/gokayfem/ComfyUI_VLM_nodes": { - "stars": 210, - "last_update": "2024-05-10 13:36:20" + "https://github.com/longgui0318/comfyui-oms-diffusion": { + "stars": 16, + "last_update": "2024-04-28 03:29:42" }, "https://github.com/gokayfem/ComfyUI-Dream-Interpreter": { - "stars": 60, + "stars": 61, "last_update": "2024-04-03 23:51:44" }, - "https://github.com/gokayfem/ComfyUI-Depth-Visualization": { - "stars": 45, - "last_update": "2024-03-24 04:03:08" + "https://github.com/gokayfem/ComfyUI_VLM_nodes": { + "stars": 219, + "last_update": "2024-05-10 13:36:20" }, "https://github.com/gokayfem/ComfyUI-Texture-Simple": { "stars": 28, "last_update": "2024-03-24 22:20:21" }, + "https://github.com/gokayfem/ComfyUI-Depth-Visualization": { + "stars": 45, + "last_update": "2024-03-24 04:03:08" + }, "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": { - "stars": 2, - "last_update": "2024-04-04 05:12:57" + "stars": 4, + "last_update": "2024-05-16 05:34:54" + }, + "https://github.com/yuvraj108c/ComfyUI-Whisper": { + "stars": 39, + "last_update": "2024-02-05 08:32:57" + }, + "https://github.com/yuvraj108c/ComfyUI-Pronodes": { + "stars": 0, + "last_update": "2024-03-22 18:22:13" }, "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": { "stars": 1, "last_update": "2024-01-26 08:38:39" }, - "https://github.com/yuvraj108c/ComfyUI-Whisper": { - "stars": 37, - "last_update": "2024-02-05 08:32:57" + "https://github.com/yuvraj108c/ComfyUI-Vsgan": { + "stars": 2, + "last_update": "2024-03-08 10:11:28" + }, + "https://github.com/yuvraj108c/ComfyUI-PiperTTS": { + "stars": 24, + "last_update": "2024-04-06 17:16:28" + }, + "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": { + "stars": 46, + "last_update": "2024-05-08 05:12:25" + }, + "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt": { + "stars": 22, + "last_update": "2024-05-08 08:18:54" }, "https://github.com/blepping/ComfyUI-bleh": { - "stars": 27, - "last_update": "2024-05-07 19:26:33" + "stars": 29, + "last_update": "2024-05-15 00:44:35" }, "https://github.com/blepping/ComfyUI-sonar": { - "stars": 25, - "last_update": "2024-05-10 05:06:38" + "stars": 27, + "last_update": "2024-05-15 00:00:35" }, - "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": { - "stars": 2, - "last_update": "2024-02-14 20:36:01" + "https://github.com/blepping/comfyui_jankhidiffusion": { + "stars": 65, + "last_update": "2024-05-10 04:18:47" }, "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": { "stars": 0, "last_update": "2024-01-27 15:25:00" }, + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": { + "stars": 2, + "last_update": "2024-02-14 20:36:01" + }, "https://github.com/mape/ComfyUI-mape-Helpers": { "stars": 102, "last_update": "2024-02-07 16:58:47" }, "https://github.com/zhongpei/Comfyui_image2prompt": { - "stars": 193, - "last_update": "2024-04-29 02:19:11" + "stars": 198, + "last_update": "2024-05-14 07:18:53" }, "https://github.com/zhongpei/ComfyUI-InstructIR": { "stars": 56, "last_update": "2024-02-01 06:40:40" }, "https://github.com/Loewen-Hob/rembg-comfyui-node-better": { - "stars": 25, + "stars": 26, "last_update": "2024-01-29 16:03:36" }, "https://github.com/HaydenReeve/ComfyUI-Better-Strings": { @@ -2092,88 +2232,92 @@ "last_update": "2024-04-04 17:27:11" }, "https://github.com/StartHua/ComfyUI_Seg_VITON": { - "stars": 150, + "stars": 153, "last_update": "2024-05-04 14:01:04" }, + "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": { + "stars": 86, + "last_update": "2024-03-04 09:33:57" + }, "https://github.com/StartHua/Comfyui_joytag": { - "stars": 9, + "stars": 12, "last_update": "2024-02-12 04:13:41" }, "https://github.com/StartHua/Comfyui_segformer_b2_clothes": { - "stars": 27, + "stars": 28, "last_update": "2024-04-30 09:42:27" }, - "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": { - "stars": 84, - "last_update": "2024-03-04 09:33:57" - }, - "https://github.com/ricklove/comfyui-ricklove": { - "stars": 0, - "last_update": "2024-02-01 02:50:59" - }, "https://github.com/nosiu/comfyui-instantId-faceswap": { "stars": 153, "last_update": "2024-02-25 13:58:50" }, + "https://github.com/ricklove/comfyui-ricklove": { + "stars": 0, + "last_update": "2024-02-01 02:50:59" + }, + "https://github.com/Chan-0312/ComfyUI-IPAnimate": { + "stars": 59, + "last_update": "2024-02-01 09:17:58" + }, "https://github.com/LyazS/comfyui-anime-seg": { "stars": 4, "last_update": "2024-04-16 08:27:12" }, - "https://github.com/Chan-0312/ComfyUI-IPAnimate": { - "stars": 58, - "last_update": "2024-02-01 09:17:58" - }, "https://github.com/Chan-0312/ComfyUI-EasyDeforum": { - "stars": 6, + "stars": 7, "last_update": "2024-03-14 02:14:56" }, "https://github.com/trumanwong/ComfyUI-NSFW-Detection": { "stars": 10, "last_update": "2024-02-04 08:49:11" }, + "https://github.com/davask/ComfyUI_MaraScott_Nodes": { + "stars": 38, + "last_update": "2024-05-16 11:58:52" + }, + "https://github.com/dfl/comfyui-clip-with-break": { + "stars": 8, + "last_update": "2024-02-05 17:48:33" + }, "https://github.com/TemryL/ComfyS3": { - "stars": 11, + "stars": 12, "last_update": "2024-02-08 16:59:15" }, "https://github.com/yffyhk/comfyui_auto_danbooru": { "stars": 0, "last_update": "2024-02-04 08:09:57" }, - "https://github.com/dfl/comfyui-clip-with-break": { - "stars": 7, - "last_update": "2024-02-05 17:48:33" - }, "https://github.com/dfl/comfyui-tcd-scheduler": { - "stars": 71, + "stars": 73, "last_update": "2024-04-08 20:15:29" }, - "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": { - "stars": 11, - "last_update": "2024-04-20 07:29:00" - }, "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": { "stars": 8, "last_update": "2024-03-06 22:34:12" }, - "https://github.com/bilal-arikan/ComfyUI_TextAssets": { - "stars": 2, - "last_update": "2024-02-06 00:30:11" - }, "https://github.com/kadirnar/ComfyUI-Transformers": { "stars": 14, "last_update": "2024-02-06 15:43:43" }, + "https://github.com/bilal-arikan/ComfyUI_TextAssets": { + "stars": 2, + "last_update": "2024-02-06 00:30:11" + }, "https://github.com/digitaljohn/comfyui-propost": { - "stars": 96, + "stars": 95, "last_update": "2024-02-11 10:08:19" }, + "https://github.com/XmYx/deforum-comfy-nodes": { + "stars": 92, + "last_update": "2024-04-11 00:45:00" + }, "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes": { "stars": 0, "last_update": "2024-02-25 12:35:13" }, - "https://github.com/XmYx/deforum-comfy-nodes": { - "stars": 90, - "last_update": "2024-04-11 00:45:00" + "https://github.com/Billius-AI/ComfyUI-Path-Helper": { + "stars": 12, + "last_update": "2024-02-26 10:48:42" }, "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": { "stars": 4, @@ -2183,10 +2327,6 @@ "stars": 8, "last_update": "2024-02-11 00:03:26" }, - "https://github.com/Billius-AI/ComfyUI-Path-Helper": { - "stars": 11, - "last_update": "2024-02-26 10:48:42" - }, "https://github.com/Franck-Demongin/NX_PromptStyler": { "stars": 4, "last_update": "2024-02-19 10:14:56" @@ -2200,24 +2340,20 @@ "last_update": "2024-03-08 15:16:10" }, "https://github.com/redhottensors/ComfyUI-Prediction": { - "stars": 8, - "last_update": "2024-04-06 02:11:59" + "stars": 9, + "last_update": "2024-05-13 19:58:16" }, "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": { "stars": 11, "last_update": "2024-04-02 12:00:48" }, "https://github.com/jordoh/ComfyUI-Deepface": { - "stars": 9, + "stars": 10, "last_update": "2024-03-23 14:37:34" }, - "https://github.com/yuvraj108c/ComfyUI-Pronodes": { - "stars": 0, - "last_update": "2024-03-22 18:22:13" - }, - "https://github.com/yuvraj108c/ComfyUI-Vsgan": { - "stars": 2, - "last_update": "2024-03-08 10:11:28" + "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": { + "stars": 1, + "last_update": "2024-04-06 16:48:55" }, "https://github.com/mirabarukaso/ComfyUI_Mira": { "stars": 14, @@ -2231,22 +2367,22 @@ "stars": 7, "last_update": "2024-04-05 05:11:51" }, - "https://github.com/klinter007/klinter_nodes": { - "stars": 3, - "last_update": "2024-05-02 14:41:48" - }, "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": { - "stars": 12, + "stars": 11, "last_update": "2024-03-26 01:28:07" }, - "https://github.com/logtd/ComfyUI-InstanceDiffusion": { - "stars": 75, - "last_update": "2024-05-06 22:03:06" + "https://github.com/klinter007/klinter_nodes": { + "stars": 4, + "last_update": "2024-05-02 14:41:48" }, "https://github.com/logtd/ComfyUI-TrackingNodes": { - "stars": 11, + "stars": 14, "last_update": "2024-02-24 04:43:16" }, + "https://github.com/logtd/ComfyUI-InstanceDiffusion": { + "stars": 94, + "last_update": "2024-05-14 23:34:43" + }, "https://github.com/logtd/ComfyUI-InversedNoise": { "stars": 5, "last_update": "2024-03-31 19:11:53" @@ -2259,9 +2395,13 @@ "stars": 56, "last_update": "2024-04-10 01:46:26" }, - "https://github.com/Big-Idea-Technology/ComfyUI_Image_Text_Overlay": { - "stars": 5, - "last_update": "2024-04-19 14:21:28" + "https://github.com/logtd/ComfyUI-RAVE_ATTN": { + "stars": 9, + "last_update": "2024-04-10 22:20:21" + }, + "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": { + "stars": 11, + "last_update": "2024-04-26 07:53:44" }, "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": { "stars": 44, @@ -2272,21 +2412,21 @@ "last_update": "2024-02-26 09:37:16" }, "https://github.com/AuroBit/ComfyUI-OOTDiffusion": { - "stars": 303, + "stars": 306, "last_update": "2024-03-26 02:44:57" }, "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": { "stars": 34, "last_update": "2024-02-29 10:19:36" }, - "https://github.com/czcz1024/Comfyui-FaceCompare": { - "stars": 0, - "last_update": "2024-02-23 09:08:32" - }, "https://github.com/TheBill2001/comfyui-upscale-by-model": { "stars": 0, "last_update": "2024-02-24 00:49:19" }, + "https://github.com/czcz1024/Comfyui-FaceCompare": { + "stars": 0, + "last_update": "2024-02-23 09:08:32" + }, "https://github.com/leoleelxh/ComfyUI-LLMs": { "stars": 6, "last_update": "2024-03-07 07:34:10" @@ -2295,25 +2435,25 @@ "stars": 6, "last_update": "2024-02-24 21:41:24" }, - "https://github.com/jkrauss82/ultools-comfyui": { - "stars": 4, - "last_update": "2024-03-31 08:27:34" - }, "https://github.com/hiforce/comfyui-hiforce-plugin": { "stars": 2, "last_update": "2024-02-29 09:35:31" }, - "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": { - "stars": 15, - "last_update": "2024-05-05 09:22:26" + "https://github.com/jkrauss82/ultools-comfyui": { + "stars": 4, + "last_update": "2024-03-31 08:27:34" + }, + "https://github.com/cerspense/ComfyUI_cspnodes": { + "stars": 24, + "last_update": "2024-05-15 05:27:11" }, "https://github.com/guill/abracadabra-comfyui": { "stars": 1, "last_update": "2024-02-26 04:25:21" }, - "https://github.com/cerspense/ComfyUI_cspnodes": { - "stars": 24, - "last_update": "2024-05-05 04:56:48" + "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": { + "stars": 15, + "last_update": "2024-05-05 09:22:26" }, "https://github.com/qwixiwp/queuetools": { "stars": 0, @@ -2331,41 +2471,49 @@ "stars": 2, "last_update": "2024-03-02 05:43:41" }, - "https://github.com/Alysondao/Comfyui-Yolov8-JSON": { - "stars": 9, - "last_update": "2024-04-16 08:29:55" - }, "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": { "stars": 7, "last_update": "2024-02-27 23:31:45" }, - "https://github.com/maracman/ComfyUI-SubjectStyle-CSV": { - "stars": 3, - "last_update": "2024-02-29 19:40:01" + "https://github.com/huchenlei/ComfyUI-layerdiffuse": { + "stars": 1173, + "last_update": "2024-03-09 21:16:31" }, "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": { "stars": 15, "last_update": "2024-05-09 08:47:13" }, - "https://github.com/uetuluk/comfyui-webcam-node": { - "stars": 1, - "last_update": "2024-03-01 07:25:27" + "https://github.com/maracman/ComfyUI-SubjectStyle-CSV": { + "stars": 3, + "last_update": "2024-02-29 19:40:01" }, - "https://github.com/huchenlei/ComfyUI-layerdiffuse": { - "stars": 1144, - "last_update": "2024-03-09 21:16:31" + "https://github.com/uetuluk/comfyui-webcam-node": { + "stars": 2, + "last_update": "2024-05-12 05:52:44" }, "https://github.com/huchenlei/ComfyUI_DanTagGen": { "stars": 48, "last_update": "2024-04-28 15:36:22" }, + "https://github.com/huchenlei/ComfyUI-openpose-editor": { + "stars": 8, + "last_update": "2024-04-25 22:45:00" + }, + "https://github.com/huchenlei/ComfyUI-IC-Light-Native": { + "stars": 261, + "last_update": "2024-05-14 14:31:12" + }, "https://github.com/nathannlu/ComfyUI-Pets": { "stars": 33, "last_update": "2024-03-31 23:55:42" }, + "https://github.com/Alysondao/Comfyui-Yolov8-JSON": { + "stars": 9, + "last_update": "2024-04-16 08:29:55" + }, "https://github.com/nathannlu/ComfyUI-Cloud": { - "stars": 118, - "last_update": "2024-04-03 00:59:21" + "stars": 120, + "last_update": "2024-05-16 07:46:31" }, "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": { "stars": 10, @@ -2379,18 +2527,18 @@ "stars": 0, "last_update": "2024-03-07 07:35:43" }, + "https://github.com/meshmesh-io/mm-comfyui-megamask": { + "stars": 0, + "last_update": "2024-03-07 23:59:12" + }, "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": { "stars": 13, "last_update": "2024-04-18 18:49:15" }, "https://github.com/atmaranto/ComfyUI-SaveAsScript": { - "stars": 18, + "stars": 21, "last_update": "2024-05-04 11:12:35" }, - "https://github.com/meshmesh-io/mm-comfyui-megamask": { - "stars": 0, - "last_update": "2024-03-07 23:59:12" - }, "https://github.com/meshmesh-io/mm-comfyui-loopback": { "stars": 1, "last_update": "2024-03-07 19:46:37" @@ -2400,11 +2548,11 @@ "last_update": "2024-03-12 17:19:32" }, "https://github.com/cozymantis/human-parser-comfyui-node": { - "stars": 34, + "stars": 36, "last_update": "2024-04-02 20:04:32" }, "https://github.com/cozymantis/pose-generator-comfyui-node": { - "stars": 17, + "stars": 19, "last_update": "2024-04-30 17:40:24" }, "https://github.com/cozymantis/cozy-utils-comfyui-nodes": { @@ -2419,16 +2567,20 @@ "stars": 2, "last_update": "2024-03-06 18:33:39" }, - "https://github.com/ljleb/comfy-mecha": { - "stars": 6, - "last_update": "2024-05-09 20:07:46" - }, "https://github.com/diStyApps/ComfyUI_FrameMaker": { "stars": 9, "last_update": "2024-03-08 09:19:43" }, + "https://github.com/ljleb/comfy-mecha": { + "stars": 7, + "last_update": "2024-05-09 20:07:46" + }, + "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": { + "stars": 83, + "last_update": "2024-04-02 23:29:14" + }, "https://github.com/hackkhai/ComfyUI-Image-Matting": { - "stars": 8, + "stars": 9, "last_update": "2024-03-09 06:30:39" }, "https://github.com/Pos13/comfyui-cyclist": { @@ -2436,15 +2588,11 @@ "last_update": "2024-04-20 04:13:22" }, "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": { - "stars": 26, + "stars": 25, "last_update": "2024-03-09 00:02:47" }, - "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": { - "stars": 82, - "last_update": "2024-04-02 23:29:14" - }, "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting": { - "stars": 238, + "stars": 240, "last_update": "2024-04-17 22:30:10" }, "https://github.com/angeloshredder/StableCascadeResizer": { @@ -2452,19 +2600,19 @@ "last_update": "2024-03-08 22:53:27" }, "https://github.com/stavsap/comfyui-ollama": { - "stars": 127, + "stars": 139, "last_update": "2024-04-07 20:49:11" }, "https://github.com/dchatel/comfyui_facetools": { - "stars": 35, - "last_update": "2024-04-06 11:45:55" + "stars": 37, + "last_update": "2024-05-15 14:14:00" }, "https://github.com/prodogape/ComfyUI-Minio": { "stars": 1, "last_update": "2024-03-09 07:44:51" }, "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes": { - "stars": 2, + "stars": 3, "last_update": "2024-02-22 08:30:33" }, "https://github.com/vsevolod-oparin/comfyui-kandinsky22": { @@ -2472,16 +2620,20 @@ "last_update": "2024-03-17 00:05:27" }, "https://github.com/Xyem/Xycuno-Oobabooga": { - "stars": 2, + "stars": 3, "last_update": "2024-03-12 19:50:18" }, + "https://github.com/if-ai/ComfyUI-IF_AI_tools": { + "stars": 258, + "last_update": "2024-05-15 02:23:25" + }, "https://github.com/shi3z/ComfyUI_Memeplex_DALLE": { "stars": 2, "last_update": "2024-03-13 08:26:09" }, - "https://github.com/if-ai/ComfyUI-IF_AI_tools": { - "stars": 233, - "last_update": "2024-04-27 09:27:21" + "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": { + "stars": 14, + "last_update": "2024-04-19 10:52:02" }, "https://github.com/dmMaze/sketch2manga": { "stars": 22, @@ -2491,13 +2643,17 @@ "stars": 1, "last_update": "2024-03-18 04:57:05" }, + "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": { + "stars": 164, + "last_update": "2024-05-12 20:43:17" + }, "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes": { "stars": 0, "last_update": "2024-03-31 14:14:24" }, - "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": { - "stars": 161, - "last_update": "2024-04-28 17:33:13" + "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": { + "stars": 12, + "last_update": "2024-04-20 07:29:00" }, "https://github.com/madtunebk/ComfyUI-ControlnetAux": { "stars": 7, @@ -2516,64 +2672,80 @@ "last_update": "2024-03-28 02:21:05" }, "https://github.com/Jannchie/ComfyUI-J": { - "stars": 57, + "stars": 58, "last_update": "2024-05-08 11:12:17" }, + "https://github.com/daxcay/ComfyUI-DRMN": { + "stars": 4, + "last_update": "2024-05-01 17:06:44" + }, "https://github.com/daxcay/ComfyUI-JDCN": { - "stars": 30, + "stars": 34, "last_update": "2024-05-06 17:30:27" }, "https://github.com/Seedsa/Fooocus_Nodes": { - "stars": 23, - "last_update": "2024-04-13 12:38:56" + "stars": 27, + "last_update": "2024-05-15 06:09:44" }, "https://github.com/zhangp365/ComfyUI-utils-nodes": { "stars": 3, - "last_update": "2024-05-09 03:34:19" + "last_update": "2024-05-16 09:13:54" }, "https://github.com/ratulrafsan/Comfyui-SAL-VTON": { - "stars": 40, + "stars": 41, "last_update": "2024-03-22 04:31:59" }, + "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": { + "stars": 15, + "last_update": "2024-05-16 00:42:04" + }, "https://github.com/Nevysha/ComfyUI-nevysha-top-menu": { "stars": 4, "last_update": "2024-03-23 10:48:36" }, - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": { - "stars": 14, - "last_update": "2024-03-31 15:13:33" - }, - "https://github.com/chaosaiart/Chaosaiart-Nodes": { - "stars": 33, - "last_update": "2024-05-10 13:15:33" - }, "https://github.com/viperyl/ComfyUI-BiRefNet": { - "stars": 138, + "stars": 139, "last_update": "2024-03-25 11:02:49" }, - "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": { - "stars": 81, - "last_update": "2024-05-08 00:32:31" + "https://github.com/chaosaiart/Chaosaiart-Nodes": { + "stars": 36, + "last_update": "2024-05-10 13:15:33" }, "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes": { "stars": 0, "last_update": "2024-03-26 16:55:10" }, - "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": { - "stars": 45, - "last_update": "2024-05-08 05:12:25" + "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": { + "stars": 84, + "last_update": "2024-05-13 05:16:12" }, "https://github.com/hay86/ComfyUI_Dreamtalk": { - "stars": 5, + "stars": 6, "last_update": "2024-04-12 09:13:05" }, - "https://github.com/shinich39/comfyui-load-image-39": { + "https://github.com/hay86/ComfyUI_OpenVoice": { + "stars": 2, + "last_update": "2024-05-14 11:57:50" + }, + "https://github.com/hay86/ComfyUI_DDColor": { + "stars": 1, + "last_update": "2024-04-17 14:38:22" + }, + "https://github.com/hay86/ComfyUI_MiniCPM-V": { + "stars": 4, + "last_update": "2024-05-14 12:13:38" + }, + "https://github.com/shinich39/comfyui-load-image-in-seq": { "stars": 2, "last_update": "2024-04-27 11:46:50" }, - "https://github.com/shinich39/comfyui-ramdom-node-39": { - "stars": 2, - "last_update": "2024-04-26 23:38:27" + "https://github.com/hay86/ComfyUI_AceNodes": { + "stars": 5, + "last_update": "2024-05-16 10:00:20" + }, + "https://github.com/shinich39/comfyui-local-db": { + "stars": 1, + "last_update": "2024-05-13 15:50:22" }, "https://github.com/wei30172/comfygen": { "stars": 3, @@ -2581,7 +2753,7 @@ }, "https://github.com/zombieyang/sd-ppp": { "stars": 5, - "last_update": "2024-05-10 18:12:54" + "last_update": "2024-05-16 01:44:32" }, "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": { "stars": 3, @@ -2592,33 +2764,57 @@ "last_update": "2024-05-07 08:02:12" }, "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": { - "stars": 47, - "last_update": "2024-03-30 22:07:58" + "stars": 51, + "last_update": "2024-05-11 00:16:04" }, "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": { - "stars": 9, - "last_update": "2024-05-10 19:14:35" + "stars": 11, + "last_update": "2024-05-16 12:01:02" }, "https://github.com/jiaxiangc/ComfyUI-ResAdapter": { - "stars": 257, + "stars": 259, "last_update": "2024-04-06 09:25:46" }, "https://github.com/ParisNeo/lollms_nodes_suite": { "stars": 9, "last_update": "2024-04-15 00:17:38" }, + "https://github.com/shinich39/comfyui-ramdom-node-39": { + "stars": 2, + "last_update": "2024-04-26 23:38:27" + }, "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": { "stars": 2, "last_update": "2024-03-20 21:56:10" }, - "https://github.com/frankchieng/ComfyUI_Aniportrait": { - "stars": 29, - "last_update": "2024-04-22 05:53:26" + "https://github.com/nickve28/ComfyUI-Nich-Utils": { + "stars": 6, + "last_update": "2024-04-21 09:13:50" }, "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": { "stars": 9, "last_update": "2024-04-21 17:12:56" }, + "https://github.com/BlakeOne/ComfyUI-CustomScheduler": { + "stars": 8, + "last_update": "2024-04-21 17:11:38" + }, + "https://github.com/frankchieng/ComfyUI_Aniportrait": { + "stars": 35, + "last_update": "2024-04-22 05:53:26" + }, + "https://github.com/frankchieng/ComfyUI_MagicClothing": { + "stars": 350, + "last_update": "2024-04-28 03:21:51" + }, + "https://github.com/BlakeOne/ComfyUI-NodePresets": { + "stars": 11, + "last_update": "2024-04-21 17:11:04" + }, + "https://github.com/BlakeOne/ComfyUI-NodeReset": { + "stars": 1, + "last_update": "2024-04-21 17:10:35" + }, "https://github.com/kale4eat/ComfyUI-path-util": { "stars": 0, "last_update": "2024-04-01 01:33:56" @@ -2631,230 +2827,170 @@ "stars": 0, "last_update": "2024-04-01 01:32:04" }, - "https://github.com/kijai/ComfyUI-APISR": { - "stars": 51, - "last_update": "2024-04-19 16:38:57" + "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": { + "stars": 5, + "last_update": "2024-04-25 06:50:39" }, "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": { "stars": 0, "last_update": "2024-04-01 10:47:39" }, - "https://github.com/comfyanonymous/ComfyUI": { - "stars": 34513, - "last_update": "2024-05-10 21:31:44" - }, - "https://github.com/chaojie/ComfyUI-MuseV": { - "stars": 99, - "last_update": "2024-04-04 02:07:29" - }, - "https://github.com/kijai/ComfyUI-DiffusionLight": { - "stars": 45, - "last_update": "2024-04-02 19:18:34" - }, - "https://github.com/BlakeOne/ComfyUI-CustomScheduler": { - "stars": 8, - "last_update": "2024-04-21 17:11:38" - }, "https://github.com/bobmagicii/comfykit-custom-nodes": { - "stars": 0, + "stars": 1, "last_update": "2024-04-04 16:39:56" }, - "https://github.com/chaojie/ComfyUI-MuseTalk": { - "stars": 88, - "last_update": "2024-04-05 15:26:14" - }, - "https://github.com/bvhari/ComfyUI_SUNoise": { - "stars": 3, - "last_update": "2024-05-07 15:20:05" - }, "https://github.com/TJ16th/comfyUI_TJ_NormalLighting": { - "stars": 119, + "stars": 121, "last_update": "2024-04-07 12:46:36" }, - "https://github.com/SoftMeng/ComfyUI_ImageToText": { - "stars": 3, - "last_update": "2024-04-07 07:27:14" - }, "https://github.com/AppleBotzz/ComfyUI_LLMVISION": { "stars": 42, "last_update": "2024-04-05 23:55:41" }, + "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp": { + "stars": 0, + "last_update": "2024-05-08 09:52:21" + }, "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE": { - "stars": 5, - "last_update": "2024-04-20 18:40:33" - }, - "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler": { - "stars": 3, - "last_update": "2024-04-25 07:58:30" - }, - "https://github.com/yuvraj108c/ComfyUI-PiperTTS": { - "stars": 23, - "last_update": "2024-04-06 17:16:28" - }, - "https://github.com/nickve28/ComfyUI-Nich-Utils": { "stars": 6, - "last_update": "2024-04-21 09:13:50" - }, - "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": { - "stars": 1, - "last_update": "2024-04-06 16:48:55" - }, - "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": { - "stars": 57, - "last_update": "2024-05-09 06:26:16" - }, - "https://github.com/hay86/ComfyUI_AceNodes": { - "stars": 4, - "last_update": "2024-05-10 08:58:31" + "last_update": "2024-05-15 11:36:25" }, "https://github.com/liusida/ComfyUI-Debug": { "stars": 5, "last_update": "2024-04-07 11:33:02" }, + "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": { + "stars": 60, + "last_update": "2024-05-09 06:26:16" + }, + "https://github.com/liusida/ComfyUI-Login": { + "stars": 19, + "last_update": "2024-05-16 13:22:12" + }, + "https://github.com/liusida/ComfyUI-AutoCropFaces": { + "stars": 3, + "last_update": "2024-05-10 01:32:00" + }, "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt": { "stars": 7, "last_update": "2024-04-07 02:47:17" }, - "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes": { - "stars": 85, - "last_update": "2024-05-04 07:13:01" - }, - "https://github.com/chaojie/ComfyUI-Open-Sora-Plan": { - "stars": 45, - "last_update": "2024-04-23 08:01:58" - }, - "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": { - "stars": 39, - "last_update": "2024-04-29 02:27:15" - }, "https://github.com/tsogzark/ComfyUI-load-image-from-url": { "stars": 3, "last_update": "2024-04-16 09:07:22" }, + "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": { + "stars": 39, + "last_update": "2024-04-29 02:27:15" + }, + "https://github.com/AIFSH/ComfyUI-UVR5": { + "stars": 46, + "last_update": "2024-05-09 13:19:51" + }, "https://github.com/discus0434/comfyui-caching-embeddings": { "stars": 1, "last_update": "2024-04-09 03:52:05" }, - "https://github.com/abdozmantar/ComfyUI-InstaSwap": { - "stars": 38, - "last_update": "2024-05-07 01:04:48" - }, - "https://github.com/chaojie/ComfyUI_StreamingT2V": { + "https://github.com/AIFSH/ComfyUI-IP_LAP": { "stars": 21, - "last_update": "2024-05-10 09:14:57" + "last_update": "2024-04-30 01:42:53" }, - "https://github.com/AIFSH/ComfyUI-UVR5": { - "stars": 45, - "last_update": "2024-05-09 13:19:51" + "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": { + "stars": 122, + "last_update": "2024-05-15 01:13:11" }, - "https://github.com/CapsAdmin/ComfyUI-Euler-Smea-Dyn-Sampler": { + "https://github.com/AIFSH/ComfyUI-WhisperX": { + "stars": 13, + "last_update": "2024-05-06 06:25:52" + }, + "https://github.com/AIFSH/ComfyUI-RVC": { + "stars": 4, + "last_update": "2024-04-30 09:22:22" + }, + "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": { + "stars": 3, + "last_update": "2024-04-30 08:27:59" + }, + "https://github.com/AIFSH/ComfyUI-XTTS": { "stars": 10, - "last_update": "2024-04-11 06:02:15" + "last_update": "2024-05-11 03:30:10" + }, + "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler": { + "stars": 122, + "last_update": "2024-05-12 15:49:06" + }, + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": { + "stars": 7, + "last_update": "2024-05-15 08:47:12" + }, + "https://github.com/smthemex/ComfyUI_ChatGLM_API": { + "stars": 15, + "last_update": "2024-04-27 11:43:52" + }, + "https://github.com/smthemex/ComfyUI_Llama3_8B": { + "stars": 9, + "last_update": "2024-05-08 09:31:25" }, "https://github.com/sdfxai/SDFXBridgeForComfyUI": { "stars": 2, "last_update": "2024-04-12 14:09:45" }, - "https://github.com/smthemex/ComfyUI_ChatGLM_API": { - "stars": 13, - "last_update": "2024-04-27 11:43:52" + "https://github.com/smthemex/ComfyUI_Pipeline_Tool": { + "stars": 6, + "last_update": "2024-05-13 13:04:05" }, - "https://github.com/kijai/ComfyUI-ELLA-wrapper": { - "stars": 94, - "last_update": "2024-05-09 12:22:38" + "https://github.com/smthemex/ComfyUI_ParlerTTS": { + "stars": 14, + "last_update": "2024-05-15 13:48:05" }, - "https://github.com/ExponentialML/ComfyUI_ELLA": { - "stars": 150, - "last_update": "2024-04-27 19:12:14" - }, - "https://github.com/choey/Comfy-Topaz": { - "stars": 13, - "last_update": "2024-04-10 09:05:18" + "https://github.com/smthemex/ComfyUI_Pic2Story": { + "stars": 3, + "last_update": "2024-04-21 11:18:29" }, "https://github.com/ALatentPlace/ComfyUI_yanc": { "stars": 4, "last_update": "2024-05-04 11:27:41" }, - "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": { - "stars": 16, - "last_update": "2024-04-11 15:56:49" - }, - "https://github.com/logtd/ComfyUI-RAVE_ATTN": { - "stars": 8, - "last_update": "2024-04-10 22:20:21" - }, - "https://github.com/BlakeOne/ComfyUI-NodePresets": { - "stars": 11, - "last_update": "2024-04-21 17:11:04" - }, - "https://github.com/AIFSH/ComfyUI-IP_LAP": { - "stars": 19, - "last_update": "2024-04-30 01:42:53" + "https://github.com/choey/Comfy-Topaz": { + "stars": 15, + "last_update": "2024-04-10 09:05:18" }, "https://github.com/Wicloz/ComfyUI-Simply-Nodes": { "stars": 1, "last_update": "2024-04-11 01:32:57" }, "https://github.com/wandbrandon/comfyui-pixel": { - "stars": 3, + "stars": 4, "last_update": "2024-05-10 14:45:42" }, - "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": { - "stars": 5, - "last_update": "2024-04-25 06:50:39" - }, - "https://github.com/nullquant/ComfyUI-BrushNet": { - "stars": 179, - "last_update": "2024-05-10 22:58:25" - }, - "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler": { - "stars": 120, - "last_update": "2024-05-09 05:08:42" - }, "https://github.com/pamparamm/sd-perturbed-attention": { - "stars": 148, + "stars": 151, "last_update": "2024-05-07 21:47:49" }, - "https://github.com/kijai/ComfyUI-BrushNet-Wrapper": { - "stars": 90, - "last_update": "2024-05-01 16:10:34" + "https://github.com/nullquant/ComfyUI-BrushNet": { + "stars": 222, + "last_update": "2024-05-16 10:13:08" }, "https://github.com/unwdef/unwdef-nodes-comfyui": { "stars": 1, "last_update": "2024-04-15 19:32:36" }, - "https://github.com/smthemex/ComfyUI_ParlerTTS": { - "stars": 11, - "last_update": "2024-04-24 11:48:21" - }, - "https://github.com/aburahamu/ComfyUI-RequestsPoster": { - "stars": 2, - "last_update": "2024-04-21 02:35:06" - }, - "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": { - "stars": 117, - "last_update": "2024-05-09 03:19:04" - }, - "https://github.com/royceschultz/ComfyUI-TranscriptionTools": { - "stars": 10, - "last_update": "2024-04-22 03:51:58" - }, - "https://github.com/BlakeOne/ComfyUI-NodeDefaults": { - "stars": 1, - "last_update": "2024-04-21 17:10:35" - }, - "https://github.com/liusida/ComfyUI-Login": { - "stars": 19, - "last_update": "2024-05-05 12:36:24" + "https://github.com/forever22777/comfyui-self-guidance": { + "stars": 4, + "last_update": "2024-04-22 06:40:09" }, "https://github.com/Sorcerio/MBM-Music-Visualizer": { - "stars": 10, + "stars": 13, "last_update": "2024-05-10 22:21:55" }, "https://github.com/traugdor/ComfyUI-quadMoons-nodes": { "stars": 6, "last_update": "2024-04-20 01:40:50" }, + "https://github.com/aburahamu/ComfyUI-RequestsPoster": { + "stars": 2, + "last_update": "2024-04-21 02:35:06" + }, "https://github.com/e7mac/ComfyUI-ShadertoyGL": { "stars": 2, "last_update": "2024-04-13 22:29:24" @@ -2863,13 +2999,13 @@ "stars": 0, "last_update": "2024-04-16 10:00:26" }, - "https://github.com/kunieone/ComfyUI_alkaid": { - "stars": 0, - "last_update": "2024-04-15 07:49:55" + "https://github.com/turkyden/ComfyUI-Comic": { + "stars": 1, + "last_update": "2024-04-29 09:44:07" }, - "https://github.com/jtydhr88/ComfyUI-InstantMesh": { - "stars": 106, - "last_update": "2024-04-17 03:15:10" + "https://github.com/royceschultz/ComfyUI-TranscriptionTools": { + "stars": 11, + "last_update": "2024-04-22 03:51:58" }, "https://github.com/txt2any/ComfyUI-PromptOrganizer": { "stars": 0, @@ -2879,214 +3015,118 @@ "stars": 0, "last_update": "2024-04-14 12:45:49" }, - "https://github.com/chaojie/ComfyUI-EasyAnimate": { - "stars": 34, - "last_update": "2024-04-16 14:45:13" + "https://github.com/kunieone/ComfyUI_alkaid": { + "stars": 0, + "last_update": "2024-04-15 07:49:55" }, - "https://github.com/hay86/ComfyUI_OpenVoice": { - "stars": 2, - "last_update": "2024-04-18 12:35:11" + "https://github.com/jtydhr88/ComfyUI-InstantMesh": { + "stars": 114, + "last_update": "2024-04-17 03:15:10" }, - "https://github.com/hay86/ComfyUI_DDColor": { - "stars": 1, - "last_update": "2024-04-17 14:38:22" - }, - "https://github.com/forever22777/comfyui-self-guidance": { - "stars": 4, - "last_update": "2024-04-22 06:40:09" - }, - "https://github.com/smthemex/ComfyUI_Pic2Story": { - "stars": 2, - "last_update": "2024-04-21 11:18:29" + "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans": { + "stars": 111, + "last_update": "2024-05-06 09:41:56" }, "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": { "stars": 0, - "last_update": "2024-04-15 23:04:31" + "last_update": "2024-05-16 01:51:54" + }, + "https://github.com/kealiu/ComfyUI-Zero123-Porting": { + "stars": 5, + "last_update": "2024-05-08 12:08:32" }, "https://github.com/AonekoSS/ComfyUI-SimpleCounter": { - "stars": 0, + "stars": 1, "last_update": "2024-04-25 14:23:23" }, "https://github.com/heshengtao/comfyui_LLM_party": { - "stars": 51, - "last_update": "2024-05-10 15:15:41" - }, - "https://github.com/frankchieng/ComfyUI_MagicClothing": { - "stars": 338, - "last_update": "2024-04-28 03:21:51" - }, - "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": { - "stars": 3, - "last_update": "2024-04-30 08:27:59" - }, - "https://github.com/JettHu/ComfyUI_TGate": { - "stars": 32, - "last_update": "2024-05-06 17:23:28" + "stars": 66, + "last_update": "2024-05-14 13:17:52" }, "https://github.com/VAST-AI-Research/ComfyUI-Tripo": { - "stars": 45, + "stars": 46, "last_update": "2024-04-18 11:37:22" }, - "https://github.com/Stability-AI/ComfyUI-SAI_API": { - "stars": 31, - "last_update": "2024-04-24 23:40:33" - }, - "https://github.com/chaojie/ComfyUI-CameraCtrl": { - "stars": 11, - "last_update": "2024-04-19 03:46:18" - }, - "https://github.com/sugarkwork/comfyui_tag_fillter": { - "stars": 3, - "last_update": "2024-05-10 13:33:37" - }, - "https://github.com/hay86/ComfyUI_MiniCPM-V": { - "stars": 4, - "last_update": "2024-04-18 13:11:09" - }, - "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": { - "stars": 1, - "last_update": "2024-04-21 07:34:21" - }, - "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper": { - "stars": 11, - "last_update": "2024-04-19 03:46:18" - }, - "https://github.com/turkyden/ComfyUI-Comic": { - "stars": 1, - "last_update": "2024-04-29 09:44:07" + "https://github.com/JettHu/ComfyUI_TGate": { + "stars": 34, + "last_update": "2024-05-15 11:15:38" }, "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes": { "stars": 8, "last_update": "2024-04-30 03:35:57" }, "https://github.com/TencentQQGYLab/ComfyUI-ELLA": { - "stars": 203, + "stars": 226, "last_update": "2024-05-07 03:07:38" }, - "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": { - "stars": 11, - "last_update": "2024-04-26 07:53:44" - }, - "https://github.com/kijai/ComfyUI-APISR-KJ": { - "stars": 51, - "last_update": "2024-04-19 16:38:57" - }, - "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": { - "stars": 13, - "last_update": "2024-04-19 10:52:02" + "https://github.com/sugarkwork/comfyui_tag_fillter": { + "stars": 6, + "last_update": "2024-05-14 08:36:57" }, "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config": { "stars": 3, - "last_update": "2024-04-30 11:40:19" + "last_update": "2024-05-12 12:25:03" }, - "https://github.com/BlakeOne/ComfyUI-NodeReset": { - "stars": 1, - "last_update": "2024-04-21 17:10:35" - }, - "https://github.com/Fannovel16/ComfyUI-MagickWand": { - "stars": 57, - "last_update": "2024-04-28 10:13:50" - }, - "https://github.com/AIFSH/ComfyUI-WhisperX": { - "stars": 11, - "last_update": "2024-05-06 06:25:52" + "https://github.com/JettHu/ComfyUI-TCD": { + "stars": 54, + "last_update": "2024-05-07 08:34:59" }, "https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ": { - "stars": 43, - "last_update": "2024-05-03 04:44:45" + "stars": 47, + "last_update": "2024-05-12 17:10:11" + }, + "https://github.com/MinusZoneAI/ComfyUI-StylizePhoto-MZ": { + "stars": 6, + "last_update": "2024-05-15 16:20:25" }, "https://github.com/blueraincoatli/comfyUI_SillyNodes": { "stars": 2, "last_update": "2024-04-25 03:11:05" }, - "https://github.com/chaojie/ComfyUI-LaVIT": { - "stars": 8, - "last_update": "2024-04-24 13:41:02" - }, - "https://github.com/smthemex/ComfyUI_Pipeline_Tool": { - "stars": 5, - "last_update": "2024-05-07 08:59:44" - }, "https://github.com/ty0x2333/ComfyUI-Dev-Utils": { "stars": 28, "last_update": "2024-04-29 15:28:22" }, - "https://github.com/longgui0318/comfyui-magic-clothing": { - "stars": 15, - "last_update": "2024-04-28 03:29:42" - }, - "https://github.com/huchenlei/ComfyUI-openpose-editor": { - "stars": 5, - "last_update": "2024-04-25 22:45:00" - }, "https://github.com/lquesada/ComfyUI-Prompt-Combinator": { - "stars": 13, - "last_update": "2024-04-26 19:10:31" - }, - "https://github.com/chaojie/ComfyUI-SimDA": { - "stars": 13, - "last_update": "2024-04-25 03:38:51" - }, - "https://github.com/shinich39/comfyui-local-db": { - "stars": 1, - "last_update": "2024-05-09 15:18:19" + "stars": 17, + "last_update": "2024-05-13 06:55:28" }, "https://github.com/randjtw/advance-aesthetic-score": { "stars": 0, "last_update": "2024-04-25 06:34:10" }, + "https://github.com/TaiTair/comfyui-simswap": { + "stars": 4, + "last_update": "2024-04-27 17:29:46" + }, + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": { + "stars": 75, + "last_update": "2024-05-15 20:04:49" + }, + "https://github.com/jeffy5/comfyui-faceless-node": { + "stars": 8, + "last_update": "2024-05-15 07:58:12" + }, "https://github.com/FredBill1/comfyui-fb-utils": { "stars": 0, "last_update": "2024-05-05 15:14:45" }, - "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans": { - "stars": 108, - "last_update": "2024-05-06 09:41:56" - }, - "https://github.com/jeffy5/comfyui-faceless-node": { - "stars": 4, - "last_update": "2024-05-10 10:17:36" - }, - "https://github.com/TaiTair/comfyui-simswap": { - "stars": 2, - "last_update": "2024-04-27 17:29:46" + "https://github.com/chrisfreilich/virtuoso-nodes": { + "stars": 38, + "last_update": "2024-05-07 22:57:00" }, "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": { "stars": 10, "last_update": "2024-04-26 11:16:06" }, - "https://github.com/daxcay/ComfyUI-DRMN": { + "https://github.com/da2el-ai/ComfyUI-d2-steps": { "stars": 4, - "last_update": "2024-05-01 17:06:44" - }, - "https://github.com/chrisfreilich/virtuoso-nodes": { - "stars": 35, - "last_update": "2024-05-07 22:57:00" + "last_update": "2024-05-04 17:32:40" }, "https://github.com/Shinsplat/ComfyUI-Shinsplat": { "stars": 4, "last_update": "2024-05-03 14:05:09" }, - "https://github.com/shinich39/comfyui-load-image-in-seq": { - "stars": 2, - "last_update": "2024-04-27 11:46:50" - }, - "https://github.com/florestefano1975/ComfyUI-HiDiffusion": { - "stars": 105, - "last_update": "2024-05-04 14:01:06" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini": { - "stars": 134, - "last_update": "2024-04-26 15:03:13" - }, - "https://github.com/blepping/comfyui_jankhidiffusion": { - "stars": 59, - "last_update": "2024-05-10 04:18:47" - }, - "https://github.com/da2el-ai/ComfyUI-d2-steps": { - "stars": 3, - "last_update": "2024-05-04 17:32:40" - }, "https://github.com/da2el-ai/ComfyUI-d2-size-selector": { "stars": 0, "last_update": "2024-05-03 17:29:07" @@ -3095,176 +3135,176 @@ "stars": 3, "last_update": "2024-05-02 07:14:05" }, - "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4": { - "stars": 0, - "last_update": "2024-04-27 13:25:08" - }, - "https://github.com/JettHu/ComfyUI-TCD": { - "stars": 47, - "last_update": "2024-05-07 08:34:59" - }, "https://github.com/web3nomad/ComfyUI_Invisible_Watermark": { "stars": 1, "last_update": "2024-04-29 14:46:19" }, - "https://github.com/AIFSH/ComfyUI-RVC": { - "stars": 3, - "last_update": "2024-04-30 09:22:22" - }, "https://github.com/GentlemanHu/ComfyUI-SunoAI": { - "stars": 7, + "stars": 8, "last_update": "2024-04-29 12:36:18" }, - "https://github.com/kealiu/ComfyUI-Zero123-Porting": { - "stars": 4, - "last_update": "2024-05-08 12:08:32" - }, - "https://github.com/TemryL/ComfyUI-IDM-VTON": { - "stars": 69, - "last_update": "2024-05-09 15:37:12" - }, - "https://github.com/Nestorchik/NStor-ComfyUI-Translation": { - "stars": 1, - "last_update": "2024-05-01 12:24:22" - }, "https://github.com/jax-explorer/fast_video_comfyui": { "stars": 0, "last_update": "2024-04-30 05:02:14" }, + "https://github.com/TemryL/ComfyUI-IDM-VTON": { + "stars": 93, + "last_update": "2024-05-15 22:20:58" + }, + "https://github.com/Nestorchik/NStor-ComfyUI-Translation": { + "stars": 1, + "last_update": "2024-05-01 12:24:22" + }, "https://github.com/sugarkwork/comfyui_cohere": { "stars": 0, - "last_update": "2024-04-30 01:57:18" - }, - "https://github.com/alessandrozonta/ComfyUI-CenterNode": { - "stars": 2, - "last_update": "2024-05-02 11:17:11" - }, - "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt": { - "stars": 20, - "last_update": "2024-05-08 08:18:54" + "last_update": "2024-05-16 00:13:17" }, "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations": { "stars": 1, "last_update": "2024-05-05 06:06:11" }, + "https://github.com/alessandrozonta/ComfyUI-CenterNode": { + "stars": 2, + "last_update": "2024-05-02 11:17:11" + }, + "https://github.com/runtime44/comfyui_r44_nodes": { + "stars": 20, + "last_update": "2024-05-05 12:17:36" + }, + "https://github.com/osi1880vr/prompt_quill_comfyui": { + "stars": 7, + "last_update": "2024-05-09 13:51:17" + }, + "https://github.com/philz1337x/ComfyUI-ClarityAI": { + "stars": 27, + "last_update": "2024-05-07 18:37:31" + }, + "https://github.com/AIFSH/ComfyUI-FishSpeech": { + "stars": 5, + "last_update": "2024-05-13 06:56:34" + }, + "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools": { + "stars": 1, + "last_update": "2024-05-07 12:44:45" + }, + "https://github.com/KoreTeknology/ComfyUI-Universal-Styler": { + "stars": 4, + "last_update": "2024-05-08 21:25:51" + }, "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader": { "stars": 2, "last_update": "2024-05-08 15:19:21" }, - "https://github.com/osi1880vr/prompt_quill_comfyui": { - "stars": 6, - "last_update": "2024-05-09 13:51:17" - }, - "https://github.com/audioscavenger/save-image-extended-comfyui": { - "stars": 0, - "last_update": "2024-05-08 18:22:16" - }, - "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock": { - "stars": 2, - "last_update": "2024-05-06 02:30:47" - }, - "https://github.com/runtime44/comfyui_r44_nodes": { - "stars": 19, - "last_update": "2024-05-05 12:17:36" - }, - "https://github.com/AIFSH/ComfyUI-FishSpeech": { - "stars": 4, - "last_update": "2024-05-07 07:23:38" - }, - "https://github.com/davask/ComfyUI_MaraScott_Nodes": { - "stars": 32, - "last_update": "2024-05-08 13:01:28" - }, - "https://github.com/philz1337x/ComfyUI-ClarityAI": { - "stars": 25, - "last_update": "2024-05-07 18:37:31" - }, - "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention": { - "stars": 17, - "last_update": "2024-05-08 00:59:14" - }, - "https://github.com/KoreTeknology/ComfyUI-Universal-Styler": { + "https://github.com/Fihade/IC-Light-ComfyUI-Node": { "stars": 3, - "last_update": "2024-05-08 21:25:51" + "last_update": "2024-05-09 07:57:52" }, - "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools": { - "stars": 0, - "last_update": "2024-05-07 12:44:45" - }, - "https://github.com/AI2lab/comfyUI-DeepSeek-2lab": { + "https://github.com/KewkLW/ComfyUI-kewky_tools": { "stars": 1, - "last_update": "2024-05-10 01:53:54" - }, - "https://github.com/liusida/ComfyUI-AutoCropFaces": { - "stars": 3, - "last_update": "2024-05-10 01:32:00" - }, - "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp": { - "stars": 0, - "last_update": "2024-05-08 09:52:21" - }, - "https://github.com/AIFSH/ComfyUI-XTTS": { - "stars": 7, - "last_update": "2024-05-09 22:40:44" - }, - "https://github.com/smthemex/ComfyUI_Llama3_8B": { - "stars": 7, - "last_update": "2024-05-08 09:31:25" + "last_update": "2024-05-12 16:01:35" }, "https://github.com/chenpx976/ComfyUI-RunRunRun": { "stars": 0, "last_update": "2024-05-08 12:02:17" }, - "https://github.com/cubiq/PuLID_ComfyUI": { - "stars": 197, - "last_update": "2024-05-09 01:53:03" - }, "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL": { "stars": 0, "last_update": "2024-05-09 08:23:03" }, - "https://github.com/Fihade/IC-Light-ComfyUI-Node": { - "stars": 1, - "last_update": "2024-05-09 07:57:52" - }, - "https://github.com/KewkLW/ComfyUI-kewky_tools": { - "stars": 1, - "last_update": "2024-05-10 03:22:23" + "https://github.com/saftle/suplex_comfy_nodes": { + "stars": 0, + "last_update": "2024-05-14 03:57:46" }, "https://github.com/ITurchenko/ComfyUI-SizeFromArray": { "stars": 0, "last_update": "2024-05-09 14:36:26" }, - "https://github.com/get-salt-AI/SaltAI_LlamaIndex": { - "stars": 5, - "last_update": "2024-05-09 16:16:26" - }, - "https://github.com/kijai/ComfyUI-IC-Light": { - "stars": 71, - "last_update": "2024-05-10 17:25:20" - }, - "https://github.com/MinusZoneAI/ComfyUI-StylizePhoto-MZ": { - "stars": 3, - "last_update": "2024-05-10 15:41:40" - }, - "https://github.com/saftle/suplex_comfy_nodes": { - "stars": 0, - "last_update": "2024-05-10 05:45:35" - }, - "https://github.com/mephisto83/petty-paint-comfyui-node": { - "stars": 1, - "last_update": "2024-05-10 04:40:43" - }, - "https://github.com/fsdymy1024/ComfyUI_fsdymy": { - "stars": 0, - "last_update": "2024-05-10 06:49:30" - }, "https://github.com/huagetai/ComfyUI_LightGradient": { - "stars": 1, + "stars": 5, "last_update": "2024-05-10 18:32:34" }, "https://github.com/gonzalu/ComfyUI_YFG_Comical": { "stars": 2, - "last_update": "2024-05-10 05:06:36" + "last_update": "2024-05-14 16:39:04" + }, + "https://github.com/fsdymy1024/ComfyUI_fsdymy": { + "stars": 1, + "last_update": "2024-05-11 08:50:56" + }, + "https://github.com/mephisto83/petty-paint-comfyui-node": { + "stars": 1, + "last_update": "2024-05-13 22:20:49" + }, + "https://github.com/ruiqutech/ComfyUI-RuiquNodes": { + "stars": 0, + "last_update": "2024-05-11 15:23:55" + }, + "https://github.com/christian-byrne/img2txt-comfyui-nodes": { + "stars": 6, + "last_update": "2024-05-15 06:56:52" + }, + "https://github.com/fmatray/ComfyUI_BattlemapGrid": { + "stars": 0, + "last_update": "2024-05-12 16:11:48" + }, + "https://github.com/teward/ComfyUI-Helper-Nodes": { + "stars": 3, + "last_update": "2024-05-12 21:49:47" + }, + "https://github.com/huagetai/ComfyUI-Gaffer": { + "stars": 25, + "last_update": "2024-05-14 07:24:52" + }, + "https://github.com/comfyanonymous/ComfyUI": { + "stars": 35068, + "last_update": "2024-05-16 08:12:55" + }, + "https://github.com/ShmuelRonen/ComfyUI_wav2lip": { + "stars": 11, + "last_update": "2024-05-16 14:08:24" + }, + "https://github.com/jtydhr88/ComfyUI-LayerDivider": { + "stars": 16, + "last_update": "2024-05-15 00:21:49" + }, + "https://github.com/oztrkoguz/ComfyUI_StoryCreater_and_Imager": { + "stars": 12, + "last_update": "2024-05-15 12:40:15" + }, + "https://github.com/nat-chan/ComfyUI-graphToPrompt": { + "stars": 0, + "last_update": "2024-05-15 11:20:02" + }, + "https://github.com/badayvedat/ComfyUI-fal-Connector": { + "stars": 9, + "last_update": "2024-05-16 01:10:31" + }, + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": { + "stars": 4, + "last_update": "2024-05-16 06:14:06" + }, + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": { + "stars": 15, + "last_update": "2024-05-16 00:42:04" + }, + "https://github.com/katalist-ai/comfyUI-nsfw-detection": { + "stars": 1, + "last_update": "2024-05-16 12:54:10" + }, + "https://github.com/royceschultz/ComfyUI-Notifications": { + "stars": 1, + "last_update": "2024-05-16 06:58:12" + }, + "https://github.com/nat-chan/comfyui-paint": { + "stars": 1, + "last_update": "2024-05-16 11:16:29" + }, + "https://github.com/oztrkoguz/ComfyUI_StoryCreator": { + "stars": 12, + "last_update": "2024-05-15 12:40:15" + }, + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": { + "stars": 1, + "last_update": "2024-05-16 12:13:53" } } \ No newline at end of file diff --git a/glob/manager_core.py b/glob/manager_core.py index 76fcdc01..1e3b382e 100644 --- a/glob/manager_core.py +++ b/glob/manager_core.py @@ -23,7 +23,7 @@ sys.path.append(glob_path) import cm_global from manager_util import * -version = [2, 30] +version = [2, 34] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') comfyui_manager_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) @@ -204,7 +204,8 @@ def write_config(): 'double_click_policy': get_config()['double_click_policy'], 'windows_selector_event_loop_policy': get_config()['windows_selector_event_loop_policy'], 'model_download_by_agent': get_config()['model_download_by_agent'], - 'downgrade_blacklist': get_config()['downgrade_blacklist'] + 'downgrade_blacklist': get_config()['downgrade_blacklist'], + 'security_level': get_config()['security_level'], } with open(config_path, 'w') as configfile: config.write(configfile) @@ -216,20 +217,30 @@ def read_config(): config.read(config_path) default_conf = config['default'] + # policy migration: disable_unsecure_features -> security_level + if 'disable_unsecure_features' in default_conf: + if default_conf['disable_unsecure_features'].lower() == 'true': + security_level = 'strong' + else: + security_level = 'normal' + else: + security_level = default_conf['security_level'] if 'security_level' in default_conf else 'normal' + return { 'preview_method': default_conf['preview_method'] if 'preview_method' in default_conf else manager_funcs.get_current_preview_method(), 'badge_mode': default_conf['badge_mode'] if 'badge_mode' in default_conf else 'none', 'git_exe': default_conf['git_exe'] if 'git_exe' in default_conf else '', 'channel_url': default_conf['channel_url'] if 'channel_url' in default_conf else 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', 'share_option': default_conf['share_option'] if 'share_option' in default_conf else 'all', - 'bypass_ssl': default_conf['bypass_ssl'] if 'bypass_ssl' in default_conf else False, - 'file_logging': default_conf['file_logging'] if 'file_logging' in default_conf else True, + 'bypass_ssl': default_conf['bypass_ssl'].lower() == 'true' if 'bypass_ssl' in default_conf else False, + 'file_logging': default_conf['file_logging'].lower() == 'true' if 'file_logging' in default_conf else True, 'default_ui': default_conf['default_ui'] if 'default_ui' in default_conf else 'none', 'component_policy': default_conf['component_policy'] if 'component_policy' in default_conf else 'workflow', 'double_click_policy': default_conf['double_click_policy'] if 'double_click_policy' in default_conf else 'copy-all', - 'windows_selector_event_loop_policy': default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, - 'model_download_by_agent': default_conf['model_download_by_agent'] if 'model_download_by_agent' in default_conf else False, + 'windows_selector_event_loop_policy': default_conf['windows_selector_event_loop_policy'].lower() == 'true' if 'windows_selector_event_loop_policy' in default_conf else False, + 'model_download_by_agent': default_conf['model_download_by_agent'].lower() == 'true' if 'model_download_by_agent' in default_conf else False, 'downgrade_blacklist': default_conf['downgrade_blacklist'] if 'downgrade_blacklist' in default_conf else '', + 'security_level': security_level } except Exception: @@ -246,7 +257,8 @@ def read_config(): 'double_click_policy': 'copy-all', 'windows_selector_event_loop_policy': False, 'model_download_by_agent': False, - 'downgrade_blacklist': '' + 'downgrade_blacklist': '', + 'security_level': 'normal', } @@ -564,7 +576,7 @@ def git_pull(path): async def get_data(uri, silent=False): if not silent: - print(f"FETCH DATA from: {uri}") + print(f"FETCH DATA from: {uri}", end="") if uri.startswith("http"): async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: @@ -576,6 +588,8 @@ async def get_data(uri, silent=False): json_text = f.read() json_obj = json.loads(json_text) + if not silent: + print(f" [DONE]") return json_obj @@ -964,7 +978,6 @@ def get_current_snapshot(): # Get ComfyUI hash repo_path = comfy_path - print(f"comfy_path: {comfy_path}") if not os.path.exists(os.path.join(repo_path, '.git')): print(f"ComfyUI update fail: The installed ComfyUI does not have a Git repository.") return {} @@ -1184,3 +1197,4 @@ def unzip(model_path): os.remove(model_path) return True + diff --git a/glob/manager_server.py b/glob/manager_server.py index c643ffe5..427adc8f 100644 --- a/glob/manager_server.py +++ b/glob/manager_server.py @@ -42,6 +42,36 @@ from comfy.cli_args import args import latent_preview +is_local_mode = args.listen.startswith('127.') + + +def is_allowed_security_level(level): + if level == 'high': + if is_local_mode: + return core.get_config()['security_level'].lower() in ['weak', 'normal'] + else: + return core.get_config()['security_level'].lower() == 'weak' + elif level == 'middle': + return core.get_config()['security_level'].lower() in ['weak', 'normal'] + else: + return True + + +async def get_risky_level(files): + json_data1 = await core.get_data_by_mode('local', 'custom-node-list.json') + json_data2 = await core.get_data_by_mode('cache', 'custom-node-list.json', channel_url='https://github.com/ltdrdata/ComfyUI-Manager/raw/main/custom-node-list.json') + + all_urls = set() + for x in json_data1['custom_nodes'] + json_data2['custom_nodes']: + all_urls.update(x['files']) + + for x in files: + if x not in all_urls: + return "high" + + return "middle" + + class ManagerFuncsInComfyUI(core.ManagerFuncs): def get_current_preview_method(self): if args.preview_method == latent_preview.LatentPreviewMethod.Auto: @@ -358,6 +388,10 @@ async def fetch_updates(request): @PromptServer.instance.routes.get("/customnode/update_all") async def update_all(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + try: core.save_snapshot_with_postfix('autosave') @@ -551,6 +585,10 @@ async def get_snapshot_list(request): @PromptServer.instance.routes.get("/snapshot/remove") async def remove_snapshot(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + try: target = request.rel_url.query["target"] @@ -565,6 +603,10 @@ async def remove_snapshot(request): @PromptServer.instance.routes.get("/snapshot/restore") async def remove_snapshot(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + try: target = request.rel_url.query["target"] @@ -729,8 +771,17 @@ def copy_set_active(files, is_disable, js_path_name='.'): @PromptServer.instance.routes.post("/customnode/install") async def install_custom_node(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + json_data = await request.json() + risky_level = await get_risky_level(json_data['files']) + if not is_allowed_security_level(risky_level): + print(f"ERROR: This installation is not allowed in this security_level. Please contact the administrator.") + return web.Response(status=404) + install_type = json_data['install_type'] print(f"Install custom node '{json_data['title']}'") @@ -767,6 +818,10 @@ async def install_custom_node(request): @PromptServer.instance.routes.post("/customnode/fix") async def fix_custom_node(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + json_data = await request.json() install_type = json_data['install_type'] @@ -797,6 +852,10 @@ async def fix_custom_node(request): @PromptServer.instance.routes.post("/customnode/install/git_url") async def install_custom_node_git_url(request): + if not is_allowed_security_level('high'): + print(f"ERROR: To use this feature, you must set '--listen' to a local IP and set the security level to 'middle' or 'weak'. Please contact the administrator.") + return web.Response(status=403) + url = await request.text() res = core.gitclone_install([url]) @@ -809,6 +868,10 @@ async def install_custom_node_git_url(request): @PromptServer.instance.routes.post("/customnode/install/pip") async def install_custom_node_git_url(request): + if not is_allowed_security_level('high'): + print(f"ERROR: To use this feature, you must set '--listen' to a local IP and set the security level to 'middle' or 'weak'. Please contact the administrator.") + return web.Response(status=403) + packages = await request.text() core.pip_install(packages.split(' ')) @@ -817,6 +880,10 @@ async def install_custom_node_git_url(request): @PromptServer.instance.routes.post("/customnode/uninstall") async def uninstall_custom_node(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + json_data = await request.json() install_type = json_data['install_type'] @@ -841,6 +908,10 @@ async def uninstall_custom_node(request): @PromptServer.instance.routes.post("/customnode/update") async def update_custom_node(request): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + json_data = await request.json() install_type = json_data['install_type'] @@ -955,6 +1026,10 @@ manager_terminal_hook = ManagerTerminalHook() @PromptServer.instance.routes.get("/manager/terminal") async def terminal_mode(request): + if not is_allowed_security_level('high'): + print(f"ERROR: To use this action, a security_level of `weak` is required. Please contact the administrator.") + return web.Response(status=403) + if "mode" in request.rel_url.query: if request.rel_url.query['mode'] == 'true': sys.__comfyui_manager_terminal_hook.add_hook('cm', manager_terminal_hook) @@ -1078,6 +1153,10 @@ async def get_notice(request): @PromptServer.instance.routes.get("/manager/reboot") def restart(self): + if not is_allowed_security_level('middle'): + print(f"ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.") + return web.Response(status=403) + try: sys.stdout.close_log() except Exception as e: diff --git a/js/a1111-alter-downloader.js b/js/a1111-alter-downloader.js index 65780a6b..c78d9b2d 100644 --- a/js/a1111-alter-downloader.js +++ b/js/a1111-alter-downloader.js @@ -56,7 +56,7 @@ export class AlternativesInstaller extends ComfyDialog { let data2 = data1.custom_node; if(!data2) - continue; + continue; let content = data1.tags.toLowerCase() + data1.description.toLowerCase() + data2.author.toLowerCase() + data2.description.toLowerCase() + data2.title.toLowerCase(); diff --git a/js/cm-api.js b/js/cm-api.js index e65cb348..1a6309d3 100644 --- a/js/cm-api.js +++ b/js/cm-api.js @@ -41,9 +41,18 @@ async function tryInstallCustomNode(event) { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(event.detail.target) }); + + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } } - api.fetchApi("/manager/reboot"); + let response = await api.fetchApi("/manager/reboot"); + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } await sleep(300); diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 3e98c234..ab23bddf 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -15,7 +15,7 @@ import { CustomNodesInstaller } from "./custom-nodes-downloader.js"; import { AlternativesInstaller } from "./a1111-alter-downloader.js"; import { SnapshotManager } from "./snapshot.js"; import { ModelInstaller } from "./model-downloader.js"; -import { manager_instance, setManagerInstance, install_via_git_url, install_pip, rebootAPI, free_models } from "./common.js"; +import { manager_instance, setManagerInstance, install_via_git_url, install_pip, rebootAPI, free_models, show_message } from "./common.js"; import { ComponentBuilderDialog, load_components, set_component_policy, getPureName } from "./components-manager.js"; import { set_double_click_policy } from "./node_fixer.js"; @@ -520,25 +520,21 @@ async function updateComfyUI() { const response = await api.fetchApi('/comfyui_manager/update_comfyui'); if (response.status == 400) { - app.ui.dialog.show('Failed to update ComfyUI.'); - app.ui.dialog.element.style.zIndex = 10010; + show_message('Failed to update ComfyUI.'); return false; } if (response.status == 201) { - app.ui.dialog.show('ComfyUI has been successfully updated.'); - app.ui.dialog.element.style.zIndex = 10010; + show_message('ComfyUI has been successfully updated.'); } else { - app.ui.dialog.show('ComfyUI is already up to date with the latest version.'); - app.ui.dialog.element.style.zIndex = 10010; + show_message('ComfyUI is already up to date with the latest version.'); } return true; } catch (exception) { - app.ui.dialog.show(`Failed to update ComfyUI / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to update ComfyUI / ${exception}`); return false; } finally { @@ -560,13 +556,12 @@ async function fetchUpdates(update_check_checkbox) { const response = await api.fetchApi(`/customnode/fetch_updates?mode=${mode}`); if (response.status != 200 && response.status != 201) { - app.ui.dialog.show('Failed to fetch updates.'); - app.ui.dialog.element.style.zIndex = 10010; + show_message('Failed to fetch updates.'); return false; } if (response.status == 201) { - app.ui.dialog.show("There is an updated extension available.

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

"); + show_message("There is an updated extension available.

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

"); const button = document.getElementById('cm-install-customnodes-button'); button.addEventListener("click", @@ -580,19 +575,16 @@ async function fetchUpdates(update_check_checkbox) { } ); - app.ui.dialog.element.style.zIndex = 10010; update_check_checkbox.checked = false; } else { - app.ui.dialog.show('All extensions are already up-to-date with the latest versions.'); - app.ui.dialog.element.style.zIndex = 10010; + show_message('All extensions are already up-to-date with the latest versions.'); } return true; } catch (exception) { - app.ui.dialog.show(`Failed to update custom nodes / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to update custom nodes / ${exception}`); return false; } finally { @@ -615,11 +607,16 @@ async function updateAll(update_check_checkbox, manager_dialog) { const response1 = await api.fetchApi('/comfyui_manager/update_comfyui'); const response2 = await api.fetchApi(`/customnode/update_all?mode=${mode}`); - if (response1.status == 400 || response2.status == 400) { - app.ui.dialog.show('Failed to update ComfyUI or several extensions.

See terminal log.
'); - app.ui.dialog.element.style.zIndex = 10010; + if (response2.status == 403) { + show_message('This action is not allowed with this security level configuration.'); return false; } + + if (response1.status == 400 || response2.status == 400) { + show_message('Failed to update ComfyUI or several extensions.

See terminal log.
'); + return false; + } + if(response1.status == 201 || response2.status == 201) { const update_info = await response2.json(); @@ -633,7 +630,7 @@ async function updateAll(update_check_checkbox, manager_dialog) { updated_list = "
UPDATED: "+update_info.updated.join(", "); } - app.ui.dialog.show( + show_message( "ComfyUI and all extensions have been updated to the latest version.
To apply the updated custom node, please ComfyUI. And refresh browser.
" +failed_list +updated_list @@ -646,19 +643,15 @@ async function updateAll(update_check_checkbox, manager_dialog) { manager_dialog.close(); } }); - - app.ui.dialog.element.style.zIndex = 10010; } else { - app.ui.dialog.show('ComfyUI and all extensions are already up-to-date with the latest versions.'); - app.ui.dialog.element.style.zIndex = 10010; + show_message('ComfyUI and all extensions are already up-to-date with the latest versions.'); } return true; } catch (exception) { - app.ui.dialog.show(`Failed to update ComfyUI or several extensions / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to update ComfyUI or several extensions / ${exception}`); return false; } finally { diff --git a/js/common.js b/js/common.js index 03615260..9fb7a182 100644 --- a/js/common.js +++ b/js/common.js @@ -1,6 +1,11 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; +export function show_message(msg) { + app.ui.dialog.show(msg); + app.ui.dialog.element.style.zIndex = 10010; +} + export async function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } @@ -47,6 +52,20 @@ export async function install_checked_custom_node(grid_rows, target_i, caller, m body: JSON.stringify(target) }); + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + caller.updateMessage(''); + await caller.invalidateControl(); + return; + } + + if(response.status == 404) { + show_message('With the current security level configuration, only custom nodes from the "default channel" can be installed.'); + caller.updateMessage(''); + await caller.invalidateControl(); + return; + } + if(response.status == 400) { show_message(`${mode} failed: ${target.title}`); continue; @@ -94,19 +113,21 @@ export async function install_pip(packages) { body: packages, }); + if(res.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return; + } + if(res.status == 200) { - app.ui.dialog.show(`PIP package installation is processed.
To apply the pip packages, please click the button in ComfyUI.`); + show_message(`PIP package installation is processed.
To apply the pip packages, please click the button in ComfyUI.`); const rebootButton = document.getElementById('cm-reboot-button3'); const self = this; rebootButton.addEventListener("click", rebootAPI); - - app.ui.dialog.element.style.zIndex = 10010; } else { - app.ui.dialog.show(`Failed to install '${packages}'
See terminal log.`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to install '${packages}'
See terminal log.`); } } @@ -116,21 +137,24 @@ export async function install_via_git_url(url, manager_dialog) { } if(!isValidURL(url)) { - app.ui.dialog.show(`Invalid Git url '${url}'`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Invalid Git url '${url}'`); return; } - app.ui.dialog.show(`Wait...

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

Installing '${url}'`); const res = await api.fetchApi("/customnode/install/git_url", { method: "POST", body: url, }); + if(res.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return; + } + if(res.status == 200) { - app.ui.dialog.show(`'${url}' is installed
To apply the installed custom node, please ComfyUI.`); + show_message(`'${url}' is installed
To apply the installed custom node, please ComfyUI.`); const rebootButton = document.getElementById('cm-reboot-button4'); const self = this; @@ -141,12 +165,9 @@ export async function install_via_git_url(url, manager_dialog) { manager_dialog.close(); } }); - - app.ui.dialog.element.style.zIndex = 10010; } else { - app.ui.dialog.show(`Failed to install '${url}'
See terminal log.`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to install '${url}'
See terminal log.`); } } @@ -158,15 +179,9 @@ export async function free_models() { }); if(res.status == 200) { - app.ui.dialog.show('Models have been unloaded.') + show_message('Models have been unloaded.') } else { - app.ui.dialog.show('Unloading of models failed.

Installed ComfyUI may be an outdated version.') + show_message('Unloading of models failed.

Installed ComfyUI may be an outdated version.') } - app.ui.dialog.element.style.zIndex = 10010; } - -export function show_message(msg) { - app.ui.dialog.show(msg); - app.ui.dialog.element.style.zIndex = 10010; -} \ No newline at end of file diff --git a/js/model-downloader.js b/js/model-downloader.js index 9642bcd1..0f0d1a80 100644 --- a/js/model-downloader.js +++ b/js/model-downloader.js @@ -1,7 +1,7 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js" import { ComfyDialog, $el } from "../../scripts/ui.js"; -import { install_checked_custom_node, manager_instance, rebootAPI } from "./common.js"; +import { install_checked_custom_node, manager_instance, rebootAPI, show_message } from "./common.js"; async function install_model(target) { if(ModelInstaller.instance) { @@ -20,8 +20,7 @@ async function install_model(target) { return true; } catch(exception) { - app.ui.dialog.show(`Install failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Install failed: ${target.title} / ${exception}`); return false; } finally { diff --git a/js/snapshot.js b/js/snapshot.js index 0ca7c76a..01e544f7 100644 --- a/js/snapshot.js +++ b/js/snapshot.js @@ -1,24 +1,28 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js" import { ComfyDialog, $el } from "../../scripts/ui.js"; -import { manager_instance, rebootAPI } from "./common.js"; +import { manager_instance, rebootAPI, show_message } from "./common.js"; async function restore_snapshot(target) { if(SnapshotManager.instance) { try { const response = await api.fetchApi(`/snapshot/restore?target=${target}`, { cache: "no-store" }); + + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } + if(response.status == 400) { - app.ui.dialog.show(`Restore snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Restore snapshot failed: ${target.title} / ${exception}`); } app.ui.dialog.close(); return true; } catch(exception) { - app.ui.dialog.show(`Restore snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Restore snapshot failed: ${target.title} / ${exception}`); return false; } finally { @@ -32,17 +36,21 @@ async function remove_snapshot(target) { if(SnapshotManager.instance) { try { const response = await api.fetchApi(`/snapshot/remove?target=${target}`, { cache: "no-store" }); + + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } + if(response.status == 400) { - app.ui.dialog.show(`Remove snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Remove snapshot failed: ${target.title} / ${exception}`); } app.ui.dialog.close(); return true; } catch(exception) { - app.ui.dialog.show(`Restore snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Restore snapshot failed: ${target.title} / ${exception}`); return false; } finally { @@ -58,8 +66,7 @@ async function save_current_snapshot() { return true; } catch(exception) { - app.ui.dialog.show(`Backup snapshot failed: ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Backup snapshot failed: ${exception}`); return false; } finally { diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index 8213232c..245248d6 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -9,16 +9,108 @@ "description": "If you see this message, your ComfyUI-Manager is outdated.\nDev channel provides only the list of the developing nodes. If you want to find the complete node list, please go to the Default channel." }, + { - "author": "huchenlei", - "title": "ComfyUI-IC-Light", - "id": "ic-light-huchenlei", - "reference": "https://github.com/huchenlei/ComfyUI-IC-Light", + "author": "ejektaflex", + "title": "ComfyUI-Ty", + "reference": "https://github.com/ejektaflex/ComfyUI-Ty", "files": [ - "https://github.com/huchenlei/ComfyUI-IC-Light" + "https://github.com/ejektaflex/ComfyUI-Ty" ], "install_type": "git-clone", - "description": "ComfyUI native implementation of [a/IC-Light](https://github.com/lllyasviel/IC-Light). [w/It is not possible to install both because kijai's ComfyUI-IC-Light and another repository have the same name.]" + "description": "Nodes:Lora Block Weight Regex Loader" + }, + { + "author": "88IO", + "title": "ComfyUI Image Reordering Plugins [WIP]", + "reference": "https://github.com/88IO/ComfyUI-ImageReorder", + "files": [ + "https://github.com/88IO/ComfyUI-ImageReorder" + ], + "install_type": "git-clone", + "description": "A custom node reorder multiple image frames based on indexes or curves." + }, + { + "author": "christian-byrne", + "title": "Python Interpreter ComfyUI Node [UNSAFE]", + "reference": "https://github.com/christian-byrne/python-interpreter-node", + "files": [ + "https://github.com/christian-byrne/python-interpreter-node" + ], + "install_type": "git-clone", + "description": "For debugging, parsing data, generating random values, converting types, testing custom nodes faster.\nReference and use variables in the code using the same names as the inputs in the UI\nWrapper class around tensors with operator overloading for doing common image manipulation tasks.I might remove this aspect\n[w/This extension allows you to run programs through Python code in your workflow, which may not be secure. Use with caution.]" + }, + { + "author": "sofakid", + "title": "dandy [UNSAFE]", + "reference": "https://github.com/sofakid/dandy", + "files": [ + "https://github.com/sofakid/dandy" + ], + "install_type": "git-clone", + "description": "Dandy is a JavaScript bridge for ComfyUI. It includes everything you need to make JavaScript enabled extensions, or just load and code in little editor nodes right in ComfyUI.[w/This code can cause security issues because it allows for the execution of arbitrary JavaScript input.]" + }, + { + "author": "tachyon-beep", + "title": "comfyui-simplefeed [UNSAFE]", + "reference": "https://github.com/tachyon-beep/comfyui-simplefeed", + "files": [ + "https://github.com/tachyon-beep/comfyui-simplefeed" + ], + "install_type": "git-clone", + "description": "A simple image feed for comfyUI which is easily configurable and easily extensible.\nUse the filter button to select which nodes write to the feed. Under settings, there are options that allow you: Position the feed. Set a max iamge count for the feed. Set oldest to newest or newest to oldest." + }, + { + "author": "liusida", + "title": "ComfyUI-Sida-Remove-Image [UNSAFE]", + "reference": "https://github.com/liusida/ComfyUI-Sida-Remove-Image", + "files": [ + "https://github.com/liusida/ComfyUI-Sida-Remove-Image" + ], + "install_type": "git-clone", + "description": "Nodes: LoadImageWithPrivacy, RemoveImage.[w/This extension is not secure because it provides the capability to delete files from arbitrary paths.]" + }, + { + "author": "shadowcz007", + "title": "ComfyUI-PuLID [TEST]", + "reference": "https://github.com/shadowcz007/ComfyUI-PuLID-Test", + "files": [ + "https://github.com/shadowcz007/ComfyUI-PuLID-Test" + ], + "install_type": "git-clone", + "description": "[a/PuLID](https://github.com/ToTheBeginning/PuLID) ComfyUI native implementation." + }, + { + "author": "sangeet", + "title": "comfyui-testui [TEST]", + "reference": "https://github.com/sangeet/comfyui-testui", + "files": [ + "https://github.com/sangeet/comfyui-testui" + ], + "install_type": "git-clone", + "description": "Simple Frontend For ComfyUI workflow" + }, + { + "author": "Elawphant", + "title": "ComfyUI-MusicGen [WIP]", + "id": "musicgen", + "reference": "https://github.com/Elawphant/ComfyUI-MusicGen", + "files": [ + "https://github.com/Elawphant/ComfyUI-MusicGen" + ], + "install_type": "git-clone", + "description": "ComfyUI for Meta MusicGen." + }, + { + "author": "jtscmw01", + "title": "ComfyUI-DiffBIR", + "id": "diffbir", + "reference": "https://github.com/jtscmw01/ComfyUI-DiffBIR", + "files": [ + "https://github.com/jtscmw01/ComfyUI-DiffBIR" + ], + "install_type": "git-clone", + "description": "This extension provides [a/DiffBIR](https://github.com/XPixelGroup/DiffBIR) feature." }, { "author": "Levy1417", diff --git a/node_db/forked/custom-node-list.json b/node_db/forked/custom-node-list.json index 76b4f038..55459114 100644 --- a/node_db/forked/custom-node-list.json +++ b/node_db/forked/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "meimeilook", + "title": "ComfyUI_IPAdapter_plus.old [backward compatbility]", + "reference": "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old", + "files": [ + "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old" + ], + "install_type": "git-clone", + "description": "This repo is created to provide backward compatibility for workflows configured with the old IPAdapter." + }, { "author": "ZHO-ZHO-ZHO", "title": "Dr.Lt.Data/ComfyUI-YoloWorld-EfficientSAM", diff --git a/node_db/legacy/custom-node-list.json b/node_db/legacy/custom-node-list.json index 1083f8d4..6cb17e0c 100644 --- a/node_db/legacy/custom-node-list.json +++ b/node_db/legacy/custom-node-list.json @@ -60,16 +60,6 @@ "install_type": "git-clone", "description": "Please note that the ImageTextOverlay project is no longer supported and has been moved to a new repository. For ongoing developments, contributions, and issues, please refer to the new repository at: [a/https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools](https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools)" }, - { - "author": "meimeilook", - "title": "ComfyUI_IPAdapter_plus.old [backward compatbility]", - "reference": "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old", - "files": [ - "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old" - ], - "install_type": "git-clone", - "description": "This repo is created to provide backward compatibility for workflows configured with the old IPAdapter." - }, { "author": "mlinmg", "title": "LaMa Preprocessor [DEPRECATED]", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 4b04475f..35d29b58 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -9,9 +9,116 @@ "description": "If you see this message, your ComfyUI-Manager is outdated.\nRecent channel provides only the list of the latest nodes. If you want to find the complete node list, please go to the Default channel.\nMaking LoRA has never been easier!" }, + - - + { + "author": "kaanyalova", + "title": "Extended Image Formats for ComfyUI", + "id": "extended-image-format", + "reference": "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats", + "files": [ + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats" + ], + "install_type": "git-clone", + "description": "Adds a custom node for saving images in webp, jpeg, avif, jxl (no metadata) and supports loading workflows from saved images" + }, + { + "author": "badayvedat", + "title": "ComfyUI-fal-Connector", + "id": "fal", + "reference": "https://github.com/badayvedat/ComfyUI-fal-Connector", + "files": [ + "https://github.com/badayvedat/ComfyUI-fal-Connector" + ], + "install_type": "git-clone", + "description": "The ComfyUI-fal-Connector is a tool designed to provide an integration between ComfyUI and fal. This extension allows users to execute their ComfyUI workflows directly on [a/fal.ai](https://fal.ai/). This enables users to leverage the computational power and resources provided by fal.ai for running their ComfyUI workflows." + }, + { + "author": "nat-chan", + "title": "comfyui-paint", + "reference": "https://github.com/nat-chan/comfyui-paint", + "files": [ + "https://github.com/nat-chan/comfyui-paint" + ], + "install_type": "git-clone", + "description": "comfyui-paint" + }, + { + "author": "katalist-ai", + "title": "comfyUI-nsfw-detection", + "id": "nsfw-detection", + "reference": "https://github.com/katalist-ai/comfyUI-nsfw-detection", + "files": [ + "https://github.com/katalist-ai/comfyUI-nsfw-detection" + ], + "install_type": "git-clone", + "description": "Nodes: NudenetDetector" + }, + { + "author": "royceschultz", + "title": "ComfyUI-Notifications", + "reference": "https://github.com/royceschultz/ComfyUI-Notifications", + "files": [ + "https://github.com/royceschultz/ComfyUI-Notifications" + ], + "install_type": "git-clone", + "description": "Send notifications when a workflow completes." + }, + { + "author": "GraftingRayman", + "title": "GR Prompt Selector", + "id": "gr-prompt-selector", + "reference": "https://github.com/GraftingRayman/ComfyUI_GraftingRayman", + "files": [ + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman" + ], + "install_type": "git-clone", + "description": "Prompt and Masking nodes." + }, + { + "author": "nat-chan", + "title": "ComfyUI-graphToPrompt", + "id": "graph2prompt", + "reference": "https://github.com/nat-chan/ComfyUI-graphToPrompt", + "files": [ + "https://github.com/nat-chan/ComfyUI-graphToPrompt" + ], + "install_type": "git-clone", + "description": "workflow.json -> workflow_api.json" + }, + { + "author": "oztrkoguz", + "title": "ComfyUI StoryCreater", + "id": "storycreater", + "reference": "https://github.com/oztrkoguz/ComfyUI_StoryCreator", + "files": [ + "https://github.com/oztrkoguz/ComfyUI_StoryCreator" + ], + "install_type": "git-clone", + "description": "Nodes:story_sampler_simple, text2, kosmos2_sampler.\nI created a dataset for generating short stories [a/Short-Story](https://huggingface.co/datasets/oztrkoguz/Short-Story) and used it to fine-tune my own model using Phi-3." + }, + { + "author": "jtydhr88", + "title": "ComfyUI LayerDivider", + "id": "layer-divider", + "reference": "https://github.com/jtydhr88/ComfyUI-LayerDivider", + "files": [ + "https://github.com/jtydhr88/ComfyUI-LayerDivider" + ], + "install_type": "git-clone", + "description": "ComfyUI LayerDivider is custom nodes that generating layered psd files inside ComfyUI[w/This plugin depends on Python 3.10, which means we cannot use the default Python that comes with ComfyUI, as it is Python 3.11. For this reason, it is recommended to use conda to manage and create the ComfyUI runtime environment.]" + }, + { + "author": "ShmuelRonen", + "title": "Wav2Lip Node for ComfyUI", + "id": "wav2lip", + "reference": "https://github.com/ShmuelRonen/ComfyUI_wav2lip", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_wav2lip" + ], + "install_type": "git-clone", + "description": "The Wav2Lip node is a custom node for ComfyUI that allows you to perform lip-syncing on videos using the Wav2Lip model. It takes an input video and an audio file and generates a lip-synced output video." + }, { "author": "ray", "title": "Light Gradient for ComfyUI", @@ -24,15 +131,124 @@ "description": "Nodes:Image Gradient,Mask Gradient" }, { - "author": "YouFunnyGuys", - "title": "ComfyUI_YFG_Comical", + "author": "ray", + "title": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )", + "id": "gaffer", + "reference": "https://github.com/huagetai/ComfyUI-Gaffer", + "files": [ + "https://github.com/huagetai/ComfyUI-Gaffer" + ], + "install_type": "git-clone", + "description": "Nodes:Load ICLight Model,Apply ICLight,Simple Light Source,Calculate Normal Map" + }, + { + "author": "christian-byrne", + "title": "img2txt-comfyui-nodes", + "id": "img2txt-nodes", + "reference": "https://github.com/christian-byrne/img2txt-comfyui-nodes", + "files": [ + "https://github.com/christian-byrne/img2txt-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:img2txt BLIP SalesForce Large" + }, + { + "author": "huchenlei", + "title": "ComfyUI-IC-Light-Native", + "id": "ic-light-native", + "reference": "https://github.com/huchenlei/ComfyUI-IC-Light-Native", + "files": [ + "https://github.com/huchenlei/ComfyUI-IC-Light-Native" + ], + "install_type": "git-clone", + "description": "ComfyUI native implementation of [a/IC-Light](https://github.com/lllyasviel/IC-Light)." + }, + { + "author": "lquesada", + "title": "ComfyUI-Inpaint-CropAndStitch", + "reference": "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch", + "files": [ + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch" + ], + "install_type": "git-clone", + "description": "'✂️ Inpaint Crop' is a node that crops an image before sampling. The context area can be specified via the mask, expand pixels and expand factor or via a separate (optional) mask.\n'✂️ Inpaint Stitch' is a node that stitches the inpainted image back into the original image without altering unmasked areas." + }, + { + "author": "laksjdjf", + "title": "cgem156-ComfyUI🍌", + "id": "cgem156", + "reference": "https://github.com/laksjdjf/cgem156-ComfyUI", + "files": [ + "https://github.com/laksjdjf/cgem156-ComfyUI" + ], + "install_type": "git-clone", + "description": "The custom nodes of laksjdjf have been integrated into the node pack of cgem156🍌." + }, + { + "author": "ruiqutech", + "title": "RuiquNodes for ComfyUI", + "id": "RuiquNodes", + "reference": "https://github.com/ruiqutech/ComfyUI-RuiquNodes", + "files": [ + "https://github.com/ruiqutech/ComfyUI-RuiquNodes" + ], + "install_type": "git-clone", + "description": "Nodes of EvaluateMultiple1, EvaluateMultiple3...\nSupport the execution of any fragment of Python code, generating multiple outputs from multiple inputs." + }, + { + "author": "fmatray", + "title": "ComfyUI_BattlemapGrid", + "id": "battlemap-grid", + "reference": "https://github.com/fmatray/ComfyUI_BattlemapGrid", + "files": [ + "https://github.com/fmatray/ComfyUI_BattlemapGrid" + ], + "install_type": "git-clone", + "description": "Nodes for ComfyUI in order to generate battelmaps" + }, + { + "author": "teward", + "title": "ComfyUI-Helper-Nodes", + "id": "helper-nodes", + "reference": "https://github.com/teward/ComfyUI-Helper-Nodes", + "files": [ + "https://github.com/teward/ComfyUI-Helper-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes: HelperNodes_MultilineStringLiteral, HelperNodes_StringLiteral, HelperNodes_Steps, HelperNodes_CfgScale, HelperNodes_WidthHeight, HelperNodes_SchedulerSelector, HelperNodes_SamplerSelector, ..." + }, + { + "author": "smthemex", + "title": "ComfyUI_HiDiffusion_Pro", + "id": "hidiffusion-pro", + "reference": "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro", + "files": [ + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro" + ], + "install_type": "git-clone", + "description": "A HiDiffusion node for ComfyUI." + }, + { + "author": "ray", + "title": "Light Gradient for ComfyUI", + "id": "light-gradient", + "reference": "https://github.com/huagetai/ComfyUI_LightGradient", + "files": [ + "https://github.com/huagetai/ComfyUI_LightGradient" + ], + "install_type": "git-clone", + "description": "Nodes:Image Gradient,Mask Gradient" + }, + { + "author": "YFG", + "title": "😸 YFG Comical Nodes", "id": "comical", "reference": "https://github.com/gonzalu/ComfyUI_YFG_Comical", "files": [ "https://github.com/gonzalu/ComfyUI_YFG_Comical" ], "install_type": "git-clone", - "description": "Nodes: image2histogram" + "description": "Image Historgram Generator - Outputs a set of images displaying the Histogram of the input image. Nodes: img2histograms, img2histogramsSelf" }, { "author": "kijai", @@ -480,218 +696,6 @@ ], "install_type": "git-clone", "description": "This is a custom node that allows you to easily call up and set image size presets. Settings can be made by editing the included config.yaml. It is almost identical to Comfyroll Studio's CR AspectRatio. I created it because I wanted to easily edit the presets." - }, - { - "author": "cfreilich", - "title": "Virtuoso Nodes for ComfyUI", - "reference": "https://github.com/chrisfreilich/virtuoso-nodes", - "files": [ - "https://github.com/chrisfreilich/virtuoso-nodes" - ], - "install_type": "git-clone", - "description": "Photoshop type functions and adjustment layers: 30 blend modes, Selective Color, Blend If, Color Balance, Solid Color Images, Black and White, Hue/Saturation, Levels, and RGB Splitting and Merging." - }, - { - "author": "Shinsplat", - "title": "ComfyUI-Shinsplat", - "reference": "https://github.com/Shinsplat/ComfyUI-Shinsplat", - "files": [ - "https://github.com/Shinsplat/ComfyUI-Shinsplat" - ], - "install_type": "git-clone", - "description": "Nodes: Clip Text Encode (Shinsplat), Clip Text Encode SDXL (Shinsplat), Lora Loader (Shinsplat)." - }, - { - "author": "daxcay", - "title": "ComfyUI-DRMN", - "reference": "https://github.com/daxcay/ComfyUI-DRMN", - "files": [ - "https://github.com/daxcay/ComfyUI-DRMN" - ], - "install_type": "git-clone", - "description": "Data Research And Manipulators Nodes for Model Trainers, Artists, Designers and Animators. Captions, Visualizer, Text Manipulator" - }, - { - "author": "kealiu", - "title": "ComfyUI-ZeroShot-MTrans", - "reference": "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans", - "files": [ - "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans" - ], - "install_type": "git-clone", - "description": "An unofficial ComfyUI custom node for [a/Zero-Shot Material Transfer from a Single Image](https://ttchengab.github.io/zest), Given an input image (e.g., a photo of an apple) and a single material exemplar image (e.g., a golden bowl), ZeST can transfer the gold material from the exemplar onto the apple with accurate lighting cues while making everything else consistent." - }, - { - "author": "fofr", - "title": "ComfyUI-HyperSDXL1StepUnetScheduler (ByteDance)", - "id": "hypersdxl", - "reference": "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler", - "files": [ - "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler" - ], - "install_type": "git-clone", - "description": "Original author is ByteDance.\nComfyUI sampler for HyperSDXL UNet\nPorted from: [a/https://huggingface.co/ByteDance/Hyper-SD](https://huggingface.co/ByteDance/Hyper-SD)" - }, - { - "author": "TaiTair", - "title": "Simswap Node for ComfyUI", - "id": "simswap", - "reference": "https://github.com/TaiTair/comfyui-simswap", - "files": [ - "https://github.com/TaiTair/comfyui-simswap" - ], - "install_type": "git-clone", - "description": "A hacky implementation of Simswap based on [a/Comfyui ReActor Node 0.5.1](https://github.com/Gourieff/comfyui-reactor-node) and [a/Simswap](https://github.com/neuralchen/SimSwap)." - }, - { - "author": "jeffy5", - "title": "comfyui-fb-utils", - "reference": "https://github.com/jeffy5/comfyui-faceless-node", - "files": [ - "https://github.com/jeffy5/comfyui-faceless-node" - ], - "install_type": "git-clone", - "description": "Nodes:Load Video, Load Frames, Save Video, Face Swap, Face Restore, Face Swap (Video), Face Restore (Video)" - }, - { - "author": "chaojie", - "title": "ComfyUI-SimDA", - "reference": "https://github.com/chaojie/ComfyUI-SimDA", - "files": [ - "https://github.com/chaojie/ComfyUI-SimDA" - ], - "install_type": "git-clone", - "description": "Nodes:SimDATrain, SimDALoader, SimDARun, VHS_FILENAMES_STRING_SimDA" - }, - { - "author": "randjtw", - "title": "advance-aesthetic-score", - "reference": "https://github.com/randjtw/advance-aesthetic-score", - "files": [ - "https://github.com/randjtw/advance-aesthetic-score" - ], - "install_type": "git-clone", - "description": "Nodes:Advance Aesthetic Score" - }, - { - "author": "shinich39", - "title": "comfyui-local-db", - "reference": "https://github.com/shinich39/comfyui-local-db", - "files": [ - "https://github.com/shinich39/comfyui-local-db" - ], - "install_type": "git-clone", - "description": "Store text to Key-Values pair json." - }, - { - "author": "FredBill1", - "title": "comfyui-fb-utils", - "reference": "https://github.com/FredBill1/comfyui-fb-utils", - "files": [ - "https://github.com/FredBill1/comfyui-fb-utils" - ], - "install_type": "git-clone", - "description": "Nodes:FBStringJoin, FBStringSplit, FBMultilineStringList, FBMultilineString" - }, - { - "author": "lquesada", - "title": "ComfyUI-Prompt-Combinator", - "reference": "https://github.com/lquesada/ComfyUI-Prompt-Combinator", - "files": [ - "https://github.com/lquesada/ComfyUI-Prompt-Combinator" - ], - "install_type": "git-clone", - "description": "'🔢 Prompt Combinator' is a node that generates all possible combinations of prompts from several lists of strings." - }, - { - "author": "huchenlei", - "title": "ComfyUI-openpose-editor", - "reference": "https://github.com/huchenlei/ComfyUI-openpose-editor", - "files": [ - "https://github.com/huchenlei/ComfyUI-openpose-editor" - ], - "install_type": "git-clone", - "description": "Port of [a/https://github.com/huchenlei/sd-webui-openpose-editor](https://github.com/huchenlei/sd-webui-openpose-editor) in ComfyUI" - }, - { - "author": "longgui0318", - "title": "comfyui-magic-clothing", - "reference": "https://github.com/longgui0318/comfyui-magic-clothing", - "files": [ - "https://github.com/longgui0318/comfyui-magic-clothing" - ], - "install_type": "git-clone", - "description": "The comfyui supported version of the [a/Magic Clothing](https://github.com/ShineChen1024/MagicClothing) project, not the diffusers version, allows direct integration with modules such as ipadapter" - }, - { - "author": "ty0x2333", - "title": "ComfyUI-Dev-Utils", - "reference": "https://github.com/ty0x2333/ComfyUI-Dev-Utils", - "files": [ - "https://github.com/ty0x2333/ComfyUI-Dev-Utils" - ], - "install_type": "git-clone", - "description": "Execution Time Analysis, Reroute Enhancement, Node collection for developers." - }, - { - "author": "chaojie", - "title": "ComfyUI-LaVIT", - "reference": "https://github.com/chaojie/ComfyUI-LaVIT", - "files": [ - "https://github.com/chaojie/ComfyUI-LaVIT" - ], - "install_type": "git-clone", - "description": "Nodes:VideoLaVITLoader, VideoLaVITT2V, VideoLaVITI2V, VideoLaVITI2VLong, VideoLaVITT2VLong, VideoLaVITI2I" - }, - { - "author": "smthemex", - "title": "ComfyUI_Pipeline_Tool", - "reference": "https://github.com/smthemex/ComfyUI_Pipeline_Tool", - "files": [ - "https://github.com/smthemex/ComfyUI_Pipeline_Tool" - ], - "install_type": "git-clone", - "description": "A tool for novice users in Chinese Mainland to call the huggingface hub and download the huggingface models." - }, - { - "author": "blueraincoatli", - "title": "comfyUI_SillyNodes", - "reference": "https://github.com/blueraincoatli/comfyUI_SillyNodes", - "files": [ - "https://github.com/blueraincoatli/comfyUI_SillyNodes" - ], - "install_type": "git-clone", - "description": "Using rgthree's fast_group_muter and bookmark nodes, introduce the pyautogui library to simulate clicks and hotkeys, and run groups in sequence. screen manipulation is involved" - }, - { - "author": "Fannovel16", - "title": "ComfyUI-MagickWand", - "reference": "https://github.com/Fannovel16/ComfyUI-MagickWand", - "files": [ - "https://github.com/Fannovel16/ComfyUI-MagickWand" - ], - "install_type": "git-clone", - "description": "Proper implementation of ImageMagick - the famous software suite for editing and manipulating digital images to ComfyUI using [a/wandpy](https://github.com/emcconville/wand).\nNOTE: You need to install ImageMagick, manually." - }, - { - "author": "MinusZoneAI", - "title": "ComfyUI-Prompt-MZ", - "reference": "https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ", - "files": [ - "https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ" - ], - "install_type": "git-clone", - "description": "Use llama.cpp to help generate some nodes for prompt word related work" - }, - { - "author": "AIFSH", - "title": "ComfyUI-WhisperX", - "reference": "https://github.com/AIFSH/ComfyUI-WhisperX", - "files": [ - "https://github.com/AIFSH/ComfyUI-WhisperX" - ], - "install_type": "git-clone", - "description": "a comfyui cuatom node for audio subtitling based on [a/whisperX](https://github.com/m-bain/whisperX.git) and [a/translators](https://github.com/UlionTse/translators)" } ] } \ No newline at end of file diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index b4a07c6c..57f6cf30 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -416,6 +416,7 @@ "IntToString-badger", "IntToStringAdvanced-badger", "LoadImageAdvanced-badger", + "LoadImagesFromDirListAdvanced-badger", "SegmentToMaskByPoint-badger", "SimpleBoolean-badger", "StringToFizz-badger", @@ -682,6 +683,7 @@ "ComfyUIDeployExternalLora", "ComfyUIDeployExternalNumber", "ComfyUIDeployExternalNumberInt", + "ComfyUIDeployExternalNumberSlider", "ComfyUIDeployExternalText", "ComfyUIDeployExternalVid", "ComfyUIDeployExternalVideo" @@ -1123,8 +1125,13 @@ [ "Automatic CFG", "Automatic CFG - Advanced", + "Automatic CFG - Attention modifiers", + "Automatic CFG - Attention modifiers tester", + "Automatic CFG - Custom attentions", + "Automatic CFG - Excellent attention", "Automatic CFG - Negative", "Automatic CFG - Post rescale only", + "Automatic CFG - Preset Loader", "Automatic CFG - Unpatch function", "Automatic CFG - Warp Drive", "SAG delayed activation" @@ -1412,6 +1419,7 @@ "TilePreprocessor", "UniFormer-SemSegPreprocessor", "Unimatch_OptFlowPreprocessor", + "UpperBodyTrackingFromPoseKps", "Zoe-DepthMapPreprocessor", "Zoe_DepthAnythingPreprocessor" ], @@ -1646,12 +1654,24 @@ "title_aux": "ReActor Node for ComfyUI" } ], + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": [ + [ + "GR Image Resize", + "GR Mask Create", + "GR Mask Resize", + "GR Multi Mask Create", + "GR Prompt Selector" + ], + { + "title_aux": "GR Prompt Selector" + } + ], "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": [ [ "StableCascadeLatentRatio" ], { - "title_aux": "ComfyUI-ScenarioPrompt" + "title_aux": "ComfyUI_StableCascadeLatentRatio" } ], "https://github.com/HAL41/ComfyUI-aichemy-nodes": [ @@ -2117,6 +2137,8 @@ "ACN_SparseCtrlMergedLoaderAdvanced", "ACN_SparseCtrlRGBPreprocessor", "ACN_SparseCtrlSpreadMethodNode", + "ACN_TimestepKeyframeFromStrengthList", + "ACN_TimestepKeyframeInterpolation", "ControlNetLoaderAdvanced", "CustomControlNetWeights", "CustomT2IAdapterWeights", @@ -2644,6 +2666,8 @@ "DoubleClipTextEncode", "EmbeddingLoader", "FilmCharDir", + "FuseImages", + "FuseImages2", "HashText", "HueSatLum", "HueShift", @@ -2654,6 +2678,7 @@ "IntEvaluate", "IntFloatDict", "IntStringDict", + "JsonSearch", "LandscapeBackgrounds", "LandscapeDir", "MakeupStylesDir", @@ -2664,11 +2689,18 @@ "PhotomontageB", "PhotomontageC", "PostSamplerCrop", + "PresetLoad", + "PresetRemove", + "PresetSave", + "RandomString", "SDXLEmptyLatent", + "SavePrompt", "SaveWithMetaData", "SaveWithMetaData2", + "SearchReplace", "SimplePrompts", "SpecificStylesDir", + "StringJoin", "TimeStamp", "TricolorComposition", "WorkflowSettings", @@ -3483,6 +3515,14 @@ "title_aux": "ComfyUI-SVDResizer" } ], + "https://github.com/ShmuelRonen/ComfyUI_wav2lip": [ + [ + "Wav2Lip" + ], + { + "title_aux": "Wav2Lip Node for ComfyUI" + } + ], "https://github.com/Shraknard/ComfyUI-Remover": [ [ "Remover" @@ -3629,7 +3669,8 @@ "Image Batch Manager (SuperBeasts.AI)", "Make Resized Mask Batch (SuperBeasts.AI)", "Mask Batch Manager (SuperBeasts.AI)", - "Pixel Deflicker (SuperBeasts.AI)" + "Pixel Deflicker (SuperBeasts.AI)", + "String List Manager (SuperBeasts.AI)" ], { "title_aux": "ComfyUI-SuperBeasts" @@ -3948,6 +3989,7 @@ "tri3d-atr-parse", "tri3d-atr-parse-batch", "tri3d-clipdrop-bgremove-api", + "tri3d-clipdrop-bgreplace-api", "tri3d-composite-image-splitter", "tri3d-dwpose", "tri3d-extract-hand", @@ -4493,6 +4535,7 @@ "Text Dictionary To Text", "Text Dictionary Update", "Text File History Loader", + "Text Find", "Text Find and Replace", "Text Find and Replace Input", "Text Find and Replace by Dictionary", @@ -4900,6 +4943,7 @@ ], "https://github.com/abyz22/image_control": [ [ + "abyz22_AddPrompt", "abyz22_Convertpipe", "abyz22_Editpipe", "abyz22_FirstNonNull", @@ -4909,6 +4953,7 @@ "abyz22_ImpactWildcardEncode_GetPrompt", "abyz22_Ksampler", "abyz22_Padding Image", + "abyz22_RandomMask", "abyz22_RemoveControlnet", "abyz22_SaveImage", "abyz22_SetQueue", @@ -4917,6 +4962,7 @@ "abyz22_blend_onecolor", "abyz22_blendimages", "abyz22_bypass", + "abyz22_censoring", "abyz22_drawmask", "abyz22_lamaInpaint", "abyz22_lamaPreprocessor", @@ -5050,12 +5096,13 @@ "title_aux": "ComfyUI Image Saver" } ], - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": [ + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": [ [ - "LLaVaDescriber" + "LLaVaDescriber", + "OllamaDescriber" ], { - "title_aux": "ComfyUI-LLaVA-Describer" + "title_aux": "ComfyUI-Ollama-Describer" } ], "https://github.com/alpertunga-bile/prompt-generator-comfyui": [ @@ -5348,6 +5395,18 @@ "title_aux": "ComfyUI-ClipScore-Nodes" } ], + "https://github.com/badayvedat/ComfyUI-fal-Connector": [ + [ + "BooleanInput_fal", + "ComboInput_fal", + "FloatInput_fal", + "IntegerInput_fal", + "StringInput_fal" + ], + { + "title_aux": "ComfyUI-fal-Connector" + } + ], "https://github.com/badjeff/comfyui_lora_tag_loader": [ [ "LoraTagLoader" @@ -5883,6 +5942,7 @@ "ImageDirIterator", "Modelscopet2v", "Modelscopev2v", + "TextFileLineIterator", "VidDirIterator" ], { @@ -6347,6 +6407,7 @@ ], "https://github.com/chflame163/ComfyUI_LayerStyle": [ [ + "LayerColor: AutoAdjust", "LayerColor: AutoBrightness", "LayerColor: Brightness & Contrast", "LayerColor: Color of Shadow & Highlight", @@ -6453,7 +6514,9 @@ "LayerUtility: PromptEmbellish", "LayerUtility: PromptTagger", "LayerUtility: QWenImage2Prompt", + "LayerUtility: RGB Value", "LayerUtility: RestoreCropBox", + "LayerUtility: Seed", "LayerUtility: SimpleTextImage", "LayerUtility: TextBox", "LayerUtility: TextImage", @@ -6461,10 +6524,10 @@ "LayerUtility: XY to Percent" ], { - "author": "Chris Freilich", - "description": "This extension provides a blend modes node with 30 blend modes.", - "nickname": "Virtuoso Pack - Blend Nodes", - "title": "Virtuoso Pack - Blend Modes", + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", "title_aux": "ComfyUI Layer Style" } ], @@ -6967,6 +7030,7 @@ ], "https://github.com/cubiq/ComfyUI_FaceAnalysis": [ [ + "FaceAlign", "FaceAnalysisModels", "FaceBoundingBox", "FaceEmbedDistance" @@ -7036,6 +7100,7 @@ ], "https://github.com/cubiq/ComfyUI_essentials": [ [ + "ApplyCLIPSeg+", "BatchCount+", "CLIPTextEncodeSDXL+", "ConditioningCombineMultiple+", @@ -7061,6 +7126,7 @@ "ImageSeamCarving+", "KSamplerVariationsStochastic+", "KSamplerVariationsWithNoise+", + "LoadCLIPSegModels+", "MaskBatch+", "MaskBlur+", "MaskBoundingBox+", @@ -7089,6 +7155,7 @@ "https://github.com/cubiq/PuLID_ComfyUI": [ [ "ApplyPulid", + "ApplyPulidAdvanced", "PulidEvaClipLoader", "PulidInsightFaceLoader", "PulidModelLoader" @@ -7728,13 +7795,17 @@ "FL_CodeNode", "FL_DirectoryCrawl", "FL_Glitch", + "FL_HalftonePattern", "FL_HexagonalPattern", "FL_ImageCaptionSaver", "FL_ImageDimensionDisplay", "FL_ImageDurationSync", "FL_ImagePixelator", "FL_ImageRandomizer", + "FL_NFTGenerator", "FL_PixelSort", + "FL_PromptSelector", + "FL_RandomNumber", "FL_Ripple" ], { @@ -7864,6 +7935,16 @@ "title_aux": "As_ComfyUI_CustomNodes" } ], + "https://github.com/fmatray/ComfyUI_BattlemapGrid": [ + [ + "Battlemap Grid", + "Map Generator", + "Map Generator(Outdoors)" + ], + { + "title_aux": "ComfyUI_BattlemapGrid" + } + ], "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": [ [ "HyperSDXL1StepUnetScheduler" @@ -7943,6 +8024,7 @@ ], "https://github.com/fsdymy1024/ComfyUI_fsdymy": [ [ + "Preview Image Without Metadata", "Save Image Without Metadata" ], { @@ -8227,17 +8309,15 @@ ], "https://github.com/gonzalu/ComfyUI_YFG_Comical": [ [ - "hello_world", - "image_histogram_node", "image_histograms_node", - "meme_generator_node" + "image_histograms_node_compact" ], { "author": "YFG", - "description": "This extension just outputs Hello World! as a string.", - "nickname": "YFG Hello World", - "title": "YFG Hello World", - "title_aux": "ComfyUI_YFG_Comical" + "description": "This extension calculates the histogram of an image and outputs the results as graph images for individual channels as well as RGB and Luminosity.", + "nickname": "\ud83d\udc31 YFG Histograms", + "title": "YFG Histograms", + "title_aux": "\ud83d\ude38 YFG Comical Nodes" } ], "https://github.com/guill/abracadabra-comfyui": [ @@ -8270,6 +8350,7 @@ ], "https://github.com/hay86/ComfyUI_AceNodes": [ [ + "ACE_AnyInputSwitchBool", "ACE_AudioLoad", "ACE_AudioPlay", "ACE_AudioSave", @@ -8328,7 +8409,8 @@ "https://github.com/hay86/ComfyUI_OpenVoice": [ [ "D_OpenVoice_STS", - "D_OpenVoice_TTS" + "D_OpenVoice_TTS", + "D_OpenVoice_TTS_V2" ], { "title_aux": "ComfyUI OpenVoice" @@ -8336,6 +8418,7 @@ ], "https://github.com/heshengtao/comfyui_LLM_party": [ [ + "About_us", "CLIPTextEncode_party", "KSampler_party", "LLM", @@ -8431,6 +8514,18 @@ "title_aux": "ComfyUI-ModelDownloader" } ], + "https://github.com/huagetai/ComfyUI-Gaffer": [ + [ + "ApplyICLight", + "CalculateNormalMap", + "GrayScaler", + "ICLightModelLoader", + "LightSource" + ], + { + "title_aux": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )" + } + ], "https://github.com/huagetai/ComfyUI_LightGradient": [ [ "ImageGradient", @@ -8440,6 +8535,16 @@ "title_aux": "Light Gradient for ComfyUI" } ], + "https://github.com/huchenlei/ComfyUI-IC-Light-Native": [ + [ + "ICLightApplyMaskGrey", + "ICLightAppply", + "VAEEncodeArgMax" + ], + { + "title_aux": "ComfyUI-IC-Light-Native" + } + ], "https://github.com/huchenlei/ComfyUI-layerdiffuse": [ [ "LayeredDiffusionApply", @@ -8790,13 +8895,16 @@ "FacelessLoadImageUrl", "FacelessLoadVideo", "FacelessLoadVideoUrl", + "FacelessMergeVideos", + "FacelessRemoveBackground", "FacelessSaveVideo", "FacelessUploadVideo", "FacelessVideoFaceRestore", - "FacelessVideoFaceSwap" + "FacelessVideoFaceSwap", + "FacelessVideoRemoveBackground" ], { - "title_aux": "comfyui-fb-utils" + "title_aux": "Faceless Node for ComfyUI" } ], "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [ @@ -8884,6 +8992,17 @@ "title_aux": "ComfyUI-InstantMesh" } ], + "https://github.com/jtydhr88/ComfyUI-LayerDivider": [ + [ + "LayerDivider - Color Base", + "LayerDivider - Divide Layer", + "LayerDivider - Load SAM Mask Generator", + "LayerDivider - Segment Mask" + ], + { + "title_aux": "ComfyUI LayerDivider" + } + ], "https://github.com/ka-puna/comfyui-yanc": [ [ "YANC.ConcatStrings", @@ -8897,6 +9016,14 @@ "title_aux": "comfyui-yanc" } ], + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": [ + [ + "ExtendedSaveImage" + ], + { + "title_aux": "Extended Image Formats for ComfyUI" + } + ], "https://github.com/kadirnar/ComfyUI-Transformers": [ [ "DepthEstimationPipeline", @@ -9022,6 +9149,14 @@ "title_aux": "ComfyUI-text-file-util" } ], + "https://github.com/katalist-ai/comfyUI-nsfw-detection": [ + [ + "NudenetDetector" + ], + { + "title_aux": "comfyUI-nsfw-detection" + } + ], "https://github.com/kealiu/ComfyUI-S3-Tools": [ [ "Load Image From S3", @@ -9176,10 +9311,12 @@ ], "https://github.com/kijai/ComfyUI-IC-Light": [ [ + "BackgroundScaler", "CalculateNormalsFromImages", "ICLightConditioning", "LightSource", - "LoadAndApplyICLightUnet" + "LoadAndApplyICLightUnet", + "LoadHDRImage" ], { "title_aux": "ComfyUI-IC-Light" @@ -9213,6 +9350,7 @@ "CreateGradientMask", "CreateInstanceDiffusionTracking", "CreateMagicMask", + "CreateShapeImageOnPath", "CreateShapeMask", "CreateShapeMaskOnPath", "CreateTextMask", @@ -9220,6 +9358,7 @@ "CreateVoronoiMask", "CrossFadeImages", "CustomSigmas", + "DownloadAndLoadCLIPSeg", "DrawInstanceDiffusionTracking", "DummyLatentOut", "EmptyLatentImagePresets", @@ -9238,6 +9377,7 @@ "GradientToFloat", "GrowMaskWithBlur", "INTConstant", + "ImageAddMulti", "ImageAndMaskPreview", "ImageBatchMulti", "ImageBatchRepeatInterleaving", @@ -9248,7 +9388,9 @@ "ImageGridComposite3x3", "ImageNormalize_Neg1_To_1", "ImagePadForOutpaintMasked", + "ImagePadForOutpaintTargetSize", "ImagePass", + "ImageResizeKJ", "ImageTransformByNormalizedAmplitude", "ImageUpscaleWithModelBatched", "InjectNoiseToLatent", @@ -9258,7 +9400,7 @@ "Intrinsic_lora_sampling", "JoinStringMulti", "JoinStrings", - "LoadICLightUnet", + "LoadAndResizeImage", "LoadResAdapterNormalization", "MaskBatchMulti", "MaskOrImageToWeight", @@ -9542,6 +9684,19 @@ "title_aux": "cd-tuner_negpip-ComfyUI" } ], + "https://github.com/laksjdjf/cgem156-ComfyUI": [ + [ + "GradualLatentSampler", + "LCMSamplerRCFG", + "LoadAestheticShadow", + "PredictAesthetic", + "TCDSampler", + "TextScheduler" + ], + { + "title_aux": "cgem156-ComfyUI\ud83c\udf4c" + } + ], "https://github.com/laksjdjf/pfg-ComfyUI": [ [ "PFG" @@ -9592,6 +9747,14 @@ "title_aux": "ComfyUI-Debug" } ], + "https://github.com/liusida/ComfyUI-Login": [ + [ + "LoadImageIncognito" + ], + { + "title_aux": "ComfyUI-Login" + } + ], "https://github.com/ljleb/comfy-mecha": [ [ "Blocks Mecha Hyper", @@ -9756,6 +9919,15 @@ "title_aux": "Wildcards" } ], + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": [ + [ + "InpaintCrop", + "InpaintStitch" + ], + { + "title_aux": "ComfyUI-Inpaint-CropAndStitch" + } + ], "https://github.com/lquesada/ComfyUI-Prompt-Combinator": [ [ "PromptCombinator", @@ -10027,6 +10199,7 @@ "PromptBuilder //Inspire", "PromptExtractor //Inspire", "RandomGeneratorForList //Inspire", + "RandomNoise //Inspire", "RegionalConditioningColorMask //Inspire", "RegionalConditioningSimple //Inspire", "RegionalIPAdapterColorMask //Inspire", @@ -10268,16 +10441,21 @@ "PettyPaintComponent", "PettyPaintConditioningSetMaskAndCombine", "PettyPaintConvert", + "PettyPaintCountFiles", + "PettyPaintEnsureDirectory", "PettyPaintExec", "PettyPaintImageCompositeMasked", + "PettyPaintImagePlacement", "PettyPaintImageSave", "PettyPaintImageStore", "PettyPaintImageToMask", "PettyPaintJsonMap", "PettyPaintJsonRead", "PettyPaintJsonReadArray", + "PettyPaintLoadImage", "PettyPaintLoadImages", "PettyPaintMap", + "PettyPaintProcessor", "PettyPaintRemoveAddText", "PettyPaintSDTurboScheduler", "PettyPaintText", @@ -10480,11 +10658,14 @@ [ "DanbooruTagsTransformerBanTagsFromRegex", "DanbooruTagsTransformerComposePrompt", + "DanbooruTagsTransformerComposePromptV2", "DanbooruTagsTransformerDecode", "DanbooruTagsTransformerDecodeBySplitedParts", "DanbooruTagsTransformerGenerate", "DanbooruTagsTransformerGenerateAdvanced", "DanbooruTagsTransformerGenerationConfig", + "DanbooruTagsTransformerGetAspectRatio", + "DanbooruTagsTransformerLoader", "DanbooruTagsTransformerRearrangedByAnimagine", "DanbooruTagsTransformerRemoveTagToken" ], @@ -10608,8 +10789,10 @@ "BlendInpaint", "BrushNet", "BrushNetLoader", + "CutForInpaint", "PowerPaint", - "PowerPaintCLIPLoader" + "PowerPaintCLIPLoader", + "RAUNet" ], { "author": "nullquant", @@ -10729,6 +10912,18 @@ "title_aux": "ComfyUI-TrollSuite" } ], + "https://github.com/oztrkoguz/ComfyUI_StoryCreator": [ + [ + "Kosmos2SamplerSimple2", + "KosmosLoader2", + "StoryLoader", + "StorySamplerSimple", + "Write2" + ], + { + "title_aux": "ComfyUI StoryCreater" + } + ], "https://github.com/palant/extended-saveimage-comfyui": [ [ "SaveImageExtended" @@ -10933,7 +11128,7 @@ ], { "author": "receyuki", - "description": "ComfyUI node version of the SD Prompt Reader", + "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader", "nickname": "SD Prompt Reader", "title": "SD Prompt Reader", "title_aux": "SD Prompt Reader" @@ -10943,12 +11138,18 @@ [ "AvoidErasePrediction", "CFGPrediction", + "CharacteristicGuidancePrediction", "CombinePredictions", "ConditionedPrediction", + "EarlyMiddleLatePrediction", + "InterpolatePredictions", + "LogSigmas", "PerpNegPrediction", "SamplerCustomPrediction", "ScalePrediction", "ScaledGuidancePrediction", + "SelectSigmas", + "SplitAtSigma", "SwitchPredictions" ], { @@ -11039,6 +11240,15 @@ "title_aux": "ComfyUI-Tara-LLM-Integration" } ], + "https://github.com/royceschultz/ComfyUI-Notifications": [ + [ + "Notif-PlaySound", + "Notif-SystemNotification" + ], + { + "title_aux": "ComfyUI-Notifications" + } + ], "https://github.com/royceschultz/ComfyUI-TranscriptionTools": [ [ "TT-AudioSink", @@ -11063,6 +11273,37 @@ "title_aux": "RUI-Nodes" } ], + "https://github.com/ruiqutech/ComfyUI-RuiquNodes": [ + [ + "EvaluateListMultiple1", + "EvaluateListMultiple3", + "EvaluateListMultiple6", + "EvaluateListMultiple9", + "EvaluateMultiple1", + "EvaluateMultiple3", + "EvaluateMultiple6", + "EvaluateMultiple9", + "ImageDilate", + "ImageErode", + "ListPath", + "MaskDilate", + "MaskErode", + "PreviewMask", + "RangeSplit", + "SaveMask", + "StringAsAny", + "StringConcat1", + "StringConcat3", + "StringConcat6", + "StringConcat9", + "StringPathStem", + "TermsToList", + "VAEDecodeSave" + ], + { + "title_aux": "RuiquNodes for ComfyUI" + } + ], "https://github.com/runtime44/comfyui_r44_nodes": [ [ "Runtime44ColorMatch", @@ -11091,7 +11332,8 @@ "https://github.com/saftle/suplex_comfy_nodes": [ [ "ControlNet Selector", - "ControlNetOptionalLoader" + "ControlNetOptionalLoader", + "DiffusersSelector" ], { "title_aux": "Suplex Misc ComfyUI Nodes" @@ -11167,6 +11409,7 @@ "ChatGPTOpenAI", "CkptNames_", "Color", + "ComparingTwoFrames_", "CompositeImages_", "DynamicDelayProcessor", "EmbeddingPrompt", @@ -11469,6 +11712,15 @@ "title_aux": "ComfyUI_ChatGLM_API" } ], + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": [ + [ + "Hidiffusion_Controlnet_Image", + "Hidiffusion_Text2Image" + ], + { + "title_aux": "ComfyUI_HiDiffusion_Pro" + } + ], "https://github.com/smthemex/ComfyUI_Llama3_8B": [ [ "ChatQA_1p5_8B", @@ -11731,7 +11983,8 @@ "https://github.com/sugarkwork/comfyui_tag_fillter": [ [ "TagFilter", - "TagRemover" + "TagRemover", + "TagReplace" ], { "title_aux": "comfyui_tag_filter" @@ -11850,6 +12103,26 @@ "title_aux": "ComfyUI Browser" } ], + "https://github.com/teward/ComfyUI-Helper-Nodes": [ + [ + "HelperNodes_CfgScale", + "HelperNodes_CheckpointSelector", + "HelperNodes_MultilineStringLiteral", + "HelperNodes_Prompt", + "HelperNodes_SDXLCommonResolutions", + "HelperNodes_SamplerSelector", + "HelperNodes_SaveImage", + "HelperNodes_SchedulerSelector", + "HelperNodes_SeedSelector", + "HelperNodes_Steps", + "HelperNodes_StringLiteral", + "HelperNodes_VAESelector", + "HelperNodes_WidthHeight" + ], + { + "title_aux": "ComfyUI-Helper-Nodes" + } + ], "https://github.com/theUpsider/ComfyUI-Logic": [ [ "Bool", @@ -12800,8 +13073,10 @@ "ImageConcanateOfUtils", "IntAndIntAddOffsetLiteral", "IntMultipleAddLiteral", + "LoadImageMaskWithSwitch", "LoadImageWithSwitch", - "ModifyTextGender" + "ModifyTextGender", + "SplitMask" ], { "title_aux": "zhangp365/Some Utils for ComfyUI" @@ -12853,6 +13128,8 @@ "https://github.com/zombieyang/sd-ppp": [ [ "Get Image From Photoshop Layer", + "Image Times Opacity", + "Mask Times Opacity", "Send Images To Photoshop" ], { diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index 6b2f22a5..86d68f1e 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -1,5 +1,36 @@ { "models": [ + { + "name": "IC-Light/fc", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "unet/IC-Light", + "description": "The default relighting model, conditioned on text and foreground", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fc.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fc.safetensors" + }, + { + "name": "IC-Light/fbc", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "unet/IC-Light", + "description": "Relighting model conditioned with text, foreground, and background", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fbc.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fbc.safetensors" + }, + { + "name": "IC-Light/fcon", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "unet/IC-Light", + "description": "Same as iclight_sd15_fc.safetensors, but trained with offset noise", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fcon.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fcon.safetensors" + }, + { "name": "MonsterMMORPG/insightface (for InstantID)", "type": "insightface", @@ -660,47 +691,6 @@ "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", "filename": "lt_long_mm_16_64_frames_v1.1.ckpt", "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames_v1.1.ckpt" - }, - - { - "name": "animatediff/v3_sd15_sparsectrl_rgb.ckpt (ComfyUI-AnimateDiff-Evolved)", - "type": "controlnet", - "base": "SD1.x", - "save_path": "controlnet/SD1.5/animatediff", - "description": "AnimateDiff SparseCtrl RGB ControlNet model", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_sparsectrl_rgb.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt" - }, - { - "name": "animatediff/v3_sd15_sparsectrl_scribble.ckpt", - "type": "controlnet", - "base": "SD1.x", - "save_path": "controlnet/SD1.5/animatediff", - "description": "AnimateDiff SparseCtrl Scribble ControlNet model", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_sparsectrl_scribble.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_scribble.ckpt" - }, - { - "name": "animatediff/v3_sd15_mm.ckpt (ComfyUI-AnimateDiff-Evolved)", - "type": "animatediff", - "base": "SD1.x", - "save_path": "custom_nodes/ComfyUI-AnimateDiff-Evolved/models", - "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_mm.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt" - }, - { - "name": "animatediff/v3_sd15_adapter.ckpt", - "type": "lora", - "base": "SD1.x", - "save_path": "loras/SD1.5/animatediff", - "description": "AnimateDiff Adapter LoRA (SD1.5)", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_adapter.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt" } ] } diff --git a/node_db/tutorial/custom-node-list.json b/node_db/tutorial/custom-node-list.json index d1a78fb4..e316a734 100644 --- a/node_db/tutorial/custom-node-list.json +++ b/node_db/tutorial/custom-node-list.json @@ -80,16 +80,6 @@ "install_type": "git-clone", "description": "Tutorial nodes" }, - { - "author": "GraftingRayman", - "title": "ComfyUI-Trajectory", - "reference": "https://github.com/GraftingRayman/ComfyUI-Trajectory", - "files": [ - "https://github.com/GraftingRayman/ComfyUI-Trajectory" - ], - "install_type": "git-clone", - "description": "Nodes:GR Trajectory" - }, { "author": "wailovet", "title": "ComfyUI-WW", @@ -189,6 +179,16 @@ ], "install_type": "git-clone", "description": "Custom utility nodes for ComfyUI" + }, + { + "author": "nilor-corp", + "title": "nilor-nodes", + "reference": "https://github.com/nilor-corp/nilor-nodes", + "files": [ + "https://github.com/nilor-corp/nilor-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Nilor Floats, Nilor Int To List Of Bools, Nilor Bool From List Of Bools, Nilor Int From List Of Ints, Nilor List of Ints, Nilor Count Images In Directory" } ] } \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 70a430f7..89f93b41 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,7 @@ GitPython PyGithub matrix-client==0.4.0 transformers -huggingface-hub>0.20 \ No newline at end of file +huggingface-hub>0.20 +typer +rich +typing-extensions \ No newline at end of file diff --git a/scanner.py b/scanner.py index 5f05dc92..28c4af51 100644 --- a/scanner.py +++ b/scanner.py @@ -39,6 +39,7 @@ print(f"TEMP DIR: {temp_dir}") parse_cnt = 0 + def extract_nodes(code_text): global parse_cnt @@ -290,22 +291,31 @@ def update_custom_nodes(): repo = g.get_repo(owner_repo) last_update = repo.pushed_at.strftime("%Y-%m-%d %H:%M:%S") if repo.pushed_at else 'N/A' - github_stats[url] = { + item = { "stars": repo.stargazers_count, "last_update": last_update, "cached_time": datetime.datetime.now().timestamp(), } - with open(GITHUB_STATS_CACHE_FILENAME, 'w', encoding='utf-8') as file: - json.dump(github_stats, file, ensure_ascii=False, indent=4) + return url, item else: print(f"\nInvalid URL format for GitHub repository: {url}\n") except Exception as e: print(f"\nERROR on {url}\n{e}") + return None + # resolve unresolved urls - for url, title, preemptions, node_pattern in git_url_titles_preemptions: - if url not in github_stats: - renew_stat(url) + with concurrent.futures.ThreadPoolExecutor(11) as executor: + futures = [] + for url, title, preemptions, node_pattern in git_url_titles_preemptions: + if url not in github_stats: + futures.append(executor.submit(renew_stat, url)) + + for future in concurrent.futures.as_completed(futures): + url_item = future.result() + if url_item is not None: + url, item = url_item + github_stats[url] = item # renew outdated cache outdated_urls = [] @@ -314,8 +324,18 @@ def update_custom_nodes(): if elapsed > 60*60*12: # 12 hours outdated_urls.append(k) - for url in outdated_urls: - renew_stat(url) + with concurrent.futures.ThreadPoolExecutor(11) as executor: + for url in outdated_urls: + futures.append(executor.submit(renew_stat, url)) + + for future in concurrent.futures.as_completed(futures): + url_item = future.result() + if url_item is not None: + url, item = url_item + github_stats[url] = item + + with open('github-stats-cache.json', 'w', encoding='utf-8') as file: + json.dump(github_stats, file, ensure_ascii=False, indent=4) with open(GITHUB_STATS_FILENAME, 'w', encoding='utf-8') as file: for v in github_stats.values(): @@ -325,11 +345,11 @@ def update_custom_nodes(): json.dump(github_stats, file, ensure_ascii=False, indent=4) print(f"Successfully written to {GITHUB_STATS_FILENAME}.") - - with concurrent.futures.ThreadPoolExecutor(11) as executor: - if not skip_stat_update: - executor.submit(process_git_stats, git_url_titles_preemptions) # One single thread for `process_git_stats()`. Runs concurrently with `process_git_url_title()`. + if not skip_stat_update: + process_git_stats(git_url_titles_preemptions) + + with concurrent.futures.ThreadPoolExecutor(11) as executor: for url, title, preemptions, node_pattern in git_url_titles_preemptions: executor.submit(process_git_url_title, url, title, preemptions, node_pattern)