From f393afc77201f41543019d61ad1ae3b3af94c4e4 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 1 Apr 2024 11:20:02 +0900 Subject: [PATCH 01/13] update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1db7b03..ff1f66d5 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ This repository provides Colab notebooks that allow you to install and use Comfy * Press the "Restore" button to revert to the installation status of the respective snapshot. * However, for custom nodes not managed by Git, snapshot support is incomplete. * When you press `Restore`, it will take effect on the next ComfyUI startup. - + * The selected snapshot file is saved in `ComfyUI-Manager/startup-scripts/restore-snapshot.json`, and upon restarting ComfyUI, the snapshot is applied and then deleted. ![model-install-dialog](misc/snapshot.jpg) From d907c45cb0a045026a185e0d2221c5025a10304c Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 2 Apr 2024 00:18:09 +0900 Subject: [PATCH 02/13] improve: black list feature - check version - support `downgrade_blacklist` in `config.ini` https://github.com/ltdrdata/ComfyUI-Manager/issues/515 --- README.md | 7 +++++ __init__.py | 65 ++++++++++++++++++++++++++++++++++++++++---- prestartup_script.py | 61 +++++++++++++++++++++++++++++++++-------- 3 files changed, 115 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index ff1f66d5..72c6c7cb 100644 --- a/README.md +++ b/README.md @@ -272,6 +272,13 @@ NODE_CLASS_MAPPINGS.update({ * `Possible(left) + Copy(right)`: When you Double-Click on the left half of the title, it operates as `Possible Input Connections`, and when you Double-Click on the right half, it operates as `Copy All Connections`. +* Prevent downgrade of specific packages + * List the package names in the `downgrade_blacklist` section of the `config.ini` file, separating them with commas. + * e.g + ``` + downgrade_blacklist = diffusers, kornia + ``` + ## Troubleshooting * If your `git.exe` is installed in a specific location other than system git, please install ComfyUI-Manager and run ComfyUI. Then, specify the path including the file name in `git_exe = ` in the ComfyUI-Manager/config.ini file that is generated. * If updating ComfyUI-Manager itself fails, please go to the **ComfyUI-Manager** directory and execute the command `git update-ref refs/remotes/origin/main a361cc1 && git fetch --all && git pull`. diff --git a/__init__.py b/__init__.py index 4c1987d1..ddd1e618 100644 --- a/__init__.py +++ b/__init__.py @@ -17,6 +17,7 @@ import re import nodes import hashlib from datetime import datetime +from distutils.version import StrictVersion try: @@ -29,7 +30,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 11] +version = [2, 12] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") @@ -38,19 +39,56 @@ comfy_ui_hash = "-" cache_lock = threading.Lock() +pip_map = None + + +def get_installed_packages(): + global pip_map + + if pip_map is None: + try: + result = subprocess.check_output([sys.executable, '-m', 'pip', 'list'], universal_newlines=True) + + pip_map = {} + for line in result.split('\n'): + x = line.strip() + if x: + y = line.split() + if y[0] == 'Package' or y[0].startswith('-'): + continue + + pip_map[y[0]] = y[1] + except subprocess.CalledProcessError as e: + print(f"[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") + return set() + + return pip_map + + +def clear_pip_cache(): + global pip_map + pip_map = None + def is_blacklisted(name): name = name.strip() - pattern = r'([^<>!=]+)([<>!=]=?)' + pattern = r'([^<>!=]+)([<>!=]=?)(.*)' match = re.search(pattern, name) if match: name = match.group(1) if name in cm_global.pip_downgrade_blacklist: - if match is None or match.group(2) in ['<=', '==', '<']: - return True + pips = get_installed_packages() + + if match is None: + if name in pips: + return True + elif match.group(2) in ['<=', '==', '<']: + if name in pips: + if StrictVersion(pips[name]) >= StrictVersion(match.group(3)): + return True return False @@ -194,7 +232,8 @@ def write_config(): 'component_policy': get_config()['component_policy'], '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'] + 'model_download_by_agent': get_config()['model_download_by_agent'], + 'downgrade_blacklist': get_config()['downgrade_blacklist'] } with open(config_path, 'w') as configfile: config.write(configfile) @@ -219,6 +258,7 @@ def read_config(): 'double_click_policy': default_conf['double_click_policy'] if 'double_click_policy' in default_conf else 'copy-all', 'windows_selector_event_loop_policy': default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, 'model_download_by_agent': default_conf['model_download_by_agent'] if 'model_download_by_agent' in default_conf else False, + 'downgrade_blacklist': default_conf['downgrade_blacklist'] if 'downgrade_blacklist' in default_conf else '', } except Exception: @@ -235,6 +275,7 @@ def read_config(): 'double_click_policy': 'copy-all', 'windows_selector_event_loop_policy': False, 'model_download_by_agent': False, + 'downgrade_blacklist': '' } @@ -307,7 +348,6 @@ def try_install_script(url, repo_path, install_cmd): print(f"[ComfyUI-Manager] skip black listed pip installation: '{install_cmd[4]}'") return True - print(f"\n## ComfyUI-Manager: EXECUTE => {install_cmd}") code = run_script(install_cmd, cwd=repo_path) @@ -831,6 +871,7 @@ def nickname_filter(json_obj): return json_obj + @server.PromptServer.instance.routes.get("/customnode/getmappings") async def fetch_customnode_mappings(request): mode = request.rel_url.query["mode"] @@ -903,6 +944,8 @@ async def update_all(request): return web.json_response(res, status=status, content_type='application/json') except: return web.Response(status=400) + finally: + clear_pip_cache() def convert_markdown_to_html(input_text): @@ -1586,6 +1629,8 @@ async def install_custom_node(request): install_cmd = [sys.executable, "-m", "pip", "install", pname] try_install_script(json_data['files'][0], ".", install_cmd) + clear_pip_cache() + if res: print(f"After restarting ComfyUI, please refresh the browser.") return web.json_response({}, content_type='application/json') @@ -1684,6 +1729,8 @@ async def update_custom_node(request): if install_type == "git-clone": res = gitclone_update(json_data['files']) + clear_pip_cache() + if res: print(f"After restarting ComfyUI, please refresh the browser.") return web.json_response({}, content_type='application/json') @@ -2132,6 +2179,7 @@ if hasattr(server.PromptServer.instance, "app"): cors_middleware = server.create_cors_middleware(args.enable_cors_header) app.middlewares.append(cors_middleware) + @server.PromptServer.instance.routes.post("/manager/set_esheep_workflow_and_images") async def set_esheep_workflow_and_images(request): json_data = await request.json() @@ -2141,12 +2189,14 @@ async def set_esheep_workflow_and_images(request): json.dump(json_data, file, indent=4) return web.Response(status=200) + @server.PromptServer.instance.routes.get("/manager/get_esheep_workflow_and_images") async def get_esheep_workflow_and_images(request): with open(os.path.join(comfyui_manager_path, "esheep_share_message.json"), 'r', encoding='utf-8') as file: data = json.load(file) return web.Response(status=200, text=json.dumps(data)) + def set_matrix_auth(json_data): homeserver = json_data['homeserver'] username = json_data['username'] @@ -2188,6 +2238,7 @@ def extract_model_file_names(json_data): recursive_search(json_data) return [f for f in list(file_names) if os.path.splitext(f)[1] in model_filename_extensions] + def find_file_paths(base_dir, file_names): """Find the paths of the files in the base directory.""" file_paths = {} @@ -2201,6 +2252,7 @@ def find_file_paths(base_dir, file_names): file_paths[file] = os.path.join(root, file) return file_paths + def compute_sha256_checksum(filepath): """Compute the SHA256 checksum of a file, in chunks""" sha256 = hashlib.sha256() @@ -2209,6 +2261,7 @@ def compute_sha256_checksum(filepath): sha256.update(chunk) return sha256.hexdigest() + @server.PromptServer.instance.routes.post("/manager/share") async def share_art(request): # get json data diff --git a/prestartup_script.py b/prestartup_script.py index 5b946ab9..cd32358b 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -7,6 +7,7 @@ import threading import re import locale import platform +from distutils.version import StrictVersion glob_path = os.path.join(os.path.dirname(__file__), "glob") @@ -292,6 +293,26 @@ else: print("** Log path: file logging is disabled") +def read_downgrade_blacklist(): + try: + import configparser + config_path = os.path.join(os.path.dirname(__file__), "config.ini") + config = configparser.ConfigParser() + config.read(config_path) + default_conf = config['default'] + + if 'downgrade_blacklist' in default_conf: + items = default_conf['downgrade_blacklist'].split(',') + items = [x.strip() for x in items if x != ''] + cm_global.pip_downgrade_blacklist += items + cm_global.pip_downgrade_blacklist = list(set(cm_global.pip_downgrade_blacklist)) + except: + pass + + +read_downgrade_blacklist() + + def check_bypass_ssl(): try: import configparser @@ -314,21 +335,30 @@ check_bypass_ssl() # Perform install processed_install = set() script_list_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "startup-scripts", "install-scripts.txt") -pip_list = None +pip_map = None def get_installed_packages(): - global pip_list + global pip_map - if pip_list is None: + if pip_map is None: try: result = subprocess.check_output([sys.executable, '-m', 'pip', 'list'], universal_newlines=True) - pip_list = set([line.split()[0].lower() for line in result.split('\n') if line.strip()]) + + pip_map = {} + for line in result.split('\n'): + x = line.strip() + if x: + y = line.split() + if y[0] == 'Package' or y[0].startswith('-'): + continue + + pip_map[y[0]] = y[1] except subprocess.CalledProcessError as e: print(f"[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") return set() - - return pip_list + + return pip_map def is_installed(name): @@ -337,16 +367,23 @@ def is_installed(name): if name.startswith('#'): return True - pattern = r'([^<>!=]+)([<>!=]=?)' + pattern = r'([^<>!=]+)([<>!=]=?)(.*)' match = re.search(pattern, name) - + if match: name = match.group(1) if name in cm_global.pip_downgrade_blacklist: - if match is None or match.group(2) in ['<=', '==', '<']: - print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'") - return True + pips = get_installed_packages() + + if match is None: + if name in pips: + return True + elif match.group(2) in ['<=', '==', '<']: + if name in pips: + if StrictVersion(pips[name]) >= StrictVersion(match.group(3)): + print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'") + return True return name.lower() in get_installed_packages() @@ -499,7 +536,7 @@ if os.path.exists(script_list_path): print("#######################################################################\n") del processed_install -del pip_list +del pip_map def check_windows_event_loop_policy(): From 9f2323d1fba3e660482c384fd240a1eea0266154 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 2 Apr 2024 00:43:44 +0900 Subject: [PATCH 03/13] update DB --- custom-node-list.json | 91 +++++++++++++- extension-node-map.json | 136 ++++++++++++++++++++- node_db/dev/custom-node-list.json | 10 -- node_db/new/custom-node-list.json | 182 ++++++++++++++-------------- node_db/new/extension-node-map.json | 136 ++++++++++++++++++++- 5 files changed, 449 insertions(+), 106 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 631eaedf..98bb6ecf 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -3452,6 +3452,16 @@ "install_type": "git-clone", "description": "Unofficial implementation of [a/DepthFM](https://github.com/CompVis/depth-fm) for ComfyUI" }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-BiRefNet-ZHO", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO" + ], + "install_type": "git-clone", + "description": "Better version for [a/BiRefNet](https://github.com/zhengpeng7/birefnet) in ComfyUI | Both img and video" + }, { "author": "kenjiqq", "title": "qq-nodes-comfyui", @@ -5798,6 +5808,16 @@ "install_type": "git-clone", "description": "Nodes:Apply Ref UNet, Ref Sampler, Ref Sampler Custom" }, + { + "author": "logtd", + "title": "ComfyUI-FLATTEN", + "reference": "https://github.com/logtd/ComfyUI-FLATTEN", + "files": [ + "https://github.com/logtd/ComfyUI-FLATTEN" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/FLATTEN: optical FLow-guided ATTENtion for consistent text-to-video editing](https://github.com/yrcong/flatten)." + }, { "author": "Big-Idea-Technology", "title": "ImageTextOverlay Node for ComfyUI", @@ -6698,7 +6718,76 @@ "install_type": "git-clone", "description": "This initiative represents a solo venture dedicated to integrating a stereopsis effect within ComfyUI (Stable Diffusion). Presently, the project is focused on the refinement of node categorization within a unified framework, as it is in the early stages of development. However, it has achieved functionality in a fundamental capacity. By processing a video through the Side-by-Side (SBS) node and applying Frame Delay to one of the inputs, it facilitates the creation of a stereopsis effect. This effect is compatible with any Virtual Reality headset that supports SBS video playback, offering a practical application in immersive media experiences." }, - + { + "author": "nickve28", + "title": "Nich Comfy Utils", + "reference": "https://github.com/nickve28/nich-comfy-utils", + "files": [ + "https://github.com/nickve28/nich-comfy-utils" + ], + "install_type": "git-clone", + "description": "Nodes:Image from Dir Selector (Nich)" + }, + { + "author": "frankchieng", + "title": "ComfyUI_Aniportrait", + "reference": "https://github.com/frankchieng/ComfyUI_Aniportrait", + "files": [ + "https://github.com/frankchieng/ComfyUI_Aniportrait" + ], + "install_type": "git-clone", + "description": "This is unofficial implementation of [a/AniPortrait](https://github.com/Zejun-Yang/AniPortrait) in ComfyUI custom_node,cuz i have routine jobs,so i will update this project when i have time" + }, + { + "author": "BlakeOne", + "title": "ComfyUI SchedulerMixer", + "reference": "https://github.com/BlakeOne/ComfyUI-SchedulerMixer", + "files": [ + "https://github.com/BlakeOne/ComfyUI-SchedulerMixer" + ], + "install_type": "git-clone", + "description": "Create a custom scheduler from a weighted average of the built-in schedulers" + }, + { + "author": "BlakeOne", + "title": "ComfyUI FastImageListToImageBatch", + "reference": "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch", + "files": [ + "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch" + ], + "install_type": "git-clone", + "description": "Quickly convert a list of images to a batch of images. All images must be the same size. Great for long videos." + }, + { + "author": "kale4eat", + "title": "ComfyUI_demucus", + "reference": "https://github.com/kale4eat/ComfyUI-path-util", + "files": [ + "https://github.com/kale4eat/ComfyUI-path-util" + ], + "install_type": "git-clone", + "description": "Path utility for ComfyUI" + }, + { + "author": "kale4eat", + "title": "ComfyUI-string-util", + "reference": "https://github.com/kale4eat/ComfyUI-string-util", + "files": [ + "https://github.com/kale4eat/ComfyUI-string-util" + ], + "install_type": "git-clone", + "description": "String utility for ComfyUI" + }, + { + "author": "kale4eat", + "title": "ComfyUI-text-file-util", + "reference": "https://github.com/kale4eat/ComfyUI-text-file-util", + "files": [ + "https://github.com/kale4eat/ComfyUI-text-file-util" + ], + "install_type": "git-clone", + "description": "Text file utility for ComfyUI" + }, diff --git a/extension-node-map.json b/extension-node-map.json index 9357acb4..fb5dcc7d 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -328,6 +328,7 @@ "Load Images Pair Batch", "Merge Tag", "Move Tag To Top", + "Reserve Tag", "Save Images Pair" ], { @@ -554,6 +555,22 @@ "title_aux": "ComfyUI-Path-Helper" } ], + "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch": [ + [ + "FastImageListToImageBatch" + ], + { + "title_aux": "ComfyUI FastImageListToImageBatch" + } + ], + "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": [ + [ + "SchedulerMixer" + ], + { + "title_aux": "ComfyUI SchedulerMixer" + } + ], "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": [ [ "BNK_AddCLIPSDXLParams", @@ -766,6 +783,7 @@ "PrimereStyleLoader", "PrimereStylePile", "PrimereTextOutput", + "PrimereUpscaleModel", "PrimereVAE", "PrimereVAELoader", "PrimereVAESelector", @@ -1333,6 +1351,10 @@ "Moondream Interrogator" ], { + "author": "AlexL", + "description": "An implementation of the moondream visual LLM", + "nickname": "Hangover-Moondream", + "title": "ComfyUI-Hangover-Moondream", "title_aux": "ComfyUI-Hangover-Moondream" } ], @@ -1344,6 +1366,10 @@ "Save Image w/o Metadata" ], { + "author": "AlexL", + "description": "Scales an input image into a given box size, whereby the aspect ratio keeps retained.", + "nickname": "Hangover-Image_Scale_Bouning_Box", + "title": "ComfyUI-Hangover-Image_Scale_Bouning_Box", "title_aux": "ComfyUI-Hangover-Nodes" } ], @@ -1352,6 +1378,10 @@ "Recognize Anything Model (RAM++)" ], { + "author": "AlexL", + "description": "An implementation of the Recognize Anything Model (RAM++) for ComfyUI. The counterpart of Segment Anything Model (SAM).", + "nickname": "Hangover-Recognize_Anything", + "title": "ComfyUI-Hangover-Recognize_Anything", "title_aux": "Recognize Anything Model (RAM++) for ComfyUI" } ], @@ -2157,6 +2187,7 @@ "DoubleClipTextEncode", "HashText", "IndoorBackgrounds", + "IntFloatDict", "LandscapeBackgrounds", "NatureColours", "OptimalCrop", @@ -4013,6 +4044,15 @@ "title_aux": "ComfyUI-BRIA_AI-RMBG" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": [ + [ + "BiRefNet_ModelLoader_Zho", + "BiRefNet_Zho" + ], + { + "title_aux": "ComfyUI-BiRefNet-ZHO" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": [ [ "DepthFM_Literative_Zho", @@ -4188,6 +4228,7 @@ "AudioToFFTs", "BatchAmplitudeSchedule", "ClipAmplitude", + "FloatArrayToGraph", "GateNormalizedAmplitude", "LoadAudio", "NormalizeAmplitude", @@ -6693,6 +6734,20 @@ "title_aux": "RF Nodes" } ], + "https://github.com/frankchieng/ComfyUI_Aniportrait": [ + [ + "AniPortrait_Audio2Video", + "AniPortrait_Audio_Path", + "AniPortrait_Generate_Ref_Pose", + "AniPortrait_LoadVideoPath", + "AniPortrait_Pose_Gen_Video", + "AniPortrait_Ref_Image_Path", + "AniPortrait_Video_Gen_Pose" + ], + { + "title_aux": "ComfyUI_Aniportrait" + } + ], "https://github.com/gemell1/ComfyUI_GMIC": [ [ "GmicCliWrapper", @@ -7322,6 +7377,60 @@ "title_aux": "ComfyUI-Transformers" } ], + "https://github.com/kale4eat/ComfyUI-path-util": [ + [ + "path_util_PathAbspath", + "path_util_PathBasename", + "path_util_PathDirname", + "path_util_PathExists", + "path_util_PathIsdir", + "path_util_PathIsfile", + "path_util_PathJoin", + "path_util_PathRelpath", + "path_util_PathSplitext" + ], + { + "title_aux": "ComfyUI_demucus" + } + ], + "https://github.com/kale4eat/ComfyUI-string-util": [ + [ + "string_util_Str", + "string_util_StrConcat", + "string_util_StrCount", + "string_util_StrEndsWith", + "string_util_StrEqual", + "string_util_StrFind", + "string_util_StrFormat", + "string_util_StrJoin", + "string_util_StrLen", + "string_util_StrLower", + "string_util_StrLstrip", + "string_util_StrNotEqual", + "string_util_StrReplace", + "string_util_StrRstrip", + "string_util_StrSlice", + "string_util_StrSplit", + "string_util_StrStartsWith", + "string_util_StrStrip", + "string_util_StrUpper" + ], + { + "title_aux": "ComfyUI-string-util" + } + ], + "https://github.com/kale4eat/ComfyUI-text-file-util": [ + [ + "text_file_util_ReadAllLines", + "text_file_util_ReadAllText", + "text_file_util_WriteText", + "text_file_util_WriteTextLines", + "text_file_util_WriteTextWithSequentialNumbering" + ], + { + "title_aux": "ComfyUI-text-file-util" + } + ], "https://github.com/kenjiqq/qq-nodes-comfyui": [ [ "Any List", @@ -7768,6 +7877,19 @@ "title_aux": "comfyui-easyapi-nodes" } ], + "https://github.com/logtd/ComfyUI-FLATTEN": [ + [ + "ApplyFlattenAttentionNode", + "CreateFlowNoiseNode", + "FlattenCheckpointLoaderNode", + "KSamplerFlattenNode", + "TrajectoryNode", + "UnsamplerFlattenNode" + ], + { + "title_aux": "ComfyUI-FLATTEN" + } + ], "https://github.com/logtd/ComfyUI-InstanceDiffusion": [ [ "ApplyScaleUModelNode", @@ -7835,8 +7957,7 @@ ], "https://github.com/longgui0318/comfyui-oms-diffusion": [ [ - "Additional Features With Attention", - "Extract Features With Unet" + "Additional Features With Attention" ], { "title_aux": "comfyui-oms-diffusion" @@ -8402,6 +8523,7 @@ "CreateMaskWithCanvas", "CreateRegionalPNGMask", "EightFloats", + "EvenOrOdd", "FloatMultiplication", "FourBooleanTrigger", "FourFloats", @@ -8492,6 +8614,14 @@ "title_aux": "ComfyUI-NegiTools" } ], + "https://github.com/nickve28/nich-comfy-utils": [ + [ + "Image from Dir Selector (Nich)" + ], + { + "title_aux": "Nich Comfy Utils" + } + ], "https://github.com/nicolai256/comfyUI_Nodes_nicolai256/raw/main/yugioh-presets.py": [ [ "yugioh_Presets" @@ -9743,6 +9873,7 @@ "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": [ [ "CaptureWebcam", + "ImageResize_Padding", "LatentDelay", "LoadWebcamImage", "SaveImagetoPath" @@ -10234,6 +10365,7 @@ "easy if", "easy imageInsetCrop", "easy imagePixelPerfect", + "easy imageRatio", "easy imageRemBg", "easy imageRemoveBG", "easy imageSave", diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index 64e02718..e449c205 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -229,16 +229,6 @@ "install_type": "git-clone", "description": "I made these nodes for experimenting so it's far from perfect but at least it is entertaining!\nIt uses cosine similarities or smallest euclidean distances to find the closest tokens." }, - { - "author": "logtd", - "title": "ComfyUI-FLATTEN", - "reference": "https://github.com/logtd/ComfyUI-FLATTEN", - "files": [ - "https://github.com/logtd/ComfyUI-FLATTEN" - ], - "install_type": "git-clone", - "description": "Load Checkpoint with FLATTEN model, KSampler (Flatten), Unsampler (Flatten), Sample Trajectories" - }, { "author": "shadowcz007", "title": "comfyui-llamafile [WIP]", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 93609569..96703e9a 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -8,8 +8,98 @@ "install_type": "git-clone", "description": "If you see this message, your ComfyUI-Manager is outdated.\nRecent channel provides only the list of the latest nodes. If you want to find the complete node list, please go to the Default channel.\nMaking LoRA has never been easier!" }, + - + { + "author": "logtd", + "title": "ComfyUI-FLATTEN", + "reference": "https://github.com/logtd/ComfyUI-FLATTEN", + "files": [ + "https://github.com/logtd/ComfyUI-FLATTEN" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/FLATTEN: optical FLow-guided ATTENtion for consistent text-to-video editing](https://github.com/yrcong/flatten)." + }, + { + "author": "BlakeOne", + "title": "ComfyUI SchedulerMixer", + "reference": "https://github.com/BlakeOne/ComfyUI-SchedulerMixer", + "files": [ + "https://github.com/BlakeOne/ComfyUI-SchedulerMixer" + ], + "install_type": "git-clone", + "description": "Create a custom scheduler from a weighted average of the built-in schedulers" + }, + { + "author": "BlakeOne", + "title": "ComfyUI FastImageListToImageBatch", + "reference": "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch", + "files": [ + "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch" + ], + "install_type": "git-clone", + "description": "Quickly convert a list of images to a batch of images. All images must be the same size. Great for long videos." + }, + { + "author": "frankchieng", + "title": "ComfyUI_Aniportrait", + "reference": "https://github.com/frankchieng/ComfyUI_Aniportrait", + "files": [ + "https://github.com/frankchieng/ComfyUI_Aniportrait" + ], + "install_type": "git-clone", + "description": "This is unofficial implementation of [a/AniPortrait](https://github.com/Zejun-Yang/AniPortrait) in ComfyUI custom_node,cuz i have routine jobs,so i will update this project when i have time" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-BiRefNet-ZHO", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO" + ], + "install_type": "git-clone", + "description": "Better version for [a/BiRefNet](https://github.com/zhengpeng7/birefnet) in ComfyUI | Both img and video" + }, + { + "author": "kale4eat", + "title": "ComfyUI_demucus", + "reference": "https://github.com/kale4eat/ComfyUI-path-util", + "files": [ + "https://github.com/kale4eat/ComfyUI-path-util" + ], + "install_type": "git-clone", + "description": "Path utility for ComfyUI" + }, + { + "author": "kale4eat", + "title": "ComfyUI-string-util", + "reference": "https://github.com/kale4eat/ComfyUI-string-util", + "files": [ + "https://github.com/kale4eat/ComfyUI-string-util" + ], + "install_type": "git-clone", + "description": "String utility for ComfyUI" + }, + { + "author": "kale4eat", + "title": "ComfyUI-text-file-util", + "reference": "https://github.com/kale4eat/ComfyUI-text-file-util", + "files": [ + "https://github.com/kale4eat/ComfyUI-text-file-util" + ], + "install_type": "git-clone", + "description": "Text file utility for ComfyUI" + }, + { + "author": "nickve28", + "title": "Nich Comfy Utils", + "reference": "https://github.com/nickve28/nich-comfy-utils", + "files": [ + "https://github.com/nickve28/nich-comfy-utils" + ], + "install_type": "git-clone", + "description": "Nodes:Image from Dir Selector (Nich)" + }, { "author": "Hangover3832", "title": "Recognize Anything Model (RAM++) for ComfyUI", @@ -601,96 +691,6 @@ ], "install_type": "git-clone", "description": "Nodes:Merge Tag, Clear Tag, Add Tag, Load Images Pair Batch, Save Images Pair" - }, - { - "author": "vsevolod-oparin", - "title": "Kandinsky 2.2 ComfyUI Plugin", - "reference": "https://github.com/vsevolod-oparin/comfyui-kandinsky22", - "files": [ - "https://github.com/vsevolod-oparin/comfyui-kandinsky22" - ], - "install_type": "git-clone", - "description": "Nodes provide an options to combine prior and decoder models of Kandinsky 2.2." - }, - { - "author": "Xyem", - "title": "Xycuno Oobabooga", - "reference": "https://github.com/Xyem/Xycuno-Oobabooga", - "files": [ - "https://github.com/Xyem/Xycuno-Oobabooga" - ], - "install_type": "git-clone", - "description": "Xycuno Oobabooga provides custom nodes for ComfyUI, for sending requests to an [a/Oobabooga](https://github.com/oobabooga/text-generation-webui) instance to assist in creating prompt texts." - }, - { - "author": "CozyMantis", - "title": "Cozy Reference Pose Generator", - "reference": "https://github.com/cozymantis/pose-generator-comfyui-node", - "files": [ - "https://github.com/cozymantis/pose-generator-comfyui-node" - ], - "install_type": "git-clone", - "description": "Generate OpenPose face/body reference poses in ComfyUI with ease. Made with 💚 by the CozyMantis squad." - }, - { - "author": "CozyMantis", - "title": "Cozy Utils", - "reference": "https://github.com/cozymantis/cozy-utils-comfyui-nodes", - "files": [ - "https://github.com/cozymantis/cozy-utils-comfyui-nodes" - ], - "install_type": "git-clone", - "description": "Various cozy nodes, made with 💚 by the CozyMantis squad." - }, - { - "author": "Chan-0312", - "title": "ComfyUI-EasyDeforum", - "reference": "https://github.com/Chan-0312/ComfyUI-EasyDeforum", - "files": [ - "https://github.com/Chan-0312/ComfyUI-EasyDeforum" - ], - "install_type": "git-clone", - "description": "Nodes:Easy2DDeforum (Chan)" - }, - { - "author": "if-ai", - "title": "ComfyUI-IF_AI_tools", - "reference": "https://github.com/if-ai/ComfyUI-IF_AI_tools", - "files": [ - "https://github.com/if-ai/ComfyUI-IF_AI_tools" - ], - "install_type": "git-clone", - "description": "Various AI tools to use in Comfy UI. Starting with VL and prompt making tools using Ollma as backend will evolve as I find time." - }, - { - "author": "shi3z", - "title": "ComfyUI_Memeplex_DALLE", - "reference": "https://github.com/shi3z/ComfyUI_Memeplex_DALLE", - "files": [ - "https://github.com/shi3z/ComfyUI_Memeplex_DALLE" - ], - "install_type": "git-clone", - "description": "You can use memeplex and DALL-E thru ComfyUI. You need API keys." - }, - { - "author": "cdb-boop", - "title": "ComfyUI Bringing Old Photos Back to Life", - "reference": "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life", - "files": [ - "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life" - ], - "install_type": "git-clone", - "description": "Enhance old or low-quality images in ComfyUI. Optional features include automatic scratch removal and face enhancement. Based on Microsoft's Bringing-Old-Photos-Back-to-Life. Requires installing models, so see instructions here: https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life." - }, - { - "author": "kingzcheung", - "title": "ComfyUI_kkTranslator_nodes", - "reference": "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes", - "files": [ - "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes" - ], - "install_type": "git-clone", - "description": "These nodes are mainly used to translate prompt words from other languages into English. PromptTranslateToText implements prompt word translation based on Helsinki NLP translation model.It doesn't require internet connection。" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 9357acb4..fb5dcc7d 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -328,6 +328,7 @@ "Load Images Pair Batch", "Merge Tag", "Move Tag To Top", + "Reserve Tag", "Save Images Pair" ], { @@ -554,6 +555,22 @@ "title_aux": "ComfyUI-Path-Helper" } ], + "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch": [ + [ + "FastImageListToImageBatch" + ], + { + "title_aux": "ComfyUI FastImageListToImageBatch" + } + ], + "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": [ + [ + "SchedulerMixer" + ], + { + "title_aux": "ComfyUI SchedulerMixer" + } + ], "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": [ [ "BNK_AddCLIPSDXLParams", @@ -766,6 +783,7 @@ "PrimereStyleLoader", "PrimereStylePile", "PrimereTextOutput", + "PrimereUpscaleModel", "PrimereVAE", "PrimereVAELoader", "PrimereVAESelector", @@ -1333,6 +1351,10 @@ "Moondream Interrogator" ], { + "author": "AlexL", + "description": "An implementation of the moondream visual LLM", + "nickname": "Hangover-Moondream", + "title": "ComfyUI-Hangover-Moondream", "title_aux": "ComfyUI-Hangover-Moondream" } ], @@ -1344,6 +1366,10 @@ "Save Image w/o Metadata" ], { + "author": "AlexL", + "description": "Scales an input image into a given box size, whereby the aspect ratio keeps retained.", + "nickname": "Hangover-Image_Scale_Bouning_Box", + "title": "ComfyUI-Hangover-Image_Scale_Bouning_Box", "title_aux": "ComfyUI-Hangover-Nodes" } ], @@ -1352,6 +1378,10 @@ "Recognize Anything Model (RAM++)" ], { + "author": "AlexL", + "description": "An implementation of the Recognize Anything Model (RAM++) for ComfyUI. The counterpart of Segment Anything Model (SAM).", + "nickname": "Hangover-Recognize_Anything", + "title": "ComfyUI-Hangover-Recognize_Anything", "title_aux": "Recognize Anything Model (RAM++) for ComfyUI" } ], @@ -2157,6 +2187,7 @@ "DoubleClipTextEncode", "HashText", "IndoorBackgrounds", + "IntFloatDict", "LandscapeBackgrounds", "NatureColours", "OptimalCrop", @@ -4013,6 +4044,15 @@ "title_aux": "ComfyUI-BRIA_AI-RMBG" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": [ + [ + "BiRefNet_ModelLoader_Zho", + "BiRefNet_Zho" + ], + { + "title_aux": "ComfyUI-BiRefNet-ZHO" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": [ [ "DepthFM_Literative_Zho", @@ -4188,6 +4228,7 @@ "AudioToFFTs", "BatchAmplitudeSchedule", "ClipAmplitude", + "FloatArrayToGraph", "GateNormalizedAmplitude", "LoadAudio", "NormalizeAmplitude", @@ -6693,6 +6734,20 @@ "title_aux": "RF Nodes" } ], + "https://github.com/frankchieng/ComfyUI_Aniportrait": [ + [ + "AniPortrait_Audio2Video", + "AniPortrait_Audio_Path", + "AniPortrait_Generate_Ref_Pose", + "AniPortrait_LoadVideoPath", + "AniPortrait_Pose_Gen_Video", + "AniPortrait_Ref_Image_Path", + "AniPortrait_Video_Gen_Pose" + ], + { + "title_aux": "ComfyUI_Aniportrait" + } + ], "https://github.com/gemell1/ComfyUI_GMIC": [ [ "GmicCliWrapper", @@ -7322,6 +7377,60 @@ "title_aux": "ComfyUI-Transformers" } ], + "https://github.com/kale4eat/ComfyUI-path-util": [ + [ + "path_util_PathAbspath", + "path_util_PathBasename", + "path_util_PathDirname", + "path_util_PathExists", + "path_util_PathIsdir", + "path_util_PathIsfile", + "path_util_PathJoin", + "path_util_PathRelpath", + "path_util_PathSplitext" + ], + { + "title_aux": "ComfyUI_demucus" + } + ], + "https://github.com/kale4eat/ComfyUI-string-util": [ + [ + "string_util_Str", + "string_util_StrConcat", + "string_util_StrCount", + "string_util_StrEndsWith", + "string_util_StrEqual", + "string_util_StrFind", + "string_util_StrFormat", + "string_util_StrJoin", + "string_util_StrLen", + "string_util_StrLower", + "string_util_StrLstrip", + "string_util_StrNotEqual", + "string_util_StrReplace", + "string_util_StrRstrip", + "string_util_StrSlice", + "string_util_StrSplit", + "string_util_StrStartsWith", + "string_util_StrStrip", + "string_util_StrUpper" + ], + { + "title_aux": "ComfyUI-string-util" + } + ], + "https://github.com/kale4eat/ComfyUI-text-file-util": [ + [ + "text_file_util_ReadAllLines", + "text_file_util_ReadAllText", + "text_file_util_WriteText", + "text_file_util_WriteTextLines", + "text_file_util_WriteTextWithSequentialNumbering" + ], + { + "title_aux": "ComfyUI-text-file-util" + } + ], "https://github.com/kenjiqq/qq-nodes-comfyui": [ [ "Any List", @@ -7768,6 +7877,19 @@ "title_aux": "comfyui-easyapi-nodes" } ], + "https://github.com/logtd/ComfyUI-FLATTEN": [ + [ + "ApplyFlattenAttentionNode", + "CreateFlowNoiseNode", + "FlattenCheckpointLoaderNode", + "KSamplerFlattenNode", + "TrajectoryNode", + "UnsamplerFlattenNode" + ], + { + "title_aux": "ComfyUI-FLATTEN" + } + ], "https://github.com/logtd/ComfyUI-InstanceDiffusion": [ [ "ApplyScaleUModelNode", @@ -7835,8 +7957,7 @@ ], "https://github.com/longgui0318/comfyui-oms-diffusion": [ [ - "Additional Features With Attention", - "Extract Features With Unet" + "Additional Features With Attention" ], { "title_aux": "comfyui-oms-diffusion" @@ -8402,6 +8523,7 @@ "CreateMaskWithCanvas", "CreateRegionalPNGMask", "EightFloats", + "EvenOrOdd", "FloatMultiplication", "FourBooleanTrigger", "FourFloats", @@ -8492,6 +8614,14 @@ "title_aux": "ComfyUI-NegiTools" } ], + "https://github.com/nickve28/nich-comfy-utils": [ + [ + "Image from Dir Selector (Nich)" + ], + { + "title_aux": "Nich Comfy Utils" + } + ], "https://github.com/nicolai256/comfyUI_Nodes_nicolai256/raw/main/yugioh-presets.py": [ [ "yugioh_Presets" @@ -9743,6 +9873,7 @@ "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": [ [ "CaptureWebcam", + "ImageResize_Padding", "LatentDelay", "LoadWebcamImage", "SaveImagetoPath" @@ -10234,6 +10365,7 @@ "easy if", "easy imageInsetCrop", "easy imagePixelPerfect", + "easy imageRatio", "easy imageRemBg", "easy imageRemoveBG", "easy imageSave", From abae9638acf05b6ae9888935141a516391d4c536 Mon Sep 17 00:00:00 2001 From: Liu Sida Date: Tue, 2 Apr 2024 19:56:09 +0800 Subject: [PATCH 04/13] Add GitHub stats for custom nodes (#533) * Add GitHub stats fetching feature - Added PyGithub package to requirements.txt for GitHub API interaction - Updated .gitignore to ignore github-stats-cache.json - Produced github-stats.json for storing GitHub stats - Modified scanner.py to include the GitHub stats fetching process * Add sorting for 'GitHub Stars' and 'Last Update' columns - Fetch 'GitHub Stars' and 'Last Update' data when getting the custom node list. - Display 'GitHub Stars' and 'Last Update' information in the UI. - Implement sorting functionality for these two columns, allowing users to sort both in descending and ascending order. * fix: scanner - prevent stuck when exceed rate limit --------- Co-authored-by: Dr.Lt.Data --- .gitignore | 1 + __init__.py | 15 + github-stats.json | 2666 +++++++++++++++++++++++++++++++++ js/custom-nodes-downloader.js | 257 +++- requirements.txt | 1 + scanner.py | 54 +- 6 files changed, 2915 insertions(+), 79 deletions(-) create mode 100644 github-stats.json diff --git a/.gitignore b/.gitignore index e2354725..e774ed6b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ startup-scripts/** matrix_auth channels.list comfyworkflows_sharekey +github-stats-cache.json diff --git a/__init__.py b/__init__.py index ddd1e618..55fa79d4 100644 --- a/__init__.py +++ b/__init__.py @@ -621,6 +621,20 @@ async def get_data(uri, silent=False): json_obj = json.loads(json_text) return json_obj +async def populate_github_stats(json_obj, filename, silent=False): + uri = os.path.join(comfyui_manager_path, filename) + with open(uri, "r", encoding='utf-8') as f: + github_stats = json.load(f) + if 'custom_nodes' in json_obj: + for i, node in enumerate(json_obj['custom_nodes']): + url = node['reference'] + if url in github_stats: + json_obj['custom_nodes'][i]['stars'] = github_stats[url]['stars'] + json_obj['custom_nodes'][i]['last_update'] = github_stats[url]['last_update'] + else: + json_obj['custom_nodes'][i]['stars'] = -1 + json_obj['custom_nodes'][i]['last_update'] = -1 + return json_obj def setup_js(): import nodes @@ -1005,6 +1019,7 @@ async def fetch_customnode_list(request): channel = get_config()['channel_url'] json_obj = await get_data_by_mode(request.rel_url.query["mode"], 'custom-node-list.json') + json_obj = await populate_github_stats(json_obj, "github-stats.json") def is_ignored_notice(code): global version diff --git a/github-stats.json b/github-stats.json new file mode 100644 index 00000000..ef9290ab --- /dev/null +++ b/github-stats.json @@ -0,0 +1,2666 @@ +{ + "https://github.com/ltdrdata/ComfyUI-Manager": { + "stars": 3189, + "last_update": "2024-04-01 15:43:47" + }, + "https://github.com/ltdrdata/ComfyUI-Impact-Pack": { + "stars": 1065, + "last_update": "2024-04-02 05:15:17" + }, + "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": { + "stars": 200, + "last_update": "2024-03-24 08:10:22" + }, + "https://github.com/comfyanonymous/ComfyUI_experiments": { + "stars": 119, + "last_update": "2023-09-13 06:28:20" + }, + "https://github.com/Stability-AI/stability-ComfyUI-nodes": { + "stars": 159, + "last_update": "2023-08-18 19:03:06" + }, + "https://github.com/Fannovel16/comfyui_controlnet_aux": { + "stars": 1117, + "last_update": "2024-04-01 18:25:56" + }, + "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": { + "stars": 245, + "last_update": "2024-02-17 06:26:44" + }, + "https://github.com/Fannovel16/ComfyUI-Loopchain": { + "stars": 24, + "last_update": "2023-12-15 14:25:35" + }, + "https://github.com/Fannovel16/ComfyUI-MotionDiff": { + "stars": 117, + "last_update": "2024-04-01 16:39:58" + }, + "https://github.com/Fannovel16/ComfyUI-Video-Matting": { + "stars": 107, + "last_update": "2024-02-12 13:57:45" + }, + "https://github.com/BlenderNeko/ComfyUI_Cutoff": { + "stars": 286, + "last_update": "2024-03-16 09:59:53" + }, + "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": { + "stars": 217, + "last_update": "2024-03-13 08:17:35" + }, + "https://github.com/BlenderNeko/ComfyUI_Noise": { + "stars": 171, + "last_update": "2023-12-25 16:37:59" + }, + "https://github.com/BlenderNeko/ComfyUI_TiledKSampler": { + "stars": 238, + "last_update": "2024-03-14 02:39:35" + }, + "https://github.com/BlenderNeko/ComfyUI_SeeCoder": { + "stars": 33, + "last_update": "2023-09-11 10:09:22" + }, + "https://github.com/jags111/efficiency-nodes-comfyui": { + "stars": 471, + "last_update": "2024-03-25 13:41:14" + }, + "https://github.com/jags111/ComfyUI_Jags_VectorMagic": { + "stars": 38, + "last_update": "2024-02-03 04:00:30" + }, + "https://github.com/jags111/ComfyUI_Jags_Audiotools": { + "stars": 15, + "last_update": "2023-12-27 16:47:20" + }, + "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": { + "stars": 230, + "last_update": "2024-03-30 03:58:20" + }, + "https://github.com/paulo-coronado/comfy_clip_blip_node": { + "stars": 25, + "last_update": "2023-09-27 00:33:21" + }, + "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": { + "stars": 246, + "last_update": "2024-04-02 00:59:02" + }, + "https://github.com/WASasquatch/was-node-suite-comfyui": { + "stars": 755, + "last_update": "2024-03-20 00:46:04" + }, + "https://github.com/WASasquatch/ComfyUI_Preset_Merger": { + "stars": 20, + "last_update": "2023-08-23 04:57:58" + }, + "https://github.com/WASasquatch/PPF_Noise_ComfyUI": { + "stars": 19, + "last_update": "2023-10-01 03:36:57" + }, + "https://github.com/WASasquatch/PowerNoiseSuite": { + "stars": 45, + "last_update": "2023-09-19 17:04:01" + }, + "https://github.com/WASasquatch/FreeU_Advanced": { + "stars": 85, + "last_update": "2024-03-05 15:36:38" + }, + "https://github.com/WASasquatch/ASTERR": { + "stars": 7, + "last_update": "2023-09-30 01:11:46" + }, + "https://github.com/WASasquatch/WAS_Extras": { + "stars": 21, + "last_update": "2023-11-20 17:14:58" + }, + "https://github.com/get-salt-AI/SaltAI": { + "stars": 35, + "last_update": "2024-03-19 15:37:49" + }, + "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": { + "stars": 92, + "last_update": "2024-02-13 05:05:31" + }, + "https://github.com/lilly1987/ComfyUI_node_Lilly": { + "stars": 49, + "last_update": "2023-11-24 20:13:20" + }, + "https://github.com/sylym/comfy_vid2vid": { + "stars": 57, + "last_update": "2023-08-29 08:07:35" + }, + "https://github.com/EllangoK/ComfyUI-post-processing-nodes": { + "stars": 133, + "last_update": "2024-02-07 01:59:01" + }, + "https://github.com/LEv145/images-grid-comfy-plugin": { + "stars": 105, + "last_update": "2024-02-23 08:22:13" + }, + "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": { + "stars": 52, + "last_update": "2024-02-14 18:07:29" + }, + "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr": { + "stars": 2, + "last_update": "2024-01-01 20:01:25" + }, + "https://github.com/BadCafeCode/masquerade-nodes-comfyui": { + "stars": 247, + "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": 94, + "last_update": "2023-04-03 00:12:22" + }, + "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": { + "stars": 14, + "last_update": "2023-05-23 19:57:46" + }, + "https://github.com/trojblue/trNodes": { + "stars": 8, + "last_update": "2024-03-17 00:16:43" + }, + "https://github.com/szhublox/ambw_comfyui": { + "stars": 10, + "last_update": "2024-01-09 14:14:18" + }, + "https://github.com/city96/ComfyUI_NetDist": { + "stars": 168, + "last_update": "2024-02-15 17:34:51" + }, + "https://github.com/city96/SD-Latent-Interposer": { + "stars": 131, + "last_update": "2024-03-20 21:55:09" + }, + "https://github.com/city96/SD-Advanced-Noise": { + "stars": 15, + "last_update": "2023-08-14 15:17:54" + }, + "https://github.com/city96/SD-Latent-Upscaler": { + "stars": 96, + "last_update": "2023-11-27 00:26:14" + }, + "https://github.com/city96/ComfyUI_DiT": { + "stars": 2, + "last_update": "2023-09-06 17:15:54" + }, + "https://github.com/city96/ComfyUI_ColorMod": { + "stars": 13, + "last_update": "2023-09-30 15:24:38" + }, + "https://github.com/city96/ComfyUI_ExtraModels": { + "stars": 80, + "last_update": "2024-03-16 17:20:28" + }, + "https://github.com/Kaharos94/ComfyUI-Saveaswebp": { + "stars": 27, + "last_update": "2023-11-11 19:53:48" + }, + "https://github.com/SLAPaper/ComfyUI-Image-Selector": { + "stars": 43, + "last_update": "2024-01-10 10:02:25" + }, + "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": { + "stars": 6, + "last_update": "2024-02-29 02:08:28" + }, + "https://github.com/Zuellni/ComfyUI-Custom-Nodes": { + "stars": 43, + "last_update": "2023-09-19 12:11:26" + }, + "https://github.com/Zuellni/ComfyUI-ExLlama": { + "stars": 77, + "last_update": "2024-02-26 12:24:06" + }, + "https://github.com/Zuellni/ComfyUI-PickScore-Nodes": { + "stars": 14, + "last_update": "2024-02-09 16:03:17" + }, + "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet": { + "stars": 506, + "last_update": "2024-02-29 09:53:46" + }, + "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": { + "stars": 267, + "last_update": "2024-03-15 14:36:17" + }, + "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": { + "stars": 999, + "last_update": "2024-04-02 04:42:43" + }, + "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": { + "stars": 20, + "last_update": "2024-03-01 23:00:05" + }, + "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": { + "stars": 231, + "last_update": "2024-03-10 07:42:00" + }, + "https://github.com/Jordach/comfy-plasma": { + "stars": 39, + "last_update": "2023-07-31 00:57:50" + }, + "https://github.com/bvhari/ComfyUI_ImageProcessing": { + "stars": 15, + "last_update": "2023-05-25 10:49:24" + }, + "https://github.com/bvhari/ComfyUI_LatentToRGB": { + "stars": 10, + "last_update": "2023-05-20 06:50:37" + }, + "https://github.com/bvhari/ComfyUI_PerpWeight": { + "stars": 8, + "last_update": "2024-03-25 07:05:23" + }, + "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": { + "stars": 485, + "last_update": "2024-03-30 17:18:43" + }, + "https://github.com/ssitu/ComfyUI_restart_sampling": { + "stars": 49, + "last_update": "2024-04-02 04:43:43" + }, + "https://github.com/ssitu/ComfyUI_roop": { + "stars": 56, + "last_update": "2023-09-05 16:18:48" + }, + "https://github.com/ssitu/ComfyUI_fabric": { + "stars": 68, + "last_update": "2023-12-31 18:28:55" + }, + "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": { + "stars": 40, + "last_update": "2023-09-12 07:35:52" + }, + "https://github.com/space-nuko/ComfyUI-OpenPose-Editor": { + "stars": 128, + "last_update": "2024-01-05 17:45:55" + }, + "https://github.com/space-nuko/nui-suite": { + "stars": 10, + "last_update": "2023-06-04 22:08:46" + }, + "https://github.com/Nourepide/ComfyUI-Allor": { + "stars": 140, + "last_update": "2024-03-21 07:40:20" + }, + "https://github.com/melMass/comfy_mtb": { + "stars": 258, + "last_update": "2024-04-02 04:07:19" + }, + "https://github.com/xXAdonesXx/NodeGPT": { + "stars": 299, + "last_update": "2024-02-01 23:20:08" + }, + "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": { + "stars": 357, + "last_update": "2024-03-22 16:13:20" + }, + "https://github.com/bmad4ever/ComfyUI-Bmad-DirtyUndoRedo": { + "stars": 47, + "last_update": "2023-11-29 14:41:23" + }, + "https://github.com/bmad4ever/comfyui_bmad_nodes": { + "stars": 36, + "last_update": "2024-04-02 03:51:18" + }, + "https://github.com/bmad4ever/comfyui_ab_samplercustom": { + "stars": 3, + "last_update": "2023-11-06 17:45:57" + }, + "https://github.com/bmad4ever/comfyui_lists_cartesian_product": { + "stars": 1, + "last_update": "2023-12-22 00:54:35" + }, + "https://github.com/bmad4ever/comfyui_wfc_like": { + "stars": 2, + "last_update": "2024-03-19 23:02:45" + }, + "https://github.com/bmad4ever/comfyui_quilting": { + "stars": 1, + "last_update": "2024-03-04 22:48:03" + }, + "https://github.com/FizzleDorf/ComfyUI_FizzNodes": { + "stars": 249, + "last_update": "2024-03-24 14:52:58" + }, + "https://github.com/FizzleDorf/ComfyUI-AIT": { + "stars": 42, + "last_update": "2023-11-08 14:03:03" + }, + "https://github.com/filipemeneses/comfy_pixelization": { + "stars": 18, + "last_update": "2024-02-01 04:09:13" + }, + "https://github.com/shiimizu/ComfyUI_smZNodes": { + "stars": 105, + "last_update": "2024-03-20 06:12:08" + }, + "https://github.com/shiimizu/ComfyUI-TiledDiffusion": { + "stars": 120, + "last_update": "2024-02-19 10:44:28" + }, + "https://github.com/ZaneA/ComfyUI-ImageReward": { + "stars": 22, + "last_update": "2024-02-04 23:38:10" + }, + "https://github.com/SeargeDP/SeargeSDXL": { + "stars": 677, + "last_update": "2023-11-13 11:06:08" + }, + "https://github.com/cubiq/ComfyUI_SimpleMath": { + "stars": 6, + "last_update": "2023-09-26 06:31:44" + }, + "https://github.com/cubiq/ComfyUI_IPAdapter_plus": { + "stars": 1896, + "last_update": "2024-04-01 15:38:36" + }, + "https://github.com/cubiq/ComfyUI_InstantID": { + "stars": 596, + "last_update": "2024-03-29 19:27:42" + }, + "https://github.com/cubiq/ComfyUI_FaceAnalysis": { + "stars": 100, + "last_update": "2024-03-16 17:13:27" + }, + "https://github.com/shockz0rz/ComfyUI_InterpolateEverything": { + "stars": 20, + "last_update": "2023-12-23 04:13:06" + }, + "https://github.com/shockz0rz/comfy-easy-grids": { + "stars": 8, + "last_update": "2024-01-01 02:40:59" + }, + "https://github.com/yolanother/DTAIComfyPromptAgent": { + "stars": 5, + "last_update": "2023-07-15 15:19:30" + }, + "https://github.com/yolanother/DTAIImageToTextNode": { + "stars": 12, + "last_update": "2024-01-25 02:53:22" + }, + "https://github.com/yolanother/DTAIComfyLoaders": { + "stars": 1, + "last_update": "2023-12-25 04:37:43" + }, + "https://github.com/yolanother/DTAIComfyImageSubmit": { + "stars": 1, + "last_update": "2023-12-25 04:37:20" + }, + "https://github.com/yolanother/DTAIComfyQRCodes": { + "stars": 2, + "last_update": "2023-12-25 04:38:00" + }, + "https://github.com/yolanother/DTAIComfyVariables": { + "stars": 6, + "last_update": "2023-12-25 04:37:03" + }, + "https://github.com/sipherxyz/comfyui-art-venture": { + "stars": 52, + "last_update": "2024-03-03 12:21:56" + }, + "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes": { + "stars": 4, + "last_update": "2023-07-21 11:22:18" + }, + "https://github.com/pants007/comfy-pants": { + "stars": 2, + "last_update": "2023-08-13 12:02:23" + }, + "https://github.com/evanspearman/ComfyMath": { + "stars": 35, + "last_update": "2023-08-27 03:29:04" + }, + "https://github.com/civitai/comfy-nodes": { + "stars": 74, + "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": 576, + "last_update": "2024-01-06 09:18:52" + }, + "https://github.com/twri/sdxl_prompt_styler": { + "stars": 495, + "last_update": "2024-03-24 18:55:24" + }, + "https://github.com/wolfden/ComfyUi_PromptStylers": { + "stars": 49, + "last_update": "2023-10-22 21:34:59" + }, + "https://github.com/wolfden/ComfyUi_String_Function_Tree": { + "stars": 7, + "last_update": "2023-10-22 22:12:55" + }, + "https://github.com/daxthin/DZ-FaceDetailer": { + "stars": 83, + "last_update": "2023-12-16 17:31:44" + }, + "https://github.com/asagi4/comfyui-prompt-control": { + "stars": 125, + "last_update": "2024-03-19 22:22:37" + }, + "https://github.com/asagi4/ComfyUI-CADS": { + "stars": 23, + "last_update": "2024-03-25 00:35:48" + }, + "https://github.com/asagi4/comfyui-utility-nodes": { + "stars": 6, + "last_update": "2024-03-10 16:04:01" + }, + "https://github.com/jamesWalker55/comfyui-p2ldgan": { + "stars": 12, + "last_update": "2023-08-11 20:15:26" + }, + "https://github.com/jamesWalker55/comfyui-various": { + "stars": 22, + "last_update": "2024-03-10 06:45:45" + }, + "https://github.com/adieyal/comfyui-dynamicprompts": { + "stars": 145, + "last_update": "2024-02-05 06:55:50" + }, + "https://github.com/mihaiiancu/ComfyUI_Inpaint": { + "stars": 9, + "last_update": "2023-07-30 22:32:41" + }, + "https://github.com/kwaroran/abg-comfyui": { + "stars": 19, + "last_update": "2023-08-03 08:57:52" + }, + "https://github.com/bash-j/mikey_nodes": { + "stars": 58, + "last_update": "2024-03-10 09:09:50" + }, + "https://github.com/failfa-st/failfast-comfyui-extensions": { + "stars": 101, + "last_update": "2024-02-25 09:56:19" + }, + "https://github.com/Pfaeff/pfaeff-comfyui": { + "stars": 17, + "last_update": "2023-08-19 19:28:36" + }, + "https://github.com/wallish77/wlsh_nodes": { + "stars": 66, + "last_update": "2024-03-28 23:02:54" + }, + "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": { + "stars": 298, + "last_update": "2024-04-01 23:20:36" + }, + "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": { + "stars": 1868, + "last_update": "2024-03-29 11:22:34" + }, + "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": { + "stars": 271, + "last_update": "2024-03-31 00:31:24" + }, + "https://github.com/Gourieff/comfyui-reactor-node": { + "stars": 792, + "last_update": "2024-03-28 06:06:36" + }, + "https://github.com/imb101/ComfyUI-FaceSwap": { + "stars": 28, + "last_update": "2023-08-04 23:54:24" + }, + "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes": { + "stars": 7, + "last_update": "2024-02-29 15:21:23" + }, + "https://github.com/AIrjen/OneButtonPrompt": { + "stars": 604, + "last_update": "2024-04-01 19:45:48" + }, + "https://github.com/coreyryanhanson/ComfyQR": { + "stars": 35, + "last_update": "2024-03-20 20:10:27" + }, + "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes": { + "stars": 8, + "last_update": "2023-10-15 03:19:16" + }, + "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": { + "stars": 135, + "last_update": "2024-01-07 03:29:57" + }, + "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": { + "stars": 4, + "last_update": "2023-12-10 13:57:48" + }, + "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": { + "stars": 23, + "last_update": "2023-10-23 14:55:53" + }, + "https://github.com/M1kep/Comfy_KepListStuff": { + "stars": 22, + "last_update": "2023-10-30 01:30:09" + }, + "https://github.com/M1kep/ComfyLiterals": { + "stars": 8, + "last_update": "2023-11-20 01:08:21" + }, + "https://github.com/M1kep/KepPromptLang": { + "stars": 4, + "last_update": "2023-11-19 08:27:04" + }, + "https://github.com/M1kep/Comfy_KepMatteAnything": { + "stars": 9, + "last_update": "2023-09-27 01:16:51" + }, + "https://github.com/M1kep/Comfy_KepKitchenSink": { + "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": 20, + "last_update": "2023-11-08 22:43:37" + }, + "https://github.com/uarefans/ComfyUI-Fans": { + "stars": 11, + "last_update": "2023-08-15 18:42:40" + }, + "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": { + "stars": 12, + "last_update": "2024-02-02 11:09:18" + }, + "https://github.com/ManglerFTW/ComfyI2I": { + "stars": 128, + "last_update": "2023-11-03 11:09:53" + }, + "https://github.com/theUpsider/ComfyUI-Logic": { + "stars": 69, + "last_update": "2023-12-12 20:29:49" + }, + "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": { + "stars": 12, + "last_update": "2023-08-14 11:27:09" + }, + "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": { + "stars": 1, + "last_update": "2023-08-16 11:33:14" + }, + "https://github.com/Extraltodeus/noise_latent_perlinpinpin": { + "stars": 18, + "last_update": "2023-08-21 22:04:31" + }, + "https://github.com/Extraltodeus/LoadLoraWithTags": { + "stars": 28, + "last_update": "2023-10-28 15:51:44" + }, + "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": { + "stars": 26, + "last_update": "2024-01-25 16:30:20" + }, + "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": { + "stars": 118, + "last_update": "2024-03-31 21:34:36" + }, + "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": { + "stars": 53, + "last_update": "2024-03-26 16:30:00" + }, + "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": { + "stars": 25, + "last_update": "2024-02-02 13:05:11" + }, + "https://github.com/hustille/ComfyUI_hus_utils": { + "stars": 4, + "last_update": "2023-08-16 15:44:24" + }, + "https://github.com/hustille/ComfyUI_Fooocus_KSampler": { + "stars": 53, + "last_update": "2023-09-10 01:51:24" + }, + "https://github.com/badjeff/comfyui_lora_tag_loader": { + "stars": 35, + "last_update": "2024-02-12 07:46:02" + }, + "https://github.com/rgthree/rgthree-comfy": { + "stars": 434, + "last_update": "2024-04-02 00:45:15" + }, + "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION": { + "stars": 634, + "last_update": "2024-04-01 09:07:08" + }, + "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio": { + "stars": 166, + "last_update": "2024-03-24 04:37:53" + }, + "https://github.com/AIGODLIKE/ComfyUI-CUP": { + "stars": 0, + "last_update": "2024-03-22 07:26:43" + }, + "https://github.com/syllebra/bilbox-comfyui": { + "stars": 64, + "last_update": "2024-02-13 18:49:16" + }, + "https://github.com/giriss/comfy-image-saver": { + "stars": 104, + "last_update": "2023-11-16 10:39:05" + }, + "https://github.com/shingo1228/ComfyUI-send-eagle-slim": { + "stars": 18, + "last_update": "2024-01-27 01:44:58" + }, + "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": { + "stars": 20, + "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": 52, + "last_update": "2024-03-25 03:38:55" + }, + "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": { + "stars": 16, + "last_update": "2023-11-23 02:06:20" + }, + "https://github.com/laksjdjf/LCMSampler-ComfyUI": { + "stars": 14, + "last_update": "2023-11-08 11:07:04" + }, + "https://github.com/laksjdjf/LoRTnoC-ComfyUI": { + "stars": 9, + "last_update": "2024-03-07 12:27:44" + }, + "https://github.com/laksjdjf/Batch-Condition-ComfyUI": { + "stars": 1, + "last_update": "2024-03-09 12:22:07" + }, + "https://github.com/alsritter/asymmetric-tiling-comfyui": { + "stars": 14, + "last_update": "2023-08-18 16:32:27" + }, + "https://github.com/meap158/ComfyUI-GPU-temperature-protection": { + "stars": 3, + "last_update": "2023-10-07 09:45:25" + }, + "https://github.com/meap158/ComfyUI-Prompt-Expansion": { + "stars": 54, + "last_update": "2023-09-17 00:00:31" + }, + "https://github.com/meap158/ComfyUI-Background-Replacement": { + "stars": 23, + "last_update": "2023-12-17 14:05:08" + }, + "https://github.com/TeaCrab/ComfyUI-TeaNodes": { + "stars": 4, + "last_update": "2024-02-07 21:57:28" + }, + "https://github.com/nagolinc/ComfyUI_FastVAEDecorder_SDXL": { + "stars": 2, + "last_update": "2023-07-27 20:15:00" + }, + "https://github.com/bradsec/ComfyUI_ResolutionSelector": { + "stars": 7, + "last_update": "2023-08-19 06:52:19" + }, + "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": { + "stars": 117, + "last_update": "2024-03-15 19:05:53" + }, + "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes": { + "stars": 4, + "last_update": "2023-08-19 19:17:07" + }, + "https://github.com/dagthomas/comfyui_dagthomas": { + "stars": 40, + "last_update": "2024-01-03 09:59:57" + }, + "https://github.com/marhensa/sdxl-recommended-res-calc": { + "stars": 46, + "last_update": "2024-03-15 05:43:38" + }, + "https://github.com/Nuked88/ComfyUI-N-Nodes": { + "stars": 136, + "last_update": "2024-03-16 11:27:55" + }, + "https://github.com/Nuked88/ComfyUI-N-Sidebar": { + "stars": 248, + "last_update": "2024-03-31 20:26:53" + }, + "https://github.com/richinsley/Comfy-LFO": { + "stars": 4, + "last_update": "2023-08-23 23:08:16" + }, + "https://github.com/Beinsezii/bsz-cui-extras": { + "stars": 19, + "last_update": "2024-01-11 23:53:04" + }, + "https://github.com/youyegit/tdxh_node_comfyui": { + "stars": 2, + "last_update": "2023-09-21 08:40:50" + }, + "https://github.com/Sxela/ComfyWarp": { + "stars": 19, + "last_update": "2023-11-04 10:45:11" + }, + "https://github.com/skfoo/ComfyUI-Coziness": { + "stars": 17, + "last_update": "2024-02-23 18:59:41" + }, + "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": { + "stars": 12, + "last_update": "2023-08-30 16:06:45" + }, + "https://github.com/Lerc/canvas_tab": { + "stars": 111, + "last_update": "2024-01-25 22:09:37" + }, + "https://github.com/Ttl/ComfyUi_NNLatentUpscale": { + "stars": 122, + "last_update": "2023-08-28 13:56:20" + }, + "https://github.com/spro/comfyui-mirror": { + "stars": 3, + "last_update": "2023-08-28 02:37:52" + }, + "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": { + "stars": 19, + "last_update": "2024-01-06 14:15:12" + }, + "https://github.com/Acly/comfyui-tooling-nodes": { + "stars": 158, + "last_update": "2024-03-04 08:52:39" + }, + "https://github.com/Acly/comfyui-inpaint-nodes": { + "stars": 234, + "last_update": "2024-03-24 16:00:17" + }, + "https://github.com/picturesonpictures/comfy_PoP": { + "stars": 9, + "last_update": "2024-02-01 03:04:42" + }, + "https://github.com/alt-key-project/comfyui-dream-project": { + "stars": 60, + "last_update": "2023-12-21 19:36:51" + }, + "https://github.com/alt-key-project/comfyui-dream-video-batches": { + "stars": 37, + "last_update": "2023-12-03 10:31:55" + }, + "https://github.com/seanlynch/comfyui-optical-flow": { + "stars": 19, + "last_update": "2023-10-20 21:22:17" + }, + "https://github.com/ealkanat/comfyui_easy_padding": { + "stars": 10, + "last_update": "2023-09-26 14:56:04" + }, + "https://github.com/ArtBot2023/CharacterFaceSwap": { + "stars": 46, + "last_update": "2023-10-25 04:29:40" + }, + "https://github.com/mav-rik/facerestore_cf": { + "stars": 117, + "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": 15, + "last_update": "2024-03-06 01:43:49" + }, + "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": 39, + "last_update": "2023-09-10 23:42:15" + }, + "https://github.com/jmkl/ComfyUI-ricing": { + "stars": 9, + "last_update": "2023-09-11 03:33:34" + }, + "https://github.com/budihartono/comfyui_otonx_nodes": { + "stars": 1, + "last_update": "2023-11-08 14:26:20" + }, + "https://github.com/ramyma/A8R8_ComfyUI_nodes": { + "stars": 4, + "last_update": "2023-09-13 02:56:53" + }, + "https://github.com/spinagon/ComfyUI-seamless-tiling": { + "stars": 39, + "last_update": "2024-01-29 03:45:40" + }, + "https://github.com/tusharbhutt/Endless-Nodes": { + "stars": 21, + "last_update": "2023-10-21 23:02:19" + }, + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": { + "stars": 17, + "last_update": "2024-03-30 05:10:42" + }, + "https://github.com/spacepxl/ComfyUI-Image-Filters": { + "stars": 38, + "last_update": "2024-03-15 06:09:56" + }, + "https://github.com/spacepxl/ComfyUI-RAVE": { + "stars": 69, + "last_update": "2024-01-28 09:08:08" + }, + "https://github.com/phineas-pta/comfyui-auto-nodes-layout": { + "stars": 13, + "last_update": "2023-09-21 14:49:12" + }, + "https://github.com/receyuki/comfyui-prompt-reader-node": { + "stars": 137, + "last_update": "2024-03-21 16:07:20" + }, + "https://github.com/rklaffehn/rk-comfy-nodes": { + "stars": 2, + "last_update": "2024-01-23 17:12:45" + }, + "https://github.com/cubiq/ComfyUI_essentials": { + "stars": 154, + "last_update": "2024-03-30 19:23:33" + }, + "https://github.com/Clybius/ComfyUI-Latent-Modifiers": { + "stars": 35, + "last_update": "2024-01-02 21:57:58" + }, + "https://github.com/Clybius/ComfyUI-Extra-Samplers": { + "stars": 19, + "last_update": "2024-03-25 21:14:59" + }, + "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": { + "stars": 979, + "last_update": "2024-03-21 09:27:41" + }, + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": { + "stars": 5, + "last_update": "2024-01-20 14:15:58" + }, + "https://github.com/chrisgoringe/cg-noise": { + "stars": 20, + "last_update": "2024-02-02 23:38:25" + }, + "https://github.com/chrisgoringe/cg-image-picker": { + "stars": 109, + "last_update": "2024-03-29 04:17:32" + }, + "https://github.com/chrisgoringe/cg-use-everywhere": { + "stars": 242, + "last_update": "2024-03-29 04:12:08" + }, + "https://github.com/chrisgoringe/cg-prompt-info": { + "stars": 22, + "last_update": "2023-10-20 05:21:26" + }, + "https://github.com/TGu-97/ComfyUI-TGu-utils": { + "stars": 1, + "last_update": "2023-09-25 04:06:55" + }, + "https://github.com/seanlynch/srl-nodes": { + "stars": 3, + "last_update": "2023-10-22 22:35:41" + }, + "https://github.com/alpertunga-bile/prompt-generator-comfyui": { + "stars": 48, + "last_update": "2024-03-29 10:58:50" + }, + "https://github.com/mlinmg/ComfyUI-LaMA-Preprocessor": { + "stars": 60, + "last_update": "2023-12-21 04:31:58" + }, + "https://github.com/kijai/ComfyUI-KJNodes": { + "stars": 154, + "last_update": "2024-04-01 13:20:28" + }, + "https://github.com/kijai/ComfyUI-CCSR": { + "stars": 94, + "last_update": "2024-03-18 10:10:20" + }, + "https://github.com/kijai/ComfyUI-SVD": { + "stars": 149, + "last_update": "2023-11-25 10:16:57" + }, + "https://github.com/kijai/ComfyUI-Marigold": { + "stars": 293, + "last_update": "2024-04-01 22:48:01" + }, + "https://github.com/kijai/ComfyUI-Geowizard": { + "stars": 57, + "last_update": "2024-03-30 10:16:56" + }, + "https://github.com/kijai/ComfyUI-depth-fm": { + "stars": 35, + "last_update": "2024-03-23 23:45:51" + }, + "https://github.com/kijai/ComfyUI-DDColor": { + "stars": 51, + "last_update": "2024-01-18 08:05:17" + }, + "https://github.com/kijai/ComfyUI-ADMotionDirector": { + "stars": 82, + "last_update": "2024-03-27 19:38:20" + }, + "https://github.com/kijai/ComfyUI-moondream": { + "stars": 52, + "last_update": "2024-03-11 00:50:24" + }, + "https://github.com/kijai/ComfyUI-SUPIR": { + "stars": 777, + "last_update": "2024-03-29 22:29:23" + }, + "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": { + "stars": 152, + "last_update": "2024-03-26 13:31:13" + }, + "https://github.com/hhhzzyang/Comfyui_Lama": { + "stars": 29, + "last_update": "2023-10-01 17:33:29" + }, + "https://github.com/thedyze/save-image-extended-comfyui": { + "stars": 54, + "last_update": "2023-11-09 17:48:44" + }, + "https://github.com/SOELexicon/ComfyUI-LexTools": { + "stars": 17, + "last_update": "2024-03-15 17:45:41" + }, + "https://github.com/mikkel/ComfyUI-text-overlay": { + "stars": 22, + "last_update": "2023-10-05 03:05:03" + }, + "https://github.com/avatechai/avatar-graph-comfyui": { + "stars": 181, + "last_update": "2024-02-06 08:56:30" + }, + "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": { + "stars": 7, + "last_update": "2024-03-19 12:03:30" + }, + "https://github.com/storyicon/comfyui_segment_anything": { + "stars": 334, + "last_update": "2024-03-30 10:11:17" + }, + "https://github.com/a1lazydog/ComfyUI-AudioScheduler": { + "stars": 56, + "last_update": "2024-04-01 05:46:51" + }, + "https://github.com/whatbirdisthat/cyberdolphin": { + "stars": 14, + "last_update": "2023-11-11 23:35:44" + }, + "https://github.com/chrish-slingshot/CrasHUtils": { + "stars": 11, + "last_update": "2023-11-02 23:00:35" + }, + "https://github.com/spinagon/ComfyUI-seam-carving": { + "stars": 10, + "last_update": "2023-10-13 07:24:05" + }, + "https://github.com/YMC-GitHub/ymc-node-suite-comfyui": { + "stars": 14, + "last_update": "2023-12-27 14:18:04" + }, + "https://github.com/chibiace/ComfyUI-Chibi-Nodes": { + "stars": 19, + "last_update": "2023-12-30 07:50:05" + }, + "https://github.com/DigitalIO/ComfyUI-stable-wildcards": { + "stars": 19, + "last_update": "2023-12-18 23:42:52" + }, + "https://github.com/THtianhao/ComfyUI-Portrait-Maker": { + "stars": 146, + "last_update": "2024-03-07 06:45:14" + }, + "https://github.com/THtianhao/ComfyUI-FaceChain": { + "stars": 61, + "last_update": "2024-01-15 07:18:31" + }, + "https://github.com/zer0TF/cute-comfy": { + "stars": 27, + "last_update": "2024-01-04 04:20:46" + }, + "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": { + "stars": 12, + "last_update": "2024-02-20 01:27:38" + }, + "https://github.com/chflame163/ComfyUI_WordCloud": { + "stars": 40, + "last_update": "2024-02-27 12:47:52" + }, + "https://github.com/chflame163/ComfyUI_LayerStyle": { + "stars": 321, + "last_update": "2024-03-31 12:18:19" + }, + "https://github.com/chflame163/ComfyUI_FaceSimilarity": { + "stars": 2, + "last_update": "2024-03-22 05:35:23" + }, + "https://github.com/drustan-hawk/primitive-types": { + "stars": 5, + "last_update": "2023-10-20 16:33:23" + }, + "https://github.com/shadowcz007/comfyui-mixlab-nodes": { + "stars": 609, + "last_update": "2024-03-30 15:46:38" + }, + "https://github.com/shadowcz007/comfyui-ultralytics-yolo": { + "stars": 9, + "last_update": "2024-03-29 08:35:02" + }, + "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": 7, + "last_update": "2024-03-25 05:41:04" + }, + "https://github.com/ostris/ostris_nodes_comfyui": { + "stars": 17, + "last_update": "2023-11-26 21:41:27" + }, + "https://github.com/0xbitches/ComfyUI-LCM": { + "stars": 239, + "last_update": "2023-11-11 21:24:33" + }, + "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": { + "stars": 68, + "last_update": "2023-12-01 00:09:15" + }, + "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": { + "stars": 202, + "last_update": "2024-02-19 22:14:46" + }, + "https://github.com/noxinias/ComfyUI_NoxinNodes": { + "stars": 4, + "last_update": "2023-11-01 00:11:28" + }, + "https://github.com/GMapeSplat/ComfyUI_ezXY": { + "stars": 16, + "last_update": "2023-11-30 00:32:24" + }, + "https://github.com/kinfolk0117/ComfyUI_SimpleTiles": { + "stars": 22, + "last_update": "2024-01-29 19:27:12" + }, + "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": { + "stars": 20, + "last_update": "2023-12-01 20:13:00" + }, + "https://github.com/kinfolk0117/ComfyUI_Pilgram": { + "stars": 6, + "last_update": "2024-01-07 14:49:46" + }, + "https://github.com/Fictiverse/ComfyUI_Fictiverse": { + "stars": 6, + "last_update": "2023-11-29 12:58:14" + }, + "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": { + "stars": 35, + "last_update": "2024-03-14 22:26:17" + }, + "https://github.com/aianimation55/ComfyUI-FatLabels": { + "stars": 4, + "last_update": "2023-10-31 14:25:23" + }, + "https://github.com/noembryo/ComfyUI-noEmbryo": { + "stars": 11, + "last_update": "2024-03-22 17:52:32" + }, + "https://github.com/mikkel/comfyui-mask-boundingbox": { + "stars": 20, + "last_update": "2024-03-07 08:11:06" + }, + "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts": { + "stars": 0, + "last_update": "2023-11-03 04:16:28" + }, + "https://github.com/matan1905/ComfyUI-Serving-Toolkit": { + "stars": 30, + "last_update": "2024-02-28 18:30:35" + }, + "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": { + "stars": 8, + "last_update": "2023-11-06 06:34:25" + }, + "https://github.com/Trung0246/ComfyUI-0246": { + "stars": 82, + "last_update": "2024-03-10 08:42:04" + }, + "https://github.com/fexli/fexli-util-node-comfyui": { + "stars": 3, + "last_update": "2024-02-20 09:14:55" + }, + "https://github.com/AbyssYuan0/ComfyUI_BadgerTools": { + "stars": 5, + "last_update": "2024-03-16 07:39:28" + }, + "https://github.com/palant/image-resize-comfyui": { + "stars": 39, + "last_update": "2024-01-18 20:59:55" + }, + "https://github.com/palant/integrated-nodes-comfyui": { + "stars": 27, + "last_update": "2023-12-27 22:52:00" + }, + "https://github.com/palant/extended-saveimage-comfyui": { + "stars": 8, + "last_update": "2024-03-27 14:08:21" + }, + "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus": { + "stars": 12, + "last_update": "2024-01-06 18:32:07" + }, + "https://github.com/martijnat/comfyui-previewlatent": { + "stars": 27, + "last_update": "2024-02-15 05:52:28" + }, + "https://github.com/banodoco/steerable-motion": { + "stars": 400, + "last_update": "2024-03-30 12:10:00" + }, + "https://github.com/gemell1/ComfyUI_GMIC": { + "stars": 5, + "last_update": "2024-03-25 13:14:16" + }, + "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": { + "stars": 20, + "last_update": "2023-11-27 14:47:20" + }, + "https://github.com/TheBarret/ZSuite": { + "stars": 6, + "last_update": "2023-12-06 12:47:18" + }, + "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata": { + "stars": 1, + "last_update": "2024-01-04 17:52:44" + }, + "https://github.com/ka-puna/comfyui-yanc": { + "stars": 5, + "last_update": "2023-12-10 21:29:12" + }, + "https://github.com/Amorano/Jovimetrix": { + "stars": 93, + "last_update": "2024-03-31 04:36:03" + }, + "https://github.com/Umikaze-job/select_folder_path_easy": { + "stars": 4, + "last_update": "2023-11-18 14:59:56" + }, + "https://github.com/Niutonian/ComfyUi-NoodleWebcam": { + "stars": 25, + "last_update": "2023-11-20 11:25:01" + }, + "https://github.com/Feidorian/feidorian-ComfyNodes": { + "stars": 5, + "last_update": "2024-01-03 09:01:58" + }, + "https://github.com/wutipong/ComfyUI-TextUtils": { + "stars": 1, + "last_update": "2023-11-20 21:32:07" + }, + "https://github.com/natto-maki/ComfyUI-NegiTools": { + "stars": 19, + "last_update": "2024-02-02 07:50:01" + }, + "https://github.com/LonicaMewinsky/ComfyUI-RawSaver": { + "stars": 1, + "last_update": "2023-11-21 14:34:54" + }, + "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": { + "stars": 68, + "last_update": "2024-02-17 11:54:33" + }, + "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": { + "stars": 5, + "last_update": "2023-12-10 01:20:36" + }, + "https://github.com/oyvindg/ComfyUI-TrollSuite": { + "stars": 0, + "last_update": "2023-11-21 01:46:07" + }, + "https://github.com/drago87/ComfyUI_Dragos_Nodes": { + "stars": 3, + "last_update": "2023-11-24 19:04:31" + }, + "https://github.com/ansonkao/comfyui-geometry": { + "stars": 6, + "last_update": "2023-11-30 02:45:49" + }, + "https://github.com/bronkula/comfyui-fitsize": { + "stars": 25, + "last_update": "2023-12-03 12:32:49" + }, + "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": { + "stars": 383, + "last_update": "2024-03-31 15:10:51" + }, + "https://github.com/thecooltechguy/ComfyUI-Stable-Video-Diffusion": { + "stars": 247, + "last_update": "2023-11-24 06:14:27" + }, + "https://github.com/thecooltechguy/ComfyUI-ComfyRun": { + "stars": 71, + "last_update": "2023-12-27 18:16:34" + }, + "https://github.com/thecooltechguy/ComfyUI-MagicAnimate": { + "stars": 179, + "last_update": "2024-01-09 19:24:47" + }, + "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows": { + "stars": 22, + "last_update": "2024-03-11 09:48:04" + }, + "https://github.com/Danand/ComfyUI-ComfyCouple": { + "stars": 14, + "last_update": "2023-11-22 22:48:31" + }, + "https://github.com/42lux/ComfyUI-safety-checker": { + "stars": 12, + "last_update": "2024-03-15 18:39:38" + }, + "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": { + "stars": 1, + "last_update": "2023-12-03 14:27:21" + }, + "https://github.com/komojini/ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes": { + "stars": 2, + "last_update": "2023-12-15 23:36:59" + }, + "https://github.com/komojini/komojini-comfyui-nodes": { + "stars": 53, + "last_update": "2024-02-10 14:58:22" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": { + "stars": 227, + "last_update": "2024-03-24 14:20:44" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite": { + "stars": 51, + "last_update": "2023-12-22 08:22:45" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": { + "stars": 298, + "last_update": "2024-01-15 12:19:46" + }, + "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": { + "stars": 1310, + "last_update": "2023-12-23 07:08:46" + }, + "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": 1035, + "last_update": "2024-03-23 06:33:03" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": { + "stars": 695, + "last_update": "2024-01-25 13:13:33" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API": { + "stars": 152, + "last_update": "2024-03-12 10:32:47" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": { + "stars": 74, + "last_update": "2024-02-06 09:16:21" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE": { + "stars": 67, + "last_update": "2024-02-04 20:03:35" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": { + "stars": 279, + "last_update": "2024-02-24 08:36:24" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers": { + "stars": 24, + "last_update": "2024-04-02 02:55:59" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG": { + "stars": 389, + "last_update": "2024-02-07 13:22:16" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": { + "stars": 46, + "last_update": "2024-03-25 02:09:04" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": { + "stars": 40, + "last_update": "2024-04-01 13:35:54" + }, + "https://github.com/kenjiqq/qq-nodes-comfyui": { + "stars": 16, + "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": 131, + "last_update": "2023-12-12 12:23:04" + }, + "https://github.com/zhuanqianfish/ComfyUI-EasyNode": { + "stars": 50, + "last_update": "2023-12-13 12:02:43" + }, + "https://github.com/discopixel-studio/comfyui-discopixel": { + "stars": 6, + "last_update": "2023-11-30 02:45:49" + }, + "https://github.com/zcfrank1st/Comfyui-Yolov8": { + "stars": 13, + "last_update": "2024-02-25 06:28:49" + }, + "https://github.com/SoftMeng/ComfyUI_Mexx_Styler": { + "stars": 11, + "last_update": "2023-11-30 07:35:07" + }, + "https://github.com/SoftMeng/ComfyUI_Mexx_Poster": { + "stars": 14, + "last_update": "2023-12-05 09:44:42" + }, + "https://github.com/wmatson/easy-comfy-nodes": { + "stars": 9, + "last_update": "2024-03-18 22:00:23" + }, + "https://github.com/DrJKL/ComfyUI-Anchors": { + "stars": 4, + "last_update": "2024-03-20 22:40:29" + }, + "https://github.com/vanillacode314/SimpleWildcardsComfyUI": { + "stars": 3, + "last_update": "2023-12-04 08:53:32" + }, + "https://github.com/WebDev9000/WebDev9000-Nodes": { + "stars": 1, + "last_update": "2023-12-01 02:23:18" + }, + "https://github.com/Scholar01/ComfyUI-Keyframe": { + "stars": 6, + "last_update": "2024-02-01 16:57:40" + }, + "https://github.com/Haoming02/comfyui-diffusion-cg": { + "stars": 35, + "last_update": "2024-03-22 19:10:11" + }, + "https://github.com/Haoming02/comfyui-prompt-format": { + "stars": 26, + "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-menu-anchor": { + "stars": 3, + "last_update": "2024-01-26 03:54:55" + }, + "https://github.com/Haoming02/comfyui-tab-handler": { + "stars": 3, + "last_update": "2023-12-14 08:24:49" + }, + "https://github.com/Haoming02/comfyui-floodgate": { + "stars": 21, + "last_update": "2024-01-31 09:08:14" + }, + "https://github.com/bedovyy/ComfyUI_NAIDGenerator": { + "stars": 15, + "last_update": "2024-03-13 09:36:48" + }, + "https://github.com/Off-Live/ComfyUI-off-suite": { + "stars": 0, + "last_update": "2024-03-22 06:35:18" + }, + "https://github.com/ningxiaoxiao/comfyui-NDI": { + "stars": 29, + "last_update": "2024-03-07 02:08:05" + }, + "https://github.com/subtleGradient/TinkerBot-tech-for-ComfyUI-Touchpad": { + "stars": 11, + "last_update": "2024-01-14 20:01:01" + }, + "https://github.com/zcfrank1st/comfyui_visual_anagrams": { + "stars": 5, + "last_update": "2023-12-05 12:31:26" + }, + "https://github.com/Electrofried/ComfyUI-OpenAINode": { + "stars": 15, + "last_update": "2023-12-05 21:34:23" + }, + "https://github.com/AustinMroz/ComfyUI-SpliceTools": { + "stars": 1, + "last_update": "2024-02-09 23:16:25" + }, + "https://github.com/11cafe/comfyui-workspace-manager": { + "stars": 566, + "last_update": "2024-04-01 13:18:16" + }, + "https://github.com/knuknX/ComfyUI-Image-Tools": { + "stars": 1, + "last_update": "2024-01-01 03:30:49" + }, + "https://github.com/jtrue/ComfyUI-JaRue": { + "stars": 6, + "last_update": "2023-12-25 17:55:50" + }, + "https://github.com/filliptm/ComfyUI_Fill-Nodes": { + "stars": 9, + "last_update": "2024-03-12 01:27:59" + }, + "https://github.com/zfkun/ComfyUI_zfkun": { + "stars": 10, + "last_update": "2024-01-21 06:21:35" + }, + "https://github.com/zcfrank1st/Comfyui-Toolbox": { + "stars": 2, + "last_update": "2023-12-13 11:36:14" + }, + "https://github.com/talesofai/comfyui-browser": { + "stars": 333, + "last_update": "2024-03-31 05:16:02" + }, + "https://github.com/yolain/ComfyUI-Easy-Use": { + "stars": 284, + "last_update": "2024-04-02 05:23:16" + }, + "https://github.com/bruefire/ComfyUI-SeqImageLoader": { + "stars": 24, + "last_update": "2024-03-31 20:06:10" + }, + "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": 12, + "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": 203, + "last_update": "2024-03-12 03:42:07" + }, + "https://github.com/deroberon/demofusion-comfyui": { + "stars": 79, + "last_update": "2023-12-19 22:54:02" + }, + "https://github.com/deroberon/StableZero123-comfyui": { + "stars": 114, + "last_update": "2024-01-15 10:38:27" + }, + "https://github.com/glifxyz/ComfyUI-GlifNodes": { + "stars": 5, + "last_update": "2024-03-15 14:30:29" + }, + "https://github.com/concarne000/ConCarneNode": { + "stars": 2, + "last_update": "2024-01-23 06:05:24" + }, + "https://github.com/aegis72/aegisflow_utility_nodes": { + "stars": 17, + "last_update": "2024-03-06 14:04:56" + }, + "https://github.com/aegis72/comfyui-styles-all": { + "stars": 20, + "last_update": "2024-03-21 02:58:24" + }, + "https://github.com/glibsonoran/Plush-for-ComfyUI": { + "stars": 79, + "last_update": "2024-03-27 15:00:07" + }, + "https://github.com/vienteck/ComfyUI-Chat-GPT-Integration": { + "stars": 21, + "last_update": "2024-02-24 21:32:58" + }, + "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": { + "stars": 9, + "last_update": "2024-04-01 10:37:35" + }, + "https://github.com/AI2lab/comfyUI-tool-2lab": { + "stars": 0, + "last_update": "2024-03-24 16:59:45" + }, + "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid": { + "stars": 4, + "last_update": "2023-12-15 21:07:36" + }, + "https://github.com/NimaNzrii/comfyui-popup_preview": { + "stars": 24, + "last_update": "2024-01-07 12:21:43" + }, + "https://github.com/NimaNzrii/comfyui-photoshop": { + "stars": 48, + "last_update": "2023-12-20 13:03:59" + }, + "https://github.com/rui40000/RUI-Nodes": { + "stars": 11, + "last_update": "2023-12-15 07:37:43" + }, + "https://github.com/dmarx/ComfyUI-Keyframed": { + "stars": 72, + "last_update": "2023-12-30 00:37:20" + }, + "https://github.com/dmarx/ComfyUI-AudioReactive": { + "stars": 4, + "last_update": "2024-01-03 08:27:32" + }, + "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": { + "stars": 11, + "last_update": "2023-12-16 19:21:57" + }, + "https://github.com/BennyKok/comfyui-deploy": { + "stars": 531, + "last_update": "2024-03-28 15:15:47" + }, + "https://github.com/florestefano1975/comfyui-portrait-master": { + "stars": 647, + "last_update": "2024-03-04 11:08:24" + }, + "https://github.com/florestefano1975/comfyui-prompt-composer": { + "stars": 182, + "last_update": "2024-03-08 11:46:57" + }, + "https://github.com/mozman/ComfyUI_mozman_nodes": { + "stars": 0, + "last_update": "2023-12-18 06:07:50" + }, + "https://github.com/rcsaquino/comfyui-custom-nodes": { + "stars": 1, + "last_update": "2023-12-18 17:18:21" + }, + "https://github.com/rcfcu2000/zhihuige-nodes-comfyui": { + "stars": 0, + "last_update": "2024-01-11 08:41:17" + }, + "https://github.com/IDGallagher/ComfyUI-IG-Nodes": { + "stars": 0, + "last_update": "2024-02-04 03:37:05" + }, + "https://github.com/violet-chen/comfyui-psd2png": { + "stars": 4, + "last_update": "2024-01-18 05:00:49" + }, + "https://github.com/lldacing/comfyui-easyapi-nodes": { + "stars": 16, + "last_update": "2024-03-26 08:41:20" + }, + "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": { + "stars": 49, + "last_update": "2024-04-01 13:00:41" + }, + "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": 86, + "last_update": "2024-04-01 19:58:39" + }, + "https://github.com/ttulttul/ComfyUI-Tensor-Operations": { + "stars": 2, + "last_update": "2024-02-07 21:22:45" + }, + "https://github.com/jitcoder/lora-info": { + "stars": 19, + "last_update": "2024-01-28 15:09:51" + }, + "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner": { + "stars": 52, + "last_update": "2024-03-04 10:07:53" + }, + "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale": { + "stars": 16, + "last_update": "2023-12-31 16:26:46" + }, + "https://github.com/styler00dollar/ComfyUI-deepcache": { + "stars": 5, + "last_update": "2023-12-26 17:53:44" + }, + "https://github.com/NotHarroweD/Harronode": { + "stars": 4, + "last_update": "2023-12-31 06:00:14" + }, + "https://github.com/Limitex/ComfyUI-Calculation": { + "stars": 0, + "last_update": "2023-12-27 17:50:16" + }, + "https://github.com/Limitex/ComfyUI-Diffusers": { + "stars": 86, + "last_update": "2024-03-08 11:07:01" + }, + "https://github.com/edenartlab/eden_comfy_pipelines": { + "stars": 22, + "last_update": "2024-03-18 05:40:42" + }, + "https://github.com/pkpkTech/ComfyUI-SaveAVIF": { + "stars": 1, + "last_update": "2023-12-27 01:33:08" + }, + "https://github.com/pkpkTech/ComfyUI-ngrok": { + "stars": 0, + "last_update": "2024-01-23 18:52:25" + }, + "https://github.com/pkpkTech/ComfyUI-TemporaryLoader": { + "stars": 1, + "last_update": "2024-02-10 20:52:21" + }, + "https://github.com/pkpkTech/ComfyUI-SaveQueues": { + "stars": 1, + "last_update": "2024-02-17 14:26:26" + }, + "https://github.com/crystian/ComfyUI-Crystools": { + "stars": 308, + "last_update": "2024-03-27 16:59:44" + }, + "https://github.com/crystian/ComfyUI-Crystools-save": { + "stars": 21, + "last_update": "2024-01-28 14:37:54" + }, + "https://github.com/Kangkang625/ComfyUI-paint-by-example": { + "stars": 11, + "last_update": "2024-01-29 02:37:38" + }, + "https://github.com/54rt1n/ComfyUI-DareMerge": { + "stars": 22, + "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": 88, + "last_update": "2023-12-29 09:41:48" + }, + "https://github.com/ai-liam/comfyui_liam_util": { + "stars": 1, + "last_update": "2023-12-29 04:44:00" + }, + "https://github.com/Ryuukeisyou/comfyui_face_parsing": { + "stars": 24, + "last_update": "2024-02-17 11:00:34" + }, + "https://github.com/tocubed/ComfyUI-AudioReactor": { + "stars": 5, + "last_update": "2024-01-02 07:51:03" + }, + "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": { + "stars": 16, + "last_update": "2024-01-05 03:38:18" + }, + "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio": { + "stars": 1, + "last_update": "2024-01-02 04:07:20" + }, + "https://github.com/ownimage/ComfyUI-ownimage": { + "stars": 0, + "last_update": "2024-01-01 16:36:42" + }, + "https://github.com/Millyarde/Pomfy": { + "stars": 7, + "last_update": "2024-01-13 08:01:42" + }, + "https://github.com/Ryuukeisyou/comfyui_io_helpers": { + "stars": 0, + "last_update": "2024-03-04 13:20:38" + }, + "https://github.com/flowtyone/ComfyUI-Flowty-LDSR": { + "stars": 133, + "last_update": "2024-03-24 19:03:45" + }, + "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": { + "stars": 275, + "last_update": "2024-03-19 10:49:59" + }, + "https://github.com/flowtyone/ComfyUI-Flowty-CRM": { + "stars": 90, + "last_update": "2024-03-18 11:59:57" + }, + "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": 7, + "last_update": "2024-01-04 11:33:08" + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": { + "stars": 179, + "last_update": "2024-02-12 01:56:02" + }, + "https://github.com/hinablue/ComfyUI_3dPoseEditor": { + "stars": 87, + "last_update": "2024-01-04 14:41:18" + }, + "https://github.com/chaojie/ComfyUI-AniPortrait": { + "stars": 148, + "last_update": "2024-04-02 03:06:43" + }, + "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": { + "stars": 30, + "last_update": "2024-03-27 01:10:14" + }, + "https://github.com/chaojie/ComfyUI-Champ": { + "stars": 13, + "last_update": "2024-04-02 02:46:02" + }, + "https://github.com/chaojie/ComfyUI-Open-Sora": { + "stars": 65, + "last_update": "2024-03-26 05:54:18" + }, + "https://github.com/chaojie/ComfyUI-Trajectory": { + "stars": 5, + "last_update": "2024-03-14 14:41:18" + }, + "https://github.com/chaojie/ComfyUI-dust3r": { + "stars": 9, + "last_update": "2024-03-31 00:30:51" + }, + "https://github.com/chaojie/ComfyUI-Gemma": { + "stars": 5, + "last_update": "2024-02-24 10:02:51" + }, + "https://github.com/chaojie/ComfyUI-DynamiCrafter": { + "stars": 69, + "last_update": "2024-03-16 19:08:28" + }, + "https://github.com/chaojie/ComfyUI-Panda3d": { + "stars": 9, + "last_update": "2024-03-05 06:37:32" + }, + "https://github.com/chaojie/ComfyUI-Pymunk": { + "stars": 15, + "last_update": "2024-01-31 15:36:36" + }, + "https://github.com/chaojie/ComfyUI-MotionCtrl": { + "stars": 114, + "last_update": "2024-01-08 14:18:40" + }, + "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor": { + "stars": 0, + "last_update": "2024-01-20 16:51:06" + }, + "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD": { + "stars": 69, + "last_update": "2024-01-16 09:41:07" + }, + "https://github.com/chaojie/ComfyUI-DragAnything": { + "stars": 53, + "last_update": "2024-03-19 03:37:48" + }, + "https://github.com/chaojie/ComfyUI-DragNUWA": { + "stars": 325, + "last_update": "2024-03-14 06:56:41" + }, + "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone": { + "stars": 191, + "last_update": "2024-02-24 13:48:57" + }, + "https://github.com/chaojie/ComfyUI-I2VGEN-XL": { + "stars": 22, + "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": 24, + "last_update": "2024-01-29 08:08:13" + }, + "https://github.com/alexopus/ComfyUI-Image-Saver": { + "stars": 13, + "last_update": "2024-04-01 20:42:20" + }, + "https://github.com/kft334/Knodes": { + "stars": 0, + "last_update": "2024-01-14 04:23:09" + }, + "https://github.com/MrForExample/ComfyUI-3D-Pack": { + "stars": 1257, + "last_update": "2024-04-01 13:51:02" + }, + "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": { + "stars": 371, + "last_update": "2024-02-02 14:19:37" + }, + "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": { + "stars": 19, + "last_update": "2024-03-31 17:06:25" + }, + "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": { + "stars": 19, + "last_update": "2024-03-31 17:08:35" + }, + "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": { + "stars": 3, + "last_update": "2024-03-31 17:56:08" + }, + "https://github.com/tzwm/comfyui-profiler": { + "stars": 27, + "last_update": "2024-01-12 07:38:40" + }, + "https://github.com/daniel-lewis-ab/ComfyUI-Llama": { + "stars": 19, + "last_update": "2024-03-19 22:59:53" + }, + "https://github.com/daniel-lewis-ab/ComfyUI-TTS": { + "stars": 3, + "last_update": "2024-01-28 00:07:17" + }, + "https://github.com/djbielejeski/a-person-mask-generator": { + "stars": 178, + "last_update": "2024-02-16 16:26:02" + }, + "https://github.com/smagnetize/kb-comfyui-nodes": { + "stars": 0, + "last_update": "2024-01-06 17:04:40" + }, + "https://github.com/ginlov/segment_to_mask_comfyui": { + "stars": 1, + "last_update": "2024-01-07 14:03:21" + }, + "https://github.com/glowcone/comfyui-base64-to-image": { + "stars": 5, + "last_update": "2024-01-09 08:33:02" + }, + "https://github.com/AInseven/ComfyUI-fastblend": { + "stars": 74, + "last_update": "2024-02-26 16:17:27" + }, + "https://github.com/HebelHuber/comfyui-enhanced-save-node": { + "stars": 0, + "last_update": "2024-01-12 14:34:55" + }, + "https://github.com/LarryJane491/Lora-Training-in-Comfy": { + "stars": 163, + "last_update": "2024-03-03 17:16:51" + }, + "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": { + "stars": 17, + "last_update": "2024-03-08 19:59:00" + }, + "https://github.com/Layer-norm/comfyui-lama-remover": { + "stars": 29, + "last_update": "2024-01-13 04:58:58" + }, + "https://github.com/Taremin/comfyui-prompt-extranetworks": { + "stars": 1, + "last_update": "2024-01-27 05:51:35" + }, + "https://github.com/Taremin/comfyui-string-tools": { + "stars": 1, + "last_update": "2024-02-16 16:28:32" + }, + "https://github.com/Taremin/webui-monaco-prompt": { + "stars": 23, + "last_update": "2024-01-21 06:45:42" + }, + "https://github.com/foxtrot-roger/comfyui-rf-nodes": { + "stars": 1, + "last_update": "2024-01-26 16:40:43" + }, + "https://github.com/abyz22/image_control": { + "stars": 2, + "last_update": "2024-02-18 23:17:53" + }, + "https://github.com/HAL41/ComfyUI-aichemy-nodes": { + "stars": 3, + "last_update": "2024-01-15 22:25:46" + }, + "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": { + "stars": 1, + "last_update": "2024-02-03 03:00:14" + }, + "https://github.com/nkchocoai/ComfyUI-PromptUtilities": { + "stars": 5, + "last_update": "2024-02-21 14:47:42" + }, + "https://github.com/nkchocoai/ComfyUI-TextOnSegs": { + "stars": 3, + "last_update": "2024-02-12 06:05:47" + }, + "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": { + "stars": 1, + "last_update": "2024-03-30 04:12:19" + }, + "https://github.com/nkchocoai/ComfyUI-Dart": { + "stars": 9, + "last_update": "2024-03-24 07:26:03" + }, + "https://github.com/JaredTherriault/ComfyUI-JNodes": { + "stars": 4, + "last_update": "2024-03-29 21:14:13" + }, + "https://github.com/prozacgod/comfyui-pzc-multiworkspace": { + "stars": 6, + "last_update": "2024-01-16 23:08:26" + }, + "https://github.com/Siberpone/lazy-pony-prompter": { + "stars": 14, + "last_update": "2024-03-30 05:31:25" + }, + "https://github.com/dave-palt/comfyui_DSP_imagehelpers": { + "stars": 0, + "last_update": "2024-01-18 04:59:26" + }, + "https://github.com/Inzaniak/comfyui-ranbooru": { + "stars": 4, + "last_update": "2024-02-25 10:30:59" + }, + "https://github.com/Miosp/ComfyUI-FBCNN": { + "stars": 3, + "last_update": "2024-01-19 21:30:27" + }, + "https://github.com/JcandZero/ComfyUI_GLM4Node": { + "stars": 21, + "last_update": "2024-02-21 01:48:08" + }, + "https://github.com/darkpixel/darkprompts": { + "stars": 3, + "last_update": "2024-03-25 15:42:28" + }, + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": { + "stars": 127, + "last_update": "2024-02-16 01:18:34" + }, + "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": { + "stars": 0, + "last_update": "2024-01-22 10:39:27" + }, + "https://github.com/longgui0318/comfyui-mask-util": { + "stars": 1, + "last_update": "2024-02-29 14:34:55" + }, + "https://github.com/longgui0318/comfyui-llm-assistant": { + "stars": 3, + "last_update": "2024-03-01 02:57:07" + }, + "https://github.com/longgui0318/comfyui-oms-diffusion": { + "stars": 3, + "last_update": "2024-04-01 08:57:33" + }, + "https://github.com/DimaChaichan/LAizypainter-Exporter-ComfyUI": { + "stars": 6, + "last_update": "2024-02-08 13:57:21" + }, + "https://github.com/adriflex/ComfyUI_Blender_Texdiff": { + "stars": 0, + "last_update": "2024-01-26 10:25:05" + }, + "https://github.com/Shraknard/ComfyUI-Remover": { + "stars": 4, + "last_update": "2024-01-23 23:14:23" + }, + "https://github.com/FlyingFireCo/tiled_ksampler": { + "stars": 52, + "last_update": "2023-08-13 23:05:26" + }, + "https://github.com/Nlar/ComfyUI_CartoonSegmentation": { + "stars": 6, + "last_update": "2024-01-25 23:17:51" + }, + "https://github.com/godspede/ComfyUI_Substring": { + "stars": 0, + "last_update": "2024-01-26 06:28:40" + }, + "https://github.com/gokayfem/ComfyUI_VLM_nodes": { + "stars": 151, + "last_update": "2024-03-26 11:46:29" + }, + "https://github.com/gokayfem/ComfyUI-Dream-Interpreter": { + "stars": 45, + "last_update": "2024-03-24 22:26:17" + }, + "https://github.com/gokayfem/ComfyUI-Depth-Visualization": { + "stars": 39, + "last_update": "2024-03-24 04:03:08" + }, + "https://github.com/gokayfem/ComfyUI-Texture-Simple": { + "stars": 25, + "last_update": "2024-03-24 22:20:21" + }, + "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": { + "stars": 1, + "last_update": "2024-02-11 17:17:06" + }, + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": { + "stars": 0, + "last_update": "2024-01-26 08:38:39" + }, + "https://github.com/yuvraj108c/ComfyUI-Whisper": { + "stars": 20, + "last_update": "2024-02-05 08:32:57" + }, + "https://github.com/blepping/ComfyUI-bleh": { + "stars": 13, + "last_update": "2024-03-18 23:50:09" + }, + "https://github.com/blepping/ComfyUI-sonar": { + "stars": 20, + "last_update": "2024-04-01 17:59:36" + }, + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": { + "stars": 2, + "last_update": "2024-02-14 20:36:01" + }, + "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": { + "stars": 0, + "last_update": "2024-01-27 15:25:00" + }, + "https://github.com/mape/ComfyUI-mape-Helpers": { + "stars": 63, + "last_update": "2024-02-07 16:58:47" + }, + "https://github.com/zhongpei/Comfyui_image2prompt": { + "stars": 149, + "last_update": "2024-03-27 03:29:23" + }, + "https://github.com/zhongpei/ComfyUI-InstructIR": { + "stars": 52, + "last_update": "2024-02-01 06:40:40" + }, + "https://github.com/Loewen-Hob/rembg-comfyui-node-better": { + "stars": 21, + "last_update": "2024-01-29 16:03:36" + }, + "https://github.com/HaydenReeve/ComfyUI-Better-Strings": { + "stars": 0, + "last_update": "2024-02-05 15:48:43" + }, + "https://github.com/StartHua/ComfyUI_Seg_VITON": { + "stars": 139, + "last_update": "2024-02-07 05:33:39" + }, + "https://github.com/StartHua/Comfyui_joytag": { + "stars": 9, + "last_update": "2024-02-12 04:13:41" + }, + "https://github.com/StartHua/Comfyui_segformer_b2_clothes": { + "stars": 17, + "last_update": "2024-02-19 16:02:10" + }, + "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": { + "stars": 70, + "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": 133, + "last_update": "2024-02-25 13:58:50" + }, + "https://github.com/LyazS/comfyui-anime-seg": { + "stars": 3, + "last_update": "2024-02-03 16:45:06" + }, + "https://github.com/Chan-0312/ComfyUI-IPAnimate": { + "stars": 48, + "last_update": "2024-02-01 09:17:58" + }, + "https://github.com/Chan-0312/ComfyUI-EasyDeforum": { + "stars": 5, + "last_update": "2024-03-14 02:14:56" + }, + "https://github.com/trumanwong/ComfyUI-NSFW-Detection": { + "stars": 7, + "last_update": "2024-02-04 08:49:11" + }, + "https://github.com/TemryL/ComfyS3": { + "stars": 8, + "last_update": "2024-02-08 16:59:15" + }, + "https://github.com/davask/ComfyUI-MarasIT-Nodes": { + "stars": 14, + "last_update": "2024-04-01 08:48:30" + }, + "https://github.com/yffyhk/comfyui_auto_danbooru": { + "stars": 0, + "last_update": "2024-02-04 08:09:57" + }, + "https://github.com/dfl/comfyui-clip-with-break": { + "stars": 5, + "last_update": "2024-02-05 17:48:33" + }, + "https://github.com/dfl/comfyui-tcd-scheduler": { + "stars": 50, + "last_update": "2024-03-24 18:29:56" + }, + "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": { + "stars": 6, + "last_update": "2024-03-16 06:37:47" + }, + "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": { + "stars": 8, + "last_update": "2024-03-06 22:34:12" + }, + "https://github.com/bilal-arikan/ComfyUI_TextAssets": { + "stars": 2, + "last_update": "2024-02-06 00:30:11" + }, + "https://github.com/kadirnar/ComfyUI-Transformers": { + "stars": 13, + "last_update": "2024-02-06 15:43:43" + }, + "https://github.com/digitaljohn/comfyui-propost": { + "stars": 83, + "last_update": "2024-02-11 10:08:19" + }, + "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes": { + "stars": 0, + "last_update": "2024-02-25 12:35:13" + }, + "https://github.com/XmYx/deforum-comfy-nodes": { + "stars": 53, + "last_update": "2024-03-21 11:08:54" + }, + "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": { + "stars": 4, + "last_update": "2024-02-08 21:25:17" + }, + "https://github.com/mbrostami/ComfyUI-HF": { + "stars": 7, + "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": 3, + "last_update": "2024-02-19 10:14:56" + }, + "https://github.com/xiaoxiaodesha/hd_node": { + "stars": 2, + "last_update": "2024-02-18 05:23:57" + }, + "https://github.com/ShmuelRonen/ComfyUI-SVDResizer": { + "stars": 1, + "last_update": "2024-03-08 15:16:10" + }, + "https://github.com/redhottensors/ComfyUI-Prediction": { + "stars": 7, + "last_update": "2024-03-30 23:21:59" + }, + "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": { + "stars": 8, + "last_update": "2024-02-15 09:03:57" + }, + "https://github.com/jordoh/ComfyUI-Deepface": { + "stars": 8, + "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/GavChap/ComfyUI-CascadeResolutions": { + "stars": 5, + "last_update": "2024-02-26 10:29:06" + }, + "https://github.com/yuvraj108c/ComfyUI-Vsgan": { + "stars": 1, + "last_update": "2024-03-08 10:11:28" + }, + "https://github.com/yytdfc/ComfyUI-Bedrock": { + "stars": 4, + "last_update": "2024-02-28 05:48:49" + }, + "https://github.com/mirabarukaso/ComfyUI_Mira": { + "stars": 5, + "last_update": "2024-03-31 15:42:50" + }, + "https://github.com/1038lab/ComfyUI-GPT2P": { + "stars": 3, + "last_update": "2024-02-21 04:45:27" + }, + "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": { + "stars": 4, + "last_update": "2024-03-25 00:54:00" + }, + "https://github.com/klinter007/klinter_nodes": { + "stars": 2, + "last_update": "2024-03-26 02:58:49" + }, + "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": { + "stars": 10, + "last_update": "2024-03-26 01:28:07" + }, + "https://github.com/logtd/ComfyUI-InstanceDiffusion": { + "stars": 19, + "last_update": "2024-03-31 19:06:57" + }, + "https://github.com/logtd/ComfyUI-TrackingNodes": { + "stars": 5, + "last_update": "2024-02-24 04:43:16" + }, + "https://github.com/logtd/ComfyUI-InversedNoise": { + "stars": 3, + "last_update": "2024-03-31 19:11:53" + }, + "https://github.com/logtd/ComfyUI-RefSampling": { + "stars": 2, + "last_update": "2024-03-31 02:11:14" + }, + "https://github.com/logtd/ComfyUI-FLATTEN": { + "stars": 47, + "last_update": "2024-04-01 01:14:36" + }, + "https://github.com/Big-Idea-Technology/ComfyUI_Image_Text_Overlay": { + "stars": 4, + "last_update": "2024-02-26 15:43:54" + }, + "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": { + "stars": 26, + "last_update": "2024-03-29 07:06:45" + }, + "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": { + "stars": 3, + "last_update": "2024-02-26 09:37:16" + }, + "https://github.com/AuroBit/ComfyUI-OOTDiffusion": { + "stars": 214, + "last_update": "2024-03-26 02:44:57" + }, + "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": { + "stars": 32, + "last_update": "2024-02-29 10:19:36" + }, + "https://github.com/czcz1024/Comfyui-FaceCompare": { + "stars": 0, + "last_update": "2024-02-23 09:08:32" + }, + "https://github.com/TheBill2001/comfyui-upscale-by-model": { + "stars": 0, + "last_update": "2024-02-24 00:49:19" + }, + "https://github.com/leoleelxh/ComfyUI-LLMs": { + "stars": 6, + "last_update": "2024-03-07 07:34:10" + }, + "https://github.com/hughescr/ComfyUI-OpenPose-Keypoint-Extractor": { + "stars": 1, + "last_update": "2024-02-24 21:41:24" + }, + "https://github.com/jkrauss82/ultools-comfyui": { + "stars": 1, + "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": 10, + "last_update": "2024-04-01 21:06:51" + }, + "https://github.com/guill/abracadabra-comfyui": { + "stars": 1, + "last_update": "2024-02-26 04:25:21" + }, + "https://github.com/cerspense/ComfyUI_cspnodes": { + "stars": 16, + "last_update": "2024-03-23 14:40:21" + }, + "https://github.com/qwixiwp/queuetools": { + "stars": 0, + "last_update": "2024-02-26 19:21:00" + }, + "https://github.com/Chan-0312/ComfyUI-Prompt-Preview": { + "stars": 6, + "last_update": "2024-02-27 11:30:38" + }, + "https://github.com/Munkyfoot/ComfyUI-TextOverlay": { + "stars": 0, + "last_update": "2024-02-27 22:56:42" + }, + "https://github.com/holchan/ComfyUI-ModelDownloader": { + "stars": 2, + "last_update": "2024-03-02 05:43:41" + }, + "https://github.com/Alysondao/Comfyui-Yolov8-JSON": { + "stars": 8, + "last_update": "2024-03-04 07:34:39" + }, + "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": { + "stars": 3, + "last_update": "2024-02-27 23:31:45" + }, + "https://github.com/maracman/ComfyUI-SubjectStyle-CSV": { + "stars": 2, + "last_update": "2024-02-29 19:40:01" + }, + "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": { + "stars": 7, + "last_update": "2024-03-29 10:30:27" + }, + "https://github.com/uetuluk/comfyui-webcam-node": { + "stars": 0, + "last_update": "2024-03-01 07:25:27" + }, + "https://github.com/huchenlei/ComfyUI-layerdiffuse": { + "stars": 944, + "last_update": "2024-03-09 21:16:31" + }, + "https://github.com/huchenlei/ComfyUI_DanTagGen": { + "stars": 29, + "last_update": "2024-03-23 19:40:34" + }, + "https://github.com/nathannlu/ComfyUI-Pets": { + "stars": 31, + "last_update": "2024-03-31 23:55:42" + }, + "https://github.com/nathannlu/ComfyUI-Cloud": { + "stars": 103, + "last_update": "2024-03-31 06:00:13" + }, + "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": { + "stars": 3, + "last_update": "2024-03-12 02:03:09" + }, + "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": { + "stars": 3, + "last_update": "2024-03-04 16:42:02" + }, + "https://github.com/cdb-boop/comfyui-image-round": { + "stars": 0, + "last_update": "2024-03-07 07:35:43" + }, + "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": { + "stars": 4, + "last_update": "2024-03-27 21:37:34" + }, + "https://github.com/atmaranto/ComfyUI-SaveAsScript": { + "stars": 5, + "last_update": "2024-03-20 08:47:51" + }, + "https://github.com/meshmesh-io/mm-comfyui-megamask": { + "stars": 0, + "last_update": "2024-03-07 23:59:12" + }, + "https://github.com/meshmesh-io/mm-comfyui-loopback": { + "stars": 0, + "last_update": "2024-03-07 19:46:37" + }, + "https://github.com/meshmesh-io/ComfyUI-MeshMesh": { + "stars": 0, + "last_update": "2024-03-12 17:19:32" + }, + "https://github.com/cozymantis/human-parser-comfyui-node": { + "stars": 18, + "last_update": "2024-03-08 22:47:18" + }, + "https://github.com/cozymantis/pose-generator-comfyui-node": { + "stars": 10, + "last_update": "2024-03-13 14:59:23" + }, + "https://github.com/cozymantis/cozy-utils-comfyui-nodes": { + "stars": 3, + "last_update": "2024-03-13 11:25:27" + }, + "https://github.com/vivax3794/ComfyUI-Vivax-Nodes": { + "stars": 3, + "last_update": "2024-03-17 22:02:48" + }, + "https://github.com/victorchall/comfyui_webcamcapture": { + "stars": 1, + "last_update": "2024-03-06 18:33:39" + }, + "https://github.com/ljleb/comfy-mecha": { + "stars": 4, + "last_update": "2024-03-24 21:52:17" + }, + "https://github.com/diStyApps/ComfyUI_FrameMaker": { + "stars": 6, + "last_update": "2024-03-08 09:19:43" + }, + "https://github.com/hackkhai/ComfyUI-Image-Matting": { + "stars": 8, + "last_update": "2024-03-09 06:30:39" + }, + "https://github.com/Pos13/comfyui-cyclist": { + "stars": 6, + "last_update": "2024-03-23 17:33:44" + }, + "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": { + "stars": 16, + "last_update": "2024-03-09 00:02:47" + }, + "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": { + "stars": 52, + "last_update": "2024-03-23 02:32:04" + }, + "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting": { + "stars": 191, + "last_update": "2024-03-31 23:38:23" + }, + "https://github.com/angeloshredder/StableCascadeResizer": { + "stars": 0, + "last_update": "2024-03-08 22:53:27" + }, + "https://github.com/stavsap/comfyui-ollama": { + "stars": 12, + "last_update": "2024-03-15 08:41:19" + }, + "https://github.com/dchatel/comfyui_facetools": { + "stars": 11, + "last_update": "2024-03-13 11:20:57" + }, + "https://github.com/ggpid/idpark_custom_node": { + "stars": 0, + "last_update": "2024-03-12 03:41:34" + }, + "https://github.com/prodogape/ComfyUI-Minio": { + "stars": 1, + "last_update": "2024-03-09 07:44:51" + }, + "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes": { + "stars": 1, + "last_update": "2024-02-22 08:30:33" + }, + "https://github.com/vsevolod-oparin/comfyui-kandinsky22": { + "stars": 5, + "last_update": "2024-03-17 00:05:27" + }, + "https://github.com/Xyem/Xycuno-Oobabooga": { + "stars": 1, + "last_update": "2024-03-12 19:50:18" + }, + "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": 85, + "last_update": "2024-03-30 02:20:02" + }, + "https://github.com/dmMaze/sketch2manga": { + "stars": 10, + "last_update": "2024-03-14 05:44:16" + }, + "https://github.com/olduvai-jp/ComfyUI-HfLoader": { + "stars": 1, + "last_update": "2024-03-18 04:57:05" + }, + "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes": { + "stars": 0, + "last_update": "2024-03-31 14:14:24" + }, + "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": { + "stars": 136, + "last_update": "2024-04-01 16:51:37" + }, + "https://github.com/madtunebk/ComfyUI-ControlnetAux": { + "stars": 5, + "last_update": "2024-03-16 13:52:32" + }, + "https://github.com/MarkoCa1/ComfyUI-Text": { + "stars": 2, + "last_update": "2024-03-16 06:25:38" + }, + "https://github.com/Shadetail/ComfyUI_Eagleshadow": { + "stars": 0, + "last_update": "2024-03-14 10:02:22" + }, + "https://github.com/ArdeniusAI/CPlus_Ardenius": { + "stars": 0, + "last_update": "2024-03-28 02:21:05" + }, + "https://github.com/Jannchie/ComfyUI-J": { + "stars": 46, + "last_update": "2024-03-24 06:35:19" + }, + "https://github.com/daxcay/ComfyUI-JDCN": { + "stars": 3, + "last_update": "2024-03-30 19:14:48" + }, + "https://github.com/Seedsa/Fooocus_Nodes": { + "stars": 14, + "last_update": "2024-03-28 07:37:38" + }, + "https://github.com/zhangp365/ComfyUI-utils-nodes": { + "stars": 0, + "last_update": "2024-03-28 08:13:46" + }, + "https://github.com/ratulrafsan/Comfyui-SAL-VTON": { + "stars": 13, + "last_update": "2024-03-22 04:31:59" + }, + "https://github.com/Nevysha/ComfyUI-nevysha-top-menu": { + "stars": 2, + "last_update": "2024-03-23 10:48:36" + }, + "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": { + "stars": 8, + "last_update": "2024-03-31 15:13:33" + }, + "https://github.com/chaosaiart/Chaosaiart-Nodes": { + "stars": 7, + "last_update": "2024-03-31 12:41:40" + }, + "https://github.com/viperyl/ComfyUI-BiRefNet": { + "stars": 107, + "last_update": "2024-03-25 11:02:49" + }, + "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": { + "stars": 54, + "last_update": "2024-04-02 00:18:19" + }, + "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": 23, + "last_update": "2024-03-30 11:08:23" + }, + "https://github.com/hay86/ComfyUI_Dreamtalk": { + "stars": 0, + "last_update": "2024-04-02 04:15:50" + }, + "https://github.com/shinich39/comfyui-load-image-39": { + "stars": 1, + "last_update": "2024-03-30 19:44:53" + }, + "https://github.com/shinich39/comfyui-ramdom-node-39": { + "stars": 1, + "last_update": "2024-03-31 19:53:05" + }, + "https://github.com/wei30172/comfygen": { + "stars": 1, + "last_update": "2024-03-28 14:03:32" + }, + "https://github.com/zombieyang/sd-ppp": { + "stars": 2, + "last_update": "2024-03-30 03:24:34" + }, + "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": { + "stars": 2, + "last_update": "2024-03-29 06:08:53" + }, + "https://github.com/1mckw/Comfyui-Gelbooru": { + "stars": 1, + "last_update": "2024-03-29 04:22:07" + }, + "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": { + "stars": 24, + "last_update": "2024-03-30 22:07:58" + }, + "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": { + "stars": 0, + "last_update": "2024-03-31 20:39:40" + }, + "https://github.com/jiaxiangc/ComfyUI-ResAdapter": { + "stars": 178, + "last_update": "2024-04-01 03:35:41" + }, + "https://github.com/ParisNeo/lollms_nodes_suite": { + "stars": 5, + "last_update": "2024-03-31 21:59:30" + }, + "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": { + "stars": 1, + "last_update": "2024-03-20 21:56:10" + }, + "https://github.com/nickve28/nich-comfy-utils": { + "stars": 1, + "last_update": "2024-04-01 19:53:42" + }, + "https://github.com/frankchieng/ComfyUI_Aniportrait": { + "stars": 8, + "last_update": "2024-04-02 05:12:34" + }, + "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": { + "stars": 3, + "last_update": "2024-04-01 06:13:32" + }, + "https://github.com/BlakeOne/ComfyUI-FastImageListToImageBatch": { + "stars": 0, + "last_update": "2024-04-01 01:09:41" + }, + "https://github.com/kale4eat/ComfyUI-path-util": { + "stars": 0, + "last_update": "2024-04-01 01:33:56" + }, + "https://github.com/kale4eat/ComfyUI-string-util": { + "stars": 0, + "last_update": "2024-04-01 01:33:13" + }, + "https://github.com/kale4eat/ComfyUI-text-file-util": { + "stars": 0, + "last_update": "2024-04-01 01:32:04" + }, + "https://github.com/comfyanonymous/ComfyUI": { + "stars": 30438, + "last_update": "2024-04-01 22:09:26" + } +} \ No newline at end of file diff --git a/js/custom-nodes-downloader.js b/js/custom-nodes-downloader.js index aa2b054b..333eb2ec 100644 --- a/js/custom-nodes-downloader.js +++ b/js/custom-nodes-downloader.js @@ -109,6 +109,9 @@ export class CustomNodesInstaller extends ComfyDialog { this.manager_dialog = manager_dialog; this.search_keyword = ''; this.element = $el("div.comfy-modal", { parent: document.body }, []); + + this.currentSortProperty = ''; // The property currently being sorted + this.currentSortAscending = true; // The direction of the current sort } startInstall(target) { @@ -367,76 +370,164 @@ export class CustomNodesInstaller extends ComfyDialog { } } + sortData(property, ascending = true) { + this.data.sort((a, b) => { + // Check if either value is -1 and handle accordingly + if (a[property] === -1) return 1; // Always put a at the end if its value is -1 + if (b[property] === -1) return -1; // Always put b at the end if its value is -1 + // And be careful here, (-1<'2024-01-01') and (-1>'2024-01-01') are both false! So I handle -1 seperately. + if (a[property] < b[property]) return ascending ? -1 : 1; + if (a[property] > b[property]) return ascending ? 1 : -1; + return 0; + }); + } + + resetHeaderStyles() { + const headers = ['th_stars', 'th_last_update']; // Add the IDs of all your sortable headers here + headers.forEach(headerId => { + const header = this.element.querySelector(`#${headerId}`); + if (header) { + header.style.backgroundColor = ''; // Reset to default background color + // Add other style resets if necessary + } + }); + } + + toggleSort(property) { + // If currently sorted by this property, toggle the direction; else, sort ascending + if (this.currentSortProperty === property) { + this.currentSortAscending = !this.currentSortAscending; + } else { + this.currentSortAscending = false; + } + this.currentSortProperty = property; + + this.resetHeaderStyles(); // Reset styles of all sortable headers + + // Determine the ID of the header based on the property + let headerId = ''; + if (property === 'stars') { + headerId = 'th_stars'; + } else if (property === 'last_update') { + headerId = 'th_last_update'; + } + + // If we have a valid headerId, change its style to indicate it's the active sort column + if (headerId) { + const activeHeader = this.element.querySelector(`#${headerId}`); + if (activeHeader) { + activeHeader.style.backgroundColor = '#222'; + // Slightly brighter. Add other style changes if necessary. + } + } + + // Call sortData with the current property and direction + this.sortData(property, this.currentSortAscending); + + // Refresh the grid to display sorted data + this.createGrid(); + } + async createGrid() { - var grid = document.createElement('table'); - grid.setAttribute('id', 'custom-nodes-grid'); - - this.grid_rows = {}; - + // Remove existing table if present + var grid = this.element.querySelector('#custom-nodes-grid'); + var panel; let self = this; + if (grid) { + grid.querySelector('tbody').remove(); + panel = grid.parentNode; + } else { + grid = document.createElement('table'); + grid.setAttribute('id', 'custom-nodes-grid'); - var thead = document.createElement('thead'); + this.grid_rows = {}; + + var thead = document.createElement('thead'); + + var headerRow = document.createElement('tr'); + thead.style.position = "sticky"; + thead.style.top = "0px"; + thead.style.borderCollapse = "collapse"; + thead.style.tableLayout = "fixed"; + + var header0 = document.createElement('th'); + header0.style.width = "20px"; + this.checkbox_all = $el("input",{type:'checkbox', id:'check_all'},[]); + header0.appendChild(this.checkbox_all); + this.checkbox_all.checked = false; + this.checkbox_all.disabled = true; + this.checkbox_all.addEventListener('change', function() { self.check_all.call(self, self.checkbox_all.checked); }); + + var header1 = document.createElement('th'); + header1.innerHTML = '  ID  '; + header1.style.width = "20px"; + var header2 = document.createElement('th'); + header2.innerHTML = 'Author'; + header2.style.width = "150px"; + var header3 = document.createElement('th'); + header3.innerHTML = 'Name'; + header3.style.width = "20%"; + var header4 = document.createElement('th'); + header4.innerHTML = 'Description'; + header4.style.width = "60%"; + // header4.classList.add('expandable-column'); + var header5 = document.createElement('th'); + header5.innerHTML = 'GitHub Stars'; + header5.style.width = "130px"; + header5.setAttribute('id', 'th_stars'); + header5.style.cursor = 'pointer'; + header5.onclick = () => this.toggleSort('stars'); + var header6 = document.createElement('th'); + header6.innerHTML = 'Last Update'; + header6.style.width = "130px"; + header6.setAttribute('id', 'th_last_update'); + header6.style.cursor = 'pointer'; + header6.onclick = () => this.toggleSort('last_update'); + var header7 = document.createElement('th'); + header7.innerHTML = 'Install'; + header7.style.width = "130px"; + + header0.style.position = "sticky"; + header0.style.top = "0px"; + header1.style.position = "sticky"; + header1.style.top = "0px"; + header2.style.position = "sticky"; + header2.style.top = "0px"; + header3.style.position = "sticky"; + header3.style.top = "0px"; + header4.style.position = "sticky"; + header4.style.top = "0px"; + header5.style.position = "sticky"; + header5.style.top = "0px"; + header6.style.position = "sticky"; + header6.style.top = "0px"; + header7.style.position = "sticky"; + header7.style.top = "0px"; + + thead.appendChild(headerRow); + headerRow.appendChild(header0); + headerRow.appendChild(header1); + headerRow.appendChild(header2); + headerRow.appendChild(header3); + headerRow.appendChild(header4); + headerRow.appendChild(header5); + headerRow.appendChild(header6); + headerRow.appendChild(header7); + + headerRow.style.backgroundColor = "Black"; + headerRow.style.color = "White"; + headerRow.style.textAlign = "center"; + headerRow.style.width = "100%"; + headerRow.style.padding = "0"; + + grid.appendChild(thead); + + panel = document.createElement('div'); + panel.style.width = "100%"; + panel.appendChild(grid); + this.element.appendChild(panel); + } var tbody = document.createElement('tbody'); - - var headerRow = document.createElement('tr'); - thead.style.position = "sticky"; - thead.style.top = "0px"; - thead.style.borderCollapse = "collapse"; - thead.style.tableLayout = "fixed"; - - var header0 = document.createElement('th'); - header0.style.width = "20px"; - this.checkbox_all = $el("input",{type:'checkbox', id:'check_all'},[]); - header0.appendChild(this.checkbox_all); - this.checkbox_all.checked = false; - this.checkbox_all.disabled = true; - this.checkbox_all.addEventListener('change', function() { self.check_all.call(self, self.checkbox_all.checked); }); - - var header1 = document.createElement('th'); - header1.innerHTML = '  ID  '; - header1.style.width = "20px"; - var header2 = document.createElement('th'); - header2.innerHTML = 'Author'; - header2.style.width = "150px"; - var header3 = document.createElement('th'); - header3.innerHTML = 'Name'; - header3.style.width = "20%"; - var header4 = document.createElement('th'); - header4.innerHTML = 'Description'; - header4.style.width = "60%"; -// header4.classList.add('expandable-column'); - var header5 = document.createElement('th'); - header5.innerHTML = 'Install'; - header5.style.width = "130px"; - - header0.style.position = "sticky"; - header0.style.top = "0px"; - header1.style.position = "sticky"; - header1.style.top = "0px"; - header2.style.position = "sticky"; - header2.style.top = "0px"; - header3.style.position = "sticky"; - header3.style.top = "0px"; - header4.style.position = "sticky"; - header4.style.top = "0px"; - header5.style.position = "sticky"; - header5.style.top = "0px"; - - thead.appendChild(headerRow); - headerRow.appendChild(header0); - headerRow.appendChild(header1); - headerRow.appendChild(header2); - headerRow.appendChild(header3); - headerRow.appendChild(header4); - headerRow.appendChild(header5); - - headerRow.style.backgroundColor = "Black"; - headerRow.style.color = "White"; - headerRow.style.textAlign = "center"; - headerRow.style.width = "100%"; - headerRow.style.padding = "0"; - - grid.appendChild(thead); grid.appendChild(tbody); if(this.data) @@ -499,8 +590,27 @@ export class CustomNodesInstaller extends ComfyDialog { } var data5 = document.createElement('td'); + data5.style.maxWidth = "100px"; + data5.className = "cm-node-stars" + data5.textContent = `${data.stars}`; + data5.style.whiteSpace = "nowrap"; + data5.style.overflow = "hidden"; + data5.style.textOverflow = "ellipsis"; data5.style.textAlign = "center"; + var lastUpdateDate = new Date(); + var data6 = document.createElement('td'); + data6.style.maxWidth = "100px"; + data6.className = "cm-node-last-update" + data6.textContent = `${data.last_update}`.split(' ')[0]; + data6.style.whiteSpace = "nowrap"; + data6.style.overflow = "hidden"; + data6.style.textOverflow = "ellipsis"; + data6.style.textAlign = "center"; + + var data7 = document.createElement('td'); + data7.style.textAlign = "center"; + var installBtn = document.createElement('button'); installBtn.className = "cm-btn-install"; var installBtn2 = null; @@ -587,7 +697,7 @@ export class CustomNodesInstaller extends ComfyDialog { install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'update'); }); - data5.appendChild(installBtn2); + data7.appendChild(installBtn2); } if(installBtn3 != null) { @@ -596,7 +706,7 @@ export class CustomNodesInstaller extends ComfyDialog { install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'toggle_active'); }); - data5.appendChild(installBtn3); + data7.appendChild(installBtn3); } if(installBtn4 != null) { @@ -605,7 +715,7 @@ export class CustomNodesInstaller extends ComfyDialog { install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'fix'); }); - data5.appendChild(installBtn4); + data7.appendChild(installBtn4); } installBtn.style.width = "120px"; @@ -621,7 +731,7 @@ export class CustomNodesInstaller extends ComfyDialog { }); if(!data.author.startsWith('#NOTICE')){ - data5.appendChild(installBtn); + data7.appendChild(installBtn); } if(data.installed == 'Fail' || data.author.startsWith('#NOTICE')) @@ -637,6 +747,8 @@ export class CustomNodesInstaller extends ComfyDialog { dataRow.appendChild(data3); dataRow.appendChild(data4); dataRow.appendChild(data5); + dataRow.appendChild(data6); + dataRow.appendChild(data7); tbody.appendChild(dataRow); let buttons = []; @@ -653,10 +765,6 @@ export class CustomNodesInstaller extends ComfyDialog { this.grid_rows[i] = {data:data, buttons:buttons, checkbox:checkbox, control:dataRow}; } - const panel = document.createElement('div'); - panel.style.width = "100%"; - panel.appendChild(grid); - function handleResize() { const parentHeight = self.element.clientHeight; const gridHeight = parentHeight - 200; @@ -672,7 +780,6 @@ export class CustomNodesInstaller extends ComfyDialog { grid.style.overflowY = "scroll"; this.element.style.height = "85%"; this.element.style.width = "80%"; - this.element.appendChild(panel); handleResize(); } diff --git a/requirements.txt b/requirements.txt index 2435feff..70a430f7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ GitPython +PyGithub matrix-client==0.4.0 transformers huggingface-hub>0.20 \ No newline at end of file diff --git a/scanner.py b/scanner.py index 7e81aa9c..d06ad71f 100644 --- a/scanner.py +++ b/scanner.py @@ -5,11 +5,16 @@ import json from git import Repo from torchvision.datasets.utils import download_url import concurrent +import datetime builtin_nodes = set() import sys +from urllib.parse import urlparse +from github import Github + +g = Github(os.environ.get('GITHUB_TOKEN')) # prepare temp dir if len(sys.argv) > 1: @@ -213,9 +218,6 @@ def update_custom_nodes(): git_url_titles_preemptions = get_git_urls_from_json('custom-node-list.json') def process_git_url_title(url, title, preemptions, node_pattern): - if 'Jovimetrix' in title: - pass - name = os.path.basename(url) if name.endswith(".git"): name = name[:-4] @@ -224,7 +226,51 @@ def update_custom_nodes(): if not skip_update: clone_or_pull_git_repository(url) - with concurrent.futures.ThreadPoolExecutor(10) as executor: + def process_git_stats(git_url_titles_preemptions): + GITHUB_STATS_CACHE_FILENAME = 'github-stats-cache.json' + GITHUB_STATS_FILENAME = 'github-stats.json' + + github_stats = {} + try: + with open(GITHUB_STATS_CACHE_FILENAME, 'r', encoding='utf-8') as file: + github_stats = json.load(file) + except FileNotFoundError: + pass + + if g.rate_limiting_resettime-datetime.datetime.now().timestamp() <= 0: + for url, title, preemptions, node_pattern in git_url_titles_preemptions: + if url not in github_stats: + # Parsing the URL + parsed_url = urlparse(url) + domain = parsed_url.netloc + path = parsed_url.path + path_parts = path.strip("/").split("/") + if len(path_parts) >= 2 and domain == "github.com": + owner_repo = "/".join(path_parts[-2:]) + 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] = { + "stars": repo.stargazers_count, + "last_update": last_update, + } + with open(GITHUB_STATS_CACHE_FILENAME, 'w', encoding='utf-8') as file: + json.dump(github_stats, file, ensure_ascii=False, indent=4) + # print(f"Title: {title}, Stars: {repo.stargazers_count}, Last Update: {last_update}") + else: + print(f"Invalid URL format for GitHub repository: {url}") + + with open(GITHUB_STATS_FILENAME, 'w', encoding='utf-8') as file: + json.dump(github_stats, file, ensure_ascii=False, indent=4) + + print(f"Successfully written to {GITHUB_STATS_FILENAME}, removing {GITHUB_STATS_CACHE_FILENAME}.") + try: + os.remove(GITHUB_STATS_CACHE_FILENAME) # This cache file is just for avoiding failure of GitHub API fetch, so it is safe to remove. + except: + pass + + with concurrent.futures.ThreadPoolExecutor(11) as executor: + executor.submit(process_git_stats, git_url_titles_preemptions) # One single thread for `process_git_stats()`. Runs concurrently with `process_git_url_title()`. for url, title, preemptions, node_pattern in git_url_titles_preemptions: executor.submit(process_git_url_title, url, title, preemptions, node_pattern) From 04eff189d0d58088bd7f815374890cbe1bbdc3f2 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 2 Apr 2024 21:19:11 +0900 Subject: [PATCH 05/13] version marker update DB --- __init__.py | 2 +- custom-node-list.json | 30 ++++++++++++------ extension-node-map.json | 46 ++++++++++++++-------------- node_db/dev/custom-node-list.json | 20 ++++++++++++ node_db/legacy/custom-node-list.json | 10 ++++++ node_db/new/custom-node-list.json | 40 ++++++++++++------------ node_db/new/extension-node-map.json | 46 ++++++++++++++-------------- 7 files changed, 117 insertions(+), 77 deletions(-) diff --git a/__init__.py b/__init__.py index 55fa79d4..1467ba49 100644 --- a/__init__.py +++ b/__init__.py @@ -30,7 +30,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 12] +version = [2, 13] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") diff --git a/custom-node-list.json b/custom-node-list.json index 98bb6ecf..9d5a09fe 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -266,16 +266,6 @@ ], "description": "CLIPTextEncodeBLIP: This custom node provides a CLIP Encoder that is capable of receiving images as input." }, - { - "author": "Davemane42", - "title": "Visual Area Conditioning / Latent composition", - "reference": "https://github.com/Davemane42/ComfyUI_Dave_CustomNode", - "files": [ - "https://github.com/Davemane42/ComfyUI_Dave_CustomNode" - ], - "install_type": "git-clone", - "description": "This tool provides custom nodes that allow visualization and configuration of area conditioning and latent composite." - }, { "author": "WASasquatch", "title": "WAS Node Suite", @@ -6788,6 +6778,26 @@ "install_type": "git-clone", "description": "Text file utility for ComfyUI" }, + { + "author": "kijai", + "title": "ComfyUI-APISR", + "reference": "https://github.com/kijai/ComfyUI-APISR", + "files": [ + "https://github.com/kijai/ComfyUI-APISR" + ], + "install_type": "git-clone", + "description": "Node to use [a/APISR](https://github.com/Kiteretsu77/APISR) upscale models in ComfyUI" + }, + { + "author": "DrMWeigand", + "title": "ComfyUI Color Detection Nodes", + "reference": "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection", + "files": [ + "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection" + ], + "install_type": "git-clone", + "description": "A collection of nodes for detecting color in images, leveraging RGB and LAB color spaces. These nodes aim to distinguish colored images from black and white, including those with color tints." + }, diff --git a/extension-node-map.json b/extension-node-map.json index fb5dcc7d..0a49c538 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -811,18 +811,6 @@ "title_aux": "ComfyUI-ComfyCouple" } ], - "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": [ - [ - "ABGRemover", - "ConditioningStretch", - "ConditioningUpscale", - "MultiAreaConditioning", - "MultiLatentComposite" - ], - { - "title_aux": "Visual Area Conditioning / Latent composition" - } - ], "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": [ [ "Absolute value", @@ -882,6 +870,15 @@ "title_aux": "ComfyUI-Cre8it-Nodes" } ], + "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": [ + [ + "LABColorDetection", + "RGBColorDetection" + ], + { + "title_aux": "ComfyUI Color Detection Nodes" + } + ], "https://github.com/Electrofried/ComfyUI-OpenAINode": [ [ "OpenAINode" @@ -1048,6 +1045,7 @@ "MotionDiffSimpleSampler", "RenderMultipleSubjectsSMPLMesh", "RenderSMPLMesh", + "Render_OpenPose_From_SMPL_Mesh_Multiple_Subjects", "SMPLLoader", "SMPLShapeParameters", "SaveSMPL", @@ -1695,6 +1693,7 @@ "ACN_ControlNetLoaderWithLoraAdvanced", "ACN_DefaultUniversalWeights", "ACN_ReferenceControlNet", + "ACN_ReferenceControlNetFinetune", "ACN_ReferencePreprocessor", "ACN_SparseCtrlIndexMethodNode", "ACN_SparseCtrlLoaderAdvanced", @@ -2578,9 +2577,10 @@ "OneTimeMultiplyTransform", "OneTimeShiftTransform", "ShiftTransform", - "TSamplerWithTransform", + "TransformHijack", "TransformOffset", "TransformSampler", + "TransformSamplerAdvanced", "TransformsCombine" ], { @@ -4012,16 +4012,6 @@ "title_aux": "MergeBlockWeighted_fo_ComfyUI" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [ - [ - "APISR_Lterative_Zho", - "APISR_ModelLoader_Zho", - "APISR_Zho" - ], - { - "title_aux": "APISR IN COMFYUI" - } - ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": [ [ "ArtGallery_Zho", @@ -7479,6 +7469,16 @@ "title_aux": "Animatediff MotionLoRA Trainer" } ], + "https://github.com/kijai/ComfyUI-APISR": [ + [ + "APISR_Lterative_Zho", + "APISR_ModelLoader_Zho", + "APISR_Zho" + ], + { + "title_aux": "ComfyUI-APISR" + } + ], "https://github.com/kijai/ComfyUI-CCSR": [ [ "CCSR_Model_Select", diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index e449c205..ceb1eaaf 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -9,6 +9,26 @@ "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": "Jiffies-64", + "title": "ComfyUI-SaveImagePlus", + "reference": "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus", + "files": [ + "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus" + ], + "install_type": "git-clone", + "description": "Nodes:SaveImagePlus" + }, + { + "author": "kadirnar", + "title": "ComfyUI-Adapter [WIP]", + "reference": "https://github.com/kadirnar/ComfyUI-Adapter", + "files": [ + "https://github.com/kadirnar/ComfyUI-Adapter" + ], + "install_type": "git-clone", + "description": "WIP" + }, { "author": "Beinsezii", "title": "comfyui-amd-go-fast", diff --git a/node_db/legacy/custom-node-list.json b/node_db/legacy/custom-node-list.json index 28fff976..f008d4c0 100644 --- a/node_db/legacy/custom-node-list.json +++ b/node_db/legacy/custom-node-list.json @@ -9,6 +9,16 @@ "description": "If you see this message, your ComfyUI-Manager is outdated.\nLegacy channel provides only the list of the deprecated nodes. If you want to find the complete node list, please go to the Default channel." }, + { + "author": "Davemane42", + "title": "Visual Area Conditioning / Latent composition [DEPRECATED]", + "reference": "https://github.com/Davemane42/ComfyUI_Dave_CustomNode", + "files": [ + "https://github.com/Davemane42/ComfyUI_Dave_CustomNode" + ], + "install_type": "git-clone", + "description": "This tool provides custom nodes that allow visualization and configuration of area conditioning and latent composite." + }, { "author": "laksjdjf", "title": "LoRA-Merger-ComfyUI [DEPRECATED]", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 96703e9a..68409745 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,26 @@ }, + { + "author": "DrMWeigand", + "title": "ComfyUI Color Detection Nodes", + "reference": "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection", + "files": [ + "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection" + ], + "install_type": "git-clone", + "description": "A collection of nodes for detecting color in images, leveraging RGB and LAB color spaces. These nodes aim to distinguish colored images from black and white, including those with color tints." + }, + { + "author": "kijai", + "title": "ComfyUI-APISR", + "reference": "https://github.com/kijai/ComfyUI-APISR", + "files": [ + "https://github.com/kijai/ComfyUI-APISR" + ], + "install_type": "git-clone", + "description": "Node to use [a/APISR](https://github.com/Kiteretsu77/APISR) upscale models in ComfyUI" + }, { "author": "logtd", "title": "ComfyUI-FLATTEN", @@ -671,26 +691,6 @@ ], "install_type": "git-clone", "description": "ComfyUI Trajectory" - }, - { - "author": "olduvai-jp", - "title": "ComfyUI-HfLoader", - "reference": "https://github.com/olduvai-jp/ComfyUI-HfLoader", - "files": [ - "https://github.com/olduvai-jp/ComfyUI-HfLoader" - ], - "install_type": "git-clone", - "description": "Nodes:Lora Loader From HF" - }, - { - "author": "AiMiDi", - "title": "ComfyUI-Aimidi-nodes", - "reference": "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes", - "files": [ - "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes" - ], - "install_type": "git-clone", - "description": "Nodes:Merge Tag, Clear Tag, Add Tag, Load Images Pair Batch, Save Images Pair" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index fb5dcc7d..0a49c538 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -811,18 +811,6 @@ "title_aux": "ComfyUI-ComfyCouple" } ], - "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": [ - [ - "ABGRemover", - "ConditioningStretch", - "ConditioningUpscale", - "MultiAreaConditioning", - "MultiLatentComposite" - ], - { - "title_aux": "Visual Area Conditioning / Latent composition" - } - ], "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": [ [ "Absolute value", @@ -882,6 +870,15 @@ "title_aux": "ComfyUI-Cre8it-Nodes" } ], + "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": [ + [ + "LABColorDetection", + "RGBColorDetection" + ], + { + "title_aux": "ComfyUI Color Detection Nodes" + } + ], "https://github.com/Electrofried/ComfyUI-OpenAINode": [ [ "OpenAINode" @@ -1048,6 +1045,7 @@ "MotionDiffSimpleSampler", "RenderMultipleSubjectsSMPLMesh", "RenderSMPLMesh", + "Render_OpenPose_From_SMPL_Mesh_Multiple_Subjects", "SMPLLoader", "SMPLShapeParameters", "SaveSMPL", @@ -1695,6 +1693,7 @@ "ACN_ControlNetLoaderWithLoraAdvanced", "ACN_DefaultUniversalWeights", "ACN_ReferenceControlNet", + "ACN_ReferenceControlNetFinetune", "ACN_ReferencePreprocessor", "ACN_SparseCtrlIndexMethodNode", "ACN_SparseCtrlLoaderAdvanced", @@ -2578,9 +2577,10 @@ "OneTimeMultiplyTransform", "OneTimeShiftTransform", "ShiftTransform", - "TSamplerWithTransform", + "TransformHijack", "TransformOffset", "TransformSampler", + "TransformSamplerAdvanced", "TransformsCombine" ], { @@ -4012,16 +4012,6 @@ "title_aux": "MergeBlockWeighted_fo_ComfyUI" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [ - [ - "APISR_Lterative_Zho", - "APISR_ModelLoader_Zho", - "APISR_Zho" - ], - { - "title_aux": "APISR IN COMFYUI" - } - ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": [ [ "ArtGallery_Zho", @@ -7479,6 +7469,16 @@ "title_aux": "Animatediff MotionLoRA Trainer" } ], + "https://github.com/kijai/ComfyUI-APISR": [ + [ + "APISR_Lterative_Zho", + "APISR_ModelLoader_Zho", + "APISR_Zho" + ], + { + "title_aux": "ComfyUI-APISR" + } + ], "https://github.com/kijai/ComfyUI-CCSR": [ [ "CCSR_Model_Select", From 98b942b7f0dc97b472cd417b6cb8ce8a503ae3d1 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 2 Apr 2024 23:51:58 +0900 Subject: [PATCH 06/13] scanner patch fix: invalid check logic of rate limit improve: cache expiration time --- extension-node-map.json | 1 + github-stats.json | 172 ++++++++++++++-------------- node_db/new/extension-node-map.json | 1 + scanner.py | 71 ++++++++---- 4 files changed, 138 insertions(+), 107 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index 0a49c538..075b4ce7 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1037,6 +1037,7 @@ [ "EmptyMotionData", "ExportSMPLTo3DSoftware", + "Export_SMPLMultipleSubjects_To_3DSoftware", "Human4D_Img2SMPL", "Humans4DLoader", "MotionCLIPTextEncode", diff --git a/github-stats.json b/github-stats.json index ef9290ab..9d75d61d 100644 --- a/github-stats.json +++ b/github-stats.json @@ -1,10 +1,10 @@ { "https://github.com/ltdrdata/ComfyUI-Manager": { - "stars": 3189, - "last_update": "2024-04-01 15:43:47" + "stars": 3197, + "last_update": "2024-04-02 12:19:19" }, "https://github.com/ltdrdata/ComfyUI-Impact-Pack": { - "stars": 1065, + "stars": 1066, "last_update": "2024-04-02 05:15:17" }, "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": { @@ -20,7 +20,7 @@ "last_update": "2023-08-18 19:03:06" }, "https://github.com/Fannovel16/comfyui_controlnet_aux": { - "stars": 1117, + "stars": 1118, "last_update": "2024-04-01 18:25:56" }, "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": { @@ -36,7 +36,7 @@ "last_update": "2024-04-01 16:39:58" }, "https://github.com/Fannovel16/ComfyUI-Video-Matting": { - "stars": 107, + "stars": 108, "last_update": "2024-02-12 13:57:45" }, "https://github.com/BlenderNeko/ComfyUI_Cutoff": { @@ -60,7 +60,7 @@ "last_update": "2023-09-11 10:09:22" }, "https://github.com/jags111/efficiency-nodes-comfyui": { - "stars": 471, + "stars": 472, "last_update": "2024-03-25 13:41:14" }, "https://github.com/jags111/ComfyUI_Jags_VectorMagic": { @@ -72,17 +72,13 @@ "last_update": "2023-12-27 16:47:20" }, "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": { - "stars": 230, + "stars": 231, "last_update": "2024-03-30 03:58:20" }, "https://github.com/paulo-coronado/comfy_clip_blip_node": { "stars": 25, "last_update": "2023-09-27 00:33:21" }, - "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": { - "stars": 246, - "last_update": "2024-04-02 00:59:02" - }, "https://github.com/WASasquatch/was-node-suite-comfyui": { "stars": 755, "last_update": "2024-03-20 00:46:04" @@ -224,11 +220,11 @@ "last_update": "2024-02-29 09:53:46" }, "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": { - "stars": 267, + "stars": 268, "last_update": "2024-03-15 14:36:17" }, "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": { - "stars": 999, + "stars": 1000, "last_update": "2024-04-02 04:42:43" }, "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": { @@ -236,7 +232,7 @@ "last_update": "2024-03-01 23:00:05" }, "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": { - "stars": 231, + "stars": 234, "last_update": "2024-03-10 07:42:00" }, "https://github.com/Jordach/comfy-plasma": { @@ -256,7 +252,7 @@ "last_update": "2024-03-25 07:05:23" }, "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": { - "stars": 485, + "stars": 487, "last_update": "2024-03-30 17:18:43" }, "https://github.com/ssitu/ComfyUI_restart_sampling": { @@ -340,7 +336,7 @@ "last_update": "2024-03-20 06:12:08" }, "https://github.com/shiimizu/ComfyUI-TiledDiffusion": { - "stars": 120, + "stars": 121, "last_update": "2024-02-19 10:44:28" }, "https://github.com/ZaneA/ComfyUI-ImageReward": { @@ -356,11 +352,11 @@ "last_update": "2023-09-26 06:31:44" }, "https://github.com/cubiq/ComfyUI_IPAdapter_plus": { - "stars": 1896, - "last_update": "2024-04-01 15:38:36" + "stars": 1907, + "last_update": "2024-04-02 11:32:17" }, "https://github.com/cubiq/ComfyUI_InstantID": { - "stars": 596, + "stars": 600, "last_update": "2024-03-29 19:27:42" }, "https://github.com/cubiq/ComfyUI_FaceAnalysis": { @@ -440,7 +436,7 @@ "last_update": "2023-10-22 22:12:55" }, "https://github.com/daxthin/DZ-FaceDetailer": { - "stars": 83, + "stars": 84, "last_update": "2023-12-16 17:31:44" }, "https://github.com/asagi4/comfyui-prompt-control": { @@ -448,7 +444,7 @@ "last_update": "2024-03-19 22:22:37" }, "https://github.com/asagi4/ComfyUI-CADS": { - "stars": 23, + "stars": 24, "last_update": "2024-03-25 00:35:48" }, "https://github.com/asagi4/comfyui-utility-nodes": { @@ -476,7 +472,7 @@ "last_update": "2023-08-03 08:57:52" }, "https://github.com/bash-j/mikey_nodes": { - "stars": 58, + "stars": 59, "last_update": "2024-03-10 09:09:50" }, "https://github.com/failfa-st/failfast-comfyui-extensions": { @@ -492,20 +488,20 @@ "last_update": "2024-03-28 23:02:54" }, "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": { - "stars": 298, - "last_update": "2024-04-01 23:20:36" + "stars": 300, + "last_update": "2024-04-02 07:07:31" }, "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": { - "stars": 1868, + "stars": 1874, "last_update": "2024-03-29 11:22:34" }, "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": { - "stars": 271, + "stars": 273, "last_update": "2024-03-31 00:31:24" }, "https://github.com/Gourieff/comfyui-reactor-node": { - "stars": 792, - "last_update": "2024-03-28 06:06:36" + "stars": 794, + "last_update": "2024-04-02 10:10:43" }, "https://github.com/imb101/ComfyUI-FaceSwap": { "stars": 28, @@ -528,7 +524,7 @@ "last_update": "2023-10-15 03:19:16" }, "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": { - "stars": 135, + "stars": 137, "last_update": "2024-01-07 03:29:57" }, "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": { @@ -628,15 +624,15 @@ "last_update": "2024-02-12 07:46:02" }, "https://github.com/rgthree/rgthree-comfy": { - "stars": 434, + "stars": 435, "last_update": "2024-04-02 00:45:15" }, "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION": { - "stars": 634, - "last_update": "2024-04-01 09:07:08" + "stars": 636, + "last_update": "2024-04-02 10:03:49" }, "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio": { - "stars": 166, + "stars": 167, "last_update": "2024-03-24 04:37:53" }, "https://github.com/AIGODLIKE/ComfyUI-CUP": { @@ -712,7 +708,7 @@ "last_update": "2023-08-19 06:52:19" }, "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": { - "stars": 117, + "stars": 118, "last_update": "2024-03-15 19:05:53" }, "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes": { @@ -756,7 +752,7 @@ "last_update": "2024-02-23 18:59:41" }, "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": { - "stars": 12, + "stars": 13, "last_update": "2023-08-30 16:06:45" }, "https://github.com/Lerc/canvas_tab": { @@ -780,7 +776,7 @@ "last_update": "2024-03-04 08:52:39" }, "https://github.com/Acly/comfyui-inpaint-nodes": { - "stars": 234, + "stars": 237, "last_update": "2024-03-24 16:00:17" }, "https://github.com/picturesonpictures/comfy_PoP": { @@ -792,7 +788,7 @@ "last_update": "2023-12-21 19:36:51" }, "https://github.com/alt-key-project/comfyui-dream-video-batches": { - "stars": 37, + "stars": 38, "last_update": "2023-12-03 10:31:55" }, "https://github.com/seanlynch/comfyui-optical-flow": { @@ -804,7 +800,7 @@ "last_update": "2023-09-26 14:56:04" }, "https://github.com/ArtBot2023/CharacterFaceSwap": { - "stars": 46, + "stars": 47, "last_update": "2023-10-25 04:29:40" }, "https://github.com/mav-rik/facerestore_cf": { @@ -872,7 +868,7 @@ "last_update": "2024-01-23 17:12:45" }, "https://github.com/cubiq/ComfyUI_essentials": { - "stars": 154, + "stars": 156, "last_update": "2024-03-30 19:23:33" }, "https://github.com/Clybius/ComfyUI-Latent-Modifiers": { @@ -936,7 +932,7 @@ "last_update": "2023-11-25 10:16:57" }, "https://github.com/kijai/ComfyUI-Marigold": { - "stars": 293, + "stars": 294, "last_update": "2024-04-01 22:48:01" }, "https://github.com/kijai/ComfyUI-Geowizard": { @@ -960,7 +956,7 @@ "last_update": "2024-03-11 00:50:24" }, "https://github.com/kijai/ComfyUI-SUPIR": { - "stars": 777, + "stars": 779, "last_update": "2024-03-29 22:29:23" }, "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": { @@ -1056,7 +1052,7 @@ "last_update": "2023-10-20 16:33:23" }, "https://github.com/shadowcz007/comfyui-mixlab-nodes": { - "stars": 609, + "stars": 613, "last_update": "2024-03-30 15:46:38" }, "https://github.com/shadowcz007/comfyui-ultralytics-yolo": { @@ -1140,7 +1136,7 @@ "last_update": "2023-11-06 06:34:25" }, "https://github.com/Trung0246/ComfyUI-0246": { - "stars": 82, + "stars": 83, "last_update": "2024-03-10 08:42:04" }, "https://github.com/fexli/fexli-util-node-comfyui": { @@ -1172,7 +1168,7 @@ "last_update": "2024-02-15 05:52:28" }, "https://github.com/banodoco/steerable-motion": { - "stars": 400, + "stars": 401, "last_update": "2024-03-30 12:10:00" }, "https://github.com/gemell1/ComfyUI_GMIC": { @@ -1296,11 +1292,11 @@ "last_update": "2023-12-22 08:22:45" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": { - "stars": 298, + "stars": 300, "last_update": "2024-01-15 12:19:46" }, "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": { - "stars": 1310, + "stars": 1311, "last_update": "2023-12-23 07:08:46" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": { @@ -1308,7 +1304,7 @@ "last_update": "2024-01-03 15:22:13" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": { - "stars": 1035, + "stars": 1036, "last_update": "2024-03-23 06:33:03" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": { @@ -1316,7 +1312,7 @@ "last_update": "2024-01-25 13:13:33" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API": { - "stars": 152, + "stars": 154, "last_update": "2024-03-12 10:32:47" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": { @@ -1336,7 +1332,7 @@ "last_update": "2024-04-02 02:55:59" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG": { - "stars": 389, + "stars": 391, "last_update": "2024-02-07 13:22:16" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": { @@ -1344,7 +1340,7 @@ "last_update": "2024-03-25 02:09:04" }, "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": { - "stars": 40, + "stars": 45, "last_update": "2024-04-01 13:35:54" }, "https://github.com/kenjiqq/qq-nodes-comfyui": { @@ -1676,7 +1672,7 @@ "last_update": "2024-02-17 14:26:26" }, "https://github.com/crystian/ComfyUI-Crystools": { - "stars": 308, + "stars": 310, "last_update": "2024-03-27 16:59:44" }, "https://github.com/crystian/ComfyUI-Crystools-save": { @@ -1736,7 +1732,7 @@ "last_update": "2024-03-24 19:03:45" }, "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": { - "stars": 275, + "stars": 276, "last_update": "2024-03-19 10:49:59" }, "https://github.com/flowtyone/ComfyUI-Flowty-CRM": { @@ -1760,7 +1756,7 @@ "last_update": "2024-01-04 14:41:18" }, "https://github.com/chaojie/ComfyUI-AniPortrait": { - "stars": 148, + "stars": 150, "last_update": "2024-04-02 03:06:43" }, "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": { @@ -1788,7 +1784,7 @@ "last_update": "2024-02-24 10:02:51" }, "https://github.com/chaojie/ComfyUI-DynamiCrafter": { - "stars": 69, + "stars": 70, "last_update": "2024-03-16 19:08:28" }, "https://github.com/chaojie/ComfyUI-Panda3d": { @@ -1844,11 +1840,11 @@ "last_update": "2024-01-14 04:23:09" }, "https://github.com/MrForExample/ComfyUI-3D-Pack": { - "stars": 1257, + "stars": 1260, "last_update": "2024-04-01 13:51:02" }, "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": { - "stars": 371, + "stars": 373, "last_update": "2024-02-02 14:19:37" }, "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": { @@ -1857,11 +1853,11 @@ }, "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": { "stars": 19, - "last_update": "2024-03-31 17:08:35" + "last_update": "2024-04-02 12:43:57" }, "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": { "stars": 3, - "last_update": "2024-03-31 17:56:08" + "last_update": "2024-04-02 10:41:08" }, "https://github.com/tzwm/comfyui-profiler": { "stars": 27, @@ -1869,11 +1865,11 @@ }, "https://github.com/daniel-lewis-ab/ComfyUI-Llama": { "stars": 19, - "last_update": "2024-03-19 22:59:53" + "last_update": "2024-04-02 06:33:08" }, "https://github.com/daniel-lewis-ab/ComfyUI-TTS": { - "stars": 3, - "last_update": "2024-01-28 00:07:17" + "stars": 4, + "last_update": "2024-04-02 06:32:21" }, "https://github.com/djbielejeski/a-person-mask-generator": { "stars": 178, @@ -1892,7 +1888,7 @@ "last_update": "2024-01-09 08:33:02" }, "https://github.com/AInseven/ComfyUI-fastblend": { - "stars": 74, + "stars": 75, "last_update": "2024-02-26 16:17:27" }, "https://github.com/HebelHuber/comfyui-enhanced-save-node": { @@ -2005,7 +2001,7 @@ }, "https://github.com/longgui0318/comfyui-oms-diffusion": { "stars": 3, - "last_update": "2024-04-01 08:57:33" + "last_update": "2024-04-02 10:12:23" }, "https://github.com/DimaChaichan/LAizypainter-Exporter-ComfyUI": { "stars": 6, @@ -2036,7 +2032,7 @@ "last_update": "2024-03-26 11:46:29" }, "https://github.com/gokayfem/ComfyUI-Dream-Interpreter": { - "stars": 45, + "stars": 46, "last_update": "2024-03-24 22:26:17" }, "https://github.com/gokayfem/ComfyUI-Depth-Visualization": { @@ -2076,7 +2072,7 @@ "last_update": "2024-01-27 15:25:00" }, "https://github.com/mape/ComfyUI-mape-Helpers": { - "stars": 63, + "stars": 64, "last_update": "2024-02-07 16:58:47" }, "https://github.com/zhongpei/Comfyui_image2prompt": { @@ -2124,7 +2120,7 @@ "last_update": "2024-02-03 16:45:06" }, "https://github.com/Chan-0312/ComfyUI-IPAnimate": { - "stars": 48, + "stars": 50, "last_update": "2024-02-01 09:17:58" }, "https://github.com/Chan-0312/ComfyUI-EasyDeforum": { @@ -2152,7 +2148,7 @@ "last_update": "2024-02-05 17:48:33" }, "https://github.com/dfl/comfyui-tcd-scheduler": { - "stars": 50, + "stars": 51, "last_update": "2024-03-24 18:29:56" }, "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": { @@ -2180,7 +2176,7 @@ "last_update": "2024-02-25 12:35:13" }, "https://github.com/XmYx/deforum-comfy-nodes": { - "stars": 53, + "stars": 54, "last_update": "2024-03-21 11:08:54" }, "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": { @@ -2213,7 +2209,7 @@ }, "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": { "stars": 8, - "last_update": "2024-02-15 09:03:57" + "last_update": "2024-04-02 12:00:48" }, "https://github.com/jordoh/ComfyUI-Deepface": { "stars": 8, @@ -2233,7 +2229,7 @@ }, "https://github.com/yytdfc/ComfyUI-Bedrock": { "stars": 4, - "last_update": "2024-02-28 05:48:49" + "last_update": "2024-04-02 09:26:29" }, "https://github.com/mirabarukaso/ComfyUI_Mira": { "stars": 5, @@ -2288,7 +2284,7 @@ "last_update": "2024-02-26 09:37:16" }, "https://github.com/AuroBit/ComfyUI-OOTDiffusion": { - "stars": 214, + "stars": 218, "last_update": "2024-03-26 02:44:57" }, "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": { @@ -2360,7 +2356,7 @@ "last_update": "2024-02-29 19:40:01" }, "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": { - "stars": 7, + "stars": 8, "last_update": "2024-03-29 10:30:27" }, "https://github.com/uetuluk/comfyui-webcam-node": { @@ -2368,7 +2364,7 @@ "last_update": "2024-03-01 07:25:27" }, "https://github.com/huchenlei/ComfyUI-layerdiffuse": { - "stars": 944, + "stars": 947, "last_update": "2024-03-09 21:16:31" }, "https://github.com/huchenlei/ComfyUI_DanTagGen": { @@ -2380,11 +2376,11 @@ "last_update": "2024-03-31 23:55:42" }, "https://github.com/nathannlu/ComfyUI-Cloud": { - "stars": 103, + "stars": 104, "last_update": "2024-03-31 06:00:13" }, "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": { - "stars": 3, + "stars": 4, "last_update": "2024-03-12 02:03:09" }, "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": { @@ -2456,11 +2452,11 @@ "last_update": "2024-03-09 00:02:47" }, "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": { - "stars": 52, + "stars": 55, "last_update": "2024-03-23 02:32:04" }, "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting": { - "stars": 191, + "stars": 193, "last_update": "2024-03-31 23:38:23" }, "https://github.com/angeloshredder/StableCascadeResizer": { @@ -2544,7 +2540,7 @@ "last_update": "2024-03-30 19:14:48" }, "https://github.com/Seedsa/Fooocus_Nodes": { - "stars": 14, + "stars": 15, "last_update": "2024-03-28 07:37:38" }, "https://github.com/zhangp365/ComfyUI-utils-nodes": { @@ -2620,8 +2616,8 @@ "last_update": "2024-03-31 20:39:40" }, "https://github.com/jiaxiangc/ComfyUI-ResAdapter": { - "stars": 178, - "last_update": "2024-04-01 03:35:41" + "stars": 192, + "last_update": "2024-04-02 09:49:53" }, "https://github.com/ParisNeo/lollms_nodes_suite": { "stars": 5, @@ -2636,8 +2632,8 @@ "last_update": "2024-04-01 19:53:42" }, "https://github.com/frankchieng/ComfyUI_Aniportrait": { - "stars": 8, - "last_update": "2024-04-02 05:12:34" + "stars": 9, + "last_update": "2024-04-02 11:28:15" }, "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": { "stars": 3, @@ -2659,8 +2655,16 @@ "stars": 0, "last_update": "2024-04-01 01:32:04" }, + "https://github.com/kijai/ComfyUI-APISR": { + "stars": 41, + "last_update": "2024-04-01 21:37:50" + }, + "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": { + "stars": 0, + "last_update": "2024-04-01 10:47:39" + }, "https://github.com/comfyanonymous/ComfyUI": { - "stars": 30438, - "last_update": "2024-04-01 22:09:26" + "stars": 30467, + "last_update": "2024-04-02 07:38:10" } } \ 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 0a49c538..075b4ce7 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1037,6 +1037,7 @@ [ "EmptyMotionData", "ExportSMPLTo3DSoftware", + "Export_SMPLMultipleSubjects_To_3DSoftware", "Human4D_Img2SMPL", "Humans4DLoader", "MotionCLIPTextEncode", diff --git a/scanner.py b/scanner.py index d06ad71f..01bf4072 100644 --- a/scanner.py +++ b/scanner.py @@ -237,37 +237,62 @@ def update_custom_nodes(): except FileNotFoundError: pass - if g.rate_limiting_resettime-datetime.datetime.now().timestamp() <= 0: + def is_rate_limit_exceeded(): + return g.rate_limiting[0] == 0 + + if is_rate_limit_exceeded(): + print(f"GitHub API Rate Limit Exceeded: remained - {(g.rate_limiting_resettime - datetime.datetime.now().timestamp())/60:.2f} min") + else: + def renew_stat(url): + if is_rate_limit_exceeded(): + return + + # Parsing the URL + parsed_url = urlparse(url) + domain = parsed_url.netloc + path = parsed_url.path + path_parts = path.strip("/").split("/") + if len(path_parts) >= 2 and domain == "github.com": + owner_repo = "/".join(path_parts[-2:]) + 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] = { + "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) + else: + print(f"Invalid URL format for GitHub repository: {url}") + + # resolve unresolved urls for url, title, preemptions, node_pattern in git_url_titles_preemptions: if url not in github_stats: - # Parsing the URL - parsed_url = urlparse(url) - domain = parsed_url.netloc - path = parsed_url.path - path_parts = path.strip("/").split("/") - if len(path_parts) >= 2 and domain == "github.com": - owner_repo = "/".join(path_parts[-2:]) - repo = g.get_repo(owner_repo) + renew_stat(url) - last_update = repo.pushed_at.strftime("%Y-%m-%d %H:%M:%S") if repo.pushed_at else 'N/A' - github_stats[url] = { - "stars": repo.stargazers_count, - "last_update": last_update, - } - with open(GITHUB_STATS_CACHE_FILENAME, 'w', encoding='utf-8') as file: - json.dump(github_stats, file, ensure_ascii=False, indent=4) - # print(f"Title: {title}, Stars: {repo.stargazers_count}, Last Update: {last_update}") - else: - print(f"Invalid URL format for GitHub repository: {url}") + # renew outdated cache + outdated_urls = [] + for k, v in github_stats.items(): + if (datetime.datetime.now().timestamp() - v['cached_time']) > 60*60*3: # 3 hours + outdated_urls += k + + for url in outdated_urls: + renew_stat(url) with open(GITHUB_STATS_FILENAME, 'w', encoding='utf-8') as file: + for v in github_stats.values(): + if "cached_time" in v: + del v["cached_time"] + json.dump(github_stats, file, ensure_ascii=False, indent=4) print(f"Successfully written to {GITHUB_STATS_FILENAME}, removing {GITHUB_STATS_CACHE_FILENAME}.") - try: - os.remove(GITHUB_STATS_CACHE_FILENAME) # This cache file is just for avoiding failure of GitHub API fetch, so it is safe to remove. - except: - pass + # try: + # os.remove(GITHUB_STATS_CACHE_FILENAME) # This cache file is just for avoiding failure of GitHub API fetch, so it is safe to remove. + # except: + # pass with concurrent.futures.ThreadPoolExecutor(11) as executor: executor.submit(process_git_stats, git_url_titles_preemptions) # One single thread for `process_git_stats()`. Runs concurrently with `process_git_url_title()`. From f5a6d5894b59895b46445fdac81f18965121cf61 Mon Sep 17 00:00:00 2001 From: Liu Sida Date: Tue, 2 Apr 2024 22:54:45 +0800 Subject: [PATCH 07/13] A quick fix to ensure that the filter, search, and sorting can work together (#534) --- js/custom-nodes-downloader.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/custom-nodes-downloader.js b/js/custom-nodes-downloader.js index 333eb2ec..73d06eea 100644 --- a/js/custom-nodes-downloader.js +++ b/js/custom-nodes-downloader.js @@ -426,6 +426,7 @@ export class CustomNodesInstaller extends ComfyDialog { // Refresh the grid to display sorted data this.createGrid(); + this.apply_searchbox(this.data); } async createGrid() { From 2fb9f8c50300ea39fb50d40826b73a47e33d0f77 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 2 Apr 2024 23:59:05 +0900 Subject: [PATCH 08/13] update DB --- custom-node-list.json | 2 +- node_db/new/custom-node-list.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 9d5a09fe..cacaab31 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -6726,7 +6726,7 @@ "https://github.com/frankchieng/ComfyUI_Aniportrait" ], "install_type": "git-clone", - "description": "This is unofficial implementation of [a/AniPortrait](https://github.com/Zejun-Yang/AniPortrait) in ComfyUI custom_node,cuz i have routine jobs,so i will update this project when i have time" + "description": "implementation of [a/Aniportrait](https://github.com/Zejun-Yang/AniPortrait)'s self driven,audio driven and Face reenacment in ComfyUI" }, { "author": "BlakeOne", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 68409745..18fa20bd 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -68,7 +68,7 @@ "https://github.com/frankchieng/ComfyUI_Aniportrait" ], "install_type": "git-clone", - "description": "This is unofficial implementation of [a/AniPortrait](https://github.com/Zejun-Yang/AniPortrait) in ComfyUI custom_node,cuz i have routine jobs,so i will update this project when i have time" + "description": "implementation of [a/Aniportrait](https://github.com/Zejun-Yang/AniPortrait)'s self driven,audio driven and Face reenacment in ComfyUI" }, { "author": "ZHO-ZHO-ZHO", From 861af6eac573897ea6feb7f1ab4cfe9f1913a816 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 3 Apr 2024 00:13:48 +0900 Subject: [PATCH 09/13] update DB --- custom-node-list.json | 1 + extension-node-map.json | 11 +++++++++++ node_db/new/extension-node-map.json | 11 +++++++++++ 3 files changed, 23 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index cacaab31..b6d9d91d 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4302,6 +4302,7 @@ "files": [ "https://github.com/crystian/ComfyUI-Crystools" ], + "nodename_pattern": " \\[Crystools\\]$", "install_type": "git-clone", "description": "With this suit, you can see the resources monitor, progress bar & time elapsed, metadata and compare between two images, compare between two JSONs, show any value to console/display, pipes, and more!\nThis provides better nodes to load/save images, previews, etc, and see \"hidden\" data without loading a new workflow." }, diff --git a/extension-node-map.json b/extension-node-map.json index 075b4ce7..d24d3ca9 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -5955,6 +5955,17 @@ "title_aux": "Cozy Reference Pose Generator" } ], + "https://github.com/crystian/ComfyUI-Crystools": [ + [], + { + "author": "Crystian", + "description": "Plugins for multiples uses, mainly for debugging, you need them! IG: https://www.instagram.com/crystian.ia", + "nickname": "Crystools", + "nodename_pattern": " \\[Crystools\\]$", + "title": "Crystools", + "title_aux": "Crystools" + } + ], "https://github.com/cubiq/ComfyUI_FaceAnalysis": [ [ "FaceAnalysisModels", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 075b4ce7..d24d3ca9 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -5955,6 +5955,17 @@ "title_aux": "Cozy Reference Pose Generator" } ], + "https://github.com/crystian/ComfyUI-Crystools": [ + [], + { + "author": "Crystian", + "description": "Plugins for multiples uses, mainly for debugging, you need them! IG: https://www.instagram.com/crystian.ia", + "nickname": "Crystools", + "nodename_pattern": " \\[Crystools\\]$", + "title": "Crystools", + "title_aux": "Crystools" + } + ], "https://github.com/cubiq/ComfyUI_FaceAnalysis": [ [ "FaceAnalysisModels", From ff0cc580766d3af62659160511817a40fc911bbf Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 3 Apr 2024 00:26:53 +0900 Subject: [PATCH 10/13] fix requirements --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 70a430f7..08c31a62 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ GitPython PyGithub matrix-client==0.4.0 transformers -huggingface-hub>0.20 \ No newline at end of file +huggingface-hub>0.20 +distutils \ No newline at end of file From e75770cc4dbbaa45ff6fb75caa5d29c6af491feb Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 3 Apr 2024 00:33:42 +0900 Subject: [PATCH 11/13] fix: try install 'distutils' when distutils package is missing afaik, distutils is a basic package https://github.com/ltdrdata/ComfyUI-Manager/issues/536 --- __init__.py | 2 +- prestartup_script.py | 8 +++++++- requirements.txt | 3 +-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/__init__.py b/__init__.py index 1467ba49..bfed7256 100644 --- a/__init__.py +++ b/__init__.py @@ -30,7 +30,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 13] +version = [2, 13, 1] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") diff --git a/prestartup_script.py b/prestartup_script.py index cd32358b..b3fba3f0 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -7,9 +7,15 @@ import threading import re import locale import platform -from distutils.version import StrictVersion +try: + from distutils.version import StrictVersion +except: + print(f"[ComfyUI-Manager] Missing `distutils`. Try install...") + subprocess.check_output([sys.executable, '-m', 'pip', 'install', 'distutils']) + from distutils.version import StrictVersion + glob_path = os.path.join(os.path.dirname(__file__), "glob") sys.path.append(glob_path) diff --git a/requirements.txt b/requirements.txt index 08c31a62..70a430f7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,5 +2,4 @@ GitPython PyGithub matrix-client==0.4.0 transformers -huggingface-hub>0.20 -distutils \ No newline at end of file +huggingface-hub>0.20 \ No newline at end of file From 7a97328e4b5a308f73f1baee30a2f350893b7f8f Mon Sep 17 00:00:00 2001 From: chaojie Date: Tue, 2 Apr 2024 23:39:39 +0800 Subject: [PATCH 12/13] Update custom-node-list.json (#537) --- custom-node-list.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index b6d9d91d..8a1cae58 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4507,6 +4507,16 @@ "install_type": "git-clone", "description": "Nodes:3D Pose Editor" }, + { + "author": "chaojie", + "title": "ComfyUI-MuseV", + "reference": "https://github.com/chaojie/ComfyUI-MuseV", + "files": [ + "https://github.com/chaojie/ComfyUI-MuseV" + ], + "install_type": "git-clone", + "description": "ComfyUI MuseV" + }, { "author": "chaojie", "title": "ComfyUI-AniPortrait", From 37c91225dea24f4c776ee073ed1e149cd5ea941a Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 3 Apr 2024 00:43:47 +0900 Subject: [PATCH 13/13] update script update DB --- extension-node-map.json | 9 +++++++++ github-stats.json | 4 ++++ node_db/new/custom-node-list.json | 20 ++++++++++---------- node_db/new/extension-node-map.json | 9 +++++++++ scan.sh | 2 +- 5 files changed, 33 insertions(+), 11 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index d24d3ca9..3984e2b0 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -5284,6 +5284,15 @@ "title_aux": "ComfyUI-MotionCtrl-SVD" } ], + "https://github.com/chaojie/ComfyUI-MuseV": [ + [ + "MuseVRun" + ], + { + "author": "infguo", + "title_aux": "ComfyUI-MuseV" + } + ], "https://github.com/chaojie/ComfyUI-Open-Sora": [ [ "OpenSoraLoader", diff --git a/github-stats.json b/github-stats.json index 9d75d61d..e89ab3f8 100644 --- a/github-stats.json +++ b/github-stats.json @@ -2666,5 +2666,9 @@ "https://github.com/comfyanonymous/ComfyUI": { "stars": 30467, "last_update": "2024-04-02 07:38:10" + }, + "https://github.com/chaojie/ComfyUI-MuseV": { + "stars": 2, + "last_update": "2024-04-02 15:39:23" } } \ No newline at end of file diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 18fa20bd..ecd2c9a6 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,16 @@ }, + { + "author": "chaojie", + "title": "ComfyUI-MuseV", + "reference": "https://github.com/chaojie/ComfyUI-MuseV", + "files": [ + "https://github.com/chaojie/ComfyUI-MuseV" + ], + "install_type": "git-clone", + "description": "ComfyUI MuseV" + }, { "author": "DrMWeigand", "title": "ComfyUI Color Detection Nodes", @@ -681,16 +691,6 @@ ], "install_type": "git-clone", "description": "DragAnything" - }, - { - "author": "chaojie", - "title": "ComfyUI-Trajectory", - "reference": "https://github.com/chaojie/ComfyUI-Trajectory", - "files": [ - "https://github.com/chaojie/ComfyUI-Trajectory" - ], - "install_type": "git-clone", - "description": "ComfyUI Trajectory" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index d24d3ca9..3984e2b0 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -5284,6 +5284,15 @@ "title_aux": "ComfyUI-MotionCtrl-SVD" } ], + "https://github.com/chaojie/ComfyUI-MuseV": [ + [ + "MuseVRun" + ], + { + "author": "infguo", + "title_aux": "ComfyUI-MuseV" + } + ], "https://github.com/chaojie/ComfyUI-Open-Sora": [ [ "OpenSoraLoader", diff --git a/scan.sh b/scan.sh index ef6e4348..f1f088ec 100755 --- a/scan.sh +++ b/scan.sh @@ -1,6 +1,6 @@ #!/bin/bash rm ~/.tmp/default/*.py > /dev/null 2>&1 -python scanner.py ~/.tmp/default $@ +python scanner.py ~/.tmp/default $* cp extension-node-map.json node_db/new/. echo Integrity check