From 78938c3ef501eeb37e97fe90481ba43e30d949e6 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Wed, 24 Jan 2024 10:33:47 +0900 Subject: [PATCH 01/47] update DB --- custom-node-list.json | 60 +++++++++++++++---- extension-node-map.json | 33 ++++++++++- node_db/new/custom-node-list.json | 90 +++++++++++++---------------- node_db/new/extension-node-map.json | 33 ++++++++++- 4 files changed, 150 insertions(+), 66 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index eea5bbb9..6d4ae86d 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -3290,16 +3290,6 @@ "install_type": "git-clone", "description": "A ComfyUI custom node for project management to centralize the management of all your workflows in one place. Seamlessly switch between workflows, create and update them within a single workspace, like Google Docs." }, - { - "author": "thecooltechguy", - "title": "ComfyUI-MagicAnimate", - "reference": "https://github.com/thecooltechguy/ComfyUI-MagicAnimate", - "files": [ - "https://github.com/thecooltechguy/ComfyUI-MagicAnimate" - ], - "install_type": "git-clone", - "description": "Easily use Magic Animate within ComfyUI!\n[w/WARN: This extension requires 15GB disk space.]" - }, { "author": "knuknX", "title": "ComfyUI-Image-Tools", @@ -3782,6 +3772,26 @@ "install_type": "git-clone", "description": "The easiest way to run & share any ComfyUI workflow [a/https://comfyrun.com](https://comfyrun.com)" }, + { + "author": "thecooltechguy", + "title": "ComfyUI-MagicAnimate", + "reference": "https://github.com/thecooltechguy/ComfyUI-MagicAnimate", + "files": [ + "https://github.com/thecooltechguy/ComfyUI-MagicAnimate" + ], + "install_type": "git-clone", + "description": "Easily use Magic Animate within ComfyUI!\n[w/WARN: This extension requires 15GB disk space.]" + }, + { + "author": "thecooltechguy", + "title": "ComfyUI-ComfyWorkflows", + "reference": "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows", + "files": [ + "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows" + ], + "install_type": "git-clone", + "description": "The best way to run, share, & discover thousands of ComfyUI workflows." + }, { "author": "styler00dollar", "title": "ComfyUI-sudo-latent-upscale", @@ -4194,6 +4204,16 @@ "install_type": "git-clone", "description": "This is a set of nodes to interact with llama-cpp-python" }, + { + "author": "Daniel Lewis", + "title": "ComfyUI-TTS", + "reference": "https://github.com/daniel-lewis-ab/ComfyUI-TTS", + "files": [ + "https://github.com/daniel-lewis-ab/ComfyUI-TTS" + ], + "install_type": "git-clone", + "description": "A set of TTS nodes for ComfyUI" + }, { "author": "djbielejeski", "title": "a-person-mask-generator", @@ -4514,6 +4534,26 @@ "install_type": "git-clone", "description": "Custom node for ComfyUI that makes parts of the image transparent (face, background...)" }, + { + "author": "pkpkTech", + "title": "ComfyUI-ngrok", + "reference": "https://github.com/pkpkTech/ComfyUI-ngrok", + "files": [ + "https://github.com/pkpkTech/ComfyUI-ngrok" + ], + "install_type": "git-clone", + "description": "Use ngrok to allow external access to ComfyUI.\nNOTE: Need to manually modify a token inside the __init__.py file." + }, + { + "author": "abdozmantar", + "title": "InstaSwap Face Swap Node for ComfyUI", + "reference": "https://github.com/abdozmantar/ComfyUI-InstaSwap", + "files": [ + "https://github.com/abdozmantar/ComfyUI-InstaSwap" + ], + "install_type": "git-clone", + "description": "Fastest Face Swap Extension Node for ComfyUI, Single node and FastTrack: Lightning-Speed Facial Transformation for your projects." + }, diff --git a/extension-node-map.json b/extension-node-map.json index 4469ecbb..5b46cf70 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1981,6 +1981,7 @@ "CR Get Parameter From Prompt", "CR Gradient Float", "CR Gradient Integer", + "CR Half Drop Panel", "CR Halftone Filter", "CR Halftone Grid", "CR Hires Fix Process Switch", @@ -1996,7 +1997,6 @@ "CR Image Pipe In", "CR Image Pipe Out", "CR Image Size", - "CR Image XY Panel", "CR Img2Img Process Switch", "CR Increment Float", "CR Increment Integer", @@ -2010,7 +2010,6 @@ "CR Integer To String", "CR Interpolate Latents", "CR Intertwine Lists", - "CR KSampler", "CR Keyframe List", "CR Latent Batch Size", "CR Latent Input Switch", @@ -2120,6 +2119,7 @@ "CR Thumbnail Preview", "CR Trigger", "CR Upscale Image", + "CR VAE Decode", "CR VAE Input Switch", "CR Value", "CR Value Cycler", @@ -2875,6 +2875,16 @@ "title_aux": "ComfyUI-AudioScheduler" } ], + "https://github.com/abdozmantar/ComfyUI-InstaSwap": [ + [ + "InstaSwapFaceSwap", + "InstaSwapLoadFaceModel", + "InstaSwapSaveFaceModel" + ], + { + "title_aux": "InstaSwap Face Swap Node for ComfyUI" + } + ], "https://github.com/abyz22/image_control": [ [ "abyz22_FirstNonNull", @@ -2937,7 +2947,11 @@ "Image Flip_ally", "Placeholder Tuple", "aegisflow Multi_Pass", - "aegisflow Multi_Pass XL" + "aegisflow Multi_Pass XL", + "af_pipe_in_15", + "af_pipe_in_xl", + "af_pipe_out_15", + "af_pipe_out_xl" ], { "title_aux": "AegisFlow Utility Nodes" @@ -4152,6 +4166,15 @@ "title_aux": "ComfyUI-Llama" } ], + "https://github.com/daniel-lewis-ab/ComfyUI-TTS": [ + [ + "Load_Piper_Model", + "Piper_Speak_Text" + ], + { + "title_aux": "ComfyUI-TTS" + } + ], "https://github.com/darkpixel/darkprompts": [ [ "DarkCombine", @@ -5144,7 +5167,11 @@ "CachedGetter", "DragNUWAImageCanvas", "FlowBuilder", + "FlowBuilder (adv)", + "FlowBuilder (advanced)", + "FlowBuilder (advanced) Setter", "FlowBuilderSetter", + "FlowBuilderSetter (adv)", "Getter", "ImageGetter", "ImageMerger", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 174e50ed..c9077f7d 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,46 @@ }, + { + "author": "abdozmantar", + "title": "InstaSwap Face Swap Node for ComfyUI", + "reference": "https://github.com/abdozmantar/ComfyUI-InstaSwap", + "files": [ + "https://github.com/abdozmantar/ComfyUI-InstaSwap" + ], + "install_type": "git-clone", + "description": "Fastest Face Swap Extension Node for ComfyUI, Single node and FastTrack: Lightning-Speed Facial Transformation for your projects." + }, + { + "author": "pkpkTech", + "title": "ComfyUI-ngrok", + "reference": "https://github.com/pkpkTech/ComfyUI-ngrok", + "files": [ + "https://github.com/pkpkTech/ComfyUI-ngrok" + ], + "install_type": "git-clone", + "description": "Use ngrok to allow external access to ComfyUI.\nNOTE: Need to manually modify a token inside the __init__.py file." + }, + { + "author": "Daniel Lewis", + "title": "ComfyUI-TTS", + "reference": "https://github.com/daniel-lewis-ab/ComfyUI-TTS", + "files": [ + "https://github.com/daniel-lewis-ab/ComfyUI-TTS" + ], + "install_type": "git-clone", + "description": "A set of TTS nodes for ComfyUI" + }, + { + "author": "thecooltechguy", + "title": "ComfyUI-ComfyWorkflows", + "reference": "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows", + "files": [ + "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows" + ], + "install_type": "git-clone", + "description": "The best way to run, share, & discover thousands of ComfyUI workflows." + }, { "author": "Shraknard", "title": "ComfyUI-Remover", @@ -651,56 +691,6 @@ ], "install_type": "git-clone", "description": "Unofficial ComfyUI implementation of [a/RAVE](https://rave-video.github.io/)" - }, - { - "author": "ownimage", - "title": "ComfyUI-ownimage", - "reference": "https://github.com/ownimage/ComfyUI-ownimage", - "files": [ - "https://github.com/ownimage/ComfyUI-ownimage" - ], - "install_type": "git-clone", - "description": "Nodes:Caching Image Loader." - }, - { - "author": "wwwins", - "title": "ComfyUI-Simple-Aspect-Ratio", - "reference": "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio", - "files": [ - "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio" - ], - "install_type": "git-clone", - "description": "Nodes:SimpleAspectRatio" - }, - { - "author": "dmarx", - "title": "ComfyUI-AudioReactive", - "reference": "https://github.com/dmarx/ComfyUI-AudioReactive", - "files": [ - "https://github.com/dmarx/ComfyUI-AudioReactive" - ], - "install_type": "git-clone", - "description": "porting audioreactivity pipeline from vktrs to comfyui." - }, - { - "author": "Ryuukeisyou", - "title": "comfyui_face_parsing", - "reference": "https://github.com/Ryuukeisyou/comfyui_face_parsing", - "files": [ - "https://github.com/Ryuukeisyou/comfyui_face_parsing" - ], - "install_type": "git-clone", - "description": "This is a set of custom nodes for ComfyUI. The nodes utilize the [a/face parsing model](https://huggingface.co/jonathandinu/face-parsing) to provide detailed segmantation of face. To improve face segmantation accuracy, [a/yolov8 face model](https://huggingface.co/Bingsu/adetailer/) is used to first extract face from an image. There are also auxiliary nodes for image and mask processing. A guided filter is also provided for skin smoothing." - }, - { - "author": "florestefano1975", - "title": "comfyui-prompt-composer", - "reference": "https://github.com/florestefano1975/comfyui-prompt-composer", - "files": [ - "https://github.com/florestefano1975/comfyui-prompt-composer" - ], - "install_type": "git-clone", - "description": "A suite of tools for prompt management. Combining nodes helps the user sequence strings for prompts, also creating logical groupings if necessary. Individual nodes can be chained together in any order." } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 4469ecbb..5b46cf70 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1981,6 +1981,7 @@ "CR Get Parameter From Prompt", "CR Gradient Float", "CR Gradient Integer", + "CR Half Drop Panel", "CR Halftone Filter", "CR Halftone Grid", "CR Hires Fix Process Switch", @@ -1996,7 +1997,6 @@ "CR Image Pipe In", "CR Image Pipe Out", "CR Image Size", - "CR Image XY Panel", "CR Img2Img Process Switch", "CR Increment Float", "CR Increment Integer", @@ -2010,7 +2010,6 @@ "CR Integer To String", "CR Interpolate Latents", "CR Intertwine Lists", - "CR KSampler", "CR Keyframe List", "CR Latent Batch Size", "CR Latent Input Switch", @@ -2120,6 +2119,7 @@ "CR Thumbnail Preview", "CR Trigger", "CR Upscale Image", + "CR VAE Decode", "CR VAE Input Switch", "CR Value", "CR Value Cycler", @@ -2875,6 +2875,16 @@ "title_aux": "ComfyUI-AudioScheduler" } ], + "https://github.com/abdozmantar/ComfyUI-InstaSwap": [ + [ + "InstaSwapFaceSwap", + "InstaSwapLoadFaceModel", + "InstaSwapSaveFaceModel" + ], + { + "title_aux": "InstaSwap Face Swap Node for ComfyUI" + } + ], "https://github.com/abyz22/image_control": [ [ "abyz22_FirstNonNull", @@ -2937,7 +2947,11 @@ "Image Flip_ally", "Placeholder Tuple", "aegisflow Multi_Pass", - "aegisflow Multi_Pass XL" + "aegisflow Multi_Pass XL", + "af_pipe_in_15", + "af_pipe_in_xl", + "af_pipe_out_15", + "af_pipe_out_xl" ], { "title_aux": "AegisFlow Utility Nodes" @@ -4152,6 +4166,15 @@ "title_aux": "ComfyUI-Llama" } ], + "https://github.com/daniel-lewis-ab/ComfyUI-TTS": [ + [ + "Load_Piper_Model", + "Piper_Speak_Text" + ], + { + "title_aux": "ComfyUI-TTS" + } + ], "https://github.com/darkpixel/darkprompts": [ [ "DarkCombine", @@ -5144,7 +5167,11 @@ "CachedGetter", "DragNUWAImageCanvas", "FlowBuilder", + "FlowBuilder (adv)", + "FlowBuilder (advanced)", + "FlowBuilder (advanced) Setter", "FlowBuilderSetter", + "FlowBuilderSetter (adv)", "Getter", "ImageGetter", "ImageMerger", From a869fa8fa97a5e9b7365c1ab2a9f629350ea16ce Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Wed, 24 Jan 2024 11:06:33 +0900 Subject: [PATCH 02/47] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 10 ++++++++++ node_db/new/extension-node-map.json | 10 ++++++++++ 3 files changed, 30 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 6d4ae86d..08052ac7 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4554,6 +4554,16 @@ "install_type": "git-clone", "description": "Fastest Face Swap Extension Node for ComfyUI, Single node and FastTrack: Lightning-Speed Facial Transformation for your projects." }, + { + "author": "FlyingFireCo", + "title": "tiled_ksampler", + "reference": "https://github.com/FlyingFireCo/tiled_ksampler", + "files": [ + "https://github.com/FlyingFireCo/tiled_ksampler" + ], + "install_type": "git-clone", + "description": "Nodes:Tiled KSampler, Asymmetric Tiled KSampler, Circular VAEDecode." + }, diff --git a/extension-node-map.json b/extension-node-map.json index 5b46cf70..28f13412 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -813,6 +813,16 @@ "title_aux": "FizzNodes" } ], + "https://github.com/FlyingFireCo/tiled_ksampler": [ + [ + "Asymmetric Tiled KSampler", + "Circular VAEDecode", + "Tiled KSampler" + ], + { + "title_aux": "tiled_ksampler" + } + ], "https://github.com/GMapeSplat/ComfyUI_ezXY": [ [ "ConcatenateString", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 5b46cf70..28f13412 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -813,6 +813,16 @@ "title_aux": "FizzNodes" } ], + "https://github.com/FlyingFireCo/tiled_ksampler": [ + [ + "Asymmetric Tiled KSampler", + "Circular VAEDecode", + "Tiled KSampler" + ], + { + "title_aux": "tiled_ksampler" + } + ], "https://github.com/GMapeSplat/ComfyUI_ezXY": [ [ "ConcatenateString", From 1a8f8a70999cd97dd95340b9b819419602ce688f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Wed, 24 Jan 2024 11:10:58 +0900 Subject: [PATCH 03/47] update DB --- node_db/new/custom-node-list.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index c9077f7d..55604c86 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -9,7 +9,17 @@ "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": "FlyingFireCo", + "title": "tiled_ksampler", + "reference": "https://github.com/FlyingFireCo/tiled_ksampler", + "files": [ + "https://github.com/FlyingFireCo/tiled_ksampler" + ], + "install_type": "git-clone", + "description": "Nodes:Tiled KSampler, Asymmetric Tiled KSampler, Circular VAEDecode." + }, { "author": "abdozmantar", "title": "InstaSwap Face Swap Node for ComfyUI", From 999fce6d4ca8da26c48f35a3857f510dfee954e3 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Wed, 24 Jan 2024 13:54:28 +0900 Subject: [PATCH 04/47] update DB --- model-list.json | 10 +++++----- node_db/new/model-list.json | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/model-list.json b/model-list.json index 5260b3a8..017d49a4 100644 --- a/model-list.json +++ b/model-list.json @@ -145,7 +145,7 @@ "type": "insightface", "base" : "inswapper", "save_path": "insightface", - "description": "[264MB] Checkpoint of the insightface swapper model
(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,
ComfyUI roop and comfy_mtb)", + "description": "[264MB] Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)", "reference": "https://github.com/facefusion/facefusion-assets", "filename": "inswapper_128_fp16.onnx", "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128_fp16.onnx" @@ -155,7 +155,7 @@ "type": "insightface", "base" : "inswapper", "save_path": "insightface", - "description": "[529MB] Checkpoint of the insightface swapper model
(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,
ComfyUI roop and comfy_mtb)", + "description": "[529MB] Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)", "reference": "https://github.com/facefusion/facefusion-assets", "filename": "inswapper_128.onnx", "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128.onnx" @@ -205,7 +205,7 @@ "type": "checkpoints", "base": "SVD", "save_path": "checkpoints/SVD", - "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.
NOTE: 14 frames @ 576x1024", + "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 14 frames @ 576x1024", "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid", "filename": "svd.safetensors", "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors" @@ -225,7 +225,7 @@ "type": "checkpoints", "base": "SVD", "save_path": "checkpoints/SVD", - "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.
NOTE: 25 frames @ 576x1024 ", + "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 25 frames @ 576x1024 ", "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt", "filename": "svd_xt.safetensors", "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors" @@ -998,7 +998,7 @@ "type": "controlnet", "base": "SD1.5", "save_path": "default", - "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11f1e
You need to this model for Tiled Resample", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11f1e\nYou need to this model for Tiled Resample", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11f1e_sd15_tile_fp16.safetensors", "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1e_sd15_tile_fp16.safetensors" diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index eaf193d6..026190a3 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -323,7 +323,7 @@ "type": "checkpoints", "base": "SVD", "save_path": "checkpoints/SVD", - "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.
NOTE: 14 frames @ 576x1024", + "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 14 frames @ 576x1024", "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid", "filename": "svd.safetensors", "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors" @@ -333,7 +333,7 @@ "type": "checkpoints", "base": "SVD", "save_path": "checkpoints/SVD", - "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.
NOTE: 25 frames @ 576x1024 ", + "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 25 frames @ 576x1024 ", "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt", "filename": "svd_xt.safetensors", "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors" From 4b96bf1e4e1ef46c3f368e17e18609ca5d1426e2 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Wed, 24 Jan 2024 14:17:20 +0900 Subject: [PATCH 05/47] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 20 ++++++++++++++++++- node_db/dev/custom-node-list.json | 11 +---------- node_db/new/custom-node-list.json | 30 ++++++++++------------------- node_db/new/extension-node-map.json | 20 ++++++++++++++++++- 5 files changed, 59 insertions(+), 32 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 08052ac7..b811a0c2 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -3020,6 +3020,16 @@ "install_type": "git-clone", "description": "Nodes:Q-Align Scoring. Implementation of [a/Q-Align](https://arxiv.org/abs/2312.17090) for ComfyUI" }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-InstantID", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI" + }, { "author": "kenjiqq", "title": "qq-nodes-comfyui", diff --git a/extension-node-map.json b/extension-node-map.json index 28f13412..0c6e4354 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2244,7 +2244,9 @@ "tri3d-pose-to-image", "tri3d-position-hands", "tri3d-position-parts-batch", - "tri3d-recolor", + "tri3d-recolor-mask", + "tri3d-recolor-mask-LAB_space", + "tri3d-recolor-mask-RGB_space", "tri3d-skin-feathered-padded-mask", "tri3d-swap-pixels" ], @@ -2802,6 +2804,20 @@ "title_aux": "ComfyUI-Gemini" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": [ + [ + "IDBaseModelLoader_fromhub", + "IDBaseModelLoader_local", + "IDControlNetLoader", + "IDGenerationNode", + "ID_Prompt_Styler", + "InsightFaceLoader", + "Ipadapter_instantidLoader" + ], + { + "title_aux": "ComfyUI-InstantID" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": [ [ "QAlign_Zho" @@ -3428,6 +3444,7 @@ "RGB to HSV", "Rect Grab Cut", "Remap", + "RemapBarrelDistortion", "RemapFromInsideParabolas", "RemapFromQuadrilateral (homography)", "RemapInsideParabolas", @@ -5347,6 +5364,7 @@ "ImpactCompare", "ImpactConcatConditionings", "ImpactConditionalBranch", + "ImpactConditionalBranchSelMode", "ImpactConditionalStopIteration", "ImpactControlBridge", "ImpactControlNetApplySEGS", diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index 9500ebe6..54dff2f0 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -11,16 +11,7 @@ - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-InstantID (WIP)", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID" - ], - "install_type": "git-clone", - "description": "Unofficial implementation of [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI" - }, + { "author": "solarpush", "title": "comfyui_sendimage_node", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 55604c86..3487ffee 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,16 @@ }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-InstantID", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI" + }, { "author": "FlyingFireCo", "title": "tiled_ksampler", @@ -681,26 +691,6 @@ ], "install_type": "git-clone", "description": "An experiment about combining multiple LoRAs with [a/DARE](https://arxiv.org/pdf/2311.03099.pdf)" - }, - { - "author": "tocubed", - "title": "ComfyUI-AudioReactor", - "reference": "https://github.com/tocubed/ComfyUI-AudioReactor", - "files": [ - "https://github.com/tocubed/ComfyUI-AudioReactor" - ], - "install_type": "git-clone", - "description": "Nodes: Shadertoy, Load Audio (from Path), Audio Frame Transform (Shadertoy), Audio Frame Transform (Beats)" - }, - { - "author": "spacepxl", - "title": "ComfyUI-RAVE", - "reference": "https://github.com/spacepxl/ComfyUI-RAVE", - "files": [ - "https://github.com/spacepxl/ComfyUI-RAVE" - ], - "install_type": "git-clone", - "description": "Unofficial ComfyUI implementation of [a/RAVE](https://rave-video.github.io/)" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 28f13412..0c6e4354 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2244,7 +2244,9 @@ "tri3d-pose-to-image", "tri3d-position-hands", "tri3d-position-parts-batch", - "tri3d-recolor", + "tri3d-recolor-mask", + "tri3d-recolor-mask-LAB_space", + "tri3d-recolor-mask-RGB_space", "tri3d-skin-feathered-padded-mask", "tri3d-swap-pixels" ], @@ -2802,6 +2804,20 @@ "title_aux": "ComfyUI-Gemini" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": [ + [ + "IDBaseModelLoader_fromhub", + "IDBaseModelLoader_local", + "IDControlNetLoader", + "IDGenerationNode", + "ID_Prompt_Styler", + "InsightFaceLoader", + "Ipadapter_instantidLoader" + ], + { + "title_aux": "ComfyUI-InstantID" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": [ [ "QAlign_Zho" @@ -3428,6 +3444,7 @@ "RGB to HSV", "Rect Grab Cut", "Remap", + "RemapBarrelDistortion", "RemapFromInsideParabolas", "RemapFromQuadrilateral (homography)", "RemapInsideParabolas", @@ -5347,6 +5364,7 @@ "ImpactCompare", "ImpactConcatConditionings", "ImpactConditionalBranch", + "ImpactConditionalBranchSelMode", "ImpactConditionalStopIteration", "ImpactControlBridge", "ImpactControlNetApplySEGS", From 2e0374ff04a7da381a1b328f574a0388ef05612f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 09:36:30 +0900 Subject: [PATCH 06/47] update DB --- custom-node-list.json | 35 +++++++++++++++- extension-node-map.json | 58 +++++++++++++++++++++++++- node_db/dev/custom-node-list.json | 21 +++++----- node_db/new/custom-node-list.json | 40 ++++++++++++++++++ node_db/new/extension-node-map.json | 58 +++++++++++++++++++++++++- node_db/tutorial/custom-node-list.json | 20 +++++++++ 6 files changed, 217 insertions(+), 15 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index b811a0c2..dd5480b4 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1878,6 +1878,16 @@ "install_type": "git-clone", "description": "Nodes: Load Image (Base64), Load Mask (Base64), Send Image (WebSocket), Crop Image, Apply Mask to Image. Provides nodes geared towards using ComfyUI as a backend for external tools.\nNOTE: This extension is necessary when using an external tool like [comfyui-capture-inference](https://github.com/minux302/comfyui-capture-inference)." }, + { + "author": "Acly", + "title": "ComfyUI Inpaint Nodes", + "reference": "https://github.com/Acly/comfyui-inpaint-nodes", + "files": [ + "https://github.com/Acly/comfyui-inpaint-nodes" + ], + "install_type": "git-clone", + "description": "Experimental nodes for better inpainting with ComfyUI. Adds two nodes which allow using [a/Fooocus](https://github.com/Acly/comfyui-inpaint-nodes) inpaint model. It's a small and flexible patch which can be applied to any SDXL checkpoint and will transform it into an inpaint model. This model can then be used like other inpaint models, and provides the same benefits. [a/Read more](https://github.com/lllyasviel/Fooocus/discussions/414)" + }, { "author": "picturesonpictures", "title": "comfy_PoP", @@ -3030,6 +3040,16 @@ "install_type": "git-clone", "description": "Unofficial implementation of [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI" }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI PhotoMaker (ZHO)", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) for ComfyUI" + }, { "author": "kenjiqq", "title": "qq-nodes-comfyui", @@ -4555,14 +4575,14 @@ "description": "Use ngrok to allow external access to ComfyUI.\nNOTE: Need to manually modify a token inside the __init__.py file." }, { - "author": "abdozmantar", + "author": "Abdullah Ozmantar", "title": "InstaSwap Face Swap Node for ComfyUI", "reference": "https://github.com/abdozmantar/ComfyUI-InstaSwap", "files": [ "https://github.com/abdozmantar/ComfyUI-InstaSwap" ], "install_type": "git-clone", - "description": "Fastest Face Swap Extension Node for ComfyUI, Single node and FastTrack: Lightning-Speed Facial Transformation for your projects." + "description": "A quick and easy ComfyUI custom nodes for ultra-quality, lightning-speed face swapping of humans." }, { "author": "FlyingFireCo", @@ -4574,6 +4594,17 @@ "install_type": "git-clone", "description": "Nodes:Tiled KSampler, Asymmetric Tiled KSampler, Circular VAEDecode." }, + { + "author": "Nlar", + "title": "ComfyUI_CartoonSegmentation", + "reference": "https://github.com/Nlar/ComfyUI_CartoonSegmentation", + "files": [ + "https://github.com/Nlar/ComfyUI_CartoonSegmentation" + ], + "install_type": "git-clone", + "description": "Front end ComfyUI nodes for CartoonSegmentation Based upon the work of the CartoonSegmentation repository this project will provide a front end to some of the features." + }, + diff --git a/extension-node-map.json b/extension-node-map.json index 0c6e4354..a8078dc5 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -150,6 +150,15 @@ "title_aux": "ComfyUI_BadgerTools" } ], + "https://github.com/Acly/comfyui-inpaint-nodes": [ + [ + "INPAINT_ApplyFooocusInpaint", + "INPAINT_LoadFooocusInpaint" + ], + { + "title_aux": "ComfyUI Inpaint Nodes" + } + ], "https://github.com/Acly/comfyui-tooling-nodes": [ [ "ETN_ApplyMaskToImage", @@ -734,6 +743,7 @@ "Scribble_XDoG_Preprocessor", "SemSegPreprocessor", "ShufflePreprocessor", + "TEEDPreprocessor", "TilePreprocessor", "UniFormer-SemSegPreprocessor", "Unimatch_OptFlowPreprocessor", @@ -1438,6 +1448,21 @@ "title_aux": "ComfyUi-NoodleWebcam" } ], + "https://github.com/Nlar/ComfyUI_CartoonSegmentation": [ + [ + "AnimeSegmentation", + "KenBurnsConfigLoader", + "KenBurns_Processor", + "LoadImageFilename" + ], + { + "author": "Nels Larsen", + "description": "This extension offers a front end to the Cartoon Segmentation Project (https://github.com/CartoonSegmentation/CartoonSegmentation)", + "nickname": "CfyCS", + "title": "ComfyUI_CartoonSegmentation", + "title_aux": "ComfyUI_CartoonSegmentation" + } + ], "https://github.com/NotHarroweD/Harronode": [ [ "Harronode" @@ -1962,6 +1987,7 @@ "CR Color Gradient", "CR Color Panel", "CR Color Tint", + "CR Combine Prompt", "CR Combine Schedules", "CR Comic Panel Templates", "CR Composite Text", @@ -1978,6 +2004,7 @@ "CR Data Bus In", "CR Data Bus Out", "CR Debatch Frames", + "CR Diamond Panel", "CR Draw Perspective Text", "CR Draw Pie", "CR Draw Shape", @@ -2811,13 +2838,29 @@ "IDControlNetLoader", "IDGenerationNode", "ID_Prompt_Styler", - "InsightFaceLoader", + "InsightFaceLoader_Zho", "Ipadapter_instantidLoader" ], { "title_aux": "ComfyUI-InstantID" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": [ + [ + "BaseModel_Loader_fromhub", + "BaseModel_Loader_local", + "LoRALoader", + "NEW_PhotoMaker_Generation", + "PhotoMakerAdapter_Loader_fromhub", + "PhotoMakerAdapter_Loader_local", + "PhotoMaker_Generation", + "Prompt_Styler", + "Ref_Image_Preprocessing" + ], + { + "title_aux": "ComfyUI PhotoMaker (ZHO)" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": [ [ "QAlign_Zho" @@ -3714,6 +3757,8 @@ "LayerFilter: GaussianBlur", "LayerFilter: MotionBlur", "LayerMask: MaskBoxDetect", + "LayerMask: MaskEdgeShrink", + "LayerMask: MaskGrow", "LayerMask: MaskInvert", "LayerMask: MaskPreview", "LayerStyle: ColorOverlay", @@ -3724,9 +3769,12 @@ "LayerStyle: OuterGlow", "LayerStyle: Stroke", "LayerStyle_Illumine", + "LayerUtility: ColorImage", "LayerUtility: ColorPicker", "LayerUtility: ExtendCanvas", + "LayerUtility: GetColorTone", "LayerUtility: GetImageSize", + "LayerUtility: GradientImage", "LayerUtility: ImageBlend", "LayerUtility: ImageBlendAdvance", "LayerUtility: ImageOpacity", @@ -4009,6 +4057,8 @@ "ModelSamplingDiscrete", "PatchModelAddDownscale", "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", "PolyexponentialScheduler", "PorterDuffImageComposite", "PreviewImage", @@ -5200,8 +5250,11 @@ "FlowBuilderSetter", "FlowBuilderSetter (adv)", "Getter", + "ImageCropByRatio", + "ImageCropByRatioAndResize", "ImageGetter", "ImageMerger", + "ImagesCropByRatioAndResizeBatch", "KSamplerAdvancedCacheable", "KSamplerCacheable", "Setter", @@ -5299,6 +5352,8 @@ ], "https://github.com/longgui0318/comfyui-mask-util": [ [ + "Mask Region Info", + "Mask Selection Of Masks", "Split Masks" ], { @@ -6272,6 +6327,7 @@ "LimitNumber", "LoadImagesFromPath", "LoadImagesFromURL", + "LoraNames_", "MergeLayers", "MirroredImage", "MultiplicationNode", diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index 54dff2f0..e686f82c 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -11,7 +11,16 @@ - + { + "author": "unanan", + "title": "ComfyUI-clip-interrogator [WIP]", + "reference": "https://github.com/unanan/ComfyUI-clip-interrogator", + "files": [ + "https://github.com/unanan/ComfyUI-clip-interrogator" + ], + "install_type": "git-clone", + "description": "Unofficial ComfyUI extension of clip-interrogator" + }, { "author": "solarpush", "title": "comfyui_sendimage_node", @@ -32,16 +41,6 @@ "install_type": "git-clone", "description": "prism-tools" }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ZHO-ZHO-ZHO/ComfyUI PhotoMaker (WIP)", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker" - ], - "install_type": "git-clone", - "description": "Unofficial implementation of [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) for ComfyUI(WIP) Testing……\n[w/WARN:Currently, it is not distinguishable because it shares the same repository name as https://github.com/shiimizu/ComfyUI-PhotoMaker]" - }, { "author": "poisenbery", "title": "NudeNet-Detector-Provider [WIP]", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 3487ffee..9e4b5a49 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,46 @@ }, + { + "author": "Nlar", + "title": "ComfyUI_CartoonSegmentation", + "reference": "https://github.com/Nlar/ComfyUI_CartoonSegmentation", + "files": [ + "https://github.com/Nlar/ComfyUI_CartoonSegmentation" + ], + "install_type": "git-clone", + "description": "Front end ComfyUI nodes for CartoonSegmentation Based upon the work of the CartoonSegmentation repository this project will provide a front end to some of the features." + }, + { + "author": "Acly", + "title": "ComfyUI Inpaint Nodes", + "reference": "https://github.com/Acly/comfyui-inpaint-nodes", + "files": [ + "https://github.com/Acly/comfyui-inpaint-nodes" + ], + "install_type": "git-clone", + "description": "Experimental nodes for better inpainting with ComfyUI. Adds two nodes which allow using [a/Fooocus](https://github.com/Acly/comfyui-inpaint-nodes) inpaint model. It's a small and flexible patch which can be applied to any SDXL checkpoint and will transform it into an inpaint model. This model can then be used like other inpaint models, and provides the same benefits. [a/Read more](https://github.com/lllyasviel/Fooocus/discussions/414)" + }, + { + "author": "Abdullah Ozmantar", + "title": "InstaSwap Face Swap Node for ComfyUI", + "reference": "https://github.com/abdozmantar/ComfyUI-InstaSwap", + "files": [ + "https://github.com/abdozmantar/ComfyUI-InstaSwap" + ], + "install_type": "git-clone", + "description": "A quick and easy ComfyUI custom nodes for ultra-quality, lightning-speed face swapping of humans." + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI PhotoMaker (ZHO)", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) for ComfyUI" + }, { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-InstantID", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 0c6e4354..a8078dc5 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -150,6 +150,15 @@ "title_aux": "ComfyUI_BadgerTools" } ], + "https://github.com/Acly/comfyui-inpaint-nodes": [ + [ + "INPAINT_ApplyFooocusInpaint", + "INPAINT_LoadFooocusInpaint" + ], + { + "title_aux": "ComfyUI Inpaint Nodes" + } + ], "https://github.com/Acly/comfyui-tooling-nodes": [ [ "ETN_ApplyMaskToImage", @@ -734,6 +743,7 @@ "Scribble_XDoG_Preprocessor", "SemSegPreprocessor", "ShufflePreprocessor", + "TEEDPreprocessor", "TilePreprocessor", "UniFormer-SemSegPreprocessor", "Unimatch_OptFlowPreprocessor", @@ -1438,6 +1448,21 @@ "title_aux": "ComfyUi-NoodleWebcam" } ], + "https://github.com/Nlar/ComfyUI_CartoonSegmentation": [ + [ + "AnimeSegmentation", + "KenBurnsConfigLoader", + "KenBurns_Processor", + "LoadImageFilename" + ], + { + "author": "Nels Larsen", + "description": "This extension offers a front end to the Cartoon Segmentation Project (https://github.com/CartoonSegmentation/CartoonSegmentation)", + "nickname": "CfyCS", + "title": "ComfyUI_CartoonSegmentation", + "title_aux": "ComfyUI_CartoonSegmentation" + } + ], "https://github.com/NotHarroweD/Harronode": [ [ "Harronode" @@ -1962,6 +1987,7 @@ "CR Color Gradient", "CR Color Panel", "CR Color Tint", + "CR Combine Prompt", "CR Combine Schedules", "CR Comic Panel Templates", "CR Composite Text", @@ -1978,6 +2004,7 @@ "CR Data Bus In", "CR Data Bus Out", "CR Debatch Frames", + "CR Diamond Panel", "CR Draw Perspective Text", "CR Draw Pie", "CR Draw Shape", @@ -2811,13 +2838,29 @@ "IDControlNetLoader", "IDGenerationNode", "ID_Prompt_Styler", - "InsightFaceLoader", + "InsightFaceLoader_Zho", "Ipadapter_instantidLoader" ], { "title_aux": "ComfyUI-InstantID" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": [ + [ + "BaseModel_Loader_fromhub", + "BaseModel_Loader_local", + "LoRALoader", + "NEW_PhotoMaker_Generation", + "PhotoMakerAdapter_Loader_fromhub", + "PhotoMakerAdapter_Loader_local", + "PhotoMaker_Generation", + "Prompt_Styler", + "Ref_Image_Preprocessing" + ], + { + "title_aux": "ComfyUI PhotoMaker (ZHO)" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": [ [ "QAlign_Zho" @@ -3714,6 +3757,8 @@ "LayerFilter: GaussianBlur", "LayerFilter: MotionBlur", "LayerMask: MaskBoxDetect", + "LayerMask: MaskEdgeShrink", + "LayerMask: MaskGrow", "LayerMask: MaskInvert", "LayerMask: MaskPreview", "LayerStyle: ColorOverlay", @@ -3724,9 +3769,12 @@ "LayerStyle: OuterGlow", "LayerStyle: Stroke", "LayerStyle_Illumine", + "LayerUtility: ColorImage", "LayerUtility: ColorPicker", "LayerUtility: ExtendCanvas", + "LayerUtility: GetColorTone", "LayerUtility: GetImageSize", + "LayerUtility: GradientImage", "LayerUtility: ImageBlend", "LayerUtility: ImageBlendAdvance", "LayerUtility: ImageOpacity", @@ -4009,6 +4057,8 @@ "ModelSamplingDiscrete", "PatchModelAddDownscale", "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", "PolyexponentialScheduler", "PorterDuffImageComposite", "PreviewImage", @@ -5200,8 +5250,11 @@ "FlowBuilderSetter", "FlowBuilderSetter (adv)", "Getter", + "ImageCropByRatio", + "ImageCropByRatioAndResize", "ImageGetter", "ImageMerger", + "ImagesCropByRatioAndResizeBatch", "KSamplerAdvancedCacheable", "KSamplerCacheable", "Setter", @@ -5299,6 +5352,8 @@ ], "https://github.com/longgui0318/comfyui-mask-util": [ [ + "Mask Region Info", + "Mask Selection Of Masks", "Split Masks" ], { @@ -6272,6 +6327,7 @@ "LimitNumber", "LoadImagesFromPath", "LoadImagesFromURL", + "LoraNames_", "MergeLayers", "MirroredImage", "MultiplicationNode", diff --git a/node_db/tutorial/custom-node-list.json b/node_db/tutorial/custom-node-list.json index dd6b3650..9d1dffee 100644 --- a/node_db/tutorial/custom-node-list.json +++ b/node_db/tutorial/custom-node-list.json @@ -69,6 +69,26 @@ ], "install_type": "git-clone", "description": "Nodes:WW_ImageResize" + }, + { + "author": "bmz55", + "title": "bmz nodes", + "reference": "https://github.com/bmz55/comfyui-bmz-nodes", + "files": [ + "https://github.com/bmz55/comfyui-bmz-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Load Images From Dir With Name (Inspire - BMZ), Count Images In Dir (BMZ), Get Level Text (BMZ), Get Level Float (BMZ)" + }, + { + "author": "azure-dragon-ai", + "title": "ComfyUI-HPSv2-Nodes", + "reference": "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes", + "files": [ + "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Loader, Image Processor, Text Processor, ImageScore" } ] } \ No newline at end of file From 8077765d47ffd9317f34f642c5fd87baadb9814b Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 11:41:27 +0900 Subject: [PATCH 07/47] feat: windows_selector_event_loop_policy option is added --- README.md | 2 ++ __init__.py | 13 +++++++++++-- prestartup_script.py | 30 +++++++++++++++++++++++------- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6e439dc2..cd393443 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,8 @@ NODE_CLASS_MAPPINGS.update({ For the portable version, use `..\..\..\python_embeded\python.exe update-fix.py`. * For cases where nodes like `PreviewTextNode` from `ComfyUI_Custom_Nodes_AlekPet` are only supported as front-end nodes, we currently do not provide missing nodes for them. * Currently, `vid2vid` is not being updated, causing compatibility issues. +* If you encounter the error message `Overlapped Object has pending operation at deallocation on Comfyui Manager load` under Windows + * Edit `config.ini` file: add `windows_selector_event_loop_policy = False` ## TODO: Unconventional form of custom node list diff --git a/__init__.py b/__init__.py index 56a731ab..b6620dc1 100644 --- a/__init__.py +++ b/__init__.py @@ -28,7 +28,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 2, 5] +version = [2, 3] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") @@ -172,6 +172,7 @@ def write_config(): 'bypass_ssl': get_config()['bypass_ssl'], 'default_ui': get_config()['default_ui'], 'component_policy': get_config()['component_policy'], + "windows_selector_event_loop_policy": get_config()['windows_selector_event_loop_policy'], } with open(config_path, 'w') as configfile: config.write(configfile) @@ -192,6 +193,7 @@ def read_config(): 'bypass_ssl': default_conf['bypass_ssl'] if 'bypass_ssl' in default_conf else False, 'default_ui': default_conf['default_ui'] if 'default_ui' in default_conf else 'none', 'component_policy': default_conf['component_policy'] if 'component_policy' in default_conf else 'workflow', + "windows_selector_event_loop_policy": default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, } except Exception: @@ -203,7 +205,8 @@ def read_config(): 'share_option': 'all', 'bypass_ssl': False, 'default_ui': 'none', - 'component_policy': 'workflow' + 'component_policy': 'workflow', + "windows_selector_event_loop_policy": False } @@ -2332,9 +2335,15 @@ async def default_cache_update(): await asyncio.gather(a, b, c, d) + threading.Thread(target=lambda: asyncio.run(default_cache_update())).start() +if not os.path.exists(config_path): + get_config() + write_config() + + WEB_DIRECTORY = "js" NODE_CLASS_MAPPINGS = {} __all__ = ['NODE_CLASS_MAPPINGS'] diff --git a/prestartup_script.py b/prestartup_script.py index 35157d58..975d064d 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -457,11 +457,27 @@ if os.path.exists(script_list_path): del processed_install del pip_list -if platform.system() == 'Windows': + +def check_windows_event_loop_policy(): try: - import asyncio - import asyncio.windows_events - asyncio.set_event_loop_policy(asyncio.windows_events.WindowsSelectorEventLoopPolicy()) - print(f"[ComfyUI-Manager] Windows event loop policy mode enabled") - except Exception as e: - print(f"[ComfyUI-Manager] WARN: Windows initialization fail: {e}") \ No newline at end of file + import configparser + import ssl + config_path = os.path.join(os.path.dirname(__file__), "config.ini") + config = configparser.ConfigParser() + config.read(config_path) + default_conf = config['default'] + + if 'bypass_ssl' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true': + try: + import asyncio + import asyncio.windows_events + asyncio.set_event_loop_policy(asyncio.windows_events.WindowsSelectorEventLoopPolicy()) + print(f"[ComfyUI-Manager] Windows event loop policy mode enabled") + except Exception as e: + print(f"[ComfyUI-Manager] WARN: Windows initialization fail: {e}") + except Exception: + pass + + +if platform.system() == 'Windows': + check_windows_event_loop_policy() From 2646e84d3a1e82364c7527cdba530f7aae1ac632 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 13:10:16 +0900 Subject: [PATCH 08/47] improve: don't show fetch message when startup caching. fix: date based version compare instead of revision https://github.com/ltdrdata/ComfyUI-Manager/issues/363#issuecomment-1907200900 fix: copy&paste bug https://github.com/ltdrdata/ComfyUI-Manager/issues/357#issuecomment-1909284450 --- __init__.py | 62 +++++++++++++++++++++----------------------- prestartup_script.py | 2 +- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/__init__.py b/__init__.py index b6620dc1..ff4a25f4 100644 --- a/__init__.py +++ b/__init__.py @@ -7,7 +7,6 @@ import folder_paths import os import sys import threading -import datetime import locale import subprocess # don't remove this from tqdm.auto import tqdm @@ -17,6 +16,8 @@ import http.client import re import nodes import hashlib +from datetime import datetime + try: import cm_global @@ -102,9 +103,11 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url -comfy_ui_required_revision = 1917 +comfy_ui_required_revision = 1930 +comfy_ui_required_commit_datetime = datetime(2024, 1, 24, 0, 0, 0) + comfy_ui_revision = "Unknown" -comfy_ui_commit_date = "" +comfy_ui_commit_datetime = datetime(1900, 1, 1, 0, 0, 0) comfy_path = os.path.dirname(folder_paths.__file__) custom_nodes_path = os.path.join(comfy_path, 'custom_nodes') @@ -259,14 +262,7 @@ def set_component_policy(mode): def try_install_script(url, repo_path, install_cmd): - int_comfyui_revision = 0 - - if type(comfy_ui_revision) == int: - int_comfyui_revision = comfy_ui_revision - elif comfy_ui_revision.isdigit(): - int_comfyui_revision = int(comfy_ui_revision) - - if platform.system() == "Windows" and int_comfyui_revision >= comfy_ui_required_revision: + if platform.system() == "Windows" and comfy_ui_commit_datetime.date() >= comfy_ui_required_commit_datetime.date(): if not os.path.exists(startup_script_path): os.makedirs(startup_script_path) @@ -282,9 +278,9 @@ def try_install_script(url, repo_path, install_cmd): if platform.system() == "Windows": try: - if int(comfy_ui_revision) < comfy_ui_required_revision: + if comfy_ui_commit_datetime.date() < comfy_ui_required_commit_datetime.date(): print("\n\n###################################################################") - print(f"[WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision}) is too old. Please update to the latest version.") + print(f"[WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision})[{comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version.") print(f"[WARN] The extension installation feature may not work properly in the current installed ComfyUI version on Windows environment.") print("###################################################################\n\n") except: @@ -298,7 +294,7 @@ def try_install_script(url, repo_path, install_cmd): def print_comfyui_version(): global comfy_ui_revision - global comfy_ui_commit_date + global comfy_ui_commit_datetime global comfy_ui_hash try: @@ -310,14 +306,14 @@ def print_comfyui_version(): cm_global.variables['comfyui.revision'] = comfy_ui_revision + comfy_ui_commit_datetime = repo.head.commit.committed_datetime + try: - if int(comfy_ui_revision) < comfy_ui_required_revision: - print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision}) is too old. Please update to the latest version. ##\n\n") + if comfy_ui_commit_datetime.date() < comfy_ui_required_commit_datetime.date(): + print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision})[{comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n") except: pass - comfy_ui_commit_date = repo.head.commit.committed_datetime.date() - # process on_revision_detected --> if 'cm.on_revision_detected_handler' in cm_global.variables: for k, f in cm_global.variables['cm.on_revision_detected_handler']: @@ -333,9 +329,9 @@ def print_comfyui_version(): # <-- if current_branch == "master": - print(f"### ComfyUI Revision: {comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_date}'") + print(f"### ComfyUI Revision: {comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_datetime.date()}'") else: - print(f"### ComfyUI Revision: {comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_date}'") + print(f"### ComfyUI Revision: {comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_datetime.date()}'") except: print("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)") @@ -526,8 +522,10 @@ def git_pull(path): return True -async def get_data(uri): - print(f"FETCH DATA from: {uri}") +async def get_data(uri, silent=False): + if not silent: + print(f"FETCH DATA from: {uri}") + if uri.startswith("http"): async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: async with session.get(uri) as resp: @@ -595,7 +593,7 @@ def is_file_created_within_one_day(file_path): return False file_creation_time = os.path.getctime(file_path) - current_time = datetime.datetime.now().timestamp() + current_time = datetime.now().timestamp() time_difference = current_time - file_creation_time return time_difference <= 86400 @@ -1077,14 +1075,14 @@ def get_current_snapshot(): def save_snapshot_with_postfix(postfix): - now = datetime.datetime.now() + now = datetime.now() - date_time_format = now.strftime("%Y-%m-%d_%H-%M-%S") - file_name = f"{date_time_format}_{postfix}" + date_time_format = now.strftime("%Y-%m-%d_%H-%M-%S") + file_name = f"{date_time_format}_{postfix}" - path = os.path.join(os.path.dirname(__file__), 'snapshots', f"{file_name}.json") - with open(path, "w") as json_file: - json.dump(get_current_snapshot(), json_file, indent=4) + path = os.path.join(os.path.dirname(__file__), 'snapshots', f"{file_name}.json") + with open(path, "w") as json_file: + json.dump(get_current_snapshot(), json_file, indent=4) @server.PromptServer.instance.routes.get("/snapshot/get_current") @@ -1831,12 +1829,12 @@ async def get_notice(request): if match: markdown_content = match.group(1) - markdown_content += f"
ComfyUI: {comfy_ui_revision}[{comfy_ui_hash[:6]}]({comfy_ui_commit_date})" + markdown_content += f"
ComfyUI: {comfy_ui_revision}[{comfy_ui_hash[:6]}]({comfy_ui_commit_datetime.date()})" # markdown_content += f"
         ()" markdown_content += f"
Manager: {version_str}" try: - if comfy_ui_required_revision > int(comfy_ui_revision): + if comfy_ui_required_commit_datetime.date() > comfy_ui_commit_datetime.date(): markdown_content = f'

Your ComfyUI is too OUTDATED!!!

' + markdown_content except: pass @@ -2321,7 +2319,7 @@ async def default_cache_update(): cache_uri = str(simple_hash(uri)) + '_' + filename cache_uri = os.path.join(cache_dir, cache_uri) - json_obj = await get_data(uri) + json_obj = await get_data(uri, True) with cache_lock: with open(cache_uri, "w", encoding='utf-8') as file: diff --git a/prestartup_script.py b/prestartup_script.py index 975d064d..985da775 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -467,7 +467,7 @@ def check_windows_event_loop_policy(): config.read(config_path) default_conf = config['default'] - if 'bypass_ssl' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true': + if 'windows_selector_event_loop_policy' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true': try: import asyncio import asyncio.windows_events From 1230d327ffde6549ae9a8f3462fda6fa7945bb91 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 13:11:51 +0900 Subject: [PATCH 09/47] version marker --- __init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index ff4a25f4..48d8e29b 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 3] +version = [2, 3, 1] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") From 1e0a01720c47bda45fee52b8db3e3aa132f1b890 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 13:39:08 +0900 Subject: [PATCH 10/47] update DB --- custom-node-list.json | 8 ++++---- extension-node-map.json | 8 +++++--- node_db/new/custom-node-list.json | 8 ++++---- node_db/new/extension-node-map.json | 8 +++++--- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index dd5480b4..1402552b 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4506,13 +4506,13 @@ }, { "author": "shiimizu", - "title": "ComfyUI PhotoMaker", - "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker", + "title": "ComfyUI PhotoMaker Plus", + "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus", "files": [ - "https://github.com/shiimizu/ComfyUI-PhotoMaker" + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus" ], "install_type": "git-clone", - "description": "ComfyUI reference implementation for [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) models. [w/WARN:Currently, it is not distinguishable because it shares the same repository name as https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker]" + "description": "ComfyUI reference implementation for [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) models. [w/WARN:The repository name has been changed. For those who have previously installed it, please delete custom_nodes/ComfyUI-PhotoMaker from disk and reinstall this.]" }, { "author": "Qais Malkawi", diff --git a/extension-node-map.json b/extension-node-map.json index a8078dc5..385c94da 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -55,6 +55,7 @@ "DM_DareModelMerger", "DM_DareModelMergerMBW", "DM_MagnitudeMasker", + "DM_MaskOperations", "DM_MaskedModelMerger", "DM_NormalizeModel" ], @@ -6363,15 +6364,15 @@ "title_aux": "comfyui-mixlab-nodes" } ], - "https://github.com/shiimizu/ComfyUI-PhotoMaker": [ + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [ [ - "PhotoMakerEncode", + "PhotoMakerEncodePlus", "PhotoMakerLoader", "PhotoMakerStyles", "PrepImagesForClipVisionFromPath" ], { - "title_aux": "ComfyUI PhotoMaker" + "title_aux": "ComfyUI PhotoMaker Plus" } ], "https://github.com/shiimizu/ComfyUI-TiledDiffusion": [ @@ -6404,6 +6405,7 @@ ], "https://github.com/shingo1228/ComfyUI-send-eagle-slim": [ [ + "Send Eagle with text", "Send Webp Image to Eagle" ], { diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 9e4b5a49..685ead0f 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -172,13 +172,13 @@ }, { "author": "shiimizu", - "title": "ComfyUI PhotoMaker", - "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker", + "title": "ComfyUI PhotoMaker Plus", + "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus", "files": [ - "https://github.com/shiimizu/ComfyUI-PhotoMaker" + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus" ], "install_type": "git-clone", - "description": "ComfyUI reference implementation for [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) models. [w/WARN:Currently, it is not distinguishable because it shares the same repository name as https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker]" + "description": "ComfyUI reference implementation for [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) models. [w/WARN:The repository name has been changed. For those who have previously installed it, please delete custom_nodes/ComfyUI-PhotoMaker from disk and reinstall this.]" }, { "author": "darkpixel", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index a8078dc5..385c94da 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -55,6 +55,7 @@ "DM_DareModelMerger", "DM_DareModelMergerMBW", "DM_MagnitudeMasker", + "DM_MaskOperations", "DM_MaskedModelMerger", "DM_NormalizeModel" ], @@ -6363,15 +6364,15 @@ "title_aux": "comfyui-mixlab-nodes" } ], - "https://github.com/shiimizu/ComfyUI-PhotoMaker": [ + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [ [ - "PhotoMakerEncode", + "PhotoMakerEncodePlus", "PhotoMakerLoader", "PhotoMakerStyles", "PrepImagesForClipVisionFromPath" ], { - "title_aux": "ComfyUI PhotoMaker" + "title_aux": "ComfyUI PhotoMaker Plus" } ], "https://github.com/shiimizu/ComfyUI-TiledDiffusion": [ @@ -6404,6 +6405,7 @@ ], "https://github.com/shingo1228/ComfyUI-send-eagle-slim": [ [ + "Send Eagle with text", "Send Webp Image to Eagle" ], { From 65699ead73f95dcc38e6f3c7b6c16d545282e93e Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 14:34:09 +0900 Subject: [PATCH 11/47] update DB --- model-list.json | 10 ++++++++++ node_db/new/model-list.json | 12 +++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/model-list.json b/model-list.json index 017d49a4..aa9bbe5a 100644 --- a/model-list.json +++ b/model-list.json @@ -1740,6 +1740,16 @@ "reference": "https://github.com/xinntao/facexlib", "filename": "yolov5n-face.pth", "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5n-face.pth" + }, + { + "name": "photomaker-v1.bin", + "type": "photomaker", + "base": "photomaker", + "save_path": "photomaker", + "description": "PhotoMaker model", + "reference": "https://huggingface.co/TencentARC/PhotoMaker", + "filename": "photomaker-v1.bin", + "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" } ] } diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index 026190a3..236b5583 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -1,5 +1,16 @@ { "models": [ + { + "name": "photomaker-v1.bin", + "type": "photomaker", + "base": "photomaker", + "save_path": "photomaker", + "description": "PhotoMaker model", + "reference": "https://huggingface.co/TencentARC/PhotoMaker", + "filename": "photomaker-v1.bin", + "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" + }, + { "name": "TencentARC/motionctrl.pth", "type": "checkpoints", @@ -10,7 +21,6 @@ "filename": "motionctrl.pth", "url": "https://huggingface.co/TencentARC/MotionCtrl/resolve/main/motionctrl.pth" }, - { "name": "ip-adapter-faceid-plusv2_sd15.bin", "type": "IP-Adapter", From 819421ccbf8cf7678cabe47868fe716ea7227f88 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 15:13:38 +0900 Subject: [PATCH 12/47] update DB --- model-list.json | 4 ++-- node_db/new/model-list.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/model-list.json b/model-list.json index aa9bbe5a..b1bb0448 100644 --- a/model-list.json +++ b/model-list.json @@ -1744,9 +1744,9 @@ { "name": "photomaker-v1.bin", "type": "photomaker", - "base": "photomaker", + "base": "SDXL", "save_path": "photomaker", - "description": "PhotoMaker model", + "description": "PhotoMaker model. This model is compatible with SDXL.", "reference": "https://huggingface.co/TencentARC/PhotoMaker", "filename": "photomaker-v1.bin", "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index 236b5583..0780f781 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -3,9 +3,9 @@ { "name": "photomaker-v1.bin", "type": "photomaker", - "base": "photomaker", + "base": "SDXL", "save_path": "photomaker", - "description": "PhotoMaker model", + "description": "PhotoMaker model. This model is compatible with SDXL.", "reference": "https://huggingface.co/TencentARC/PhotoMaker", "filename": "photomaker-v1.bin", "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" From 8dd801435bb75aa1d24b7e382bac070a4c18bc51 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 25 Jan 2024 17:04:11 +0900 Subject: [PATCH 13/47] update DB --- model-list.json | 40 ++++++++++--------------------------- node_db/new/model-list.json | 24 +++++++++++----------- 2 files changed, 22 insertions(+), 42 deletions(-) diff --git a/model-list.json b/model-list.json index b1bb0448..be8c9576 100644 --- a/model-list.json +++ b/model-list.json @@ -673,8 +673,8 @@ { "name": "CLIPVision model (stabilityai/clip_vision_g)", "type": "clip_vision", - "base": "SDXL", - "save_path": "clip_vision/SDXL", + "base": "vit-g", + "save_path": "clip_vision", "description": "[3.69GB] clip_g vision model", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "clip_vision_g.safetensors", @@ -683,38 +683,18 @@ { "name": "CLIPVision model (openai/clip-vit-large)", "type": "clip_vision", - "base": "SD1.5", - "save_path": "clip_vision/SD1.5", + "base": "ViT-L", + "save_path": "clip_vision", "description": "[1.7GB] CLIPVision model (needed for styles model)", "reference": "https://huggingface.co/openai/clip-vit-large-patch14", - "filename": "pytorch_model.bin", - "url": "https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin" - }, - { - "name": "CLIPVision model (IP-Adapter) 1.5", - "type": "clip_vision", - "base": "SD1.5", - "save_path": "clip_vision/SD1.5", - "description": "[2.5GB] CLIPVision model (needed for IP-Adapter)", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "pytorch_model.bin", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/pytorch_model.bin" - }, - { - "name": "CLIPVision model (IP-Adapter) XL", - "type": "clip_vision", - "base": "SDXL", - "save_path": "clip_vision/SDXL", - "description": "[3.69GB] CLIPVision model (needed for IP-Adapter)", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "pytorch_model.bin", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/pytorch_model.bin" + "filename": "clip-vit-large-patch14.bin", + "url": "https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/model.safetensors" }, { "name": "CLIPVision model (IP-Adapter) CLIP-ViT-H-14-laion2B-s32B-b79K", "type": "clip_vision", - "base": "SD1.5", - "save_path": "clip_vision/SD1.5", + "base": "ViT-H", + "save_path": "clip_vision", "description": "[2.5GB] CLIPVision model (needed for IP-Adapter)", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors", @@ -723,8 +703,8 @@ { "name": "CLIPVision model (IP-Adapter) CLIP-ViT-bigG-14-laion2B-39B-b160k", "type": "clip_vision", - "base": "SDXL", - "save_path": "clip_vision/SDXL", + "base": "ViT-G", + "save_path": "clip_vision", "description": "[3.69GB] CLIPVision model (needed for IP-Adapter)", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors", diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index 0780f781..c99a6ad1 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -680,8 +680,8 @@ { "name": "CLIPVision model (stabilityai/clip_vision_g)", "type": "clip_vision", - "base": "SDXL", - "save_path": "clip_vision/SDXL", + "base": "vit-g", + "save_path": "clip_vision", "description": "[3.69GB] clip_g vision model", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "clip_vision_g.safetensors", @@ -689,24 +689,24 @@ }, { - "name": "CLIPVision model (IP-Adapter) 1.5", + "name": "CLIPVision model (IP-Adapter) CLIP-ViT-H-14-laion2B-s32B-b79K", "type": "clip_vision", - "base": "SD1.5", - "save_path": "clip_vision/SD1.5", + "base": "ViT-H", + "save_path": "clip_vision", "description": "[2.5GB] CLIPVision model (needed for IP-Adapter)", "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "pytorch_model.bin", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/pytorch_model.bin" + "filename": "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors" }, { - "name": "CLIPVision model (IP-Adapter) XL", + "name": "CLIPVision model (IP-Adapter) CLIP-ViT-bigG-14-laion2B-39B-b160k", "type": "clip_vision", - "base": "SDXL", - "save_path": "clip_vision/SDXL", + "base": "ViT-G", + "save_path": "clip_vision", "description": "[3.69GB] CLIPVision model (needed for IP-Adapter)", "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "pytorch_model.bin", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/pytorch_model.bin" + "filename": "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors" } ] } From 8aa035c5b564ce866d7ddfca99079b47eca88871 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 21:51:37 +0900 Subject: [PATCH 14/47] update DB --- model-list.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/model-list.json b/model-list.json index be8c9576..9fc8e227 100644 --- a/model-list.json +++ b/model-list.json @@ -1555,7 +1555,7 @@ "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", - "description": "IP-Adapter-FaceID Model (SD1.5)", + "description": "IP-Adapter-FaceID Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sd15.bin", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin" @@ -1565,7 +1565,7 @@ "type": "lora", "base": "SD1.5", "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID LoRA Model (SD1.5)", + "description": "IP-Adapter-FaceID LoRA Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sd15_lora.safetensors", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors" @@ -1575,7 +1575,7 @@ "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", - "description": "IP-Adapter-FaceID-Plus V2 Model (SD1.5)", + "description": "IP-Adapter-FaceID-Plus V2 Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plusv2_sd15.bin", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15.bin" @@ -1585,7 +1585,7 @@ "type": "lora", "base": "SD1.5", "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SD1.5)", + "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors" @@ -1605,7 +1605,7 @@ "type": "IP-Adapter", "base": "SDXL", "save_path": "ipadapter", - "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints", + "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter_sdxl_vit-h.safetensors", "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors" @@ -1615,7 +1615,7 @@ "type": "IP-Adapter", "base": "SDXL", "save_path": "ipadapter", - "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints", + "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-plus_sdxl_vit-h.safetensors", "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors" @@ -1625,7 +1625,7 @@ "type": "IP-Adapter", "base": "SDXL", "save_path": "ipadapter", - "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints", + "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-plus-face_sdxl_vit-h.safetensors", "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors" From 753fe58adc84efcfd1ee8f25709d4811dc9956c6 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 21:53:56 +0900 Subject: [PATCH 15/47] update DB --- model-list.json | 10 ++++++++++ node_db/new/model-list.json | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/model-list.json b/model-list.json index 9fc8e227..f2ab2822 100644 --- a/model-list.json +++ b/model-list.json @@ -1560,6 +1560,16 @@ "filename": "ip-adapter-faceid_sd15.bin", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin" }, + { + "name": "ip-adapter-plus_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-plus_sd15.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors" + }, { "name": "ip-adapter-faceid_sd15_lora.safetensors", "type": "lora", diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index c99a6ad1..2fd9c0e7 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -83,6 +83,16 @@ "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors" }, + { + "name": "ip-adapter-plus_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-plus_sd15.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors" + }, { "name": "ip-adapter-faceid_sd15.bin", "type": "IP-Adapter", From 6eb90a3f4476b1c4fbee500772bee9439907c669 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 21:55:37 +0900 Subject: [PATCH 16/47] update DB --- model-list.json | 6 +++--- node_db/new/model-list.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/model-list.json b/model-list.json index f2ab2822..797aff02 100644 --- a/model-list.json +++ b/model-list.json @@ -1561,14 +1561,14 @@ "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin" }, { - "name": "ip-adapter-plus_sd15.safetensors", + "name": "ip-adapter-faceid-plus_sd15.bin", "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-plus_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors" + "filename": "ip-adapter-faceid-plus_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin" }, { "name": "ip-adapter-faceid_sd15_lora.safetensors", diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index 2fd9c0e7..a3d0c3ef 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -84,14 +84,14 @@ }, { - "name": "ip-adapter-plus_sd15.safetensors", + "name": "ip-adapter-faceid-plus_sd15.bin", "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-plus_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors" + "filename": "ip-adapter-faceid-plus_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin" }, { "name": "ip-adapter-faceid_sd15.bin", From a8b94416c576d84d2e62143aa01cbfbc521a9018 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 22:17:28 +0900 Subject: [PATCH 17/47] update DB --- model-list.json | 50 +++++++++++++++++++++++++++++++++++++ node_db/new/model-list.json | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/model-list.json b/model-list.json index 797aff02..81f92d37 100644 --- a/model-list.json +++ b/model-list.json @@ -1570,6 +1570,36 @@ "filename": "ip-adapter-faceid-plus_sd15.bin", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin" }, + { + "name": "ip-adapter-faceid-portrait_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin" + }, + { + "name": "ip-adapter-faceid_sdxl.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin" + }, + { + "name": "ip-adapter-faceid-plusv2_sdxl.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin" + }, { "name": "ip-adapter-faceid_sd15_lora.safetensors", "type": "lora", @@ -1600,6 +1630,26 @@ "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors" }, + { + "name": "ip-adapter-faceid_sdxl_lora.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sdxl_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors" + }, + { + "name": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "type": "lora", + "base": "SDXL", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors" + }, { "name": "ip-adapter_sdxl.safetensors", "type": "IP-Adapter", diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index a3d0c3ef..c830a39c 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -10,6 +10,46 @@ "filename": "photomaker-v1.bin", "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" }, + { + "name": "ip-adapter-faceid_sdxl.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin" + }, + { + "name": "ip-adapter-faceid-plusv2_sdxl.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin" + }, + { + "name": "ip-adapter-faceid_sdxl_lora.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sdxl_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors" + }, + { + "name": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "type": "lora", + "base": "SDXL", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors" + }, { "name": "TencentARC/motionctrl.pth", @@ -83,6 +123,16 @@ "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors" }, + { + "name": "ip-adapter-faceid-portrait_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin" + }, { "name": "ip-adapter-faceid-plus_sd15.bin", "type": "IP-Adapter", From 9a287b086b805809580402b4ac50b123b33933e8 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 22:22:39 +0900 Subject: [PATCH 18/47] update DB --- model-list.json | 4 ++-- node_db/new/model-list.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/model-list.json b/model-list.json index 81f92d37..9295f37b 100644 --- a/model-list.json +++ b/model-list.json @@ -1632,9 +1632,9 @@ }, { "name": "ip-adapter-faceid_sdxl_lora.safetensors", - "type": "IP-Adapter", + "type": "lora", "base": "SDXL", - "save_path": "ipadapter", + "save_path": "loras/ipadapter", "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sdxl_lora.safetensors", diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index c830a39c..d4863197 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -32,9 +32,9 @@ }, { "name": "ip-adapter-faceid_sdxl_lora.safetensors", - "type": "IP-Adapter", + "type": "lora", "base": "SDXL", - "save_path": "ipadapter", + "save_path": "loras/ipadapter", "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sdxl_lora.safetensors", From f8e13e7ee8c6a8d47451a3c0076a0ce6f61d6a3c Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 22:25:33 +0900 Subject: [PATCH 19/47] update DB --- model-list.json | 10 ++++++++++ node_db/new/model-list.json | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/model-list.json b/model-list.json index 9295f37b..b41e8948 100644 --- a/model-list.json +++ b/model-list.json @@ -1610,6 +1610,16 @@ "filename": "ip-adapter-faceid_sd15_lora.safetensors", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors" }, + { + "name": "ip-adapter-faceid-plus_sd15_lora.safetensors", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID Plus LoRA Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plus_sd15_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors" + }, { "name": "ip-adapter-faceid-plusv2_sd15.bin", "type": "IP-Adapter", diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index d4863197..a640b191 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -81,6 +81,16 @@ "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors" }, + { + "name": "ip-adapter-faceid-plus_sd15_lora.safetensors", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID Plus LoRA Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plus_sd15_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors" + }, { "name": "ControlNet-HandRefiner-pruned (inpaint-depth-hand; fp16)", From 62c9c00b20ecba984350475cdfc0a6085fce3a6c Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 25 Jan 2024 23:26:30 +0900 Subject: [PATCH 20/47] update DB --- extension-node-map.json | 12 +++++++++++- node_db/dev/extension-node-map.json | 27 +++++++++++---------------- node_db/new/extension-node-map.json | 12 +++++++++++- 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index 385c94da..2f543453 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -948,6 +948,10 @@ ], "https://github.com/Inzaniak/comfyui-ranbooru": [ [ + "PromptBackground", + "PromptLimit", + "PromptMix", + "PromptRandomWeight", "Ranbooru", "RandomPicturePath" ], @@ -2266,6 +2270,8 @@ "tri3d-face-recognise", "tri3d-float-to-image", "tri3d-fuzzification", + "tri3d-image-mask-2-box", + "tri3d-image-mask-box-2-image", "tri3d-interaction-canny", "tri3d-load-pose-json", "tri3d-pose-adaption", @@ -3668,6 +3674,7 @@ "Load CheckPoint DragNUWA", "Load MotionBrush From Optical Flow", "Load MotionBrush From Optical Flow Directory", + "Load MotionBrush From Optical Flow Without Model", "Load MotionBrush From Tracking Points", "Load Pose KeyPoints", "Loop", @@ -3747,7 +3754,9 @@ ], "https://github.com/chaojie/ComfyUI-RAFT": [ [ - "RAFT Run" + "Load MotionBrush", + "RAFT Run", + "Save MotionBrush" ], { "title_aux": "ComfyUI-RAFT" @@ -5580,6 +5589,7 @@ "GlobalSeed //Inspire", "HEDPreprocessor_Provider_for_SEGS //Inspire", "HyperTile //Inspire", + "IPAdapterModelHelper //Inspire", "ImageBatchSplitter //Inspire", "InpaintPreprocessor_Provider_for_SEGS //Inspire", "KSampler //Inspire", diff --git a/node_db/dev/extension-node-map.json b/node_db/dev/extension-node-map.json index f710d52e..91d0d9bb 100644 --- a/node_db/dev/extension-node-map.json +++ b/node_db/dev/extension-node-map.json @@ -122,22 +122,6 @@ "title_aux": "ComfyUI-AnyText\uff08WIP\uff09" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker": [ - [ - "BaseModel_Loader_fromhub", - "BaseModel_Loader_local", - "LoRALoader", - "NEW_PhotoMaker_Generation", - "PhotoMakerAdapter_Loader_fromhub", - "PhotoMakerAdapter_Loader_local", - "PhotoMaker_Generation", - "Prompt_Styler", - "Ref_Image_Preprocessing" - ], - { - "title_aux": "ZHO-ZHO-ZHO/ComfyUI PhotoMaker (WIP)" - } - ], "https://github.com/alt-key-project/comfyui-dream-video-batches": [ [ "Blended Transition [DVB]", @@ -298,6 +282,8 @@ "ModelSamplingDiscrete", "PatchModelAddDownscale", "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", "PolyexponentialScheduler", "PorterDuffImageComposite", "PreviewImage", @@ -677,6 +663,15 @@ "title_aux": "comfyui_sendimage_node" } ], + "https://github.com/unanan/ComfyUI-clip-interrogator": [ + [ + "ComfyUIClipInterrogator", + "ShowText" + ], + { + "title_aux": "ComfyUI-clip-interrogator [WIP]" + } + ], "https://github.com/wormley/comfyui-wormley-nodes": [ [ "CheckpointVAELoaderSimpleText", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 385c94da..2f543453 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -948,6 +948,10 @@ ], "https://github.com/Inzaniak/comfyui-ranbooru": [ [ + "PromptBackground", + "PromptLimit", + "PromptMix", + "PromptRandomWeight", "Ranbooru", "RandomPicturePath" ], @@ -2266,6 +2270,8 @@ "tri3d-face-recognise", "tri3d-float-to-image", "tri3d-fuzzification", + "tri3d-image-mask-2-box", + "tri3d-image-mask-box-2-image", "tri3d-interaction-canny", "tri3d-load-pose-json", "tri3d-pose-adaption", @@ -3668,6 +3674,7 @@ "Load CheckPoint DragNUWA", "Load MotionBrush From Optical Flow", "Load MotionBrush From Optical Flow Directory", + "Load MotionBrush From Optical Flow Without Model", "Load MotionBrush From Tracking Points", "Load Pose KeyPoints", "Loop", @@ -3747,7 +3754,9 @@ ], "https://github.com/chaojie/ComfyUI-RAFT": [ [ - "RAFT Run" + "Load MotionBrush", + "RAFT Run", + "Save MotionBrush" ], { "title_aux": "ComfyUI-RAFT" @@ -5580,6 +5589,7 @@ "GlobalSeed //Inspire", "HEDPreprocessor_Provider_for_SEGS //Inspire", "HyperTile //Inspire", + "IPAdapterModelHelper //Inspire", "ImageBatchSplitter //Inspire", "InpaintPreprocessor_Provider_for_SEGS //Inspire", "KSampler //Inspire", From 86ecc194ac990342429f24ec3dc1a349b877b5d8 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 26 Jan 2024 13:31:01 +0900 Subject: [PATCH 21/47] fix: badge drawer is overriding node.onDrawForeground --- __init__.py | 2 +- js/comfyui-manager.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 48d8e29b..20cd4f69 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 3, 1] +version = [2, 3, 2] 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/js/comfyui-manager.js b/js/comfyui-manager.js index 2452dbea..341f2a09 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -1271,7 +1271,10 @@ app.registerExtension({ async nodeCreated(node, app) { if(!node.badge_enabled) { node.getNickname = function () { return getNickname(node, node.comfyClass.trim()) }; - const orig = node.__proto__.onDrawForeground; + let orig = node.onDrawForeground; + if(!orig) + orig = node.__proto__.onDrawForeground; + node.onDrawForeground = function (ctx) { drawBadge(node, orig, arguments) }; From 9ab66cf1aea122d57e077eba1eb1105846ebb45f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 26 Jan 2024 17:12:05 +0900 Subject: [PATCH 22/47] update DB --- custom-node-list.json | 12 +++++- extension-node-map.json | 23 ++++++++++- node_db/new/custom-node-list.json | 64 ++++++----------------------- node_db/new/extension-node-map.json | 23 ++++++++++- 4 files changed, 67 insertions(+), 55 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 1402552b..489f59f8 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4382,7 +4382,7 @@ "https://github.com/abyz22/image_control" ], "install_type": "git-clone", - "description": "Nodes:abyz22_Padding Image, abyz22_ImpactWildcardEncode, abyz22_setimageinfo, abyz22_SaveImage, abyz22_ImpactWildcardEncode_GetPrompt, abyz22_SetQueue, abyz22_drawmask, abyz22_FirstNonNull, abyz22_blendimages, abyz22_blend_onecolor" + "description": "Nodes:abyz22_Padding Image, abyz22_ImpactWildcardEncode, abyz22_setimageinfo, abyz22_SaveImage, abyz22_ImpactWildcardEncode_GetPrompt, abyz22_SetQueue, abyz22_drawmask, abyz22_FirstNonNull, abyz22_blendimages, abyz22_blend_onecolor. Please check workflow in [a/https://github.com/abyz22/image_control](https://github.com/abyz22/image_control)" }, { "author": "HAL41", @@ -4604,6 +4604,16 @@ "install_type": "git-clone", "description": "Front end ComfyUI nodes for CartoonSegmentation Based upon the work of the CartoonSegmentation repository this project will provide a front end to some of the features." }, + { + "author": "godspede", + "title": "ComfyUI Substring", + "reference": "https://github.com/godspede/ComfyUI_Substring", + "files": [ + "https://github.com/godspede/ComfyUI_Substring" + ], + "install_type": "git-clone", + "description": "Just a simple substring node that takes text and length as input, and outputs the first length characters." + }, diff --git a/extension-node-map.json b/extension-node-map.json index 2f543453..2927ff5a 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -55,9 +55,13 @@ "DM_DareModelMerger", "DM_DareModelMergerMBW", "DM_MagnitudeMasker", + "DM_MaskEdit", "DM_MaskOperations", + "DM_MaskReporting", "DM_MaskedModelMerger", - "DM_NormalizeModel" + "DM_ModelReporting", + "DM_NormalizeModel", + "DM_SimpleMasker" ], { "title_aux": "ComfyUI-DareMerge" @@ -154,6 +158,7 @@ "https://github.com/Acly/comfyui-inpaint-nodes": [ [ "INPAINT_ApplyFooocusInpaint", + "INPAINT_FillInpaintArea", "INPAINT_LoadFooocusInpaint" ], { @@ -716,6 +721,7 @@ "DWPreprocessor", "DensePosePreprocessor", "DepthAnythingPreprocessor", + "DiffusionEdge_Preprocessor", "FacialPartColoringFromPoseKps", "FakeScribblePreprocessor", "HEDPreprocessor", @@ -952,7 +958,9 @@ "PromptLimit", "PromptMix", "PromptRandomWeight", + "PromptRemove", "Ranbooru", + "RanbooruURL", "RandomPicturePath" ], { @@ -3667,6 +3675,8 @@ ], "https://github.com/chaojie/ComfyUI-DragNUWA": [ [ + "BrushMotion", + "CompositeMotionBrush", "DragNUWA Run", "DragNUWA Run MotionBrush", "Get First Image", @@ -4265,6 +4275,7 @@ "https://github.com/darkpixel/darkprompts": [ [ "DarkCombine", + "DarkLoRALoader", "DarkPrompt" ], { @@ -4776,6 +4787,14 @@ "title_aux": "Load Image From Base64 URI" } ], + "https://github.com/godspede/ComfyUI_Substring": [ + [ + "SubstringTheory" + ], + { + "title_aux": "ComfyUI Substring" + } + ], "https://github.com/guoyk93/yk-node-suite-comfyui": [ [ "YKImagePadForOutpaint", @@ -6351,6 +6370,7 @@ "RandomPrompt", "ResizeImageMixlab", "SamplerNames_", + "SaveImageToLocal", "ScreenShare", "Seed_", "ShowLayer", @@ -7136,6 +7156,7 @@ "EZLoadImgBatchFromUrlsNode", "EZLoadImgFromUrlNode", "EZRemoveImgBackground", + "EZS3Uploader", "EZVideoCombiner" ], { diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 685ead0f..ba966289 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -9,7 +9,17 @@ "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": "godspede", + "title": "ComfyUI Substring", + "reference": "https://github.com/godspede/ComfyUI_Substring", + "files": [ + "https://github.com/godspede/ComfyUI_Substring" + ], + "install_type": "git-clone", + "description": "Just a simple substring node that takes text and length as input, and outputs the first length characters." + }, { "author": "Nlar", "title": "ComfyUI_CartoonSegmentation", @@ -378,7 +388,7 @@ "https://github.com/abyz22/image_control" ], "install_type": "git-clone", - "description": "Nodes:abyz22_Padding Image, abyz22_ImpactWildcardEncode, abyz22_setimageinfo, abyz22_SaveImage, abyz22_ImpactWildcardEncode_GetPrompt, abyz22_SetQueue, abyz22_drawmask, abyz22_FirstNonNull, abyz22_blendimages, abyz22_blend_onecolor" + "description": "Nodes:abyz22_Padding Image, abyz22_ImpactWildcardEncode, abyz22_setimageinfo, abyz22_SaveImage, abyz22_ImpactWildcardEncode_GetPrompt, abyz22_SetQueue, abyz22_drawmask, abyz22_FirstNonNull, abyz22_blendimages, abyz22_blend_onecolor. Please check workflow in [a/https://github.com/abyz22/image_control](https://github.com/abyz22/image_control)" }, { "author": "foxtrot-roger", @@ -681,56 +691,6 @@ ], "install_type": "git-clone", "description": "Aspect ratio selector for ComfyUI based on [a/sd-webui-ar](https://github.com/alemelis/sd-webui-ar?tab=readme-ov-file)." - }, - { - "author": "Crystian", - "title": "Crystools-save", - "reference": "https://github.com/crystian/ComfyUI-Crystools-save", - "files": [ - "https://github.com/crystian/ComfyUI-Crystools-save" - ], - "install_type": "git-clone", - "description": "With this quality of life extension, you can save your workflow with a specific name and include additional details such as the author, a description, and the version (in metadata/json). Important: When you share your workflow (via png/json), others will be able to see your information!" - }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-Q-Align", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align" - ], - "install_type": "git-clone", - "description": "Nodes:Q-Align Scoring. Implementation of [a/Q-Align](https://arxiv.org/abs/2312.17090) for ComfyUI" - }, - { - "author": "Ryuukeisyou", - "title": "comfyui_image_io_helpers", - "reference": "https://github.com/Ryuukeisyou/comfyui_image_io_helpers", - "files": [ - "https://github.com/Ryuukeisyou/comfyui_image_io_helpers" - ], - "install_type": "git-clone", - "description": "Nodes:ImageLoadFromBase64, ImageLoadByPath, ImageLoadAsMaskByPath, ImageSaveToPath, ImageSaveAsBase64." - }, - { - "author": "Millyarde", - "title": "Pomfy - Photoshop and ComfyUI 2-way sync", - "reference": "https://github.com/Millyarde/Pomfy", - "files": [ - "https://github.com/Millyarde/Pomfy" - ], - "install_type": "git-clone", - "description": "Photoshop custom nodes inside of ComfyUi, send and get data via Photoshop UXP plugin for cross platform support" - }, - { - "author": "ntc-ai", - "title": "ComfyUI - Apply LoRA Stacker with DARE", - "reference": "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge", - "files": [ - "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge" - ], - "install_type": "git-clone", - "description": "An experiment about combining multiple LoRAs with [a/DARE](https://arxiv.org/pdf/2311.03099.pdf)" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 2f543453..2927ff5a 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -55,9 +55,13 @@ "DM_DareModelMerger", "DM_DareModelMergerMBW", "DM_MagnitudeMasker", + "DM_MaskEdit", "DM_MaskOperations", + "DM_MaskReporting", "DM_MaskedModelMerger", - "DM_NormalizeModel" + "DM_ModelReporting", + "DM_NormalizeModel", + "DM_SimpleMasker" ], { "title_aux": "ComfyUI-DareMerge" @@ -154,6 +158,7 @@ "https://github.com/Acly/comfyui-inpaint-nodes": [ [ "INPAINT_ApplyFooocusInpaint", + "INPAINT_FillInpaintArea", "INPAINT_LoadFooocusInpaint" ], { @@ -716,6 +721,7 @@ "DWPreprocessor", "DensePosePreprocessor", "DepthAnythingPreprocessor", + "DiffusionEdge_Preprocessor", "FacialPartColoringFromPoseKps", "FakeScribblePreprocessor", "HEDPreprocessor", @@ -952,7 +958,9 @@ "PromptLimit", "PromptMix", "PromptRandomWeight", + "PromptRemove", "Ranbooru", + "RanbooruURL", "RandomPicturePath" ], { @@ -3667,6 +3675,8 @@ ], "https://github.com/chaojie/ComfyUI-DragNUWA": [ [ + "BrushMotion", + "CompositeMotionBrush", "DragNUWA Run", "DragNUWA Run MotionBrush", "Get First Image", @@ -4265,6 +4275,7 @@ "https://github.com/darkpixel/darkprompts": [ [ "DarkCombine", + "DarkLoRALoader", "DarkPrompt" ], { @@ -4776,6 +4787,14 @@ "title_aux": "Load Image From Base64 URI" } ], + "https://github.com/godspede/ComfyUI_Substring": [ + [ + "SubstringTheory" + ], + { + "title_aux": "ComfyUI Substring" + } + ], "https://github.com/guoyk93/yk-node-suite-comfyui": [ [ "YKImagePadForOutpaint", @@ -6351,6 +6370,7 @@ "RandomPrompt", "ResizeImageMixlab", "SamplerNames_", + "SaveImageToLocal", "ScreenShare", "Seed_", "ShowLayer", @@ -7136,6 +7156,7 @@ "EZLoadImgBatchFromUrlsNode", "EZLoadImgFromUrlNode", "EZRemoveImgBackground", + "EZS3Uploader", "EZVideoCombiner" ], { From 8b3d71fbcf97764c61046b75c4f7c58e948fcf2c Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 26 Jan 2024 18:07:28 +0900 Subject: [PATCH 23/47] feat: Copy the connections of the nearest node by double-clicking. --- README.md | 8 ++++++++ __init__.py | 2 +- js/node_fixer.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cd393443..9171868c 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ This repository provides Colab notebooks that allow you to install and use Comfy * Support for automatically installing dependencies of custom nodes upon restarting Colab notebooks. ## Changes +* **2.4** Copy the connections of the nearest node by double-clicking. * **2.2.3** Support Components System * **0.29** Add `Update all` feature * **0.25** support db channel @@ -253,6 +254,13 @@ NODE_CLASS_MAPPINGS.update({ ![missing-list](misc/missing-list.png) +## Additional Feature +* Fix node(recreate): When right-clicking on a node and selecting `Fix node (recreate)`, you can recreate the node. The widget's values are reset, while the connections maintain those with the same names. + * It is used to correct errors in nodes of old workflows created before, which are incompatible with the version changes of custom nodes. +* Connection copy: Double-clicking a node copies the connections of the nearest node. + * However, this action is only possible when there are no existing connections, and since duplicate connections are not allowed in the output, connections from the existing node's output will disappear. + * This feature copies only the input and output that match the names. + ## 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 20cd4f69..7fe06e5e 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 3, 2] +version = [2, 4] 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/js/node_fixer.js b/js/node_fixer.js index 30af6402..d0513131 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -10,6 +10,41 @@ function addMenuHandler(nodeType, cb) { }; } +function distance(node1, node2) { + let dx = node1.pos[0] - node2.pos[0]; + let dy = node1.pos[1] - node2.pos[1]; + return Math.sqrt(dx * dx + dy * dy); +} + +function lookup_nearest_nodes(node) { + let x = node.pos[0] + node.size[0]/2; + let y = node.pos[1] + node.size[1]/2; + + let nearest_distance = Infinity; + let nearest_node = null; + for(let other of app.graph._nodes) { + if(other === node) + continue; + + let dist = distance(node, other); + if (dist < nearest_distance) { + nearest_distance = dist; + nearest_node = other; + } + } + + return nearest_node; +} + +function copy_connections(src, dest) { + if(src.inputs && dest.inputs) { + + } + + if(src.outputs && dest.outputs) { + + } +} function node_info_copy(src, dest) { // copy input connections @@ -52,6 +87,19 @@ function node_info_copy(src, dest) { app.registerExtension({ name: "Comfy.Manager.NodeFixer", + async nodeCreated(node, app) { + let orig_dblClick = node.onDblClick; + node.onDblClick = () => { + orig_dblClick?.apply?.(this, arguments); + if(node.inputs && node.outputs && node.inputs.length == 0 && node.outputs.length == 0) + return; + + console.log(arguments); + let src_node = lookup_nearest_nodes(node); + node_info_copy(src_node, node); + } + }, + beforeRegisterNodeDef(nodeType, nodeData, app) { addMenuHandler(nodeType, function (_, options) { options.push({ From 2f0c7fb2be49dd35bbb3f4f7a5503eb92014580f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 26 Jan 2024 18:30:33 +0900 Subject: [PATCH 24/47] fix: connection copying - don't copy if distance > 1000 - remove dbg message - check nearest node not found --- __init__.py | 2 +- js/node_fixer.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/__init__.py b/__init__.py index 7fe06e5e..4de06a6c 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 4] +version = [2, 4, 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/js/node_fixer.js b/js/node_fixer.js index d0513131..f8cc7c97 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -27,7 +27,7 @@ function lookup_nearest_nodes(node) { continue; let dist = distance(node, other); - if (dist < nearest_distance) { + if (dist < nearest_distance && dist < 1000) { nearest_distance = dist; nearest_node = other; } @@ -94,9 +94,9 @@ app.registerExtension({ if(node.inputs && node.outputs && node.inputs.length == 0 && node.outputs.length == 0) return; - console.log(arguments); let src_node = lookup_nearest_nodes(node); - node_info_copy(src_node, node); + if(src_node) + node_info_copy(src_node, node); } }, From f7ce717aeae247d5f31dd5bd0ffb524e9737ec73 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 27 Jan 2024 00:30:29 +0900 Subject: [PATCH 25/47] update DB --- custom-node-list.json | 31 ++++++++++++++++++ extension-node-map.json | 33 +++++++++++++++++++ node_db/new/custom-node-list.json | 50 +++++++++++++++++++++++++++++ node_db/new/extension-node-map.json | 33 +++++++++++++++++++ 4 files changed, 147 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 489f59f8..6977d681 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4614,6 +4614,37 @@ "install_type": "git-clone", "description": "Just a simple substring node that takes text and length as input, and outputs the first length characters." }, + { + "author": "gokayfem", + "title": "VLM_nodes", + "reference": "https://github.com/gokayfem/ComfyUI_VLM_nodes", + "files": [ + "https://github.com/gokayfem/ComfyUI_VLM_nodes" + ], + "install_type": "git-clone", + "description": "Nodes:VisionQuestionAnswering Node, PromptGenerate Node" + }, + { + "author": "Hiero207", + "title": "ComfyUI-Hiero-Nodes", + "reference": "https://github.com/Hiero207/ComfyUI-Hiero-Nodes", + "files": [ + "https://github.com/Hiero207/ComfyUI-Hiero-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Post to Discord w/ Webhook" + }, + { + "author": "azure-dragon-ai", + "title": "ComfyUI-ClipScore-Nodes", + "reference": "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes", + "files": [ + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:ImageScore, Loader, Image Processor, Real Image Processor, Fake Image Processor, Text Processor. ComfyUI Nodes for ClipScore" + }, + diff --git a/extension-node-map.json b/extension-node-map.json index 2927ff5a..9a61e7df 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -61,6 +61,7 @@ "DM_MaskedModelMerger", "DM_ModelReporting", "DM_NormalizeModel", + "DM_QuadMasker", "DM_SimpleMasker" ], { @@ -932,6 +933,14 @@ "title_aux": "comfyui-enhanced-save-node" } ], + "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": [ + [ + "Post to Discord w/ Webhook" + ], + { + "title_aux": "ComfyUI-Hiero-Nodes" + } + ], "https://github.com/IDGallagher/ComfyUI-IG-Nodes": [ [ "IG Analyze SSIM", @@ -3297,6 +3306,19 @@ "title_aux": "avatar-graph-comfyui" } ], + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": [ + [ + "HaojihuiClipScoreFakeImageProcessor", + "HaojihuiClipScoreImageProcessor", + "HaojihuiClipScoreImageScore", + "HaojihuiClipScoreLoader", + "HaojihuiClipScoreRealImageProcessor", + "HaojihuiClipScoreTextProcessor" + ], + { + "title_aux": "ComfyUI-ClipScore-Nodes" + } + ], "https://github.com/badjeff/comfyui_lora_tag_loader": [ [ "LoraTagLoader" @@ -3686,6 +3708,7 @@ "Load MotionBrush From Optical Flow Directory", "Load MotionBrush From Optical Flow Without Model", "Load MotionBrush From Tracking Points", + "Load MotionBrush From Tracking Points Without Model", "Load Pose KeyPoints", "Loop", "LoopEnd_IMAGE", @@ -4795,6 +4818,15 @@ "title_aux": "ComfyUI Substring" } ], + "https://github.com/gokayfem/ComfyUI_VLM_nodes": [ + [ + "PromptGenerate", + "VisionTextQuestion" + ], + { + "title_aux": "VLM_nodes" + } + ], "https://github.com/guoyk93/yk-node-suite-comfyui": [ [ "YKImagePadForOutpaint", @@ -5451,6 +5483,7 @@ "ImpactConditionalBranchSelMode", "ImpactConditionalStopIteration", "ImpactControlBridge", + "ImpactControlNetApplyAdvancedSEGS", "ImpactControlNetApplySEGS", "ImpactControlNetClearSEGS", "ImpactDecomposeSEGS", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index ba966289..5e7fcf5a 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,56 @@ }, + { + "author": "azure-dragon-ai", + "title": "ComfyUI-ClipScore-Nodes", + "reference": "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes", + "files": [ + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:ImageScore, Loader, Image Processor, Real Image Processor, Fake Image Processor, Text Processor. ComfyUI Nodes for ClipScore" + }, + { + "author": "Hiero207", + "title": "ComfyUI-Hiero-Nodes", + "reference": "https://github.com/Hiero207/ComfyUI-Hiero-Nodes", + "files": [ + "https://github.com/Hiero207/ComfyUI-Hiero-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Post to Discord w/ Webhook" + }, + { + "author": "azure-dragon-ai", + "title": "ComfyUI-ClipScore-Nodes", + "reference": "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes", + "files": [ + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for ClipScore" + }, + { + "author": "godspede", + "title": "ComfyUI Substring", + "reference": "https://github.com/godspede/ComfyUI_Substring", + "files": [ + "https://github.com/godspede/ComfyUI_Substring" + ], + "install_type": "git-clone", + "description": "Just a simple substring node that takes text and length as input, and outputs the first length characters." + }, + { + "author": "gokayfem", + "title": "VLM_nodes", + "reference": "https://github.com/gokayfem/ComfyUI_VLM_nodes", + "files": [ + "https://github.com/gokayfem/ComfyUI_VLM_nodes" + ], + "install_type": "git-clone", + "description": "Nodes:VisionQuestionAnswering Node, PromptGenerate Node" + }, { "author": "godspede", "title": "ComfyUI Substring", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 2927ff5a..9a61e7df 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -61,6 +61,7 @@ "DM_MaskedModelMerger", "DM_ModelReporting", "DM_NormalizeModel", + "DM_QuadMasker", "DM_SimpleMasker" ], { @@ -932,6 +933,14 @@ "title_aux": "comfyui-enhanced-save-node" } ], + "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": [ + [ + "Post to Discord w/ Webhook" + ], + { + "title_aux": "ComfyUI-Hiero-Nodes" + } + ], "https://github.com/IDGallagher/ComfyUI-IG-Nodes": [ [ "IG Analyze SSIM", @@ -3297,6 +3306,19 @@ "title_aux": "avatar-graph-comfyui" } ], + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": [ + [ + "HaojihuiClipScoreFakeImageProcessor", + "HaojihuiClipScoreImageProcessor", + "HaojihuiClipScoreImageScore", + "HaojihuiClipScoreLoader", + "HaojihuiClipScoreRealImageProcessor", + "HaojihuiClipScoreTextProcessor" + ], + { + "title_aux": "ComfyUI-ClipScore-Nodes" + } + ], "https://github.com/badjeff/comfyui_lora_tag_loader": [ [ "LoraTagLoader" @@ -3686,6 +3708,7 @@ "Load MotionBrush From Optical Flow Directory", "Load MotionBrush From Optical Flow Without Model", "Load MotionBrush From Tracking Points", + "Load MotionBrush From Tracking Points Without Model", "Load Pose KeyPoints", "Loop", "LoopEnd_IMAGE", @@ -4795,6 +4818,15 @@ "title_aux": "ComfyUI Substring" } ], + "https://github.com/gokayfem/ComfyUI_VLM_nodes": [ + [ + "PromptGenerate", + "VisionTextQuestion" + ], + { + "title_aux": "VLM_nodes" + } + ], "https://github.com/guoyk93/yk-node-suite-comfyui": [ [ "YKImagePadForOutpaint", @@ -5451,6 +5483,7 @@ "ImpactConditionalBranchSelMode", "ImpactConditionalStopIteration", "ImpactControlBridge", + "ImpactControlNetApplyAdvancedSEGS", "ImpactControlNetApplySEGS", "ImpactControlNetClearSEGS", "ImpactDecomposeSEGS", From 7a070b78288de3daf4b31a467ac877561f879de3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jukka=20Sepp=C3=A4nen?= <40791699+kijai@users.noreply.github.com> Date: Fri, 26 Jan 2024 20:37:15 +0200 Subject: [PATCH 26/47] Update custom-node-list.json --- custom-node-list.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 6977d681..f546ca3b 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4965,6 +4965,16 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." + }, + { + "author": "kijai", + "title": "ComfyUI-CCSR", + "reference": "https://github.com/kijai/ComfyUI-CCSR", + "files": [ + "https://github.com/kijai/ComfyUI-CCSR" + ], + "install_type": "git-clone", + "description": "ComfyUI- CCSR upscaler node" } ] } From f1270db3973586c3a5a4c2df1e87be970e5ed656 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 27 Jan 2024 10:03:36 +0900 Subject: [PATCH 27/47] update DB --- custom-node-list.json | 21 ++++++++++----------- extension-node-map.json | 18 ++++++++++++++++-- node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 18 ++++++++++++++++-- 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index f546ca3b..70acd186 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -2237,6 +2237,16 @@ "install_type": "git-clone", "description": "Various quality of life -nodes for ComfyUI, mostly just visual stuff to improve usability." }, + { + "author": "kijai", + "title": "ComfyUI-CCSR", + "reference": "https://github.com/kijai/ComfyUI-CCSR", + "files": [ + "https://github.com/kijai/ComfyUI-CCSR" + ], + "install_type": "git-clone", + "description": "ComfyUI- CCSR upscaler node" + }, { "author": "hhhzzyang", "title": "Comfyui-Lama", @@ -4648,7 +4658,6 @@ - { "author": "Ser-Hilary", "title": "SDXL_sizing", @@ -4965,16 +4974,6 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." - }, - { - "author": "kijai", - "title": "ComfyUI-CCSR", - "reference": "https://github.com/kijai/ComfyUI-CCSR", - "files": [ - "https://github.com/kijai/ComfyUI-CCSR" - ], - "install_type": "git-clone", - "description": "ComfyUI- CCSR upscaler node" } ] } diff --git a/extension-node-map.json b/extension-node-map.json index 9a61e7df..4019046a 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -159,8 +159,10 @@ "https://github.com/Acly/comfyui-inpaint-nodes": [ [ "INPAINT_ApplyFooocusInpaint", - "INPAINT_FillInpaintArea", - "INPAINT_LoadFooocusInpaint" + "INPAINT_InpaintWithModel", + "INPAINT_LoadFooocusInpaint", + "INPAINT_LoadInpaintModel", + "INPAINT_MaskedBlur" ], { "title_aux": "ComfyUI Inpaint Nodes" @@ -4735,15 +4737,18 @@ "LogString", "LogVec2", "LogVec3", + "RF_AtIndexString", "RF_BoolToString", "RF_FloatToString", "RF_IntToString", "RF_JsonStyleLoader", "RF_MergeLines", "RF_NumberToString", + "RF_OptionsString", "RF_RangeFloat", "RF_RangeInt", "RF_RangeNumber", + "RF_SavePromptInfo", "RF_SplitLines", "RF_TextConcatenate", "RF_TextInput", @@ -5139,6 +5144,15 @@ "title_aux": "Knodes" } ], + "https://github.com/kijai/ComfyUI-CCSR": [ + [ + "CCSR_Model_Select", + "CCSR_Upscale" + ], + { + "title_aux": "ComfyUI-CCSR" + } + ], "https://github.com/kijai/ComfyUI-DDColor": [ [ "DDColor_Colorize" diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 5e7fcf5a..291a1528 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,16 @@ }, + { + "author": "kijai", + "title": "ComfyUI-CCSR", + "reference": "https://github.com/kijai/ComfyUI-CCSR", + "files": [ + "https://github.com/kijai/ComfyUI-CCSR" + ], + "install_type": "git-clone", + "description": "ComfyUI- CCSR upscaler node" + }, { "author": "azure-dragon-ai", "title": "ComfyUI-ClipScore-Nodes", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 9a61e7df..4019046a 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -159,8 +159,10 @@ "https://github.com/Acly/comfyui-inpaint-nodes": [ [ "INPAINT_ApplyFooocusInpaint", - "INPAINT_FillInpaintArea", - "INPAINT_LoadFooocusInpaint" + "INPAINT_InpaintWithModel", + "INPAINT_LoadFooocusInpaint", + "INPAINT_LoadInpaintModel", + "INPAINT_MaskedBlur" ], { "title_aux": "ComfyUI Inpaint Nodes" @@ -4735,15 +4737,18 @@ "LogString", "LogVec2", "LogVec3", + "RF_AtIndexString", "RF_BoolToString", "RF_FloatToString", "RF_IntToString", "RF_JsonStyleLoader", "RF_MergeLines", "RF_NumberToString", + "RF_OptionsString", "RF_RangeFloat", "RF_RangeInt", "RF_RangeNumber", + "RF_SavePromptInfo", "RF_SplitLines", "RF_TextConcatenate", "RF_TextInput", @@ -5139,6 +5144,15 @@ "title_aux": "Knodes" } ], + "https://github.com/kijai/ComfyUI-CCSR": [ + [ + "CCSR_Model_Select", + "CCSR_Upscale" + ], + { + "title_aux": "ComfyUI-CCSR" + } + ], "https://github.com/kijai/ComfyUI-DDColor": [ [ "DDColor_Colorize" From 34c9960203fad4407f1d3334af5ffce4f16b4225 Mon Sep 17 00:00:00 2001 From: Daniel Lewis Date: Fri, 26 Jan 2024 19:38:03 -0700 Subject: [PATCH 28/47] Update custom-node-list.json Added ComfyUI-TTS --- custom-node-list.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 70acd186..05b06389 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4974,6 +4974,16 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." + }, + { + "author": "Daniel Lewis", + "title": "ComfyUI-TTS", + "reference": "https://github.com/daniel-lewis-ab/ComfyUI-TTS", + "files": [ + "https://github.com/daniel-lewis-ab/ComfyUI-TTS" + ], + "install_type": "git-clone", + "description": "Text To Speech (TTS) for ComfyUI" } ] } From 33dc3a8a30143e395a4b31e7ef2f8e3d23a259ca Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 27 Jan 2024 12:53:49 +0900 Subject: [PATCH 29/47] fix: invalid double-click policy --- __init__.py | 2 +- extension-node-map.json | 3 +++ js/node_fixer.js | 15 ++++----------- node_db/new/extension-node-map.json | 3 +++ 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/__init__.py b/__init__.py index 4de06a6c..a788e447 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 4, 1] +version = [2, 4, 2] 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/extension-node-map.json b/extension-node-map.json index 4019046a..3a5c42b3 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -54,6 +54,8 @@ "DM_DareClipMerger", "DM_DareModelMerger", "DM_DareModelMergerMBW", + "DM_LoRALoaderTags", + "DM_LoRAReporting", "DM_MagnitudeMasker", "DM_MaskEdit", "DM_MaskOperations", @@ -5472,6 +5474,7 @@ "DetailerForEachDebug", "DetailerForEachDebugPipe", "DetailerForEachPipe", + "DetailerForEachPipeForAnimateDiff", "DetailerHookCombine", "DetailerPipeToBasicPipe", "EditBasicPipe", diff --git a/js/node_fixer.js b/js/node_fixer.js index f8cc7c97..01d5b958 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -36,16 +36,6 @@ function lookup_nearest_nodes(node) { return nearest_node; } -function copy_connections(src, dest) { - if(src.inputs && dest.inputs) { - - } - - if(src.outputs && dest.outputs) { - - } -} - function node_info_copy(src, dest) { // copy input connections for(let i in src.inputs) { @@ -91,7 +81,10 @@ app.registerExtension({ let orig_dblClick = node.onDblClick; node.onDblClick = () => { orig_dblClick?.apply?.(this, arguments); - if(node.inputs && node.outputs && node.inputs.length == 0 && node.outputs.length == 0) + if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) + return; + + if(!node.inputs && !node.outputs) return; let src_node = lookup_nearest_nodes(node); diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 4019046a..3a5c42b3 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -54,6 +54,8 @@ "DM_DareClipMerger", "DM_DareModelMerger", "DM_DareModelMergerMBW", + "DM_LoRALoaderTags", + "DM_LoRAReporting", "DM_MagnitudeMasker", "DM_MaskEdit", "DM_MaskOperations", @@ -5472,6 +5474,7 @@ "DetailerForEachDebug", "DetailerForEachDebugPipe", "DetailerForEachPipe", + "DetailerForEachPipeForAnimateDiff", "DetailerHookCombine", "DetailerPipeToBasicPipe", "EditBasicPipe", From 55cbb85babfacb97d26cf0123a4a5f68cf84ecca Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 27 Jan 2024 15:06:47 +0900 Subject: [PATCH 30/47] update DB --- extension-node-map.json | 1 + node_db/new/extension-node-map.json | 1 + 2 files changed, 2 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index 3a5c42b3..cb9e408f 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -4077,6 +4077,7 @@ "KarrasScheduler", "LatentAdd", "LatentBatch", + "LatentBatchSeedBehavior", "LatentBlend", "LatentComposite", "LatentCompositeMasked", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 3a5c42b3..cb9e408f 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -4077,6 +4077,7 @@ "KarrasScheduler", "LatentAdd", "LatentBatch", + "LatentBatchSeedBehavior", "LatentBlend", "LatentComposite", "LatentCompositeMasked", From 1a6805a5fa2300c6d0f4c6a6cb64701661eba42a Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 27 Jan 2024 15:11:09 +0900 Subject: [PATCH 31/47] update DB --- custom-node-list.json | 12 +----------- node_db/new/custom-node-list.json | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 05b06389..34a4c636 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4252,7 +4252,7 @@ "https://github.com/daniel-lewis-ab/ComfyUI-TTS" ], "install_type": "git-clone", - "description": "A set of TTS nodes for ComfyUI" + "description": "Text To Speech (TTS) for ComfyUI" }, { "author": "djbielejeski", @@ -4974,16 +4974,6 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." - }, - { - "author": "Daniel Lewis", - "title": "ComfyUI-TTS", - "reference": "https://github.com/daniel-lewis-ab/ComfyUI-TTS", - "files": [ - "https://github.com/daniel-lewis-ab/ComfyUI-TTS" - ], - "install_type": "git-clone", - "description": "Text To Speech (TTS) for ComfyUI" } ] } diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 291a1528..e70e3181 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -168,7 +168,7 @@ "https://github.com/daniel-lewis-ab/ComfyUI-TTS" ], "install_type": "git-clone", - "description": "A set of TTS nodes for ComfyUI" + "description": "Text To Speech (TTS) for ComfyUI" }, { "author": "thecooltechguy", From b2e9838b051bfd4421fbbd2b6fe3a12ab4e16139 Mon Sep 17 00:00:00 2001 From: Yuvraj Seegolam Date: Sat, 27 Jan 2024 20:15:47 +0400 Subject: [PATCH 32/47] Add ComfyUI Whisper Custom Node --- custom-node-list.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 34a4c636..a00eeeeb 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4974,6 +4974,16 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." + }, + { + "author": "yuvraj108c", + "title": "ComfyUI Whisper", + "reference": "https://github.com/yuvraj108c/ComfyUI-Whisper", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Whisper" + ], + "install_type": "git-clone", + "description": "Transcribe audio and add subtitles to videos using Whisper in ComfyUI" } ] } From bbeb80f2095c722bb1564b42174fc05f5df0abde Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 28 Jan 2024 08:09:34 +0900 Subject: [PATCH 33/47] update DB --- custom-node-list.json | 24 ++++++------- extension-node-map.json | 53 ++++++++++++++++++++++++++++- node_db/new/custom-node-list.json | 10 ++++++ node_db/new/extension-node-map.json | 53 ++++++++++++++++++++++++++++- 4 files changed, 126 insertions(+), 14 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index a00eeeeb..b332c908 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4654,10 +4654,20 @@ "install_type": "git-clone", "description": "Nodes:ImageScore, Loader, Image Processor, Real Image Processor, Fake Image Processor, Text Processor. ComfyUI Nodes for ClipScore" }, + { + "author": "yuvraj108c", + "title": "ComfyUI Whisper", + "reference": "https://github.com/yuvraj108c/ComfyUI-Whisper", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Whisper" + ], + "install_type": "git-clone", + "description": "Transcribe audio and add subtitles to videos using Whisper in ComfyUI" + }, + - - + { "author": "Ser-Hilary", "title": "SDXL_sizing", @@ -4974,16 +4984,6 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." - }, - { - "author": "yuvraj108c", - "title": "ComfyUI Whisper", - "reference": "https://github.com/yuvraj108c/ComfyUI-Whisper", - "files": [ - "https://github.com/yuvraj108c/ComfyUI-Whisper" - ], - "install_type": "git-clone", - "description": "Transcribe audio and add subtitles to videos using Whisper in ComfyUI" } ] } diff --git a/extension-node-map.json b/extension-node-map.json index cb9e408f..f31a65a7 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -164,7 +164,9 @@ "INPAINT_InpaintWithModel", "INPAINT_LoadFooocusInpaint", "INPAINT_LoadInpaintModel", - "INPAINT_MaskedBlur" + "INPAINT_MaskedBlur", + "INPAINT_MaskedFill", + "INPAINT_VAEEncodeInpaintConditioning" ], { "title_aux": "ComfyUI Inpaint Nodes" @@ -902,6 +904,7 @@ [ "Image Scale Bounding Box", "MS kosmos-2 Interrogator", + "Make Inpaint Model", "Save Image w/o Metadata" ], { @@ -1158,8 +1161,13 @@ ], "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": [ [ + "ADE_AdjustPEFullStretch", + "ADE_AdjustPEManual", + "ADE_AdjustPESweetspotStretch", "ADE_AnimateDiffCombine", + "ADE_AnimateDiffKeyframe", "ADE_AnimateDiffLoRALoader", + "ADE_AnimateDiffLoaderGen1", "ADE_AnimateDiffLoaderV1Advanced", "ADE_AnimateDiffLoaderWithContext", "ADE_AnimateDiffModelSettings", @@ -1167,14 +1175,29 @@ "ADE_AnimateDiffModelSettingsSimple", "ADE_AnimateDiffModelSettings_Release", "ADE_AnimateDiffSamplingSettings", + "ADE_AnimateDiffSettings", "ADE_AnimateDiffUniformContextOptions", "ADE_AnimateDiffUnload", + "ADE_ApplyAnimateDiffModel", + "ADE_ApplyAnimateDiffModelSimple", + "ADE_BatchedContextOptions", "ADE_EmptyLatentImageLarge", "ADE_IterationOptsDefault", "ADE_IterationOptsFreeInit", + "ADE_LoadAnimateDiffModel", + "ADE_LoopedUniformContextOptions", + "ADE_LoopedUniformViewOptions", + "ADE_MultivalDynamic", + "ADE_MultivalScaledMask", "ADE_NoiseLayerAdd", "ADE_NoiseLayerAddWeighted", "ADE_NoiseLayerReplace", + "ADE_StandardStaticContextOptions", + "ADE_StandardStaticViewOptions", + "ADE_StandardUniformContextOptions", + "ADE_StandardUniformViewOptions", + "ADE_UseEvolvedSampling", + "ADE_ViewsOnlyContextOptions", "AnimateDiffLoaderV1", "CheckpointLoaderSimpleWithNoiseSelect" ], @@ -5993,6 +6016,8 @@ ], "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": [ [ + "EmptyLatentImageFromPresetsSD15", + "EmptyLatentImageFromPresetsSDXL", "SizeFromPresetsSD15", "SizeFromPresetsSDXL" ], @@ -7351,21 +7376,32 @@ "easy XYPlot", "easy XYPlotAdvanced", "easy a1111Loader", + "easy boolean", "easy comfyLoader", + "easy compare", "easy controlnetLoader", "easy controlnetLoaderADV", + "easy convertAnything", "easy detailerFix", + "easy float", "easy fullLoader", "easy fullkSampler", "easy globalSeed", "easy hiresFix", + "easy if", "easy imageInsetCrop", "easy imagePixelPerfect", "easy imageRemoveBG", + "easy imageSave", + "easy imageScaleDown", + "easy imageScaleDownBy", + "easy imageScaleDownToSize", "easy imageSize", "easy imageSizeByLongerSide", "easy imageSizeBySide", "easy imageToMask", + "easy int", + "easy joinImageBatch", "easy kSampler", "easy kSamplerDownscaleUnet", "easy kSamplerInpainting", @@ -7386,14 +7422,19 @@ "easy preSamplingAdvanced", "easy preSamplingDynamicCFG", "easy preSamplingSdTurbo", + "easy rangeFloat", + "easy rangeInt", "easy samLoaderPipe", "easy seed", + "easy showAnything", "easy showSpentTime", + "easy string", "easy stylesSelector", "easy svdLoader", "easy ultralyticsDetectorPipe", "easy unSampler", "easy wildcards", + "easy xyAny", "easy zero123Loader" ], { @@ -7495,6 +7536,16 @@ "title_aux": "tdxh_node_comfyui" } ], + "https://github.com/yuvraj108c/ComfyUI-Whisper": [ + [ + "Add Subtitles To Background", + "Add Subtitles To Frames", + "Apply Whisper" + ], + { + "title_aux": "ComfyUI Whisper" + } + ], "https://github.com/zcfrank1st/Comfyui-Toolbox": [ [ "PreviewJson", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index e70e3181..746c9001 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,16 @@ }, + { + "author": "yuvraj108c", + "title": "ComfyUI Whisper", + "reference": "https://github.com/yuvraj108c/ComfyUI-Whisper", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Whisper" + ], + "install_type": "git-clone", + "description": "Transcribe audio and add subtitles to videos using Whisper in ComfyUI" + }, { "author": "kijai", "title": "ComfyUI-CCSR", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index cb9e408f..f31a65a7 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -164,7 +164,9 @@ "INPAINT_InpaintWithModel", "INPAINT_LoadFooocusInpaint", "INPAINT_LoadInpaintModel", - "INPAINT_MaskedBlur" + "INPAINT_MaskedBlur", + "INPAINT_MaskedFill", + "INPAINT_VAEEncodeInpaintConditioning" ], { "title_aux": "ComfyUI Inpaint Nodes" @@ -902,6 +904,7 @@ [ "Image Scale Bounding Box", "MS kosmos-2 Interrogator", + "Make Inpaint Model", "Save Image w/o Metadata" ], { @@ -1158,8 +1161,13 @@ ], "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": [ [ + "ADE_AdjustPEFullStretch", + "ADE_AdjustPEManual", + "ADE_AdjustPESweetspotStretch", "ADE_AnimateDiffCombine", + "ADE_AnimateDiffKeyframe", "ADE_AnimateDiffLoRALoader", + "ADE_AnimateDiffLoaderGen1", "ADE_AnimateDiffLoaderV1Advanced", "ADE_AnimateDiffLoaderWithContext", "ADE_AnimateDiffModelSettings", @@ -1167,14 +1175,29 @@ "ADE_AnimateDiffModelSettingsSimple", "ADE_AnimateDiffModelSettings_Release", "ADE_AnimateDiffSamplingSettings", + "ADE_AnimateDiffSettings", "ADE_AnimateDiffUniformContextOptions", "ADE_AnimateDiffUnload", + "ADE_ApplyAnimateDiffModel", + "ADE_ApplyAnimateDiffModelSimple", + "ADE_BatchedContextOptions", "ADE_EmptyLatentImageLarge", "ADE_IterationOptsDefault", "ADE_IterationOptsFreeInit", + "ADE_LoadAnimateDiffModel", + "ADE_LoopedUniformContextOptions", + "ADE_LoopedUniformViewOptions", + "ADE_MultivalDynamic", + "ADE_MultivalScaledMask", "ADE_NoiseLayerAdd", "ADE_NoiseLayerAddWeighted", "ADE_NoiseLayerReplace", + "ADE_StandardStaticContextOptions", + "ADE_StandardStaticViewOptions", + "ADE_StandardUniformContextOptions", + "ADE_StandardUniformViewOptions", + "ADE_UseEvolvedSampling", + "ADE_ViewsOnlyContextOptions", "AnimateDiffLoaderV1", "CheckpointLoaderSimpleWithNoiseSelect" ], @@ -5993,6 +6016,8 @@ ], "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": [ [ + "EmptyLatentImageFromPresetsSD15", + "EmptyLatentImageFromPresetsSDXL", "SizeFromPresetsSD15", "SizeFromPresetsSDXL" ], @@ -7351,21 +7376,32 @@ "easy XYPlot", "easy XYPlotAdvanced", "easy a1111Loader", + "easy boolean", "easy comfyLoader", + "easy compare", "easy controlnetLoader", "easy controlnetLoaderADV", + "easy convertAnything", "easy detailerFix", + "easy float", "easy fullLoader", "easy fullkSampler", "easy globalSeed", "easy hiresFix", + "easy if", "easy imageInsetCrop", "easy imagePixelPerfect", "easy imageRemoveBG", + "easy imageSave", + "easy imageScaleDown", + "easy imageScaleDownBy", + "easy imageScaleDownToSize", "easy imageSize", "easy imageSizeByLongerSide", "easy imageSizeBySide", "easy imageToMask", + "easy int", + "easy joinImageBatch", "easy kSampler", "easy kSamplerDownscaleUnet", "easy kSamplerInpainting", @@ -7386,14 +7422,19 @@ "easy preSamplingAdvanced", "easy preSamplingDynamicCFG", "easy preSamplingSdTurbo", + "easy rangeFloat", + "easy rangeInt", "easy samLoaderPipe", "easy seed", + "easy showAnything", "easy showSpentTime", + "easy string", "easy stylesSelector", "easy svdLoader", "easy ultralyticsDetectorPipe", "easy unSampler", "easy wildcards", + "easy xyAny", "easy zero123Loader" ], { @@ -7495,6 +7536,16 @@ "title_aux": "tdxh_node_comfyui" } ], + "https://github.com/yuvraj108c/ComfyUI-Whisper": [ + [ + "Add Subtitles To Background", + "Add Subtitles To Frames", + "Apply Whisper" + ], + { + "title_aux": "ComfyUI Whisper" + } + ], "https://github.com/zcfrank1st/Comfyui-Toolbox": [ [ "PreviewJson", From 96af95ffbeb580b385c8340843ca70ae213505eb Mon Sep 17 00:00:00 2001 From: Kim2091 <62084776+Kim2091@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:42:15 -0500 Subject: [PATCH 34/47] Update UltraSharp and AnimeSharp listings They were attributed to HuggingFace repositories before that had the incorrect licenses and information assigned. I am the original author, see here: https://openmodeldb.info/users/kim2091 --- model-list.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/model-list.json b/model-list.json index b41e8948..9464fd92 100644 --- a/model-list.json +++ b/model-list.json @@ -86,9 +86,9 @@ "base": "upscale", "save_path": "default", "description": "4x-AnimeSharp upscaler model", - "reference": "https://huggingface.co/konohashinobi4/4xAnimesharp", + "reference": "https://huggingface.co/Kim2091/AnimeSharp/", "filename": "4x-AnimeSharp.pth", - "url": "https://huggingface.co/konohashinobi4/4xAnimesharp/resolve/main/4x-AnimeSharp.pth" + "url": "https://huggingface.co/Kim2091/AnimeSharp/resolve/main/4x-AnimeSharp.pth" }, { "name": "4x-UltraSharp", @@ -96,9 +96,9 @@ "base": "upscale", "save_path": "default", "description": "4x-UltraSharp upscaler model", - "reference": "https://upscale.wiki/wiki/Model_Database", + "reference": "https://huggingface.co/Kim2091/UltraSharp/", "filename": "4x-UltraSharp.pth", - "url": "https://huggingface.co/datasets/Kizi-Art/Upscale/resolve/fa98e357882a23b8e7928957a39462fbfaee1af5/4x-UltraSharp.pth" + "url": "https://huggingface.co/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth" }, { "name": "4x_NMKD-Siax_200k", From b5cde5936fef7329c09e5b4efc1527b21f51d05a Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 28 Jan 2024 13:47:39 +0900 Subject: [PATCH 35/47] feat: double-click options --- __init__.py | 24 +++++++-- js/comfyui-manager.js | 26 ++++++++- js/node_fixer.js | 119 +++++++++++++++++++++++++++++++++++------- 3 files changed, 144 insertions(+), 25 deletions(-) diff --git a/__init__.py b/__init__.py index a788e447..f02dcee0 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 4, 2] +version = [2, 5] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") @@ -175,7 +175,8 @@ def write_config(): 'bypass_ssl': get_config()['bypass_ssl'], 'default_ui': get_config()['default_ui'], 'component_policy': get_config()['component_policy'], - "windows_selector_event_loop_policy": get_config()['windows_selector_event_loop_policy'], + 'double_click_policy': get_config()['double_click_policy'], + 'windows_selector_event_loop_policy': get_config()['windows_selector_event_loop_policy'], } with open(config_path, 'w') as configfile: config.write(configfile) @@ -196,6 +197,7 @@ def read_config(): 'bypass_ssl': default_conf['bypass_ssl'] if 'bypass_ssl' in default_conf else False, 'default_ui': default_conf['default_ui'] if 'default_ui' in default_conf else 'none', 'component_policy': default_conf['component_policy'] if 'component_policy' in default_conf else 'workflow', + 'double_click_policy': default_conf['double_click_policy'] if 'double_click_policy' in default_conf else 'copy-all', "windows_selector_event_loop_policy": default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, } @@ -209,7 +211,8 @@ def read_config(): 'bypass_ssl': False, 'default_ui': 'none', 'component_policy': 'workflow', - "windows_selector_event_loop_policy": False + 'double_click_policy': 'copy-all', + 'windows_selector_event_loop_policy': False } @@ -261,6 +264,10 @@ def set_component_policy(mode): get_config()['component_policy'] = mode +def set_double_click_policy(mode): + get_config()['double_click_policy'] = mode + + def try_install_script(url, repo_path, install_cmd): if platform.system() == "Windows" and comfy_ui_commit_datetime.date() >= comfy_ui_required_commit_datetime.date(): if not os.path.exists(startup_script_path): @@ -1786,6 +1793,17 @@ async def component_policy(request): return web.Response(status=200) +@server.PromptServer.instance.routes.get("/manager/dbl_click/policy") +async def dbl_click_policy(request): + if "value" in request.rel_url.query: + set_double_click_policy(request.rel_url.query['value']) + write_config() + else: + return web.Response(text=get_config()['double_click_policy'], status=200) + + return web.Response(status=200) + + @server.PromptServer.instance.routes.get("/manager/channel_url_list") async def channel_url_list(request): channels = get_channel_dict() diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 341f2a09..66f93750 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -17,12 +17,13 @@ import { SnapshotManager } from "./snapshot.js"; import { ModelInstaller } from "./model-downloader.js"; import { manager_instance, setManagerInstance, install_via_git_url, install_pip, rebootAPI, free_models } from "./common.js"; import { ComponentBuilderDialog, load_components, set_component_policy, getPureName } from "./components-manager.js"; +import { set_double_click_policy } from "./node_fixer.js"; var docStyle = document.createElement('style'); docStyle.innerHTML = ` #cm-manager-dialog { width: 1000px; - height: 495px; + height: 520px; box-sizing: content-box; z-index: 10000; } @@ -136,7 +137,7 @@ docStyle.innerHTML = ` .cm-notice-board { width: 290px; - height: 230px; + height: 270px; overflow: auto; color: var(--input-text); border: 1px solid var(--descrip-text); @@ -906,6 +907,26 @@ class ManagerMenuDialog extends ComfyDialog { set_component_policy(event.target.value); }); + let dbl_click_policy_combo = document.createElement("select"); + dbl_click_policy_combo.setAttribute("title", "When loading the workflow, configure which version of the component to use."); + dbl_click_policy_combo.className = "cm-menu-combo"; + dbl_click_policy_combo.appendChild($el('option', { value: 'none', text: 'Double-Click: None' }, [])); + dbl_click_policy_combo.appendChild($el('option', { value: 'copy-all', text: 'Double-Click: Copy All Connections' }, [])); + dbl_click_policy_combo.appendChild($el('option', { value: 'copy-input', text: 'Double-Click: Copy Input Connections' }, [])); + dbl_click_policy_combo.appendChild($el('option', { value: 'possible-input', text: 'Double-Click: Possible Input Connections' }, [])); + + api.fetchApi('/manager/dbl_click/policy') + .then(response => response.text()) + .then(data => { + dbl_click_policy_combo.value = data; + set_double_click_policy(data); + }); + + dbl_click_policy_combo.addEventListener('change', function (event) { + api.fetchApi(`/manager/dbl_click/policy?value=${event.target.value}`); + set_double_click_policy(event.target.value); + }); + api.fetchApi('/manager/share_option') .then(response => response.text()) .then(data => { @@ -935,6 +956,7 @@ class ManagerMenuDialog extends ComfyDialog { default_ui_combo, share_combo, component_policy_combo, + dbl_click_policy_combo, $el("br", {}, []), $el("br", {}, []), diff --git a/js/node_fixer.js b/js/node_fixer.js index 01d5b958..aae62aca 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -1,6 +1,16 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; +let double_click_policy = "copy-all"; + +api.fetchApi('/manager/dbl_click/policy') + .then(response => response.text()) + .then(data => set_double_click_policy(data)); + +export function set_double_click_policy(mode) { + double_click_policy = mode; +} + function addMenuHandler(nodeType, cb) { const getOpts = nodeType.prototype.getExtraMenuOptions; nodeType.prototype.getExtraMenuOptions = function () { @@ -36,7 +46,59 @@ function lookup_nearest_nodes(node) { return nearest_node; } -function node_info_copy(src, dest) { +function lookup_nearest_inputs(node) { + let input_map = {}; + + for(let i in node.inputs) { + let input = node.inputs[i]; + + if(input_map[input.type]) + continue; + + input_map[input.type] = {distance: Infinity, input_name: input.name, node: null, slot: null}; + } + + let x = node.pos[0] + node.size[0]/2; + let y = node.pos[1] + node.size[1]/2; + + for(let other of app.graph._nodes) { + if(other === node || !other.outputs) + continue; + + let dist = distance(node, other); + + for(let input_type in input_map) { + for(let j in other.outputs) { + let output = other.outputs[j]; + if(output.type == input_type) { + if(input_map[input_type].distance > dist) { + input_map[input_type].distance = dist; + input_map[input_type].node = other; + input_map[input_type].slot = parseInt(j); + } + } + } + } + } + + let res = {}; + for (let i in input_map) { + if (input_map[i].node) { + res[i] = input_map[i]; + } + } + + return res; +} + +function connect_inputs(nearest_inputs, node) { + for(let i in nearest_inputs) { + let info = nearest_inputs[i]; + info.node.connect(info.slot, node.id, info.input_name); + } +} + +function node_info_copy(src, dest, connect_both) { // copy input connections for(let i in src.inputs) { let input = src.inputs[i]; @@ -48,25 +110,27 @@ function node_info_copy(src, dest) { } // copy output connections - let output_links = {}; - for(let i in src.outputs) { - let output = src.outputs[i]; - if(output.links) { - let links = []; - for(let j in output.links) { - links.push(app.graph.links[output.links[j]]); + if(connect_both) { + let output_links = {}; + for(let i in src.outputs) { + let output = src.outputs[i]; + if(output.links) { + let links = []; + for(let j in output.links) { + links.push(app.graph.links[output.links[j]]); + } + output_links[output.name] = links; } - output_links[output.name] = links; } - } - for(let i in dest.outputs) { - let links = output_links[dest.outputs[i].name]; - if(links) { - for(let j in links) { - let link = links[j]; - let target_node = app.graph.getNodeById(link.target_id); - dest.connect(parseInt(i), target_node, link.target_slot); + for(let i in dest.outputs) { + let links = output_links[dest.outputs[i].name]; + if(links) { + for(let j in links) { + let link = links[j]; + let target_node = app.graph.getNodeById(link.target_id); + dest.connect(parseInt(i), target_node, link.target_slot); + } } } } @@ -81,15 +145,30 @@ app.registerExtension({ let orig_dblClick = node.onDblClick; node.onDblClick = () => { orig_dblClick?.apply?.(this, arguments); + if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) return; if(!node.inputs && !node.outputs) return; - let src_node = lookup_nearest_nodes(node); - if(src_node) - node_info_copy(src_node, node); + switch(double_click_policy) { + case "copy-all": + case "copy-input": + { + let src_node = lookup_nearest_nodes(node); + if(src_node) + node_info_copy(src_node, node, double_click_policy == "copy-all"); + } + break; + case "possible-input": + { + let nearest_inputs = lookup_nearest_inputs(node); + if(nearest_inputs) + connect_inputs(nearest_inputs, node); + } + break; + } } }, From 048f44f105be76e6619ed4e68958bddf86c9f2e2 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 28 Jan 2024 14:13:16 +0900 Subject: [PATCH 36/47] improve: double-click options - better possible input connections update README.md --- README.md | 11 ++++++++--- js/node_fixer.js | 25 ++++++++++++++----------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9171868c..fe8e383f 100644 --- a/README.md +++ b/README.md @@ -257,9 +257,14 @@ NODE_CLASS_MAPPINGS.update({ ## Additional Feature * Fix node(recreate): When right-clicking on a node and selecting `Fix node (recreate)`, you can recreate the node. The widget's values are reset, while the connections maintain those with the same names. * It is used to correct errors in nodes of old workflows created before, which are incompatible with the version changes of custom nodes. -* Connection copy: Double-clicking a node copies the connections of the nearest node. - * However, this action is only possible when there are no existing connections, and since duplicate connections are not allowed in the output, connections from the existing node's output will disappear. - * This feature copies only the input and output that match the names. +* Double-Click: You can set the double click behavior of nodes in the ComfyUI-Manager menu. + * `Copy All Connections`, `Copy Input Connections`: Double-clicking a node copies the connections of the nearest node. + * This action targets the nearest node within a straight-line distance of 1000 pixels from the center of the node. + * In the case of `Copy All Connections`, it duplicates existing outputs, but since it does not allow duplicate connections, the existing output connections of the original node are disconnected. + * This feature copies only the input and output that match the names. + + * `Possible Input Connections`: It connects all outputs that match the closest type within the specified range. + * This connection links to the closest outputs among the nodes located on the left side of the target node. ## 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. diff --git a/js/node_fixer.js b/js/node_fixer.js index aae62aca..8767d74a 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -21,15 +21,12 @@ function addMenuHandler(nodeType, cb) { } function distance(node1, node2) { - let dx = node1.pos[0] - node2.pos[0]; - let dy = node1.pos[1] - node2.pos[1]; + let dx = (node1.pos[0] + node1.size[0]/2) - (node2.pos[0] + node2.size[0]/2); + let dy = (node1.pos[1] + node1.size[1]/2) - (node2.pos[1] + node2.size[1]/2); return Math.sqrt(dx * dx + dy * dy); } function lookup_nearest_nodes(node) { - let x = node.pos[0] + node.size[0]/2; - let y = node.pos[1] + node.size[1]/2; - let nearest_distance = Infinity; let nearest_node = null; for(let other of app.graph._nodes) { @@ -52,20 +49,26 @@ function lookup_nearest_inputs(node) { for(let i in node.inputs) { let input = node.inputs[i]; - if(input_map[input.type]) + if(input.link || input_map[input.type]) continue; input_map[input.type] = {distance: Infinity, input_name: input.name, node: null, slot: null}; } - let x = node.pos[0] + node.size[0]/2; + let x = node.pos[0]; let y = node.pos[1] + node.size[1]/2; for(let other of app.graph._nodes) { if(other === node || !other.outputs) continue; - let dist = distance(node, other); + let dx = x - (other.pos[0] + other.size[0]); + let dy = y - (other.pos[1] + other.size[1]/2); + + if(dx < 0) + continue; + + let dist = Math.sqrt(dx * dx + dy * dy); for(let input_type in input_map) { for(let j in other.outputs) { @@ -146,9 +149,6 @@ app.registerExtension({ node.onDblClick = () => { orig_dblClick?.apply?.(this, arguments); - if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) - return; - if(!node.inputs && !node.outputs) return; @@ -156,6 +156,9 @@ app.registerExtension({ case "copy-all": case "copy-input": { + if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) + return; + let src_node = lookup_nearest_nodes(node); if(src_node) node_info_copy(src_node, node, double_click_policy == "copy-all"); From b1f613e649336a7d1b9020d52b9511ad40677531 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 28 Jan 2024 14:31:14 +0900 Subject: [PATCH 37/47] fix: Restrict double click action to the title area. https://github.com/ltdrdata/ComfyUI-Manager/issues/370 --- README.md | 2 +- __init__.py | 2 +- js/node_fixer.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fe8e383f..6532a94d 100644 --- a/README.md +++ b/README.md @@ -257,7 +257,7 @@ NODE_CLASS_MAPPINGS.update({ ## Additional Feature * Fix node(recreate): When right-clicking on a node and selecting `Fix node (recreate)`, you can recreate the node. The widget's values are reset, while the connections maintain those with the same names. * It is used to correct errors in nodes of old workflows created before, which are incompatible with the version changes of custom nodes. -* Double-Click: You can set the double click behavior of nodes in the ComfyUI-Manager menu. +* Double-Click Node Title: You can set the double click behavior of nodes in the ComfyUI-Manager menu. * `Copy All Connections`, `Copy Input Connections`: Double-clicking a node copies the connections of the nearest node. * This action targets the nearest node within a straight-line distance of 1000 pixels from the center of the node. * In the case of `Copy All Connections`, it duplicates existing outputs, but since it does not allow duplicate connections, the existing output connections of the original node are disconnected. diff --git a/__init__.py b/__init__.py index f02dcee0..ca69202b 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 5] +version = [2, 5, 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/js/node_fixer.js b/js/node_fixer.js index 8767d74a..a696976e 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -146,10 +146,10 @@ app.registerExtension({ async nodeCreated(node, app) { let orig_dblClick = node.onDblClick; - node.onDblClick = () => { + node.onDblClick = function (e, pos, self) { orig_dblClick?.apply?.(this, arguments); - if(!node.inputs && !node.outputs) + if((!node.inputs && !node.outputs) || pos[1] > 0) return; switch(double_click_policy) { From 6e06828aa498a1b8194d7c514bd0af8c0c1a3cc0 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 28 Jan 2024 17:24:11 +0900 Subject: [PATCH 38/47] update scanner.py update DB --- custom-node-list.json | 33 +++++++++++++++++++++++++++-- extension-node-map.json | 32 +++++++++++++++++++++++++++- node_db/new/custom-node-list.json | 30 ++++++++++++++++++++++++++ node_db/new/extension-node-map.json | 32 +++++++++++++++++++++++++++- scanner.py | 25 ++++++++++++++++++++++ 5 files changed, 148 insertions(+), 4 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index b332c908..fcc25255 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4664,9 +4664,38 @@ "install_type": "git-clone", "description": "Transcribe audio and add subtitles to videos using Whisper in ComfyUI" }, + { + "author": "blepping", + "title": "ComfyUI-bleh", + "reference": "https://github.com/blepping/ComfyUI-bleh", + "files": [ + "https://github.com/blepping/ComfyUI-bleh" + ], + "install_type": "git-clone", + "description": "Better TAESD previews, BlehHyperTile." + }, + { + "author": "JerryOrbachJr", + "title": "ComfyUI-RandomSize", + "reference": "https://github.com/JerryOrbachJr/ComfyUI-RandomSize", + "files": [ + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that randomly selects a height and width pair from a list in a config file" + }, + { + "author": "jamal-alkharrat", + "title": "ComfyUI_rotate_image", + "reference": "https://github.com/jamal-alkharrat/ComfyUI_rotate_image", + "files": [ + "https://github.com/jamal-alkharrat/ComfyUI_rotate_image" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Node to Rotate Images, Img2Img node." + }, + - - { "author": "Ser-Hilary", diff --git a/extension-node-map.json b/extension-node-map.json index f31a65a7..9fd051b4 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -886,6 +886,7 @@ [ "ReActorFaceSwap", "ReActorLoadFaceModel", + "ReActorRestoreFace", "ReActorSaveFaceModel" ], { @@ -1090,6 +1091,18 @@ "title_aux": "Rembg Background Removal Node for ComfyUI" } ], + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": [ + [ + "JOJR_RandomSize" + ], + { + "author": "JerryOrbachJr", + "description": "A ComfyUI custom node that randomly selects a height and width pair from a list in a config file", + "nickname": "Random Size", + "title": "Random Size", + "title_aux": "ComfyUI-RandomSize" + } + ], "https://github.com/Jordach/comfy-plasma": [ [ "JDC_AutoContrast", @@ -3449,6 +3462,14 @@ "title_aux": "CLIPSeg" } ], + "https://github.com/blepping/ComfyUI-bleh": [ + [ + "BlehHyperTile" + ], + { + "title_aux": "ComfyUI-bleh" + } + ], "https://github.com/bmad4ever/comfyui_ab_samplercustom": [ [ "AB SamplerCustom (experimental)" @@ -5073,6 +5094,14 @@ "title_aux": "Efficiency Nodes for ComfyUI Version 2.0+" } ], + "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": [ + [ + "RotateImage" + ], + { + "title_aux": "ComfyUI_rotate_image" + } + ], "https://github.com/jamesWalker55/comfyui-various": [ [], { @@ -5342,6 +5371,7 @@ ], "https://github.com/komojini/komojini-comfyui-nodes": [ [ + "BatchCreativeInterpolationNodeDynamicSettings", "CachedGetter", "DragNUWAImageCanvas", "FlowBuilder", @@ -6407,6 +6437,7 @@ "AreaToMask", "CLIPSeg", "CLIPSeg_", + "CenterImage", "CharacterInText", "ChatGPTOpenAI", "CkptNames_", @@ -6473,7 +6504,6 @@ "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [ [ "PhotoMakerEncodePlus", - "PhotoMakerLoader", "PhotoMakerStyles", "PrepImagesForClipVisionFromPath" ], diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 746c9001..f71fcf95 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,36 @@ }, + { + "author": "jamal-alkharrat", + "title": "ComfyUI_rotate_image", + "reference": "https://github.com/jamal-alkharrat/ComfyUI_rotate_image", + "files": [ + "https://github.com/jamal-alkharrat/ComfyUI_rotate_image" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Node to Rotate Images, Img2Img node." + }, + { + "author": "JerryOrbachJr", + "title": "ComfyUI-RandomSize", + "reference": "https://github.com/JerryOrbachJr/ComfyUI-RandomSize", + "files": [ + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that randomly selects a height and width pair from a list in a config file" + }, + { + "author": "blepping", + "title": "ComfyUI-bleh", + "reference": "https://github.com/blepping/ComfyUI-bleh", + "files": [ + "https://github.com/blepping/ComfyUI-bleh" + ], + "install_type": "git-clone", + "description": "Better TAESD previews, BlehHyperTile." + }, { "author": "yuvraj108c", "title": "ComfyUI Whisper", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index f31a65a7..9fd051b4 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -886,6 +886,7 @@ [ "ReActorFaceSwap", "ReActorLoadFaceModel", + "ReActorRestoreFace", "ReActorSaveFaceModel" ], { @@ -1090,6 +1091,18 @@ "title_aux": "Rembg Background Removal Node for ComfyUI" } ], + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": [ + [ + "JOJR_RandomSize" + ], + { + "author": "JerryOrbachJr", + "description": "A ComfyUI custom node that randomly selects a height and width pair from a list in a config file", + "nickname": "Random Size", + "title": "Random Size", + "title_aux": "ComfyUI-RandomSize" + } + ], "https://github.com/Jordach/comfy-plasma": [ [ "JDC_AutoContrast", @@ -3449,6 +3462,14 @@ "title_aux": "CLIPSeg" } ], + "https://github.com/blepping/ComfyUI-bleh": [ + [ + "BlehHyperTile" + ], + { + "title_aux": "ComfyUI-bleh" + } + ], "https://github.com/bmad4ever/comfyui_ab_samplercustom": [ [ "AB SamplerCustom (experimental)" @@ -5073,6 +5094,14 @@ "title_aux": "Efficiency Nodes for ComfyUI Version 2.0+" } ], + "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": [ + [ + "RotateImage" + ], + { + "title_aux": "ComfyUI_rotate_image" + } + ], "https://github.com/jamesWalker55/comfyui-various": [ [], { @@ -5342,6 +5371,7 @@ ], "https://github.com/komojini/komojini-comfyui-nodes": [ [ + "BatchCreativeInterpolationNodeDynamicSettings", "CachedGetter", "DragNUWAImageCanvas", "FlowBuilder", @@ -6407,6 +6437,7 @@ "AreaToMask", "CLIPSeg", "CLIPSeg_", + "CenterImage", "CharacterInText", "ChatGPTOpenAI", "CkptNames_", @@ -6473,7 +6504,6 @@ "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [ [ "PhotoMakerEncodePlus", - "PhotoMakerLoader", "PhotoMakerStyles", "PrepImagesForClipVisionFromPath" ], diff --git a/scanner.py b/scanner.py index 07809aef..8b8d4de2 100644 --- a/scanner.py +++ b/scanner.py @@ -1,3 +1,4 @@ +import ast import re import os import json @@ -22,6 +23,28 @@ if not os.path.exists(temp_dir): print(f"TEMP DIR: {temp_dir}") +def extract_nodes(code_text): + try: + parsed_code = ast.parse(code_text) + + assignments = (node for node in parsed_code.body if isinstance(node, ast.Assign)) + + for assignment in assignments: + if isinstance(assignment.targets[0], ast.Name) and assignment.targets[0].id == 'NODE_CLASS_MAPPINGS': + node_class_mappings = assignment.value + break + else: + node_class_mappings = None + + if node_class_mappings: + s = set([key.s.strip() for key in node_class_mappings.keys if key is not None]) + return s + else: + return set() + except: + return set() + + # scan def scan_in_file(filename, is_builtin=False): global builtin_nodes @@ -39,6 +62,8 @@ def scan_in_file(filename, is_builtin=False): nodes = set() class_dict = {} + nodes |= extract_nodes(code) + pattern2 = r'^[^=]*_CLASS_MAPPINGS\["(.*?)"\]' keys = re.findall(pattern2, code) for key in keys: From a972a74df51878dd7cc7bdc7201494943196e10c Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Mon, 29 Jan 2024 01:15:50 +0900 Subject: [PATCH 39/47] update DB fix README.md --- README.md | 2 +- custom-node-list.json | 21 ++++ extension-node-map.json | 26 ++++- node_db/new/custom-node-list.json | 142 ++++------------------------ node_db/new/extension-node-map.json | 26 ++++- 5 files changed, 92 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 6532a94d..7a9b7058 100644 --- a/README.md +++ b/README.md @@ -274,7 +274,7 @@ NODE_CLASS_MAPPINGS.update({ * For cases where nodes like `PreviewTextNode` from `ComfyUI_Custom_Nodes_AlekPet` are only supported as front-end nodes, we currently do not provide missing nodes for them. * Currently, `vid2vid` is not being updated, causing compatibility issues. * If you encounter the error message `Overlapped Object has pending operation at deallocation on Comfyui Manager load` under Windows - * Edit `config.ini` file: add `windows_selector_event_loop_policy = False` + * Edit `config.ini` file: add `windows_selector_event_loop_policy = True` ## TODO: Unconventional form of custom node list diff --git a/custom-node-list.json b/custom-node-list.json index fcc25255..35fb2352 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4694,6 +4694,27 @@ "install_type": "git-clone", "description": "ComfyUI Custom Node to Rotate Images, Img2Img node." }, + { + "author": "mape", + "title": "mape's ComfyUI Helpers", + "reference": "https://github.com/mape/ComfyUI-mape-Helpers", + "files": [ + "https://github.com/mape/ComfyUI-mape-Helpers" + ], + "install_type": "git-clone", + "description": "A project that combines all my qualify of life improvements for ComyUI. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" + }, + { + "author": "zhongpei", + "title": "Comfyui_image2prompt", + "reference": "https://github.com/zhongpei/Comfyui_image2prompt", + "files": [ + "https://github.com/zhongpei/Comfyui_image2prompt" + ], + "install_type": "git-clone", + "description": "Nodes:Image to Text, Loader Image to Text Model." + }, + diff --git a/extension-node-map.json b/extension-node-map.json index 9fd051b4..c6921d6f 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -3751,6 +3751,7 @@ "DragNUWA Run MotionBrush", "Get First Image", "Get Last Image", + "InstantMotionBrush", "Load CheckPoint DragNUWA", "Load MotionBrush From Optical Flow", "Load MotionBrush From Optical Flow Directory", @@ -3845,10 +3846,12 @@ ], "https://github.com/chflame163/ComfyUI_LayerStyle": [ [ + "LayerFilter: ChannelShake", "LayerFilter: GaussianBlur", "LayerFilter: MotionBlur", "LayerMask: MaskBoxDetect", "LayerMask: MaskEdgeShrink", + "LayerMask: MaskGradient", "LayerMask: MaskGrow", "LayerMask: MaskInvert", "LayerMask: MaskPreview", @@ -3859,7 +3862,6 @@ "LayerStyle: InnerShadow", "LayerStyle: OuterGlow", "LayerStyle: Stroke", - "LayerStyle_Illumine", "LayerUtility: ColorImage", "LayerUtility: ColorPicker", "LayerUtility: ExtendCanvas", @@ -5120,6 +5122,7 @@ ], "https://github.com/jitcoder/lora-info": [ [ + "ImageFromURL", "LoraInfo" ], { @@ -5797,6 +5800,17 @@ "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes" } ], + "https://github.com/mape/ComfyUI-mape-Helpers": [ + [ + "mape Variable" + ], + { + "author": "mape", + "description": "Various QoL improvements like prompt tweaking, variable assignment, image preview, fuzzy search, error reporting, organizing and node navigation.", + "title": "mape's helpers", + "title_aux": "mape's ComfyUI Helpers" + } + ], "https://github.com/marhensa/sdxl-recommended-res-calc": [ [ "RecommendedResCalc" @@ -7414,6 +7428,7 @@ "easy convertAnything", "easy detailerFix", "easy float", + "easy fooocusInpaintLoader", "easy fullLoader", "easy fullkSampler", "easy globalSeed", @@ -7625,6 +7640,15 @@ "title_aux": "ComfyUI_zfkun" } ], + "https://github.com/zhongpei/Comfyui_image2prompt": [ + [ + "Image2Text", + "LoadImage2TextModel" + ], + { + "title_aux": "Comfyui_image2prompt" + } + ], "https://github.com/zhuanqianfish/ComfyUI-EasyNode": [ [ "EasyCaptureNode", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index f71fcf95..3670bea2 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,26 @@ }, + { + "author": "mape", + "title": "mape's ComfyUI Helpers", + "reference": "https://github.com/mape/ComfyUI-mape-Helpers", + "files": [ + "https://github.com/mape/ComfyUI-mape-Helpers" + ], + "install_type": "git-clone", + "description": "A project that combines all my qualify of life improvements for ComyUI. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" + }, + { + "author": "zhongpei", + "title": "Comfyui_image2prompt", + "reference": "https://github.com/zhongpei/Comfyui_image2prompt", + "files": [ + "https://github.com/zhongpei/Comfyui_image2prompt" + ], + "install_type": "git-clone", + "description": "Nodes:Image to Text, Loader Image to Text Model." + }, { "author": "jamal-alkharrat", "title": "ComfyUI_rotate_image", @@ -669,128 +689,6 @@ ], "install_type": "git-clone", "description": "Loades:SingleImageDataUrlLoader" - }, - { - "author": "tzwm", - "title": "ComfyUI Profiler", - "reference": "https://github.com/tzwm/comfyui-profiler", - "files": [ - "https://github.com/tzwm/comfyui-profiler" - ], - "install_type": "git-clone", - "description": "Calculate the execution time of all nodes." - }, - { - "author": "Hangover3832", - "title": "ComfyUI-Hangover-Nodes", - "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes", - "files": [ - "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes: MS kosmos-2 Interrogator, Save Image w/o Metadata, Image Scale Bounding Box. An implementation of Microsoft [a/kosmos-2](https://huggingface.co/microsoft/kosmos-2-patch14-224) image to text transformer." - }, - { - "author": "celsojr2013", - "title": "ComfyUI SimpleTools Suit", - "reference": "https://github.com/celsojr2013/comfyui_simpletools", - "files": [ - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/google_translator.py", - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/parameters.py", - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/resolution_solver.py" - ], - "install_type": "copy", - "description": "Nodes:Simple Gooogle Translator Client, Simple Mustache Parameter Switcher, Simple Latent Resolution Solver." - }, - { - "author": "MrForExample", - "title": "ComfyUI-3D-Pack", - "reference": "https://github.com/MrForExample/ComfyUI-3D-Pack", - "files": [ - "https://github.com/MrForExample/ComfyUI-3D-Pack" - ], - "install_type": "git-clone", - "description": "An extensive node suite that enables ComfyUI to process 3D inputs (Mesh & UV Texture, etc) using cutting edge algorithms (3DGS, NeRF, etc.)" - }, - { - "author": "kft334", - "title": "Knodes", - "reference": "https://github.com/kft334/Knodes", - "files": [ - "https://github.com/kft334/Knodes" - ], - "install_type": "git-clone", - "description": "Nodes: Image(s) To Websocket (Base64), Load Image (Base64),Load Images (Base64)" - }, - { - "author": "alexopus", - "title": "ComfyUI Image Saver", - "reference": "https://github.com/alexopus/ComfyUI-Image-Saver", - "files": [ - "https://github.com/alexopus/ComfyUI-Image-Saver" - ], - "install_type": "git-clone", - "description": "Allows you to save images with their generation metadata compatible with Civitai. Works with png, jpeg and webp. Stores LoRAs, models and embeddings hashes for resource recognition." - }, - { - "author": "chaojie", - "title": "ComfyUI-MotionCtrl", - "reference": "https://github.com/chaojie/ComfyUI-MotionCtrl", - "files": [ - "https://github.com/chaojie/ComfyUI-MotionCtrl" - ], - "install_type": "git-clone", - "description": "Nodes: Download the weights of MotionCtrl [a/motionctrl.pth](https://huggingface.co/TencentARC/MotionCtrl/blob/main/motionctrl.pth) and put it to ComfyUI/models/checkpoints" - }, - { - "author": "hinablue", - "title": "ComfyUI 3D Pose Editor", - "reference": "https://github.com/hinablue/ComfyUI_3dPoseEditor", - "files": [ - "https://github.com/hinablue/ComfyUI_3dPoseEditor" - ], - "install_type": "git-clone", - "description": "Nodes:3D Pose Editor" - }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-ArtGallery", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery" - ], - "install_type": "git-clone", - "description": "Prompt Visualization | Art Gallery\n[w/WARN: Installation requires 2GB of space, and it will involve a long download time.]" - }, - { - "author": "SiliconFlow", - "title": "OneDiff Nodes", - "reference": "https://github.com/siliconflow/onediff_comfy_nodes", - "files": [ - "https://github.com/siliconflow/onediff_comfy_nodes" - ], - "install_type": "git-clone", - "description": "[a/Onediff](https://github.com/siliconflow/onediff) ComfyUI Nodes." - }, - { - "author": "flowtyone", - "title": "ComfyUI-Flowty-LDSR", - "reference": "https://github.com/flowtyone/ComfyUI-Flowty-LDSR", - "files": [ - "https://github.com/flowtyone/ComfyUI-Flowty-LDSR" - ], - "install_type": "git-clone", - "description": "This is a custom node that lets you take advantage of Latent Diffusion Super Resolution (LDSR) models inside ComfyUI." - }, - { - "author": "massao000", - "title": "ComfyUI_aspect_ratios", - "reference": "https://github.com/massao000/ComfyUI_aspect_ratios", - "files": [ - "https://github.com/massao000/ComfyUI_aspect_ratios" - ], - "install_type": "git-clone", - "description": "Aspect ratio selector for ComfyUI based on [a/sd-webui-ar](https://github.com/alemelis/sd-webui-ar?tab=readme-ov-file)." } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 9fd051b4..c6921d6f 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -3751,6 +3751,7 @@ "DragNUWA Run MotionBrush", "Get First Image", "Get Last Image", + "InstantMotionBrush", "Load CheckPoint DragNUWA", "Load MotionBrush From Optical Flow", "Load MotionBrush From Optical Flow Directory", @@ -3845,10 +3846,12 @@ ], "https://github.com/chflame163/ComfyUI_LayerStyle": [ [ + "LayerFilter: ChannelShake", "LayerFilter: GaussianBlur", "LayerFilter: MotionBlur", "LayerMask: MaskBoxDetect", "LayerMask: MaskEdgeShrink", + "LayerMask: MaskGradient", "LayerMask: MaskGrow", "LayerMask: MaskInvert", "LayerMask: MaskPreview", @@ -3859,7 +3862,6 @@ "LayerStyle: InnerShadow", "LayerStyle: OuterGlow", "LayerStyle: Stroke", - "LayerStyle_Illumine", "LayerUtility: ColorImage", "LayerUtility: ColorPicker", "LayerUtility: ExtendCanvas", @@ -5120,6 +5122,7 @@ ], "https://github.com/jitcoder/lora-info": [ [ + "ImageFromURL", "LoraInfo" ], { @@ -5797,6 +5800,17 @@ "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes" } ], + "https://github.com/mape/ComfyUI-mape-Helpers": [ + [ + "mape Variable" + ], + { + "author": "mape", + "description": "Various QoL improvements like prompt tweaking, variable assignment, image preview, fuzzy search, error reporting, organizing and node navigation.", + "title": "mape's helpers", + "title_aux": "mape's ComfyUI Helpers" + } + ], "https://github.com/marhensa/sdxl-recommended-res-calc": [ [ "RecommendedResCalc" @@ -7414,6 +7428,7 @@ "easy convertAnything", "easy detailerFix", "easy float", + "easy fooocusInpaintLoader", "easy fullLoader", "easy fullkSampler", "easy globalSeed", @@ -7625,6 +7640,15 @@ "title_aux": "ComfyUI_zfkun" } ], + "https://github.com/zhongpei/Comfyui_image2prompt": [ + [ + "Image2Text", + "LoadImage2TextModel" + ], + { + "title_aux": "Comfyui_image2prompt" + } + ], "https://github.com/zhuanqianfish/ComfyUI-EasyNode": [ [ "EasyCaptureNode", From d41b43fd1273efaadb0d401938f5227930f51be8 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Mon, 29 Jan 2024 01:22:41 +0900 Subject: [PATCH 40/47] fix: /manager/notice https://github.com/ltdrdata/ComfyUI-Manager/issues/372 --- __init__.py | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/__init__.py b/__init__.py index ca69202b..ce7aa9dc 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 5, 1] +version = [2, 5, 2] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") @@ -1833,37 +1833,32 @@ async def get_notice(request): url = "github.com" path = "/ltdrdata/ltdrdata.github.io/wiki/News" - conn = http.client.HTTPSConnection(url) - conn.request("GET", path) + async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: + async with session.get(f"https://{url}{path}") as response: + if response.status == 200: + # html_content = response.read().decode('utf-8') + html_content = await response.text() - response = conn.getresponse() + pattern = re.compile(r'
([\s\S]*?)
') + match = pattern.search(html_content) - try: - if response.status == 200: - html_content = response.read().decode('utf-8') + if match: + markdown_content = match.group(1) + markdown_content += f"
ComfyUI: {comfy_ui_revision}[{comfy_ui_hash[:6]}]({comfy_ui_commit_datetime.date()})" + # markdown_content += f"
         ()" + markdown_content += f"
Manager: {version_str}" - pattern = re.compile(r'
([\s\S]*?)
') - match = pattern.search(html_content) + try: + if comfy_ui_required_commit_datetime.date() > comfy_ui_commit_datetime.date(): + markdown_content = f'

Your ComfyUI is too OUTDATED!!!

' + markdown_content + except: + pass - if match: - markdown_content = match.group(1) - markdown_content += f"
ComfyUI: {comfy_ui_revision}[{comfy_ui_hash[:6]}]({comfy_ui_commit_datetime.date()})" - # markdown_content += f"
         ()" - markdown_content += f"
Manager: {version_str}" - - try: - if comfy_ui_required_commit_datetime.date() > comfy_ui_commit_datetime.date(): - markdown_content = f'

Your ComfyUI is too OUTDATED!!!

' + markdown_content - except: - pass - - return web.Response(text=markdown_content, status=200) + return web.Response(text=markdown_content, status=200) + else: + return web.Response(text="Unable to retrieve Notice", status=200) else: return web.Response(text="Unable to retrieve Notice", status=200) - else: - return web.Response(text="Unable to retrieve Notice", status=200) - finally: - conn.close() @server.PromptServer.instance.routes.get("/manager/reboot") From 3792a0070c08f26bd02af9e397ca7a2ea16e31d8 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Mon, 29 Jan 2024 01:35:25 +0900 Subject: [PATCH 41/47] update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a9b7058..5190a1c8 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ To install ComfyUI-Manager in addition to an existing installation of ComfyUI, you can follow the following steps: -1. cd custom_nodes +1. goto `ComfyUI/custom_nodes` dir in terminal(cmd) 2. `git clone https://github.com/ltdrdata/ComfyUI-Manager.git` 3. Restart ComfyUI From af86a6fdf56b76fb51478333d0073e568926f015 Mon Sep 17 00:00:00 2001 From: Mathias Pettersson Date: Sun, 28 Jan 2024 20:09:40 +0100 Subject: [PATCH 42/47] Correct scanned information --- custom-node-list.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-node-list.json b/custom-node-list.json index 35fb2352..646298bf 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4702,7 +4702,7 @@ "https://github.com/mape/ComfyUI-mape-Helpers" ], "install_type": "git-clone", - "description": "A project that combines all my qualify of life improvements for ComyUI. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" + "description": "Multi monitor image preview, Variable Assigment/Wireless Nodes, Prompt Tweaking, Command Palette, Pinned favourite nodes, Node navigation, Fuzzy search, Node time tracking, Organizing and Error management. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" }, { "author": "zhongpei", From d40a84ab20544658879ba362e2229aa864645e95 Mon Sep 17 00:00:00 2001 From: Mathias Pettersson Date: Sun, 28 Jan 2024 20:18:13 +0100 Subject: [PATCH 43/47] Update custom-node-list.json --- custom-node-list.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-node-list.json b/custom-node-list.json index 646298bf..13b94710 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4702,7 +4702,7 @@ "https://github.com/mape/ComfyUI-mape-Helpers" ], "install_type": "git-clone", - "description": "Multi monitor image preview, Variable Assigment/Wireless Nodes, Prompt Tweaking, Command Palette, Pinned favourite nodes, Node navigation, Fuzzy search, Node time tracking, Organizing and Error management. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" + "description": "Multi-monitor image preview, Variable Assigment/Wireless Nodes, Prompt Tweaking, Command Palette, Pinned favourite nodes, Node navigation, Fuzzy search, Node time tracking, Organizing and Error management. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" }, { "author": "zhongpei", From 813a1ce6b0392e6d2ce4804951edfa617664c86c Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 29 Jan 2024 10:40:12 +0900 Subject: [PATCH 44/47] feat: optional file_logging fix: robust file_logging https://github.com/ltdrdata/ComfyUI-Manager/issues/375 --- README.md | 4 +++ __init__.py | 7 ++-- prestartup_script.py | 78 ++++++++++++++++++++++++++++++++++---------- 3 files changed, 69 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 5190a1c8..fafeae1c 100644 --- a/README.md +++ b/README.md @@ -255,8 +255,12 @@ NODE_CLASS_MAPPINGS.update({ ## Additional Feature +* Logging to file feature + * This feature is enabled by default and can be disabled by setting `file_logging = False` in the `config.ini`. + * Fix node(recreate): When right-clicking on a node and selecting `Fix node (recreate)`, you can recreate the node. The widget's values are reset, while the connections maintain those with the same names. * It is used to correct errors in nodes of old workflows created before, which are incompatible with the version changes of custom nodes. + * Double-Click Node Title: You can set the double click behavior of nodes in the ComfyUI-Manager menu. * `Copy All Connections`, `Copy Input Connections`: Double-clicking a node copies the connections of the nearest node. * This action targets the nearest node within a straight-line distance of 1000 pixels from the center of the node. diff --git a/__init__.py b/__init__.py index ce7aa9dc..75add7ff 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 5, 2] +version = [2, 6] version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') print(f"### Loading: ComfyUI-Manager ({version_str})") @@ -173,6 +173,7 @@ def write_config(): 'channel_url': get_config()['channel_url'], 'share_option': get_config()['share_option'], 'bypass_ssl': get_config()['bypass_ssl'], + "file_logging": get_config()['file_logging'], 'default_ui': get_config()['default_ui'], 'component_policy': get_config()['component_policy'], 'double_click_policy': get_config()['double_click_policy'], @@ -195,10 +196,11 @@ def read_config(): 'channel_url': default_conf['channel_url'] if 'channel_url' in default_conf else 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', 'share_option': default_conf['share_option'] if 'share_option' in default_conf else 'all', 'bypass_ssl': default_conf['bypass_ssl'] if 'bypass_ssl' in default_conf else False, + 'file_logging': default_conf['file_logging'] if 'file_logging' in default_conf else True, 'default_ui': default_conf['default_ui'] if 'default_ui' in default_conf else 'none', 'component_policy': default_conf['component_policy'] if 'component_policy' in default_conf else 'workflow', 'double_click_policy': default_conf['double_click_policy'] if 'double_click_policy' in default_conf else 'copy-all', - "windows_selector_event_loop_policy": default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, + 'windows_selector_event_loop_policy': default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, } except Exception: @@ -209,6 +211,7 @@ def read_config(): 'channel_url': 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', 'share_option': 'all', 'bypass_ssl': False, + 'file_logging': True, 'default_ui': 'none', 'component_policy': 'workflow', 'double_click_policy': 'copy-all', diff --git a/prestartup_script.py b/prestartup_script.py index 985da775..31c445e8 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -18,6 +18,7 @@ import cm_global message_collapses = [] import_failed_extensions = set() cm_global.variables['cm.on_revision_detected_handler'] = [] +enable_file_logging = True def register_message_collapse(f): @@ -30,6 +31,24 @@ def is_import_failed_extension(name): return name in import_failed_extensions +def check_file_logging(): + global enable_file_logging + try: + import configparser + config_path = os.path.join(os.path.dirname(__file__), "config.ini") + config = configparser.ConfigParser() + config.read(config_path) + default_conf = config['default'] + + if 'file_logging' in default_conf and default_conf['file_logging'].lower() == 'false': + enable_file_logging = False + except Exception: + pass + + +check_file_logging() + + sys.__comfyui_manager_register_message_collapse = register_message_collapse sys.__comfyui_manager_is_import_failed_extension = is_import_failed_extension cm_global.register_api('cm.register_message_collapse', register_message_collapse) @@ -118,16 +137,34 @@ try: postfix = "" # Logger setup - if os.path.exists(f"comfyui{postfix}.log"): - if os.path.exists(f"comfyui{postfix}.prev.log"): - if os.path.exists(f"comfyui{postfix}.prev2.log"): - os.remove(f"comfyui{postfix}.prev2.log") - os.rename(f"comfyui{postfix}.prev.log", f"comfyui{postfix}.prev2.log") - os.rename(f"comfyui{postfix}.log", f"comfyui{postfix}.prev.log") + if enable_file_logging: + if os.path.exists(f"comfyui{postfix}.log"): + if os.path.exists(f"comfyui{postfix}.prev.log"): + if os.path.exists(f"comfyui{postfix}.prev2.log"): + os.remove(f"comfyui{postfix}.prev2.log") + os.rename(f"comfyui{postfix}.prev.log", f"comfyui{postfix}.prev2.log") + os.rename(f"comfyui{postfix}.log", f"comfyui{postfix}.prev.log") + + log_file = open(f"comfyui{postfix}.log", "w", encoding="utf-8", errors="ignore") + + log_lock = threading.Lock() original_stdout = sys.stdout original_stderr = sys.stderr + if original_stdout.encoding.lower() == 'utf-8': + write_stdout = original_stdout.write + write_stderr = original_stderr.write + else: + def wrapper_stdout(msg): + original_stdout.write(msg.encode('utf-8').decode(original_stdout.encoding, errors="ignore")) + + def wrapper_stderr(msg): + original_stderr.write(msg.encode('utf-8').decode(original_stderr.encoding, errors="ignore")) + + write_stdout = wrapper_stdout + write_stderr = wrapper_stderr + pat_tqdm = r'\d+%.*\[(.*?)\]' pat_import_fail = r'seconds \(IMPORT FAILED\):' pat_custom_node = r'[/\\]custom_nodes[/\\](.*)$' @@ -135,9 +172,6 @@ try: is_start_mode = True is_import_fail_mode = False - log_file = open(f"comfyui{postfix}.log", "w", encoding="utf-8", errors="ignore") - log_lock = threading.Lock() - class ComfyUIManagerLogger: def __init__(self, is_stdout): self.is_stdout = is_stdout @@ -185,7 +219,7 @@ try: if '100%' in message: self.sync_write(message) else: - original_stderr.write(message) + write_stderr(message) original_stderr.flush() else: self.sync_write(message) @@ -204,11 +238,11 @@ try: with std_log_lock: if self.is_stdout: - original_stdout.write(message) + write_stdout(message) original_stdout.flush() terminal_hook.write_stderr(message) else: - original_stderr.write(message) + write_stderr(message) original_stderr.flush() terminal_hook.write_stdout(message) @@ -237,11 +271,16 @@ try: sys.stderr = original_stderr sys.stdout = original_stdout log_file.close() - - sys.stdout = ComfyUIManagerLogger(True) - sys.stderr = ComfyUIManagerLogger(False) - atexit.register(close_log) + + if enable_file_logging: + sys.stdout = ComfyUIManagerLogger(True) + sys.stderr = ComfyUIManagerLogger(False) + + atexit.register(close_log) + else: + sys.stdout.close_log = lambda: None + except Exception as e: print(f"[ComfyUI-Manager] Logging failed: {e}") @@ -250,7 +289,11 @@ print("** ComfyUI startup time:", datetime.datetime.now()) print("** Platform:", platform.system()) print("** Python version:", sys.version) print("** Python executable:", sys.executable) -print("** Log path:", os.path.abspath('comfyui.log')) + +if enable_file_logging: + print("** Log path:", os.path.abspath('comfyui.log')) +else: + print("** Log path: file logging is disabled") def check_bypass_ssl(): @@ -461,7 +504,6 @@ del pip_list def check_windows_event_loop_policy(): try: import configparser - import ssl config_path = os.path.join(os.path.dirname(__file__), "config.ini") config = configparser.ConfigParser() config.read(config_path) From faa5975adbcec37951b5c698cc550db0d2220a21 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 29 Jan 2024 18:07:14 +0900 Subject: [PATCH 45/47] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 24 +++++++++++++++++++++++- node_db/dev/custom-node-list.json | 21 ++++++++++++++++++++- node_db/new/extension-node-map.json | 24 +++++++++++++++++++++++- node_db/tutorial/custom-node-list.json | 10 ++++++++++ 5 files changed, 86 insertions(+), 3 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 13b94710..602e1f5b 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4414,6 +4414,16 @@ "install_type": "git-clone", "description": "Add a node that outputs width and height of the size selected from the preset (.csv)." }, + { + "author": "nkchocoai", + "title": "ComfyUI-PromptUtilities", + "reference": "https://github.com/nkchocoai/ComfyUI-PromptUtilities", + "files": [ + "https://github.com/nkchocoai/ComfyUI-PromptUtilities" + ], + "install_type": "git-clone", + "description": "Nodes: Format String, Join String List, Load Preset, Load Preset (Advanced), Const String, Const String (multi line). Add useful nodes related to prompt." + }, { "author": "JaredTherriault", "title": "ComfyUI-JNodes", diff --git a/extension-node-map.json b/extension-node-map.json index c6921d6f..0c32b4cf 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -3838,7 +3838,8 @@ [ "Load MotionBrush", "RAFT Run", - "Save MotionBrush" + "Save MotionBrush", + "VizMotionBrush" ], { "title_aux": "ComfyUI-RAFT" @@ -4075,6 +4076,7 @@ "ConditioningConcat", "ConditioningSetArea", "ConditioningSetAreaPercentage", + "ConditioningSetAreaStrength", "ConditioningSetMask", "ConditioningSetTimestepRange", "ConditioningZeroOut", @@ -4278,6 +4280,7 @@ "DebugTensorShape+", "ExtractKeyframes+", "GetImageSize+", + "ImageApplyLUT+", "ImageCASharpening+", "ImageCompositeFromMaskBatch+", "ImageCrop+", @@ -4297,6 +4300,7 @@ "MaskFromColor+", "MaskPreview+", "ModelCompile+", + "NoiseFromImage+", "SDXLResolutionPicker+", "SimpleMath+", "TransitionMask+" @@ -5261,10 +5265,13 @@ "ImageGrabPIL", "ImageGridComposite2x2", "ImageGridComposite3x3", + "ImageTransformByNormalizedAmplitude", "InjectNoiseToLatent", "InsertImageBatchByIndexes", "NormalizeLatent", + "NormalizedAmplitudeToMask", "OffsetMask", + "OffsetMaskByNormalizedAmplitude", "ReferenceOnlySimple3", "ReplaceImagesInBatch", "ResizeMask", @@ -5807,6 +5814,7 @@ { "author": "mape", "description": "Various QoL improvements like prompt tweaking, variable assignment, image preview, fuzzy search, error reporting, organizing and node navigation.", + "nickname": "\ud83d\udfe1 mape's helpers", "title": "mape's helpers", "title_aux": "mape's ComfyUI Helpers" } @@ -6058,6 +6066,19 @@ "title_aux": "comfyui-NDI" } ], + "https://github.com/nkchocoai/ComfyUI-PromptUtilities": [ + [ + "PromptUtilitiesConstString", + "PromptUtilitiesConstStringMultiLine", + "PromptUtilitiesFormatString", + "PromptUtilitiesJoinStringList", + "PromptUtilitiesLoadPreset", + "PromptUtilitiesLoadPresetAdvanced" + ], + { + "title_aux": "ComfyUI-PromptUtilities" + } + ], "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": [ [ "EmptyLatentImageFromPresetsSD15", @@ -6249,6 +6270,7 @@ "AnyAspectRatio", "ConditioningMultiplier_PoP", "ConditioningNormalizer_PoP", + "DallE3_PoP", "LoadImageResizer_PoP", "LoraStackLoader10_PoP", "LoraStackLoader_PoP", diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index e686f82c..4c31b919 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -10,7 +10,26 @@ }, - + { + "author": "nkchocoai", + "title": "ComfyUI-PromptUtilities", + "reference": "https://github.com/nkchocoai/ComfyUI-PromptUtilities", + "files": [ + "https://github.com/nkchocoai/ComfyUI-PromptUtilities" + ], + "install_type": "git-clone", + "description": "Nodes: Format String, Join String List, Load Preset, Load Preset (Advanced), Const String, Const String (multi line). Add useful nodes related to prompt." + }, + { + "author": "BadCafeCode", + "title": "execution-inversion-demo-comfyui", + "reference": "https://github.com/BadCafeCode/execution-inversion-demo-comfyui", + "files": [ + "https://github.com/BadCafeCode/execution-inversion-demo-comfyui" + ], + "install_type": "git-clone", + "description": "execution-inversion-demo-comfyui" + }, { "author": "unanan", "title": "ComfyUI-clip-interrogator [WIP]", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index c6921d6f..0c32b4cf 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -3838,7 +3838,8 @@ [ "Load MotionBrush", "RAFT Run", - "Save MotionBrush" + "Save MotionBrush", + "VizMotionBrush" ], { "title_aux": "ComfyUI-RAFT" @@ -4075,6 +4076,7 @@ "ConditioningConcat", "ConditioningSetArea", "ConditioningSetAreaPercentage", + "ConditioningSetAreaStrength", "ConditioningSetMask", "ConditioningSetTimestepRange", "ConditioningZeroOut", @@ -4278,6 +4280,7 @@ "DebugTensorShape+", "ExtractKeyframes+", "GetImageSize+", + "ImageApplyLUT+", "ImageCASharpening+", "ImageCompositeFromMaskBatch+", "ImageCrop+", @@ -4297,6 +4300,7 @@ "MaskFromColor+", "MaskPreview+", "ModelCompile+", + "NoiseFromImage+", "SDXLResolutionPicker+", "SimpleMath+", "TransitionMask+" @@ -5261,10 +5265,13 @@ "ImageGrabPIL", "ImageGridComposite2x2", "ImageGridComposite3x3", + "ImageTransformByNormalizedAmplitude", "InjectNoiseToLatent", "InsertImageBatchByIndexes", "NormalizeLatent", + "NormalizedAmplitudeToMask", "OffsetMask", + "OffsetMaskByNormalizedAmplitude", "ReferenceOnlySimple3", "ReplaceImagesInBatch", "ResizeMask", @@ -5807,6 +5814,7 @@ { "author": "mape", "description": "Various QoL improvements like prompt tweaking, variable assignment, image preview, fuzzy search, error reporting, organizing and node navigation.", + "nickname": "\ud83d\udfe1 mape's helpers", "title": "mape's helpers", "title_aux": "mape's ComfyUI Helpers" } @@ -6058,6 +6066,19 @@ "title_aux": "comfyui-NDI" } ], + "https://github.com/nkchocoai/ComfyUI-PromptUtilities": [ + [ + "PromptUtilitiesConstString", + "PromptUtilitiesConstStringMultiLine", + "PromptUtilitiesFormatString", + "PromptUtilitiesJoinStringList", + "PromptUtilitiesLoadPreset", + "PromptUtilitiesLoadPresetAdvanced" + ], + { + "title_aux": "ComfyUI-PromptUtilities" + } + ], "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": [ [ "EmptyLatentImageFromPresetsSD15", @@ -6249,6 +6270,7 @@ "AnyAspectRatio", "ConditioningMultiplier_PoP", "ConditioningNormalizer_PoP", + "DallE3_PoP", "LoadImageResizer_PoP", "LoraStackLoader10_PoP", "LoraStackLoader_PoP", diff --git a/node_db/tutorial/custom-node-list.json b/node_db/tutorial/custom-node-list.json index 9d1dffee..0930d392 100644 --- a/node_db/tutorial/custom-node-list.json +++ b/node_db/tutorial/custom-node-list.json @@ -89,6 +89,16 @@ ], "install_type": "git-clone", "description": "Nodes:Loader, Image Processor, Text Processor, ImageScore" + }, + { + "author": "kappa54m", + "title": "ComfyUI-HPSv2-Nodes", + "reference": "https://github.com/kappa54m/ComfyUI_Usability", + "files": [ + "https://github.com/kappa54m/ComfyUI_Usability" + ], + "install_type": "git-clone", + "description": "Nodes:Load Image Dedup" } ] } \ No newline at end of file From e75b7938dea3d917f85cae38a45ee3dbcdbb18ae Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 30 Jan 2024 10:28:07 +0900 Subject: [PATCH 46/47] update DB --- custom-node-list.json | 10 ++++++++ extension-node-map.json | 38 ++++++++++++++++++++++++++--- node_db/dev/custom-node-list.json | 10 ++++++++ node_db/new/custom-node-list.json | 30 ++++++++--------------- node_db/new/extension-node-map.json | 38 ++++++++++++++++++++++++++--- 5 files changed, 98 insertions(+), 28 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 602e1f5b..afc740bb 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -4724,6 +4724,16 @@ "install_type": "git-clone", "description": "Nodes:Image to Text, Loader Image to Text Model." }, + { + "author": "Loewen-Hob", + "title": "Rembg Background Removal Node for ComfyUI", + "reference": "https://github.com/Loewen-Hob/rembg-comfyui-node-better", + "files": [ + "https://github.com/Loewen-Hob/rembg-comfyui-node-better" + ], + "install_type": "git-clone", + "description": "This custom node is based on the [a/rembg-comfyui-node](https://github.com/Jcd1230/rembg-comfyui-node) but provides additional functionality to select ONNX models." + }, diff --git a/extension-node-map.json b/extension-node-map.json index 0c32b4cf..298377be 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -51,19 +51,30 @@ ], "https://github.com/54rt1n/ComfyUI-DareMerge": [ [ + "DM_AdvancedDareModelMerger", + "DM_AdvancedModelMerger", + "DM_AttentionGradient", + "DM_BlockGradient", + "DM_BlockModelMerger", "DM_DareClipMerger", - "DM_DareModelMerger", + "DM_DareModelMergerBlock", + "DM_DareModelMergerElement", "DM_DareModelMergerMBW", + "DM_GradientEdit", + "DM_GradientOperations", + "DM_GradientReporting", + "DM_InjectNoise", "DM_LoRALoaderTags", "DM_LoRAReporting", + "DM_MBWGradient", "DM_MagnitudeMasker", "DM_MaskEdit", "DM_MaskOperations", "DM_MaskReporting", - "DM_MaskedModelMerger", "DM_ModelReporting", "DM_NormalizeModel", "DM_QuadMasker", + "DM_ShellGradient", "DM_SimpleMasker" ], { @@ -1330,6 +1341,14 @@ "title_aux": "ComfyUI-Diffusers" } ], + "https://github.com/Loewen-Hob/rembg-comfyui-node-better": [ + [ + "Image Remove Background (rembg)" + ], + { + "title_aux": "Rembg Background Removal Node for ComfyUI" + } + ], "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": [ [ "BreakFrames", @@ -3747,11 +3766,13 @@ [ "BrushMotion", "CompositeMotionBrush", + "CompositeMotionBrushWithoutModel", "DragNUWA Run", "DragNUWA Run MotionBrush", "Get First Image", "Get Last Image", - "InstantMotionBrush", + "InstantCameraMotionBrush", + "InstantObjectMotionBrush", "Load CheckPoint DragNUWA", "Load MotionBrush From Optical Flow", "Load MotionBrush From Optical Flow Directory", @@ -3850,11 +3871,13 @@ "LayerFilter: ChannelShake", "LayerFilter: GaussianBlur", "LayerFilter: MotionBlur", + "LayerFilter: SoftLight", "LayerMask: MaskBoxDetect", "LayerMask: MaskEdgeShrink", "LayerMask: MaskGradient", "LayerMask: MaskGrow", "LayerMask: MaskInvert", + "LayerMask: MaskMotionBlur", "LayerMask: MaskPreview", "LayerStyle: ColorOverlay", "LayerStyle: DropShadow", @@ -4854,7 +4877,8 @@ "https://github.com/glifxyz/ComfyUI-GlifNodes": [ [ "GlifConsistencyDecoder", - "GlifPatchConsistencyDecoderTiled" + "GlifPatchConsistencyDecoderTiled", + "SDXLAspectRatio" ], { "title_aux": "ComfyUI-GlifNodes" @@ -5257,6 +5281,7 @@ "GenerateNoise", "GetImageRangeFromBatch", "GetImagesFromBatchIndexed", + "GetLatentsFromBatchIndexed", "GrowMaskWithBlur", "INTConstant", "ImageBatchRepeatInterleaving", @@ -5282,6 +5307,7 @@ "SoundReactive", "SplitBboxes", "StableZero123_BatchSchedule", + "StringConstant", "VRAM_Debug", "WidgetToString" ], @@ -7434,7 +7460,9 @@ "easy XYInputs: Denoise", "easy XYInputs: ModelMergeBlocks", "easy XYInputs: NegativeCond", + "easy XYInputs: NegativeCondList", "easy XYInputs: PositiveCond", + "easy XYInputs: PositiveCondList", "easy XYInputs: PromptSR", "easy XYInputs: Sampler/Scheduler", "easy XYInputs: Seeds++ Batch", @@ -7466,6 +7494,7 @@ "easy imageSize", "easy imageSizeByLongerSide", "easy imageSizeBySide", + "easy imageSwitch", "easy imageToMask", "easy int", "easy joinImageBatch", @@ -7489,6 +7518,7 @@ "easy preSamplingAdvanced", "easy preSamplingDynamicCFG", "easy preSamplingSdTurbo", + "easy promptList", "easy rangeFloat", "easy rangeInt", "easy samLoaderPipe", diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index 4c31b919..3083fa29 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -10,6 +10,16 @@ }, + { + "author": "17Retoucher", + "title": "ComfyUI_Fooocus", + "reference": "https://github.com/17Retoucher/ComfyUI_Fooocus", + "files": [ + "https://github.com/17Retoucher/ComfyUI_Fooocus" + ], + "install_type": "git-clone", + "description": "Custom nodes that help reproduce image generation in Fooocus." + }, { "author": "nkchocoai", "title": "ComfyUI-PromptUtilities", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 3670bea2..92a66397 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -10,6 +10,16 @@ }, + { + "author": "Loewen-Hob", + "title": "Rembg Background Removal Node for ComfyUI", + "reference": "https://github.com/Loewen-Hob/rembg-comfyui-node-better", + "files": [ + "https://github.com/Loewen-Hob/rembg-comfyui-node-better" + ], + "install_type": "git-clone", + "description": "This custom node is based on the [a/rembg-comfyui-node](https://github.com/Jcd1230/rembg-comfyui-node) but provides additional functionality to select ONNX models." + }, { "author": "mape", "title": "mape's ComfyUI Helpers", @@ -669,26 +679,6 @@ ], "install_type": "git-clone", "description": "This is a set of nodes to interact with llama-cpp-python" - }, - { - "author": "djbielejeski", - "title": "a-person-mask-generator", - "reference": "https://github.com/djbielejeski/a-person-mask-generator", - "files": [ - "https://github.com/djbielejeski/a-person-mask-generator" - ], - "install_type": "git-clone", - "description": "Extension for Automatic1111 and ComfyUI to automatically create masks for Background/Hair/Body/Face/Clothes in Img2Img" - }, - { - "author": "smagnetize", - "title": "kb-comfyui-nodes", - "reference": "https://github.com/smagnetize/kb-comfyui-nodes", - "files": [ - "https://github.com/smagnetize/kb-comfyui-nodes" - ], - "install_type": "git-clone", - "description": "Loades:SingleImageDataUrlLoader" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 0c32b4cf..298377be 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -51,19 +51,30 @@ ], "https://github.com/54rt1n/ComfyUI-DareMerge": [ [ + "DM_AdvancedDareModelMerger", + "DM_AdvancedModelMerger", + "DM_AttentionGradient", + "DM_BlockGradient", + "DM_BlockModelMerger", "DM_DareClipMerger", - "DM_DareModelMerger", + "DM_DareModelMergerBlock", + "DM_DareModelMergerElement", "DM_DareModelMergerMBW", + "DM_GradientEdit", + "DM_GradientOperations", + "DM_GradientReporting", + "DM_InjectNoise", "DM_LoRALoaderTags", "DM_LoRAReporting", + "DM_MBWGradient", "DM_MagnitudeMasker", "DM_MaskEdit", "DM_MaskOperations", "DM_MaskReporting", - "DM_MaskedModelMerger", "DM_ModelReporting", "DM_NormalizeModel", "DM_QuadMasker", + "DM_ShellGradient", "DM_SimpleMasker" ], { @@ -1330,6 +1341,14 @@ "title_aux": "ComfyUI-Diffusers" } ], + "https://github.com/Loewen-Hob/rembg-comfyui-node-better": [ + [ + "Image Remove Background (rembg)" + ], + { + "title_aux": "Rembg Background Removal Node for ComfyUI" + } + ], "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": [ [ "BreakFrames", @@ -3747,11 +3766,13 @@ [ "BrushMotion", "CompositeMotionBrush", + "CompositeMotionBrushWithoutModel", "DragNUWA Run", "DragNUWA Run MotionBrush", "Get First Image", "Get Last Image", - "InstantMotionBrush", + "InstantCameraMotionBrush", + "InstantObjectMotionBrush", "Load CheckPoint DragNUWA", "Load MotionBrush From Optical Flow", "Load MotionBrush From Optical Flow Directory", @@ -3850,11 +3871,13 @@ "LayerFilter: ChannelShake", "LayerFilter: GaussianBlur", "LayerFilter: MotionBlur", + "LayerFilter: SoftLight", "LayerMask: MaskBoxDetect", "LayerMask: MaskEdgeShrink", "LayerMask: MaskGradient", "LayerMask: MaskGrow", "LayerMask: MaskInvert", + "LayerMask: MaskMotionBlur", "LayerMask: MaskPreview", "LayerStyle: ColorOverlay", "LayerStyle: DropShadow", @@ -4854,7 +4877,8 @@ "https://github.com/glifxyz/ComfyUI-GlifNodes": [ [ "GlifConsistencyDecoder", - "GlifPatchConsistencyDecoderTiled" + "GlifPatchConsistencyDecoderTiled", + "SDXLAspectRatio" ], { "title_aux": "ComfyUI-GlifNodes" @@ -5257,6 +5281,7 @@ "GenerateNoise", "GetImageRangeFromBatch", "GetImagesFromBatchIndexed", + "GetLatentsFromBatchIndexed", "GrowMaskWithBlur", "INTConstant", "ImageBatchRepeatInterleaving", @@ -5282,6 +5307,7 @@ "SoundReactive", "SplitBboxes", "StableZero123_BatchSchedule", + "StringConstant", "VRAM_Debug", "WidgetToString" ], @@ -7434,7 +7460,9 @@ "easy XYInputs: Denoise", "easy XYInputs: ModelMergeBlocks", "easy XYInputs: NegativeCond", + "easy XYInputs: NegativeCondList", "easy XYInputs: PositiveCond", + "easy XYInputs: PositiveCondList", "easy XYInputs: PromptSR", "easy XYInputs: Sampler/Scheduler", "easy XYInputs: Seeds++ Batch", @@ -7466,6 +7494,7 @@ "easy imageSize", "easy imageSizeByLongerSide", "easy imageSizeBySide", + "easy imageSwitch", "easy imageToMask", "easy int", "easy joinImageBatch", @@ -7489,6 +7518,7 @@ "easy preSamplingAdvanced", "easy preSamplingDynamicCFG", "easy preSamplingSdTurbo", + "easy promptList", "easy rangeFloat", "easy rangeInt", "easy samLoaderPipe", From e54c4b1f7b56edb704f794413c9bba81dad439b2 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 30 Jan 2024 17:26:53 +0900 Subject: [PATCH 47/47] feat: add `Possible(left) + Copy(right)` for double-click feature --- README.md | 2 ++ __init__.py | 2 +- js/comfyui-manager.js | 1 + js/node_fixer.js | 19 +++++++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fafeae1c..6dd3b693 100644 --- a/README.md +++ b/README.md @@ -269,6 +269,8 @@ NODE_CLASS_MAPPINGS.update({ * `Possible Input Connections`: It connects all outputs that match the closest type within the specified range. * This connection links to the closest outputs among the nodes located on the left side of the target node. + + * `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`. ## 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. diff --git a/__init__.py b/__init__.py index 75add7ff..0fa384ff 100644 --- a/__init__.py +++ b/__init__.py @@ -29,7 +29,7 @@ except: print(f"[WARN] ComfyUI-Manager: Your ComfyUI version is outdated. Please update to the latest version.") -version = [2, 6] +version = [2, 7] 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/js/comfyui-manager.js b/js/comfyui-manager.js index 66f93750..00d5456d 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -914,6 +914,7 @@ class ManagerMenuDialog extends ComfyDialog { dbl_click_policy_combo.appendChild($el('option', { value: 'copy-all', text: 'Double-Click: Copy All Connections' }, [])); dbl_click_policy_combo.appendChild($el('option', { value: 'copy-input', text: 'Double-Click: Copy Input Connections' }, [])); dbl_click_policy_combo.appendChild($el('option', { value: 'possible-input', text: 'Double-Click: Possible Input Connections' }, [])); + dbl_click_policy_combo.appendChild($el('option', { value: 'dual', text: 'Double-Click: Possible(left) + Copy(right)' }, [])); api.fetchApi('/manager/dbl_click/policy') .then(response => response.text()) diff --git a/js/node_fixer.js b/js/node_fixer.js index a696976e..94b4c747 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -171,6 +171,25 @@ app.registerExtension({ connect_inputs(nearest_inputs, node); } break; + case "dual": + { + if(pos[0] < node.size[0]/2) { + // left: possible-input + let nearest_inputs = lookup_nearest_inputs(node); + if(nearest_inputs) + connect_inputs(nearest_inputs, node); + } + else { + // right: copy-all + if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) + return; + + let src_node = lookup_nearest_nodes(node); + if(src_node) + node_info_copy(src_node, node, true); + } + } + break; } } },