Compare commits

..

15 Commits

Author SHA1 Message Date
Dr.Lt.Data
34a48fbae4 wip: pygit2 2024-11-29 19:50:35 +09:00
Dr.Lt.Data
76b073c366 feat: support extra_model_paths.yaml - custom_nodes 2024-11-29 02:43:02 +09:00
Dr.Lt.Data
fa357479ef update DB 2024-11-29 01:43:36 +09:00
lin pusheng
19a9c24485 feat: add ComfyUI MiaoShua Creator (#1278)
* feat: add  ComfyUI MiaoShua Creator

* Update custom-node-list.json

---------

Co-authored-by: linpusheng <linpusheng@meituan.com>
Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2024-11-29 01:20:21 +09:00
Dr.Lt.Data
05ecca1f4d update DB 2024-11-27 22:12:36 +09:00
Yuan-Man
58847298be Add ComfyUI-SoundHub node (#1276) 2024-11-27 21:58:09 +09:00
Dr.Lt.Data
a9f8cecaec remove flowt.ai from workflow gallery.
https://github.com/ltdrdata/ComfyUI-Manager/issues/1275
2024-11-27 02:35:47 +09:00
Dr.Lt.Data
441b4d2797 update DB 2024-11-27 02:34:17 +09:00
Dr.Lt.Data
1808bc3027 update DB 2024-11-27 02:05:09 +09:00
周公不解梦
d4db1a51d2 Add CNtranslator Node for Chinese user. (#1268) 2024-11-27 02:04:27 +09:00
Dr.Lt.Data
f06ac47557 update DB 2024-11-27 02:04:14 +09:00
Lasse Lauwerys
d8fb8ce606 Add better touchpad gestures module (#1269)
* Added touchscreen support module

* Added touchpad support module
2024-11-27 02:02:39 +09:00
exec
26b7816552 Add exectails custom nodes (#1272)
* Added exectails custom nodes to list

* Update custom-node-list.json

remove comfyui-et_scripting

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2024-11-27 01:58:41 +09:00
Dr.Lt.Data
8576f9c97f update DB 2024-11-26 00:37:47 +09:00
Dương Quang Tùng
c4eecca6b6 add joy-caption-alpha-two (#1267) 2024-11-25 23:45:46 +09:00
19 changed files with 4472 additions and 3086 deletions

View File

@@ -5210,6 +5210,17 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Provides some features and nodes related to API calls." "description": "Provides some features and nodes related to API calls."
}, },
{
"author": "lldacing",
"title": "ComfyUI_StableDelight_ll",
"id": "comfyui_stabledelight_ll",
"reference": "https://github.com/lldacing/ComfyUI_StableDelight_ll",
"files": [
"https://github.com/lldacing/ComfyUI_StableDelight_ll"
],
"install_type": "git-clone",
"description": "StableDelight: Revealing Hidden Textures by Removing Specular Reflections"
},
{ {
"author": "CosmicLaca", "author": "CosmicLaca",
"title": "Primere nodes for ComfyUI", "title": "Primere nodes for ComfyUI",
@@ -7205,6 +7216,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A custom node that provides enhanced control over style transfer balance when using FLUX style models in ComfyUI. This node offers better control over the influence of text prompts versus style reference images." "description": "A custom node that provides enhanced control over style transfer balance when using FLUX style models in ComfyUI. This node offers better control over the influence of text prompts versus style reference images."
}, },
{
"author": "ShmuelRonen",
"title": "ComfyUI Pixtral Large Extension",
"reference": "https://github.com/ShmuelRonen/ComfyUI_pixtral_large",
"files": [
"https://github.com/ShmuelRonen/ComfyUI_pixtral_large"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node that integrates Mistral AI's Pixtral Large vision model, enabling powerful multimodal AI capabilities within ComfyUI. Pixtral Large is a 124B parameter model (123B decoder + 1B vision encoder) that can analyze up to 30 high-resolution images simultaneously."
},
{ {
"author": "redhottensors", "author": "redhottensors",
"title": "ComfyUI-Prediction", "title": "ComfyUI-Prediction",
@@ -8613,16 +8634,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Unofficial implementation of [a/MiniCPM-V](https://github.com/OpenBMB/MiniCPM-V) for ComfyUI" "description": "Unofficial implementation of [a/MiniCPM-V](https://github.com/OpenBMB/MiniCPM-V) for ComfyUI"
}, },
{
"author": "hay86",
"title": "ComfyUI AceNodes",
"reference": "https://github.com/hay86/ComfyUI_AceNodes",
"files": [
"https://github.com/hay86/ComfyUI_AceNodes"
],
"install_type": "git-clone",
"description": "Some useful custom nodes that are not included in ComfyUI core yet."
},
{ {
"author": "shinich39", "author": "shinich39",
"title": "comfyui-load-image-in-seq", "title": "comfyui-load-image-in-seq",
@@ -10003,14 +10014,14 @@
}, },
{ {
"author": "pamparamm", "author": "pamparamm",
"title": "Perturbed-Attention Guidance", "title": "sd-perturbed-attention",
"id": "pag", "id": "pag",
"reference": "https://github.com/pamparamm/sd-perturbed-attention", "reference": "https://github.com/pamparamm/sd-perturbed-attention",
"files": [ "files": [
"https://github.com/pamparamm/sd-perturbed-attention" "https://github.com/pamparamm/sd-perturbed-attention"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "Perturbed-Attention Guidance with advanced parameters for ComfyUI. (PAG)" "description": "Perturbed-Attention Guidance, Smoothed Energy Guidance and Sliding Window Guidance for ComfyUI and SD Forge/reForge. (PAG)"
}, },
{ {
"author": "pamparamm", "author": "pamparamm",
@@ -14462,7 +14473,7 @@
"https://github.com/Steudio/ComfyUI_Steudio" "https://github.com/Steudio/ComfyUI_Steudio"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "Nodes: Make_Tile_Calc, Make_Tiles, Unmake_Tiles, Make_Size, Make_Size_Latent" "description": "Nodes: Divide and Conquer Algorithm, Divide Image, Combine Tiles, Make_Size"
}, },
{ {
"author": "Assistant", "author": "Assistant",
@@ -15195,7 +15206,7 @@
"https://github.com/revirevy/Comfyui_saveimage_imgbb" "https://github.com/revirevy/Comfyui_saveimage_imgbb"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "This custom node allow upscaling an image by a factor using a model." "description": "This custom node allow you to upload result images to imgbb."
}, },
{ {
"author": "Kinglord", "author": "Kinglord",
@@ -16137,6 +16148,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A custom node for ComfyUI that allows you to create iPhone-compatible Live Photos from videos. This node can convert video sequences into Live Photo format, with the ability to select key frames and customize the output." "description": "A custom node for ComfyUI that allows you to create iPhone-compatible Live Photos from videos. This node can convert video sequences into Live Photo format, with the ability to select key frames and customize the output."
}, },
{
"author": "stormcenter",
"title": "ComfyUI-SVGFullfill",
"reference": "https://github.com/stormcenter/ComfyUI-SVGFullfill",
"files": [
"https://github.com/stormcenter/ComfyUI-SVGFullfill"
],
"install_type": "git-clone",
"description": "ComfyUI-SVGFullfill is a custom node for ComfyUI that handles SVG file processing. Key features: - SVG file upload and preview - Replace images (up to 3) and text elements (up to 10) in SVG - Chinese font support - Real-time canvas preview - PNG export"
},
{ {
"author": "AkashKarnatak", "author": "AkashKarnatak",
"title": "ComfyUI_faishme", "title": "ComfyUI_faishme",
@@ -16374,16 +16395,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A custom node extension for ComfyUI that enables conversion between NovelAI and ComfyUI prompt formats, along with extraction of NovelAI metadata from PNG images." "description": "A custom node extension for ComfyUI that enables conversion between NovelAI and ComfyUI prompt formats, along with extraction of NovelAI metadata from PNG images."
}, },
{
"author": "zmwv823",
"title": "ComfyUI_Ctrlora",
"reference": "https://github.com/zmwv823/ComfyUI_Ctrlora",
"files": [
"https://github.com/zmwv823/ComfyUI_Ctrlora"
],
"install_type": "git-clone",
"description": "Unofficial custom_node for [a/xyfJASON/ctrlora](https://github.com/xyfJASON/ctrlora)."
},
{ {
"author": "Wakfull33", "author": "Wakfull33",
"title": "ComfyUI-SaveImageCivitAI", "title": "ComfyUI-SaveImageCivitAI",
@@ -16790,6 +16801,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A node suite for downloading audio and video from youtube as we all sevral useful video utilits such as a final frame selector and a node that merges two videos into one." "description": "A node suite for downloading audio and video from youtube as we all sevral useful video utilits such as a final frame selector and a node that merges two videos into one."
}, },
{
"author": "DoctorDiffusion",
"title": "ComfyUI-SnakeOil",
"reference": "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil",
"files": [
"https://github.com/DoctorDiffusion/ComfyUI-SnakeOil"
],
"install_type": "git-clone",
"description": "Use [a/Doctor Diffusion's snake oil nLoRAs](https://civitai.com/models/987843) as well as [a/other negative LoRAs](https://civitai.com/models/186617/doctor-diffusions-negative-xl-lora) easily within ComfyUI."
},
{ {
"author": "robtl2", "author": "robtl2",
"title": "ComfyUI-ComfyBridge", "title": "ComfyUI-ComfyBridge",
@@ -16963,6 +16984,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "This repository packages the latest BiRefNet model as a ComfyUI node for use, supporting chunked loading on both CPU and GPU, as well as model caching features." "description": "This repository packages the latest BiRefNet model as a ComfyUI node for use, supporting chunked loading on both CPU and GPU, as well as model caching features."
}, },
{
"author": "duhaifeng",
"title": "ComfyUI-Flux-Inpainting",
"reference": "https://github.com/rubi-du/ComfyUI-Flux-Inpainting",
"files": [
"https://github.com/rubi-du/ComfyUI-Flux-Inpainting"
],
"install_type": "git-clone",
"description": "This node wraps the flux fill model as ComfyUI nodes. Use NF4 flux fill model, support for inpainting and outpainting image. Compared to the flux fill dev model, these nodes can use the flux fill model to perform inpainting and outpainting work under lower VRM conditions."
},
{ {
"author": "vkff5833", "author": "vkff5833",
"title": "ComfyUI-PromptConverter", "title": "ComfyUI-PromptConverter",
@@ -16983,6 +17014,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES:Canvas View" "description": "NODES:Canvas View"
}, },
{
"author": "tanglup",
"title": "Comfyui_Flux_Style_Adjust",
"reference": "https://github.com/tanglup/Comfyui_Flux_Style_Adjust",
"files": [
"https://github.com/tanglup/Comfyui_Flux_Style_Adjust"
],
"install_type": "git-clone",
"description": "StyleModelApply adds more controls"
},
{ {
"author": "Makki_Shizu", "author": "Makki_Shizu",
"title": "ComfyUI-SaveAnimatedGIF", "title": "ComfyUI-SaveAnimatedGIF",
@@ -17078,6 +17119,17 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "The face restore node for ComfyUI, based on RestoreFormer" "description": "The face restore node for ComfyUI, based on RestoreFormer"
}, },
{
"author": "tungdop2",
"title": "Joy Caption Alpha Two for ComfyUI",
"id": "joy-captioner-alpha-two",
"reference": "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two",
"files": [
"https://github.com/tungdop2/Comfyui_joy-caption-alpha-two"
],
"install_type": "git-clone",
"description": "The Joy Caption Alpha Two node for ComfyUI, based on https://huggingface.co/spaces/fancyfeast/joy-caption-alpha-two"
},
{ {
"author": "pschroedl", "author": "pschroedl",
"title": "ComfyUI-SAM2-Realtime", "title": "ComfyUI-SAM2-Realtime",
@@ -17100,13 +17152,13 @@
}, },
{ {
"author": "iamandeepsandhu", "author": "iamandeepsandhu",
"title": "ComfyUI-NSFW-Check", "title": "NSFW Check for ComfyUI",
"reference": "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check", "reference": "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check",
"files": [ "files": [
"https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check" "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "his project is designed to detect whether images generated by ComfyUI are Not Safe For Work (NSFW). It uses a machine learning model to classify images as either safe or not safe for work and returns a confidence score for the NSFW classification." "description": "This project is designed to detect whether images generated by ComfyUI are Not Safe For Work (NSFW). It uses a machine learning model to classify images as either safe or not safe for work and returns a confidence score for the NSFW classification."
}, },
{ {
"author": "Black-Lioness", "author": "Black-Lioness",
@@ -17128,6 +17180,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A node for ComfyUI that modifies the values in the samples input that fall outside of a min and max range using a multiplier." "description": "A node for ComfyUI that modifies the values in the samples input that fall outside of a min and max range using a multiplier."
}, },
{
"author": "SparknightLLC",
"title": "ComfyUI-MaskArbiter",
"reference": "https://github.com/SparknightLLC/ComfyUI-MaskArbiter",
"files": [
"https://github.com/SparknightLLC/ComfyUI-MaskArbiter"
],
"install_type": "git-clone",
"description": "A node for ComfyUI that takes a list of masks and returns a single mask based on your criteria. For example, it can be used to mask the leftmost subject in an image containing more than one subject of the same class. The workflow below demonstrates the difference between Mask Arbiter (top) and traditional Grounding DINO masking (bottom.)"
},
{ {
"author": "lightricks", "author": "lightricks",
"title": "ComfyUI-LTXVideo", "title": "ComfyUI-LTXVideo",
@@ -17148,7 +17210,7 @@
"https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl" "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "This extension offers a new Apply-Style node for Reflux that allows for changing the influence of the conditioning image on the final outcome. This effectively allows for changing the style or content of an image using a prompt while using Reflux." "description": "This extension offers a new Apply-Style node for Redux that allows for changing the influence of the conditioning image on the final outcome. This effectively allows for changing the style or content of an image using a prompt while using Redux."
}, },
{ {
"author": "ramesh-x90", "author": "ramesh-x90",
@@ -17160,6 +17222,193 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "This repository provides custom nodes for ComfyUI designed to process audio files, performing speaker diarization and integrating speaker data into whisper-transcribed segments. These nodes utilize the PyAnnote library for speaker identification and pandas for efficient data handling." "description": "This repository provides custom nodes for ComfyUI designed to process audio files, performing speaker diarization and integrating speaker data into whisper-transcribed segments. These nodes utilize the PyAnnote library for speaker identification and pandas for efficient data handling."
}, },
{
"author": "wu12023",
"title": "ComfyUI-Image-Evaluation",
"reference": "https://github.com/wu12023/ComfyUI-Image-Evaluation",
"files": [
"https://github.com/wu12023/ComfyUI-Image-Evaluation"
],
"install_type": "git-clone",
"description": "An extension to ComfyUI that evaluates images using multiple models."
},
{
"author": "windfancy",
"title": "zsq_prompt",
"reference": "https://github.com/windfancy/zsq_prompt",
"files": [
"https://github.com/windfancy/zsq_prompt"
],
"install_type": "git-clone",
"description": "NODES: PromptStyler, PromptLatent, PromptCLIPEncode, PromptSelector"
},
{
"author": "c0ffymachyne",
"title": "Bytebeat Synthesizer: Composing with Operators",
"reference": "https://github.com/c0ffymachyne/ComfyUI_BeatByte",
"files": [
"https://github.com/c0ffymachyne/ComfyUI_BeatByte"
],
"install_type": "git-clone",
"description": "Bytebeat is like composing music with the tools of a programmers toolkit. Instead of piano keys, you have operators like >>, |, and &. Its like giving your CPU a guitar and letting it shred! 🤘"
},
{
"author": "exectails",
"title": "Info Utils",
"id": "et_infoutils",
"reference": "https://github.com/exectails/comfyui-et_infoutils",
"files": [
"https://github.com/exectails/comfyui-et_infoutils"
],
"install_type": "git-clone",
"description": "Nodes that facilitate simpler information providing and gathering, such as Text Box, Show Data and Token Counter nodes."
},
{
"author": "exectails",
"title": "String Utils",
"id": "et_stringutils",
"reference": "https://github.com/exectails/comfyui-et_stringutils",
"files": [
"https://github.com/exectails/comfyui-et_stringutils"
],
"install_type": "git-clone",
"description": "Nodes dedicated to the analysis and transformation of text strings, such as for formatting and conversions between types."
},
{
"author": "exectails",
"title": "Dynamic Prompts",
"id": "et_dynamicprompts",
"reference": "https://github.com/exectails/comfyui-et_dynamicprompts",
"files": [
"https://github.com/exectails/comfyui-et_dynamicprompts"
],
"install_type": "git-clone",
"description": "Nodes that implement functionality similar to the Dynamic Prompts extension for A1111."
},
{
"author": "Lasse Lauwerys",
"title": "Touchpad and trackpad gesture support",
"reference": "https://github.com/Iemand005/ComfyUI-Touchpad-Gestures",
"files": [
"https://github.com/Iemand005/ComfyUI-Touchpad-Gestures"
],
"install_type": "git-clone",
"description": "Implements proper touchpad zooming and panning into ComfyUI to make it more usable on laptops."
},
{
"author": "SleeeepyZhou",
"title": "CNtranslator",
"id": "cn-translator",
"reference": "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator",
"files": [
"https://github.com/SleeeepyZhou/ComfyUI-CNtranslator"
],
"install_type": "git-clone",
"description": "A translation node for users in Chinese Mainland. (Because of the network firewall in Chinese Mainland, many translation APIs cannot be used normally.)"
},
{
"author": "flycarl",
"title": "ComfyUI-Pixelate",
"reference": "https://github.com/flycarl/ComfyUI-Pixelate",
"files": [
"https://github.com/flycarl/ComfyUI-Pixelate"
],
"install_type": "git-clone",
"description": "[a/sd-webui-pixelart](https://github.com/mrreplicart/sd-webui-pixelart) are referenced by many webui users, this node is mean to use it in ComfyUI."
},
{
"author": "Alvaroeai",
"title": "ComfyUI-Text2Json",
"reference": "https://github.com/Alvaroeai/ComfyUI-Text2Json",
"files": [
"https://github.com/Alvaroeai/ComfyUI-Text2Json"
],
"install_type": "git-clone",
"description": "This repository contains a custom node for ComfyUI that converts text into a JSON object. The node is designed to be user-friendly and supports multi-line JSON input."
},
{
"author": "dymokomi",
"title": "comfyui_dygen",
"reference": "https://github.com/dymokomi/comfyui_dygen",
"files": [
"https://github.com/dymokomi/comfyui_dygen"
],
"install_type": "git-clone",
"description": "NODES: DY Image Quantize, DY Image Cluster, DY Image Palette, DY Image Masks, Image List to Grid"
},
{
"author": "bananasss00",
"title": "ComfyUI-flux_fill_patcher",
"reference": "https://github.com/bananasss00/ComfyUI-flux_fill_patcher",
"files": [
"https://github.com/bananasss00/ComfyUI-flux_fill_patcher"
],
"install_type": "git-clone",
"description": "flux patcher for Fill Flux.Dev lora [a/https://civitai.com/models/981615/fluxfill-inpaint-lora](https://civitai.com/models/981615/fluxfill-inpaint-lora)"
},
{
"author": "Yuan-ManX",
"title": "ComfyUI-SoundHub",
"reference": "https://github.com/Yuan-ManX/ComfyUI-SoundHub",
"files": [
"https://github.com/Yuan-ManX/ComfyUI-SoundHub"
],
"install_type": "git-clone",
"description": "ComfyUI-SoundHub is a collection of audio processing nodes designed for ComfyUI, enabling seamless audio processing and generation within your ComfyUI workflows."
},
{
"author": "Starnodes2024",
"title": "ComfyUI_StarNodes",
"reference": "https://github.com/Starnodes2024/ComfyUI_StarNodes",
"files": [
"https://github.com/Starnodes2024/ComfyUI_StarNodes"
],
"install_type": "git-clone",
"description": "NODES: StarNode Input Image Chooser, SD(XL) Star(t) Settings, SD3.5 Star(t) Settings, Starnode Ollama Helper"
},
{
"author": "motivated3",
"title": "ComfyUI MiaoShua Creator",
"id": "comfyui-shua-creator",
"reference": "https://github.com/motivated3/comfyui-shua-creator",
"files": [
"https://github.com/motivated3/comfyui-shua-creator"
],
"install_type": "git-clone",
"description": "With the MiaoShua creator's end, you can use this plugin to upload debugged workflows for consumer end users to use."
},
{
"author": "takemetosiberia",
"title": "SAMURAI Nodes for ComfyUI",
"reference": "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-",
"files": [
"https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for video object segmentation using [a/SAMURAI](https://github.com/yangchris11/samurai) model."
},
{
"author": "purpen",
"title": "AIRedoon",
"reference": "https://github.com/purpen/ComfyUI-AIRedoon",
"files": [
"https://github.com/purpen/ComfyUI-AIRedoon"
],
"install_type": "git-clone",
"description": "NODES:AIRedoon Translator, AIRedoon Image Caption.\nRedoonAi Tool Kit"
},
{
"author": "purpen",
"title": "ComfyUI-ImageTagger",
"reference": "https://github.com/purpen/ComfyUI-ImageTagger",
"files": [
"https://github.com/purpen/ComfyUI-ImageTagger"
],
"install_type": "git-clone",
"description": "NODES:AIRedoon Image Caption.\nAnalyze image tagger"
},
@@ -17520,14 +17769,14 @@
"description": "This repository contains a custom node for ComfyUI that allows searching for a keyword in the first column of a CSV file and returning a value from a specified column in that row. The node is designed to be modular and fit within the node-based workflow of ComfyUI." "description": "This repository contains a custom node for ComfyUI that allows searching for a keyword in the first column of a CSV file and returning a value from a specified column in that row. The node is designed to be modular and fit within the node-based workflow of ComfyUI."
}, },
{ {
"author": "BobsBlazed", "author": "bobsblazed",
"title": "Bobs_FLUX_SDXL_Latent_Optimizer", "title": "Bobs_Latent_Optimizer",
"reference": "https://github.com/BobsBlazed/Bobs_FLUX_SDXL_Latent_Optimizer", "reference": "https://github.com/BobsBlazed/Bobs_Latent_Optimizer",
"files": [ "files": [
"https://raw.githubusercontent.com/BobsBlazed/Bobs_Latent_Optimizer/refs/heads/main/Bobs_Latent_Optimizer.py" "https://github.com/BobsBlazed/Bobs_Latent_Optimizer/raw/refs/heads/main/Bobs_Latent_Optimizer.py"
], ],
"install_type": "copy", "install_type": "copy",
"description": "This custom node for ComfyUI is designed to optimize latent generation for use with both FLUX and SDXL modes. It provides flexible control over aspect ratios, megapixel sizes, and upscale factors, allowing users to dynamically create latents that fit specific tiling and resolution needs." "description": "This custom node for ComfyUI is designed to optimize latent generation for use with FLUX, SDXL and SD3. It provides flexible control over aspect ratios, megapixel sizes, and upscale factors, allowing users to dynamically create latents that fit specific tiling and resolution needs."
}, },
{ {
"author": "SimonHeese", "author": "SimonHeese",

View File

@@ -1218,6 +1218,14 @@
"title_aux": "AlekPet/ComfyUI_Custom_Nodes_AlekPet" "title_aux": "AlekPet/ComfyUI_Custom_Nodes_AlekPet"
} }
], ],
"https://github.com/Alvaroeai/ComfyUI-Text2Json": [
[
"TextToJson"
],
{
"title_aux": "ComfyUI-Text2Json"
}
],
"https://github.com/Amorano/Jovimetrix": [ "https://github.com/Amorano/Jovimetrix": [
[ [
"ADJUST (JOV) \ud83d\udd78\ufe0f", "ADJUST (JOV) \ud83d\udd78\ufe0f",
@@ -1898,6 +1906,14 @@
"title_aux": "ComfyUI-Rework-X" "title_aux": "ComfyUI-Rework-X"
} }
], ],
"https://github.com/BobsBlazed/Bobs_Latent_Optimizer/raw/refs/heads/main/Bobs_Latent_Optimizer.py": [
[
"BobsFluxSDXLLatentNode"
],
{
"title_aux": "Bobs_Latent_Optimizer"
}
],
"https://github.com/Bria-AI/ComfyUI-BRIA-API": [ "https://github.com/Bria-AI/ComfyUI-BRIA-API": [
[ [
"BriaEraser" "BriaEraser"
@@ -2297,7 +2313,9 @@
"https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": [ "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": [
[ [
"FinalFrameSelector", "FinalFrameSelector",
"FirstFrameSelector",
"PromptJournal", "PromptJournal",
"ReverseFrameSequence",
"VideoMerge", "VideoMerge",
"YouTubeVideoDownloader" "YouTubeVideoDownloader"
], ],
@@ -2314,6 +2332,14 @@
"title_aux": "Schedulizer" "title_aux": "Schedulizer"
} }
], ],
"https://github.com/DoctorDiffusion/ComfyUI-SnakeOil": [
[
"SnakeOil"
],
{
"title_aux": "ComfyUI-SnakeOil"
}
],
"https://github.com/DrMWeigand/ComfyUI-StereoVision": [ "https://github.com/DrMWeigand/ComfyUI-StereoVision": [
[ [
"AutostereogramGenerator", "AutostereogramGenerator",
@@ -3468,8 +3494,6 @@
"https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": [ "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": [
[ [
"AgentMemoryProvider", "AgentMemoryProvider",
"AgentNode",
"BasicRecursionFilterNode",
"DocumentProcessor", "DocumentProcessor",
"LinuxMemoryDirectory", "LinuxMemoryDirectory",
"QueryNode" "QueryNode"
@@ -3642,6 +3666,7 @@
], ],
"https://github.com/Isulion/ComfyUI_Isulion": [ "https://github.com/Isulion/ComfyUI_Isulion": [
[ [
"IsuCollage_Node",
"IsulionActionGenerator", "IsulionActionGenerator",
"IsulionAlienWorldGenerator", "IsulionAlienWorldGenerator",
"IsulionAnimalBehaviorGenerator", "IsulionAnimalBehaviorGenerator",
@@ -3653,6 +3678,7 @@
"IsulionEmotionGenerator", "IsulionEmotionGenerator",
"IsulionFantasyRaceGenerator", "IsulionFantasyRaceGenerator",
"IsulionHabitatGenerator", "IsulionHabitatGenerator",
"IsulionLoadImagesNode",
"IsulionMagicalEffectGenerator", "IsulionMagicalEffectGenerator",
"IsulionMegaPromptGenerator", "IsulionMegaPromptGenerator",
"IsulionMythicalLocationGenerator", "IsulionMythicalLocationGenerator",
@@ -3666,7 +3692,7 @@
"IsulionTechGenerator", "IsulionTechGenerator",
"IsulionTimeOfDayGenerator", "IsulionTimeOfDayGenerator",
"IsulionWeatherGenerator", "IsulionWeatherGenerator",
"MegaPromptV2" "MegaPromptV3"
], ],
{ {
"title_aux": "ComfyUI_Isulion Random Prompt Generator" "title_aux": "ComfyUI_Isulion Random Prompt Generator"
@@ -4780,7 +4806,8 @@
"https://github.com/MakkiShizu/comfyui_reimgsize": [ "https://github.com/MakkiShizu/comfyui_reimgsize": [
[ [
"Cropimg", "Cropimg",
"Reimgsize" "Reimgsize",
"Resizebyratio"
], ],
{ {
"title_aux": "comfyui_reimgsize" "title_aux": "comfyui_reimgsize"
@@ -5888,7 +5915,8 @@
[ [
"Florence2toCoordinatesButxy", "Florence2toCoordinatesButxy",
"LoadImageWithName", "LoadImageWithName",
"Phi35VisionInstruct" "LoadPhi35VisionModel",
"Phi35VisionRun"
], ],
{ {
"title_aux": "comfyui-florence2xy" "title_aux": "comfyui-florence2xy"
@@ -6551,6 +6579,16 @@
"title_aux": "ComfyUI_Gemini_Flash" "title_aux": "ComfyUI_Gemini_Flash"
} }
], ],
"https://github.com/ShmuelRonen/ComfyUI_pixtral_large": [
[
"ComfyUIPixtralLarge",
"MultiImagesInput",
"preview_text"
],
{
"title_aux": "ComfyUI Pixtral Large Extension"
}
],
"https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": [ "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": [
[ [
"ComfyUIPixtralVision", "ComfyUIPixtralVision",
@@ -6612,6 +6650,15 @@
"title_aux": "ComfyUI_AnimationNodes" "title_aux": "ComfyUI_AnimationNodes"
} }
], ],
"https://github.com/SleeeepyZhou/ComfyUI-CNtranslator": [
[
"CNtranslator",
"TextShow"
],
{
"title_aux": "CNtranslator"
}
],
"https://github.com/Smirnov75/ComfyUI-mxToolkit": [ "https://github.com/Smirnov75/ComfyUI-mxToolkit": [
[ [
"mxSeed", "mxSeed",
@@ -6750,6 +6797,15 @@
"title_aux": "ComfyUI-LatentClamp" "title_aux": "ComfyUI-LatentClamp"
} }
], ],
"https://github.com/SparknightLLC/ComfyUI-MaskArbiter": [
[
"GroundingDinoSAM2SegmentList",
"MaskArbiter"
],
{
"title_aux": "ComfyUI-MaskArbiter"
}
],
"https://github.com/SpenserCai/ComfyUI-FunAudioLLM": [ "https://github.com/SpenserCai/ComfyUI-FunAudioLLM": [
[ [
"CosyVoiceCrossLingualNode", "CosyVoiceCrossLingualNode",
@@ -6806,6 +6862,18 @@
"title_aux": "ComfyUI-tagger" "title_aux": "ComfyUI-tagger"
} }
], ],
"https://github.com/Starnodes2024/ComfyUI_StarNodes": [
[
"FluxStartSettings",
"OllamaModelChooser",
"SD35StartSettings",
"SDXLStartSettings",
"StarNode"
],
{
"title_aux": "ComfyUI_StarNodes"
}
],
"https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [ "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [
[ [
"Ood_CXH" "Ood_CXH"
@@ -6889,10 +6957,10 @@
], ],
"https://github.com/Steudio/ComfyUI_Steudio": [ "https://github.com/Steudio/ComfyUI_Steudio": [
[ [
"Make Size", "Combine Tiles",
"Make Tiles", "Divide Image",
"Make Tiles Math", "Divide and Conquer Algorithm",
"Unmake Tiles" "Make Size"
], ],
{ {
"title_aux": "ComfyUI_Steudio" "title_aux": "ComfyUI_Steudio"
@@ -8149,7 +8217,9 @@
"InstaCSaveImageToS3", "InstaCSaveImageToS3",
"InstaCSeed", "InstaCSeed",
"InstaCText", "InstaCText",
"InstaCTextML" "InstaCTextML",
"InstaPromptMultipleStyleSelector",
"InstaPromptStyleSelector"
], ],
{ {
"title_aux": "InstaSD nodes for ComfyUI" "title_aux": "InstaSD nodes for ComfyUI"
@@ -8338,21 +8408,19 @@
"https://github.com/YarvixPA/ComfyUI-NeuralMedia": [ "https://github.com/YarvixPA/ComfyUI-NeuralMedia": [
[ [
"ApplyControlNet", "ApplyControlNet",
"BiRefNetNode", "CLIPVisionStyleApply",
"InpaintConditioningNode", "InpaintConditioningNode",
"InpaintNode",
"LoadImagesFromFolderNode", "LoadImagesFromFolderNode",
"MultiControlnet", "MultiControlnet",
"MultiControlnetApply", "MultiControlnetApply",
"MultiControlnetUnion", "MultiControlnetUnion",
"OutpaintNode", "RemoveBackgroundNode",
"SDXLTextEncoderSimpleNode", "SDXLTextEncoderSimpleNode",
"SaveCaptionsImages", "SaveCaptionsImages",
"TextFieldNode", "TextFieldNode",
"TileCheckpointPatchNode", "TileCheckpointPatchNode",
"UpscaleImageWithModel", "UpscaleImageWithModel",
"VTracerImageVectorizerNode", "VTracerImageVectorizerNode"
"WeldInpaintNode"
], ],
{ {
"title_aux": "ComfyUI-NeuralMedia" "title_aux": "ComfyUI-NeuralMedia"
@@ -8366,6 +8434,16 @@
"title_aux": "MergeBlockWeighted_fo_ComfyUI" "title_aux": "MergeBlockWeighted_fo_ComfyUI"
} }
], ],
"https://github.com/Yuan-ManX/ComfyUI-SoundHub": [
[
"Load Audio",
"Preview Audio",
"Save Audio"
],
{
"title_aux": "ComfyUI-SoundHub"
}
],
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [
[ [
"APISR_Lterative_Zho", "APISR_Lterative_Zho",
@@ -9296,11 +9374,14 @@
], ],
"https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [ "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [
[ [
"blur",
"composite", "composite",
"crop", "crop",
"fill_with_color",
"paste", "paste",
"preview_mask", "preview_mask",
"scale" "scale",
"scale_with_reference"
], ],
{ {
"title_aux": "antrobots ComfyUI Nodepack" "title_aux": "antrobots ComfyUI Nodepack"
@@ -9321,6 +9402,7 @@
"Sage_LoraStack", "Sage_LoraStack",
"Sage_LoraStackDebugString", "Sage_LoraStackDebugString",
"Sage_LoraStackLoader", "Sage_LoraStackLoader",
"Sage_PonyPrefix",
"Sage_SamplerInfo", "Sage_SamplerInfo",
"Sage_SaveImageWithMetadata", "Sage_SaveImageWithMetadata",
"Sage_SetFloat", "Sage_SetFloat",
@@ -9601,6 +9683,14 @@
"title_aux": "SP-Nodes" "title_aux": "SP-Nodes"
} }
], ],
"https://github.com/bananasss00/ComfyUI-flux_fill_patcher": [
[
"ApplyFluxFillPatch"
],
{
"title_aux": "ComfyUI-flux_fill_patcher"
}
],
"https://github.com/banodoco/steerable-motion": [ "https://github.com/banodoco/steerable-motion": [
[ [
"BatchCreativeInterpolation", "BatchCreativeInterpolation",
@@ -10099,6 +10189,14 @@
"title_aux": "ComfyUI_SUNoise" "title_aux": "ComfyUI_SUNoise"
} }
], ],
"https://github.com/c0ffymachyne/ComfyUI_BeatByte": [
[
"BytebeatSynth"
],
{
"title_aux": "Bytebeat Synthesizer: Composing with Operators"
}
],
"https://github.com/c0ffymachyne/ComfyUI_SingalProcessing": [ "https://github.com/c0ffymachyne/ComfyUI_SingalProcessing": [
[ [
"SignalProcessingFilter", "SignalProcessingFilter",
@@ -10842,6 +10940,7 @@
"LayerStyle: ColorOverlay V2", "LayerStyle: ColorOverlay V2",
"LayerStyle: DropShadow", "LayerStyle: DropShadow",
"LayerStyle: DropShadow V2", "LayerStyle: DropShadow V2",
"LayerStyle: DropShadow V3",
"LayerStyle: Gradient Map", "LayerStyle: Gradient Map",
"LayerStyle: GradientOverlay", "LayerStyle: GradientOverlay",
"LayerStyle: GradientOverlay V2", "LayerStyle: GradientOverlay V2",
@@ -10868,6 +10967,7 @@
"LayerUtility: CropBoxResolve", "LayerUtility: CropBoxResolve",
"LayerUtility: CropByMask", "LayerUtility: CropByMask",
"LayerUtility: CropByMask V2", "LayerUtility: CropByMask V2",
"LayerUtility: CropByMask V3",
"LayerUtility: DecodeQRCode", "LayerUtility: DecodeQRCode",
"LayerUtility: ExtendCanvas", "LayerUtility: ExtendCanvas",
"LayerUtility: ExtendCanvasV2", "LayerUtility: ExtendCanvasV2",
@@ -10890,6 +10990,7 @@
"LayerUtility: ImageBlend V2", "LayerUtility: ImageBlend V2",
"LayerUtility: ImageBlendAdvance", "LayerUtility: ImageBlendAdvance",
"LayerUtility: ImageBlendAdvance V2", "LayerUtility: ImageBlendAdvance V2",
"LayerUtility: ImageBlendAdvance V3",
"LayerUtility: ImageChannelMerge", "LayerUtility: ImageChannelMerge",
"LayerUtility: ImageChannelSplit", "LayerUtility: ImageChannelSplit",
"LayerUtility: ImageCombineAlpha", "LayerUtility: ImageCombineAlpha",
@@ -11466,6 +11567,7 @@
"ModelMergeAuraflow", "ModelMergeAuraflow",
"ModelMergeBlocks", "ModelMergeBlocks",
"ModelMergeFlux1", "ModelMergeFlux1",
"ModelMergeLTXV",
"ModelMergeMochiPreview", "ModelMergeMochiPreview",
"ModelMergeSD1", "ModelMergeSD1",
"ModelMergeSD2", "ModelMergeSD2",
@@ -12056,6 +12158,7 @@
"D2 Load Folder Images", "D2 Load Folder Images",
"D2 Load Image", "D2 Load Image",
"D2 Multi Output", "D2 Multi Output",
"D2 Preview Image",
"D2 Refiner Steps", "D2 Refiner Steps",
"D2 Refiner Steps A1111", "D2 Refiner Steps A1111",
"D2 Refiner Steps Tester", "D2 Refiner Steps Tester",
@@ -12737,6 +12840,18 @@
"title_aux": "ObjectFusion_ComfyUI_nodes" "title_aux": "ObjectFusion_ComfyUI_nodes"
} }
], ],
"https://github.com/dymokomi/comfyui_dygen": [
[
"DYImageCluster",
"DYImageMasks",
"DYImagePalette",
"DYImageQuantize",
"ImageListToGrid"
],
{
"title_aux": "comfyui_dygen"
}
],
"https://github.com/e7mac/ComfyUI-ShadertoyGL": [ "https://github.com/e7mac/ComfyUI-ShadertoyGL": [
[ [
"ColorChannelOffset", "ColorChannelOffset",
@@ -12788,6 +12903,7 @@
"Eden_DetermineFrameCount", "Eden_DetermineFrameCount",
"Eden_Float", "Eden_Float",
"Eden_FloatToInt", "Eden_FloatToInt",
"Eden_GPTPromptEnhancer",
"Eden_IMG_padder", "Eden_IMG_padder",
"Eden_IMG_unpadder", "Eden_IMG_unpadder",
"Eden_Image_Math", "Eden_Image_Math",
@@ -12961,6 +13077,43 @@
"title_aux": "comfyui-selector" "title_aux": "comfyui-selector"
} }
], ],
"https://github.com/exectails/comfyui-et_dynamicprompts": [
[
"ETDynamicPrompt"
],
{
"title_aux": "Dynamic Prompts"
}
],
"https://github.com/exectails/comfyui-et_infoutils": [
[
"ETInspectTextNode",
"ETIntBoxNode",
"ETShowDataNode",
"ETStringBoxNode",
"ETTextBoxNode",
"ETTokenCountNode"
],
{
"title_aux": "Info Utils"
}
],
"https://github.com/exectails/comfyui-et_stringutils": [
[
"ETATOI",
"ETITOA",
"ETJoinTextNode",
"ETReplaceTextNode",
"ETSplitTextNode",
"ETSwitchTextNode",
"ETTextFormatter10Node",
"ETTextFormatter2Node",
"ETTextFormatter5Node"
],
{
"title_aux": "String Utils"
}
],
"https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": [ "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": [
[ [
"EZ Concatenate Text", "EZ Concatenate Text",
@@ -13318,6 +13471,14 @@
"title_aux": "ComfyUI-Flowty-TripoSR" "title_aux": "ComfyUI-Flowty-TripoSR"
} }
], ],
"https://github.com/flycarl/ComfyUI-Pixelate": [
[
"ComfyUIPixelate"
],
{
"title_aux": "ComfyUI-Pixelate"
}
],
"https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [ "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [
[ [
"BatchIndex_AS", "BatchIndex_AS",
@@ -13520,9 +13681,15 @@
], ],
"https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": [ "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": [
[ [
"FluxDevRedux_BFL",
"FluxDev_BFL", "FluxDev_BFL",
"FluxPro11Redux_BFL",
"FluxPro11UltraRedux_BFL",
"FluxPro11Ultra_BFL", "FluxPro11Ultra_BFL",
"FluxPro11_BFL", "FluxPro11_BFL",
"FluxProCanny_BFL",
"FluxProDepth_BFL",
"FluxProFill_BFL",
"FluxPro_BFL" "FluxPro_BFL"
], ],
{ {
@@ -13796,6 +13963,7 @@
"https://github.com/glifxyz/ComfyUI-GlifNodes": [ "https://github.com/glifxyz/ComfyUI-GlifNodes": [
[ [
"FilmGrain", "FilmGrain",
"FluxReduxFloatRamp",
"GlifConsistencyDecoder", "GlifConsistencyDecoder",
"GlifPatchConsistencyDecoderTiled", "GlifPatchConsistencyDecoderTiled",
"GlifVariable", "GlifVariable",
@@ -14013,6 +14181,7 @@
"Griptape Create: Agent", "Griptape Create: Agent",
"Griptape Create: Agent from Config", "Griptape Create: Agent from Config",
"Griptape Create: CLIP Text Encode", "Griptape Create: CLIP Text Encode",
"Griptape Create: Image Inpainting Variation",
"Griptape Create: Image Variation", "Griptape Create: Image Variation",
"Griptape Create: Image from Text", "Griptape Create: Image from Text",
"Griptape Create: Pipeline", "Griptape Create: Pipeline",
@@ -14073,6 +14242,8 @@
"Griptape Run: Parallel Image Description", "Griptape Run: Parallel Image Description",
"Griptape Run: Prompt Task", "Griptape Run: Prompt Task",
"Griptape Run: Structure", "Griptape Run: Structure",
"Griptape Run: Task",
"Griptape Run: Text Extraction",
"Griptape Run: Text Summary", "Griptape Run: Text Summary",
"Griptape Run: Text to Speech", "Griptape Run: Text to Speech",
"Griptape Run: Tool Task", "Griptape Run: Tool Task",
@@ -14204,43 +14375,6 @@
"title_aux": "ComfyUI-HH-Image-Selector" "title_aux": "ComfyUI-HH-Image-Selector"
} }
], ],
"https://github.com/hay86/ComfyUI_AceNodes": [
[
"ACE_AnyInputSwitchBool",
"ACE_AnyInputToAny",
"ACE_AudioLoad",
"ACE_AudioPlay",
"ACE_AudioSave",
"ACE_Expression_Eval",
"ACE_Float",
"ACE_ImageColorFix",
"ACE_ImageConstrain",
"ACE_ImageFaceCrop",
"ACE_ImageGetSize",
"ACE_ImageLoadFromCloud",
"ACE_ImagePixelate",
"ACE_ImageQA",
"ACE_ImageRemoveBackground",
"ACE_ImageSaveToCloud",
"ACE_Integer",
"ACE_MaskBlur",
"ACE_Seed",
"ACE_Text",
"ACE_TextConcatenate",
"ACE_TextGoogleTranslate",
"ACE_TextInputSwitch2Way",
"ACE_TextInputSwitch4Way",
"ACE_TextInputSwitch8Way",
"ACE_TextList",
"ACE_TextPreview",
"ACE_TextSelector",
"ACE_TextToResolution",
"ACE_TextTranslate"
],
{
"title_aux": "ComfyUI AceNodes"
}
],
"https://github.com/hay86/ComfyUI_DDColor": [ "https://github.com/hay86/ComfyUI_DDColor": [
[ [
"D_DDColor" "D_DDColor"
@@ -14433,6 +14567,7 @@
"list_extend", "list_extend",
"list_extend_plus", "list_extend_plus",
"listen_audio", "listen_audio",
"load_SQL_memo",
"load_bool", "load_bool",
"load_ebd", "load_ebd",
"load_excel", "load_excel",
@@ -14447,6 +14582,7 @@
"load_name", "load_name",
"load_openai_ebd", "load_openai_ebd",
"load_persona", "load_persona",
"load_redis_memo",
"load_url", "load_url",
"load_wikipedia", "load_wikipedia",
"md_to_excel", "md_to_excel",
@@ -14478,9 +14614,11 @@
"path2img_tool", "path2img_tool",
"red_book_text_persona", "red_book_text_persona",
"replace_string", "replace_string",
"save_SQL_memo",
"save_ebd_database", "save_ebd_database",
"save_memo", "save_memo",
"save_openai_ebd", "save_openai_ebd",
"save_redis_memo",
"savepersona", "savepersona",
"searxng_tool", "searxng_tool",
"selenium_tool", "selenium_tool",
@@ -14759,7 +14897,7 @@
"NSFWScore" "NSFWScore"
], ],
{ {
"title_aux": "ComfyUI-NSFW-Check" "title_aux": "NSFW Check for ComfyUI"
} }
], ],
"https://github.com/icesun963/ComfyUI_HFDownLoad": [ "https://github.com/icesun963/ComfyUI_HFDownLoad": [
@@ -14852,6 +14990,8 @@
"Light-Tool: AddBackground", "Light-Tool: AddBackground",
"Light-Tool: AddBackgroundV2", "Light-Tool: AddBackgroundV2",
"Light-Tool: BoundingBoxCropping", "Light-Tool: BoundingBoxCropping",
"Light-Tool: GetImageSize",
"Light-Tool: ImageConcat",
"Light-Tool: ImageMaskApply", "Light-Tool: ImageMaskApply",
"Light-Tool: ImageOverlay", "Light-Tool: ImageOverlay",
"Light-Tool: ImageToMask", "Light-Tool: ImageToMask",
@@ -15669,6 +15809,7 @@
"https://github.com/justUmen/Bjornulf_custom_nodes": [ "https://github.com/justUmen/Bjornulf_custom_nodes": [
[ [
"Bjornulf_AddLineNumbers", "Bjornulf_AddLineNumbers",
"Bjornulf_AnythingToText",
"Bjornulf_AudioVideoSync", "Bjornulf_AudioVideoSync",
"Bjornulf_CharacterDescriptionGenerator", "Bjornulf_CharacterDescriptionGenerator",
"Bjornulf_CombineBackgroundOverlay", "Bjornulf_CombineBackgroundOverlay",
@@ -15677,6 +15818,9 @@
"Bjornulf_CombineTextsByLines", "Bjornulf_CombineTextsByLines",
"Bjornulf_CombineVideoAudio", "Bjornulf_CombineVideoAudio",
"Bjornulf_ConcatVideos", "Bjornulf_ConcatVideos",
"Bjornulf_ConcatVideosFromList",
"Bjornulf_ConvertVideo",
"Bjornulf_FFmpegConfig",
"Bjornulf_FreeVRAM", "Bjornulf_FreeVRAM",
"Bjornulf_GrayscaleTransform", "Bjornulf_GrayscaleTransform",
"Bjornulf_GreenScreenToTransparency", "Bjornulf_GreenScreenToTransparency",
@@ -15719,6 +15863,7 @@
"Bjornulf_RandomTexts", "Bjornulf_RandomTexts",
"Bjornulf_RemoveTransparency", "Bjornulf_RemoveTransparency",
"Bjornulf_ResizeImage", "Bjornulf_ResizeImage",
"Bjornulf_ResizeImagePercentage",
"Bjornulf_SaveBjornulfLobeChat", "Bjornulf_SaveBjornulfLobeChat",
"Bjornulf_SaveImagePath", "Bjornulf_SaveImagePath",
"Bjornulf_SaveImageToFolder", "Bjornulf_SaveImageToFolder",
@@ -15726,11 +15871,17 @@
"Bjornulf_SaveTmpImage", "Bjornulf_SaveTmpImage",
"Bjornulf_ScramblerCharacter", "Bjornulf_ScramblerCharacter",
"Bjornulf_SelectImageFromList", "Bjornulf_SelectImageFromList",
"Bjornulf_ShowFloat",
"Bjornulf_ShowInt",
"Bjornulf_ShowJson",
"Bjornulf_ShowStringText",
"Bjornulf_ShowText", "Bjornulf_ShowText",
"Bjornulf_SpeechToText", "Bjornulf_SpeechToText",
"Bjornulf_TextReplace",
"Bjornulf_TextToAnything", "Bjornulf_TextToAnything",
"Bjornulf_TextToSpeech", "Bjornulf_TextToSpeech",
"Bjornulf_TextToStringAndSeed", "Bjornulf_TextToStringAndSeed",
"Bjornulf_VideoDetails",
"Bjornulf_VideoPingPong", "Bjornulf_VideoPingPong",
"Bjornulf_VideoPreview", "Bjornulf_VideoPreview",
"Bjornulf_VideoToImagesList", "Bjornulf_VideoToImagesList",
@@ -15807,8 +15958,7 @@
], ],
"https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": [ "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": [
[ [
"StyleModelApplyAdvanced", "ReduxAdvanced",
"StyleModelApplyInterpolation",
"StyleModelApplySimple" "StyleModelApplySimple"
], ],
{ {
@@ -16071,6 +16221,7 @@
"CogVideoImageEncodeFunInP", "CogVideoImageEncodeFunInP",
"CogVideoLatentPreview", "CogVideoLatentPreview",
"CogVideoLoraSelect", "CogVideoLoraSelect",
"CogVideoLoraSelectComfy",
"CogVideoSampler", "CogVideoSampler",
"CogVideoTextEncode", "CogVideoTextEncode",
"CogVideoTextEncodeCombine", "CogVideoTextEncodeCombine",
@@ -16283,6 +16434,7 @@
"CustomControlNetWeightsFluxFromList", "CustomControlNetWeightsFluxFromList",
"CustomSigmas", "CustomSigmas",
"DifferentialDiffusionAdvanced", "DifferentialDiffusionAdvanced",
"DiffusionModelLoaderKJ",
"DownloadAndLoadCLIPSeg", "DownloadAndLoadCLIPSeg",
"DrawInstanceDiffusionTracking", "DrawInstanceDiffusionTracking",
"DummyOut", "DummyOut",
@@ -16644,19 +16796,16 @@
], ],
"https://github.com/klinter007/klinter_nodes": [ "https://github.com/klinter007/klinter_nodes": [
[ [
"AspectSelector",
"ExtraPadding", "ExtraPadding",
"Filter",
"Florence2Captions2IPA",
"FluxSizeSelector",
"FolderLoader", "FolderLoader",
"PresentString", "LoadImagePlus",
"SingleString",
"SizeSelector", "SizeSelector",
"TextAppendNode", "SpeedRamp",
"YellowBus", "YellowBus",
"YellowBusV2",
"ZoomOutComposer", "ZoomOutComposer",
"concat" "concat",
"filter"
], ],
{ {
"title_aux": "Klinter_nodes" "title_aux": "Klinter_nodes"
@@ -17115,6 +17264,7 @@
"https://github.com/liuqianhonga/ComfyUI-Html2Image": [ "https://github.com/liuqianhonga/ComfyUI-Html2Image": [
[ [
"CameraWatermark", "CameraWatermark",
"TemplateToImage",
"WebpageScreenshot" "WebpageScreenshot"
], ],
{ {
@@ -17238,6 +17388,15 @@
"title_aux": "ComfyUI_BiRefNet_ll" "title_aux": "ComfyUI_BiRefNet_ll"
} }
], ],
"https://github.com/lldacing/ComfyUI_StableDelight_ll": [
[
"ApplyStableDelight",
"LoadStableDelightModel"
],
{
"title_aux": "ComfyUI_StableDelight_ll"
}
],
"https://github.com/lldacing/comfyui-easyapi-nodes": [ "https://github.com/lldacing/comfyui-easyapi-nodes": [
[ [
"Base64ToImage", "Base64ToImage",
@@ -17320,6 +17479,7 @@
"https://github.com/lodestone-rock/ComfyUI_FluxMod": [ "https://github.com/lodestone-rock/ComfyUI_FluxMod": [
[ [
"FluxModCheckpointLoader", "FluxModCheckpointLoader",
"FluxModCheckpointLoaderMini",
"KSamplerMod", "KSamplerMod",
"SkipLayerForward" "SkipLayerForward"
], ],
@@ -17373,7 +17533,9 @@
"AddFluxFlow", "AddFluxFlow",
"ApplyFluxRaveAttention", "ApplyFluxRaveAttention",
"ApplyRefFlux", "ApplyRefFlux",
"ApplyRegionalConds",
"ConfigureModifiedFlux", "ConfigureModifiedFlux",
"CreateRegionalCond",
"FlowEditForwardSampler", "FlowEditForwardSampler",
"FlowEditReverseSampler", "FlowEditReverseSampler",
"FluxAttnOverride", "FluxAttnOverride",
@@ -17389,6 +17551,7 @@
"PrepareAttnBank", "PrepareAttnBank",
"RFDoubleBlocksOverride", "RFDoubleBlocksOverride",
"RFSingleBlocksOverride", "RFSingleBlocksOverride",
"RegionalStyleModelApply",
"SEGAttention" "SEGAttention"
], ],
{ {
@@ -18032,7 +18195,6 @@
"LF_BlurImages", "LF_BlurImages",
"LF_Boolean", "LF_Boolean",
"LF_Brightness", "LF_Brightness",
"LF_Brush",
"LF_CharacterImpersonator", "LF_CharacterImpersonator",
"LF_CheckpointSelector", "LF_CheckpointSelector",
"LF_CivitAIMetadataSetup", "LF_CivitAIMetadataSetup",
@@ -18068,6 +18230,7 @@
"LF_LLMMessenger", "LF_LLMMessenger",
"LF_LUTApplication", "LF_LUTApplication",
"LF_LUTGeneration", "LF_LUTGeneration",
"LF_Line",
"LF_LoadAndEditImages", "LF_LoadAndEditImages",
"LF_LoadFileOnce", "LF_LoadFileOnce",
"LF_LoadImages", "LF_LoadImages",
@@ -18772,12 +18935,16 @@
], ],
"https://github.com/morino-kumasan/comfyui-toml-prompt": [ "https://github.com/morino-kumasan/comfyui-toml-prompt": [
[ [
"IntSelector",
"LatentSelector",
"MultipartCLIPTextEncode", "MultipartCLIPTextEncode",
"MultipleLoraTagLoader", "MultipleLoraTagLoader",
"PromptLoader", "PromptLoader",
"StringConcat", "StringConcat",
"StringSelector",
"StringSub", "StringSub",
"StringViewer", "StringViewer",
"SummaryReader",
"TomlPromptDecode" "TomlPromptDecode"
], ],
{ {
@@ -19465,12 +19632,13 @@
"https://github.com/pamparamm/sd-perturbed-attention": [ "https://github.com/pamparamm/sd-perturbed-attention": [
[ [
"PerturbedAttention", "PerturbedAttention",
"SlidingWindowGuidanceAdvanced",
"SmoothedEnergyGuidanceAdvanced", "SmoothedEnergyGuidanceAdvanced",
"TRTAttachPag", "TRTAttachPag",
"TRTPerturbedAttention" "TRTPerturbedAttention"
], ],
{ {
"title_aux": "Perturbed-Attention Guidance" "title_aux": "sd-perturbed-attention"
} }
], ],
"https://github.com/pants007/comfy-pants": [ "https://github.com/pants007/comfy-pants": [
@@ -19756,6 +19924,23 @@
"title_aux": "ComfyUI-SAM2-Realtime" "title_aux": "ComfyUI-SAM2-Realtime"
} }
], ],
"https://github.com/purpen/ComfyUI-AIRedoon": [
[
"AIRedoonImageCaptioning",
"AIRedoonTranslator"
],
{
"title_aux": "AIRedoon"
}
],
"https://github.com/purpen/ComfyUI-ImageTagger": [
[
"AIRedoonImageCaptioning"
],
{
"title_aux": "ComfyUI-ImageTagger"
}
],
"https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [ "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [
[ [
"CheckpointLoader|pysssss", "CheckpointLoader|pysssss",
@@ -19854,7 +20039,7 @@
[ [
"MfluxControlNetLoader", "MfluxControlNetLoader",
"MfluxCustomModels", "MfluxCustomModels",
"MfluxLoadImage", "MfluxImg2Img",
"MfluxLorasLoader", "MfluxLorasLoader",
"MfluxModelsDownloader", "MfluxModelsDownloader",
"MfluxModelsLoader", "MfluxModelsLoader",
@@ -20090,19 +20275,27 @@
[ [
"BatchSlider", "BatchSlider",
"BooleanToEnabled", "BooleanToEnabled",
"ConfigurableDrawText",
"ControlNetSlider", "ControlNetSlider",
"DenoiseSlider", "DenoiseSlider",
"DrawTextConfig",
"FluxContinuumModelRouter",
"GPUSlider", "GPUSlider",
"GuidanceSlider", "GuidanceSlider",
"IPAdapterSlider",
"ImageBatchBoolean",
"ImpactControlBridgeFix", "ImpactControlBridgeFix",
"LatentPass", "LatentPass",
"MaxShiftSlider", "MaxShiftSlider",
"OutputGetString",
"PipePass", "PipePass",
"ResolutionPicker", "ResolutionPicker",
"SEGSPass", "SEGSPass",
"SamplerParameterPacker", "SamplerParameterPacker",
"SamplerParameterUnpacker", "SamplerParameterUnpacker",
"SelectFromBatch", "SelectFromBatch",
"SimpleTextTruncate",
"SplitVec3",
"StepSlider", "StepSlider",
"TextVersions" "TextVersions"
], ],
@@ -20187,6 +20380,15 @@
"title_aux": "ComfyUI-BiRefNet-lite" "title_aux": "ComfyUI-BiRefNet-lite"
} }
], ],
"https://github.com/rubi-du/ComfyUI-Flux-Inpainting": [
[
"Flux Inpaint",
"Flux Inpainting"
],
{
"title_aux": "ComfyUI-Flux-Inpainting"
}
],
"https://github.com/rui40000/RUI-Nodes": [ "https://github.com/rui40000/RUI-Nodes": [
[ [
"ABCondition", "ABCondition",
@@ -21550,6 +21752,15 @@
"title_aux": "ComfyUI LivePhoto Creator" "title_aux": "ComfyUI LivePhoto Creator"
} }
], ],
"https://github.com/stormcenter/ComfyUI-SVGFullfill": [
[
"SVGEditor",
"SVGUploader"
],
{
"title_aux": "ComfyUI-SVGFullfill"
}
],
"https://github.com/storyicon/comfyui_musev_evolved": [ "https://github.com/storyicon/comfyui_musev_evolved": [
[ [
"AnimationZoom (comfyui_musev_evolved)", "AnimationZoom (comfyui_musev_evolved)",
@@ -21792,6 +22003,16 @@
"title_aux": "ComfyUI Scene Composer" "title_aux": "ComfyUI Scene Composer"
} }
], ],
"https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-": [
[
"SAMURAIBoxInputNode",
"SAMURAIPointsInputNode",
"SAMURAIRefineNode"
],
{
"title_aux": "SAMURAI Nodes for ComfyUI"
}
],
"https://github.com/talesofai/comfyui-browser": [ "https://github.com/talesofai/comfyui-browser": [
[ [
"DifyTextGenerator //Browser", "DifyTextGenerator //Browser",
@@ -21822,6 +22043,14 @@
"title_aux": "Comfyui-Ycanvas" "title_aux": "Comfyui-Ycanvas"
} }
], ],
"https://github.com/tanglup/Comfyui_Flux_Style_Adjust": [
[
"StyleModelAdvancedApply"
],
{
"title_aux": "Comfyui_Flux_Style_Adjust"
}
],
"https://github.com/teward/ComfyUI-Helper-Nodes": [ "https://github.com/teward/ComfyUI-Helper-Nodes": [
[ [
"HelperNodes_CfgScale", "HelperNodes_CfgScale",
@@ -22126,6 +22355,14 @@
"title_aux": "Face Restorer for ComfyUI" "title_aux": "Face Restorer for ComfyUI"
} }
], ],
"https://github.com/tungdop2/Comfyui_joy-caption-alpha-two": [
[
"JoyCaptioner"
],
{
"title_aux": "Joy Caption Alpha Two for ComfyUI"
}
],
"https://github.com/turkyden/ComfyUI-SmartCrop": [ "https://github.com/turkyden/ComfyUI-SmartCrop": [
[ [
"ImageSmartCrop" "ImageSmartCrop"
@@ -22324,7 +22561,12 @@
], ],
"https://github.com/veighnsche/comfyui_gr85": [ "https://github.com/veighnsche/comfyui_gr85": [
[ [
"GR85_CTGPhrases",
"GR85_CTGPhrasesSimple",
"GR85_ContainsWord", "GR85_ContainsWord",
"GR85_FilterAndCombineMasks",
"GR85_Florence2RunCTPG",
"GR85_Florence2toCoordinatesGR85",
"GR85_FluxAttentionSeeker2", "GR85_FluxAttentionSeeker2",
"GR85_FluxAttentionSeeker3", "GR85_FluxAttentionSeeker3",
"GR85_FluxAttentionSeekerGenerator", "GR85_FluxAttentionSeekerGenerator",
@@ -22334,11 +22576,17 @@
"GR85_ImageSizerAll", "GR85_ImageSizerAll",
"GR85_IntToString", "GR85_IntToString",
"GR85_IntegerSequenceModifier", "GR85_IntegerSequenceModifier",
"GR85_IslandMaskGenerator",
"GR85_MaskBatchToSEGS",
"GR85_MaskConnectMST",
"GR85_MaskSplitter",
"GR85_NextSeed", "GR85_NextSeed",
"GR85_PasteByMaskGr85", "GR85_PasteByMaskGr85",
"GR85_RandomFloat", "GR85_RandomFloat",
"GR85_RandomInt", "GR85_RandomInt",
"GR85_RandomRatio", "GR85_RandomRatio",
"GR85_RandomizedMaskTransform",
"GR85_Sam2Segmentation",
"GR85_SaveImageFile", "GR85_SaveImageFile",
"GR85_SaveTextFile", "GR85_SaveTextFile",
"GR85_SeedBasedOutputSelector", "GR85_SeedBasedOutputSelector",
@@ -22346,7 +22594,10 @@
"GR85_SimpleWildcardPicker", "GR85_SimpleWildcardPicker",
"GR85_StrSafe", "GR85_StrSafe",
"GR85_TagInjector", "GR85_TagInjector",
"GR85_TagInjectorLarge" "GR85_TagInjectorDuo",
"GR85_TagInjectorLarge",
"GR85_TagInjectorSingle",
"GR85_VerticalWildcardPicker"
], ],
{ {
"title_aux": "comfyui_gr85" "title_aux": "comfyui_gr85"
@@ -22578,6 +22829,17 @@
"title_aux": "ComfyUI-Environment-Visualizer" "title_aux": "ComfyUI-Environment-Visualizer"
} }
], ],
"https://github.com/windfancy/zsq_prompt": [
[
"PromptCLIPEncode",
"PromptLatent",
"PromptSelector",
"PromptStyler"
],
{
"title_aux": "zsq_prompt"
}
],
"https://github.com/wmatson/easy-comfy-nodes": [ "https://github.com/wmatson/easy-comfy-nodes": [
[ [
"EZAssocDictNode", "EZAssocDictNode",
@@ -22656,6 +22918,14 @@
"title_aux": "ComfyUI-RK-Sampler" "title_aux": "ComfyUI-RK-Sampler"
} }
], ],
"https://github.com/wu12023/ComfyUI-Image-Evaluation": [
[
"Clip_Score-\ud83d\udd2c"
],
{
"title_aux": "ComfyUI-Image-Evaluation"
}
],
"https://github.com/wujm424606/ComfyUi-Ollama-YN": [ "https://github.com/wujm424606/ComfyUi-Ollama-YN": [
[ [
"MyOllamaDeleteModel", "MyOllamaDeleteModel",
@@ -22935,7 +23205,11 @@
"FalAPIFluxDevWithLoraInpaintNode", "FalAPIFluxDevWithLoraInpaintNode",
"FalAPIFluxDevWithLoraNode", "FalAPIFluxDevWithLoraNode",
"FalAPIFluxLoraConfigNode", "FalAPIFluxLoraConfigNode",
"FalAPIFluxProCannyNode",
"FalAPIFluxProDepthNode",
"FalAPIFluxProFillNode",
"FalAPIFluxProNode", "FalAPIFluxProNode",
"FalAPIFluxProReduxNode",
"FalAPIFluxProV11Node" "FalAPIFluxProV11Node"
], ],
{ {
@@ -23096,6 +23370,7 @@
"easy ipadapterApplyRegional", "easy ipadapterApplyRegional",
"easy ipadapterStyleComposition", "easy ipadapterStyleComposition",
"easy isFileExist", "easy isFileExist",
"easy isMaskEmpty",
"easy isNone", "easy isNone",
"easy isSDXL", "easy isSDXL",
"easy joinImageBatch", "easy joinImageBatch",
@@ -23114,11 +23389,13 @@
"easy loadImagesForLoop", "easy loadImagesForLoop",
"easy loraStack", "easy loraStack",
"easy loraStackApply", "easy loraStackApply",
"easy makeImageForICLora",
"easy mathFloat", "easy mathFloat",
"easy mathInt", "easy mathInt",
"easy mathString", "easy mathString",
"easy mochiLoader", "easy mochiLoader",
"easy negative", "easy negative",
"easy ominiControlApply",
"easy outputToList", "easy outputToList",
"easy pipeBatchIndex", "easy pipeBatchIndex",
"easy pipeEdit", "easy pipeEdit",
@@ -23650,14 +23927,6 @@
"title_aux": "Hayo comfyui nodes" "title_aux": "Hayo comfyui nodes"
} }
], ],
"https://raw.githubusercontent.com/BobsBlazed/Bobs_Latent_Optimizer/refs/heads/main/Bobs_Latent_Optimizer.py": [
[
"BobsFluxSDXLLatentNode"
],
{
"title_aux": "Bobs_FLUX_SDXL_Latent_Optimizer"
}
],
"https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py": [ "https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py": [
[ [
"Apply Invisible Watermark", "Apply Invisible Watermark",

View File

File diff suppressed because it is too large Load Diff

0
glob/__init__.py Normal file
View File

174
glob/git_wrapper.py Normal file
View File

@@ -0,0 +1,174 @@
import pygit2
import os
from tqdm import tqdm
import traceback
class GitProgress(pygit2.RemoteCallbacks):
def __init__(self):
super().__init__()
self.pbar = None
def transfer_progress(self, stats):
if self.pbar is None:
self.pbar = tqdm(total=stats.total_objects, unit="obj", desc="Fetching objects")
self.pbar.n = stats.received_objects
self.pbar.refresh()
if stats.received_objects == stats.total_objects:
self.pbar.close()
self.pbar = None
class Remote:
def __init__(self, repo, remote):
self.repo = repo
self.remote = remote
def get_default_branch(self, remote_name='origin'):
remote = self.repo.remotes[remote_name]
remote.fetch() # Fetch latest data from the remote
# Look for the remote HEAD reference
head_ref = f'refs/remotes/{remote_name}/HEAD'
if head_ref in self.repo.references:
# Resolve the symbolic reference to get the actual branch
target_ref = self.repo.references[head_ref].resolve().name
return target_ref.replace(f'refs/remotes/{remote_name}/', '')
else:
raise ValueError(f"Could not determine the default branch for remote '{remote_name}'")
def pull(self, remote_name='origin'):
try:
# Detect if we are in detached HEAD state
if self.repo.head_is_detached:
# Find the default branch
branch_name = self.get_default_branch(remote_name)
# Checkout the branch if exists, or create it
branch_ref = f"refs/heads/{branch_name}"
if branch_ref in self.repo.references:
self.repo.checkout(branch_ref)
else:
# Create and checkout the branch
target_commit = self.repo.lookup_reference(f"refs/remotes/{remote_name}/{branch_name}").target
self.repo.create_branch(branch_name, self.repo[target_commit])
self.repo.checkout(branch_ref)
# Get the current branch
current_branch = self.repo.head.shorthand
# Fetch from the remote
remote = self.repo.remotes[remote_name]
remote.fetch()
# Merge changes from the remote
remote_branch_ref = f"refs/remotes/{remote_name}/{current_branch}"
remote_branch = self.repo.lookup_reference(remote_branch_ref).target
self.repo.merge(remote_branch)
# Check for merge conflicts
if self.repo.index.conflicts is not None:
print("Merge conflicts detected!")
for conflict in self.repo.index.conflicts:
print(f"Conflict: {conflict}")
return
# Commit the merge
user = self.repo.default_signature
merge_commit = self.repo.create_commit(
'HEAD',
user,
user,
f"Merge branch '{current_branch}' from {remote_name}",
self.repo.index.write_tree(),
[self.repo.head.target, remote_branch]
)
except Exception as e:
traceback.print_exc()
print(f"An error occurred: {e}")
self.repo.state_cleanup() # Clean up the merge state if necessary
class Repo:
def __init__(self, repo_path):
self.repo = pygit2.Repository(repo_path)
def remote(self, name="origin"):
return Remote(self.repo, self.repo.remotes[name])
def update_recursive(self):
update_submodules(self.repo)
def resolve_repository_state(repo):
if repo.is_empty:
raise ValueError("Repository is empty. Cannot proceed with submodule update.")
try:
state = repo.state() # Call the state method
except Exception as e:
print(f"Error retrieving repository state: {e}")
raise
if state != pygit2.GIT_REPOSITORY_STATE_NONE:
if state in (pygit2.GIT_REPOSITORY_STATE_MERGE, pygit2.GIT_REPOSITORY_STATE_REVERT):
print(f"Conflict detected. Cleaning up repository state... {repo.path} / {state}")
repo.state_cleanup()
print("Repository state cleaned up.")
else:
raise RuntimeError(f"Unsupported repository state: {state}")
def update_submodules(repo):
try:
resolve_repository_state(repo)
except Exception as e:
print(f"Error resolving repository state: {e}")
return
gitmodules_path = os.path.join(repo.workdir, ".gitmodules")
if not os.path.exists(gitmodules_path):
return
with open(gitmodules_path, "r") as f:
lines = f.readlines()
submodules = []
submodule_path = None
submodule_url = None
for line in lines:
if line.strip().startswith("[submodule"):
if submodule_path and submodule_url:
submodules.append((submodule_path, submodule_url))
submodule_path = None
submodule_url = None
elif line.strip().startswith("path ="):
submodule_path = line.strip().split("=", 1)[1].strip()
elif line.strip().startswith("url ="):
submodule_url = line.strip().split("=", 1)[1].strip()
if submodule_path and submodule_url:
submodules.append((submodule_path, submodule_url))
for path, url in submodules:
submodule_repo_path = os.path.join(repo.workdir, path)
print(f"submodule_repo_path: {submodule_repo_path}")
if not os.path.exists(submodule_repo_path):
print(f"Cloning submodule {path}...")
pygit2.clone_repository(url, submodule_repo_path, callbacks=GitProgress())
else:
print(f"Updating submodule {path}...")
submodule_repo = Repo(submodule_repo_path)
submodule_repo.remote("origin").pull()
update_submodules(submodule_repo)
def clone_from(git_url, repo_dir, recursive=True):
pygit2.clone_repository(git_url, repo_dir, callbacks=GitProgress())
Repo(repo_dir).update_recursive()

View File

@@ -23,13 +23,35 @@ sys.path.append(glob_path)
import cm_global import cm_global
from manager_util import * from manager_util import *
version = [2, 52] version = [2, 53]
version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '')
comfyui_manager_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) comfyui_manager_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
custom_nodes_path = os.path.abspath(os.path.join(comfyui_manager_path, '..')) custom_nodes_path = os.path.abspath(os.path.join(comfyui_manager_path, '..'))
default_custom_nodes_path = None
def get_default_custom_nodes_path():
global default_custom_nodes_path
if default_custom_nodes_path is None:
try:
import folder_paths
default_custom_nodes_path = folder_paths.get_folder_paths("custom_nodes")[0]
except:
default_custom_nodes_path = custom_nodes_path
return default_custom_nodes_path
def get_custom_nodes_paths():
try:
import folder_paths
return folder_paths.get_folder_paths("custom_nodes")
except:
return [custom_nodes_path]
comfy_path = os.environ.get('COMFYUI_PATH') comfy_path = os.environ.get('COMFYUI_PATH')
if comfy_path is None: if comfy_path is None:
comfy_path = os.path.abspath(os.path.join(custom_nodes_path, '..')) comfy_path = os.path.abspath(os.path.join(custom_nodes_path, '..'))
@@ -340,7 +362,7 @@ def __win_check_git_update(path, do_fetch=False, do_update=False):
new_env = os.environ.copy() new_env = os.environ.copy()
new_env["COMFYUI_PATH"] = comfy_path new_env["COMFYUI_PATH"] = comfy_path
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=custom_nodes_path) process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=get_default_custom_nodes_path())
output, _ = process.communicate() output, _ = process.communicate()
output = output.decode('utf-8').strip() output = output.decode('utf-8').strip()
@@ -394,7 +416,7 @@ def __win_check_git_pull(path):
new_env = os.environ.copy() new_env = os.environ.copy()
new_env["COMFYUI_PATH"] = comfy_path new_env["COMFYUI_PATH"] = comfy_path
command = [sys.executable, git_script_path, "--pull", path] command = [sys.executable, git_script_path, "--pull", path]
process = subprocess.Popen(command, env=new_env, cwd=custom_nodes_path) process = subprocess.Popen(command, env=new_env, cwd=get_default_custom_nodes_path())
process.wait() process.wait()
@@ -562,11 +584,11 @@ def gitclone_install(files, instant_execution=False, msg_prefix=''):
try: try:
print(f"Download: git clone '{url}'") print(f"Download: git clone '{url}'")
repo_name = os.path.splitext(os.path.basename(url))[0] repo_name = os.path.splitext(os.path.basename(url))[0]
repo_path = os.path.join(custom_nodes_path, repo_name) repo_path = os.path.join(get_default_custom_nodes_path(), repo_name)
# Clone the repository from the remote URL # Clone the repository from the remote URL
if not instant_execution and platform.system() == 'Windows': if not instant_execution and platform.system() == 'Windows':
res = manager_funcs.run_script([sys.executable, git_script_path, "--clone", custom_nodes_path, url], cwd=custom_nodes_path) res = manager_funcs.run_script([sys.executable, git_script_path, "--clone", get_default_custom_nodes_path(), url], cwd=get_default_custom_nodes_path())
if res != 0: if res != 0:
return False return False
else: else:
@@ -690,6 +712,22 @@ async def get_data_by_mode(mode, filename, channel_url=None):
return json_obj return json_obj
def lookup_installed_custom_nodes(repo_name):
try:
import folder_paths
base_paths = folder_paths.get_folder_paths("custom_nodes")
except:
base_paths = [custom_nodes_path]
for base_path in base_paths:
repo_path = os.path.join(base_path, repo_name)
if os.path.exists(repo_path):
return True, repo_path
elif os.path.exists(repo_path+'.disabled'):
return False, repo_path
return None
def gitclone_fix(files, instant_execution=False): def gitclone_fix(files, instant_execution=False):
print(f"Try fixing: {files}") print(f"Try fixing: {files}")
for url in files: for url in files:
@@ -701,13 +739,15 @@ def gitclone_fix(files, instant_execution=False):
url = url[:-1] url = url[:-1]
try: try:
repo_name = os.path.splitext(os.path.basename(url))[0] repo_name = os.path.splitext(os.path.basename(url))[0]
repo_path = os.path.join(custom_nodes_path, repo_name) repo_path = lookup_installed_custom_nodes(repo_name)
if os.path.exists(repo_path+'.disabled'): if repo_path is not None:
repo_path = repo_path+'.disabled' repo_path = repo_path[1]
if not execute_install_script(url, repo_path, instant_execution=instant_execution): if not execute_install_script(url, repo_path, instant_execution=instant_execution):
return False return False
else:
print(f"Custom node not found: {repo_name}")
except Exception as e: except Exception as e:
print(f"Install(git-clone) error: {url} / {e}", file=sys.stderr) print(f"Install(git-clone) error: {url} / {e}", file=sys.stderr)
@@ -754,12 +794,12 @@ def gitclone_uninstall(files):
url = url[:-1] url = url[:-1]
try: try:
dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "")
dir_path = os.path.join(custom_nodes_path, dir_name) repo_path = lookup_installed_custom_nodes(dir_name)
# safety check if repo_path is None:
if dir_path == '/' or dir_path[1:] == ":/" or dir_path == '': continue
print(f"Uninstall(git-clone) error: invalid path '{dir_path}' for '{url}'")
return False dir_path = repo_path[1]
install_script_path = os.path.join(dir_path, "uninstall.py") install_script_path = os.path.join(dir_path, "uninstall.py")
disable_script_path = os.path.join(dir_path, "disable.py") disable_script_path = os.path.join(dir_path, "disable.py")
@@ -775,10 +815,7 @@ def gitclone_uninstall(files):
if code != 0: if code != 0:
print(f"An error occurred during the execution of the disable.py script. Only the '{dir_path}' will be deleted.") print(f"An error occurred during the execution of the disable.py script. Only the '{dir_path}' will be deleted.")
if os.path.exists(dir_path): rmtree(dir_path)
rmtree(dir_path)
elif os.path.exists(dir_path + ".disabled"):
rmtree(dir_path + ".disabled")
except Exception as e: except Exception as e:
print(f"Uninstall(git-clone) error: {url} / {e}", file=sys.stderr) print(f"Uninstall(git-clone) error: {url} / {e}", file=sys.stderr)
return False return False
@@ -801,12 +838,12 @@ def gitclone_set_active(files, is_disable):
url = url[:-1] url = url[:-1]
try: try:
dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "")
dir_path = os.path.join(custom_nodes_path, dir_name) repo_path = lookup_installed_custom_nodes(dir_name)
# safety check if repo_path is None:
if dir_path == '/' or dir_path[1:] == ":/" or dir_path == '': continue
print(f"{action_name}(git-clone) error: invalid path '{dir_path}' for '{url}'")
return False dir_path = repo_path[1]
if is_disable: if is_disable:
current_path = dir_path current_path = dir_path
@@ -843,10 +880,12 @@ def gitclone_update(files, instant_execution=False, skip_script=False, msg_prefi
url = url[:-1] url = url[:-1]
try: try:
repo_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") repo_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "")
repo_path = os.path.join(custom_nodes_path, repo_name) repo_path = lookup_installed_custom_nodes(repo_name)
if os.path.exists(repo_path+'.disabled'): if repo_path is None:
repo_path = repo_path+'.disabled' continue
repo_path = repo_path[1]
git_pull(repo_path) git_pull(repo_path)
@@ -917,10 +956,14 @@ def lookup_customnode_by_url(data, target):
for x in data['custom_nodes']: for x in data['custom_nodes']:
if target in x['files']: if target in x['files']:
dir_name = os.path.splitext(os.path.basename(target))[0].replace(".git", "") dir_name = os.path.splitext(os.path.basename(target))[0].replace(".git", "")
dir_path = os.path.join(custom_nodes_path, dir_name) repo_path = lookup_installed_custom_nodes(dir_name)
if os.path.exists(dir_path):
if repo_path is None:
continue
if repo_path[0]:
x['installed'] = 'True' x['installed'] = 'True'
elif os.path.exists(dir_path + ".disabled"): else:
x['installed'] = 'Disabled' x['installed'] = 'Disabled'
return x return x
@@ -929,13 +972,15 @@ def lookup_customnode_by_url(data, target):
def simple_check_custom_node(url): def simple_check_custom_node(url):
dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "")
dir_path = os.path.join(custom_nodes_path, dir_name) repo_path = lookup_installed_custom_nodes(dir_name)
if os.path.exists(dir_path):
return 'installed'
elif os.path.exists(dir_path+'.disabled'):
return 'disabled'
return 'not-installed' if repo_path is None:
return 'not-installed'
if repo_path[0]:
return 'installed'
else:
return 'disabled'
def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do_update=False): def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do_update=False):
@@ -948,8 +993,12 @@ def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do
url = url[:-1] url = url[:-1]
dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "")
dir_path = os.path.join(custom_nodes_path, dir_name) repo_path = lookup_installed_custom_nodes(dir_name)
if os.path.exists(dir_path):
if repo_path is None:
item['installed'] = 'False'
elif repo_path[0]:
dir_path = repo_path[1]
try: try:
item['installed'] = 'True' # default item['installed'] = 'True' # default
@@ -968,17 +1017,23 @@ def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do
else: else:
item['installed'] = 'True' item['installed'] = 'True'
elif os.path.exists(dir_path + ".disabled"):
item['installed'] = 'Disabled'
else: else:
item['installed'] = 'False' item['installed'] = 'Disabled'
elif item['install_type'] == 'copy' and len(item['files']) == 1: elif item['install_type'] == 'copy' and len(item['files']) == 1:
dir_name = os.path.basename(item['files'][0]) dir_name = os.path.basename(item['files'][0])
if item['files'][0].endswith('.py'): if item['files'][0].endswith('.py'):
base_path = custom_nodes_path base_path = lookup_installed_custom_nodes(item['files'][0])
if base_path is None:
item['installed'] = 'False'
return
elif base_path[0]:
item['installed'] = 'True'
else:
item['installed'] = 'Disabled'
return
elif 'js_path' in item: elif 'js_path' in item:
base_path = os.path.join(js_path, item['js_path']) base_path = os.path.join(js_path, item['js_path'])
else: else:
@@ -990,8 +1045,6 @@ def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do
item['installed'] = 'Fail' item['installed'] = 'Fail'
else: else:
item['installed'] = 'True' item['installed'] = 'True'
elif os.path.exists(file_path + ".disabled"):
item['installed'] = 'Disabled'
else: else:
item['installed'] = 'False' item['installed'] = 'False'
@@ -1028,39 +1081,46 @@ def get_current_snapshot():
git_custom_nodes = {} git_custom_nodes = {}
file_custom_nodes = [] file_custom_nodes = []
try:
import folder_paths
base_paths = folder_paths.get_folder_paths("custom_nodes")
except:
base_paths = [custom_nodes_path]
# Get custom nodes hash # Get custom nodes hash
for path in os.listdir(custom_nodes_path): for base_path in base_paths:
fullpath = os.path.join(custom_nodes_path, path) for path in os.listdir(base_path):
fullpath = os.path.join(base_path, path)
if os.path.isdir(fullpath): if os.path.isdir(fullpath):
is_disabled = path.endswith(".disabled") is_disabled = path.endswith(".disabled")
try: try:
git_dir = os.path.join(fullpath, '.git') git_dir = os.path.join(fullpath, '.git')
if not os.path.exists(git_dir): if not os.path.exists(git_dir):
continue continue
repo = git.Repo(fullpath) repo = git.Repo(fullpath)
commit_hash = repo.head.commit.hexsha commit_hash = repo.head.commit.hexsha
url = repo.remotes.origin.url url = repo.remotes.origin.url
git_custom_nodes[url] = { git_custom_nodes[url] = {
'hash': commit_hash, 'hash': commit_hash,
'disabled': is_disabled
}
except:
print(f"Failed to extract snapshots for the custom node '{path}'.")
elif path.endswith('.py'):
is_disabled = path.endswith(".py.disabled")
filename = os.path.basename(path)
item = {
'filename': filename,
'disabled': is_disabled 'disabled': is_disabled
} }
except: file_custom_nodes.append(item)
print(f"Failed to extract snapshots for the custom node '{path}'.")
elif path.endswith('.py'):
is_disabled = path.endswith(".py.disabled")
filename = os.path.basename(path)
item = {
'filename': filename,
'disabled': is_disabled
}
file_custom_nodes.append(item)
pip_packages = get_installed_pip_packages() pip_packages = get_installed_pip_packages()

View File

@@ -1276,15 +1276,6 @@ class ManagerMenuDialog extends ComfyDialog {
modifyButtonStyle(url); modifyButtonStyle(url);
}, },
}, },
{
title: "Open 'flowt.ai'",
callback: () => {
const url = "https://flowt.ai/";
localStorage.setItem("wg_last_visited", url);
window.open(url, url);
modifyButtonStyle(url);
},
},
{ {
title: "Open 'esheep'", title: "Open 'esheep'",
callback: () => { callback: () => {

View File

@@ -3721,6 +3721,41 @@
"size": "1.19GB" "size": "1.19GB"
}, },
{
"name": "stabilityai/SD3.5-Large-Controlnet-Blur",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Blur Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_blur.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_blur.safetensors",
"size": "8.65GB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Canny",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Canny Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_canny.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_canny.safetensors",
"size": "8.65GB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Depth",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Depth Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_depth.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_depth.safetensors",
"size": "8.65GB"
},
{ {
"name": "Kijai/ToonCrafter model checkpoint (interpolation fp16)", "name": "Kijai/ToonCrafter model checkpoint (interpolation fp16)",
"type": "checkpoint", "type": "checkpoint",

View File

@@ -13,6 +13,78 @@
{
"author": "anze",
"title": "ComfyUI-OIDN [WIP]",
"reference": "https://github.com/Anze-/ComfyUI-OIDN",
"files": [
"https://github.com/Anze-/ComfyUI-OIDN"
],
"install_type": "git-clone",
"description": "ComyUI wrapper for Intel OIDN image denoising\nWARNING! : this is a development repo, usage in production environments is not advised! Bugs are to be expected."
},
{
"author": "techzuhaib",
"title": "ComfyUI-CacheImageNode",
"reference": "https://github.com/techzuhaib/ComfyUI-CacheImageNode",
"files": [
"https://github.com/techzuhaib/ComfyUI-CacheImageNode"
],
"install_type": "git-clone",
"description": "NODES: CacheImageNode"
},
{
"author": "hay86",
"title": "ComfyUI AceNodes [UNSAFE]",
"reference": "https://github.com/hay86/ComfyUI_AceNodes",
"files": [
"https://github.com/hay86/ComfyUI_AceNodes"
],
"install_type": "git-clone",
"description": "Some useful custom nodes that are not included in ComfyUI core yet.\nNOTE: Vulnerability discovered. Not being managed."
},
{
"author": "dowands",
"title": "AddMaskForICLora",
"reference": "https://github.com/dowands/ComfyUI-AddMaskForICLora",
"files": [
"https://github.com/dowands/ComfyUI-AddMaskForICLora"
],
"install_type": "git-clone",
"description": "NODES: Add Mask For IC Lora x"
},
{
"author": "zmwv823",
"title": "ComfyUI-Sana [WIP]",
"reference": "https://github.com/zmwv823/ComfyUI-Sana",
"files": [
"https://github.com/zmwv823/ComfyUI-Sana"
],
"install_type": "git-clone",
"description": "Unofficial custom-node for [a/SANA: Efficient High-Resolution Image Synthesis with Linear Diffusion Transformer](https://github.com/NVlabs/Sana)\n[w/A init node with lots of bugs, do not try unless interested.]"
},
{
"author": "exectails",
"title": "Scripting",
"id": "et_scripting [UNSAFE]",
"reference": "https://github.com/exectails/comfyui-et_scripting",
"files": [
"https://github.com/exectails/comfyui-et_scripting"
],
"install_type": "git-clone",
"description": "Nodes that can be used to write Python scripts directly on a node. Useful for quick prototyping and testing, at the cost of security.[w/This extension allows the execution of arbitrary Python code from a workflow.]"
},
{
"author": "AIFSH",
"title": "UltralightDigitalHuman-ComfyUI",
"reference": "https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI",
"files": [
"https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI"
],
"install_type": "git-clone",
"description": "a custom node for [a/Ultralight-Digital-Human](https://github.com/anliyuan/Ultralight-Digital-Human)\nNOTE: The files in the repo are not organized."
},
{ {
"author": "vahidzxc", "author": "vahidzxc",
"title": "ComfyUI-My-Handy-Nodes", "title": "ComfyUI-My-Handy-Nodes",
@@ -132,7 +204,7 @@
"https://github.com/RobeSantoro/ComfyUI-RobeNodes" "https://github.com/RobeSantoro/ComfyUI-RobeNodes"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: List Video Path Node, List Image Path Node\nThis is a collection of utility nodes for the ComfyUI stable diffusion client that provides enhanced file path handling capabilities.[w/Users will be able to access images from arbitrary paths through the workflow.] " "description": "NODES: List Video Path Node, List Image Path Node\nThis is a collection of utility nodes for the ComfyUI stable diffusion client that provides enhanced file path handling capabilities.[w/Users will be able to access images from arbitrary paths through the workflow.]"
}, },
{ {
"author": "Kimara.ai", "author": "Kimara.ai",
@@ -173,7 +245,7 @@
"https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI" "https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES:Sample Image" "description": "NODES:Sample Image, Make Seamless Tile"
}, },
{ {
"author": "Anze-", "author": "Anze-",
@@ -486,16 +558,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Upscale image with model multiple times !" "description": "Upscale image with model multiple times !"
}, },
{
"author": "huangyangke",
"title": "ComfyUI-Kolors-IpadapterFaceId [WIP]",
"reference": "https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId",
"files": [
"https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId"
],
"install_type": "git-clone",
"description": "NODES:kolors_ipadapter_faceid\nNOTE: The files in the repo are not organized."
},
{ {
"author": "rouxianmantou", "author": "rouxianmantou",
"title": "comfyui-rxmt-nodes", "title": "comfyui-rxmt-nodes",

View File

@@ -239,6 +239,15 @@
"title_aux": "IMAGDressing-ComfyUI" "title_aux": "IMAGDressing-ComfyUI"
} }
], ],
"https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI": [
[
"InferUltralightDigitalHumanNode",
"TrainUltralightDigitalHumanNode"
],
{
"title_aux": "UltralightDigitalHuman-ComfyUI"
}
],
"https://github.com/AIFSH/UtilNodes-ComfyUI": [ "https://github.com/AIFSH/UtilNodes-ComfyUI": [
[ [
"GetRGBEmptyImgae", "GetRGBEmptyImgae",
@@ -341,6 +350,14 @@
"title_aux": "ComfyUI-Xorbis-nodes [WIP]" "title_aux": "ComfyUI-Xorbis-nodes [WIP]"
} }
], ],
"https://github.com/Anze-/ComfyUI-OIDN": [
[
"OIDN Denoise"
],
{
"title_aux": "ComfyUI-OIDN [WIP]"
}
],
"https://github.com/Anze-/ComfyUI_deepDeband": [ "https://github.com/Anze-/ComfyUI_deepDeband": [
[ [
"deepDeband Inference" "deepDeband Inference"
@@ -496,7 +513,8 @@
"DevToolsNodeWithOnlyOptionalInput", "DevToolsNodeWithOnlyOptionalInput",
"DevToolsNodeWithOptionalInput", "DevToolsNodeWithOptionalInput",
"DevToolsNodeWithOutputList", "DevToolsNodeWithOutputList",
"DevToolsNodeWithStringInput" "DevToolsNodeWithStringInput",
"DevToolsNodeWithUnionInput"
], ],
{ {
"title_aux": "ComfyUI_devtools [WIP]" "title_aux": "ComfyUI_devtools [WIP]"
@@ -577,7 +595,9 @@
"https://github.com/DoctorDiffusion/Doctor-Tools": [ "https://github.com/DoctorDiffusion/Doctor-Tools": [
[ [
"FinalFrameSelector", "FinalFrameSelector",
"FirstFrameSelector",
"PromptJournal", "PromptJournal",
"ReverseFrameSequence",
"VideoMerge", "VideoMerge",
"YouTubeVideoDownloader" "YouTubeVideoDownloader"
], ],
@@ -995,7 +1015,9 @@
"FRED_LoadPathImagesPreview", "FRED_LoadPathImagesPreview",
"FRED_LoadPathImagesPreview_v2", "FRED_LoadPathImagesPreview_v2",
"FRED_LoadRetinaFace", "FRED_LoadRetinaFace",
"FRED_LoraInfos",
"FRED_PreviewOnly", "FRED_PreviewOnly",
"FRED_TextMultiline",
"FRED_photo_prompt" "FRED_photo_prompt"
], ],
{ {
@@ -1831,6 +1853,7 @@
"ModelMergeAuraflow", "ModelMergeAuraflow",
"ModelMergeBlocks", "ModelMergeBlocks",
"ModelMergeFlux1", "ModelMergeFlux1",
"ModelMergeLTXV",
"ModelMergeMochiPreview", "ModelMergeMochiPreview",
"ModelMergeSD1", "ModelMergeSD1",
"ModelMergeSD2", "ModelMergeSD2",
@@ -2057,6 +2080,14 @@
"title_aux": "ComfyUI_WcpD_Utility_Kit" "title_aux": "ComfyUI_WcpD_Utility_Kit"
} }
], ],
"https://github.com/dowands/ComfyUI-AddMaskForICLora": [
[
"AddMaskForICLora"
],
{
"title_aux": "AddMaskForICLora"
}
],
"https://github.com/downlifted/ComfyUI_BWiZ_Nodes": [ "https://github.com/downlifted/ComfyUI_BWiZ_Nodes": [
[ [
"BWIZInteractiveLogMonitor", "BWIZInteractiveLogMonitor",
@@ -2158,6 +2189,14 @@
"title_aux": "ComfyUI-GeneraNodes" "title_aux": "ComfyUI-GeneraNodes"
} }
], ],
"https://github.com/exectails/comfyui-et_scripting": [
[
"ETPythonTextScript3Node"
],
{
"title_aux": "Scripting"
}
],
"https://github.com/fablestudio/ComfyUI-Showrunner-Utils": [ "https://github.com/fablestudio/ComfyUI-Showrunner-Utils": [
[ [
"AlignFace", "AlignFace",
@@ -2277,6 +2316,43 @@
"title_aux": "Comfyui-SadTalker" "title_aux": "Comfyui-SadTalker"
} }
], ],
"https://github.com/hay86/ComfyUI_AceNodes": [
[
"ACE_AnyInputSwitchBool",
"ACE_AnyInputToAny",
"ACE_AudioLoad",
"ACE_AudioPlay",
"ACE_AudioSave",
"ACE_Expression_Eval",
"ACE_Float",
"ACE_ImageColorFix",
"ACE_ImageConstrain",
"ACE_ImageFaceCrop",
"ACE_ImageGetSize",
"ACE_ImageLoadFromCloud",
"ACE_ImagePixelate",
"ACE_ImageQA",
"ACE_ImageRemoveBackground",
"ACE_ImageSaveToCloud",
"ACE_Integer",
"ACE_MaskBlur",
"ACE_Seed",
"ACE_Text",
"ACE_TextConcatenate",
"ACE_TextGoogleTranslate",
"ACE_TextInputSwitch2Way",
"ACE_TextInputSwitch4Way",
"ACE_TextInputSwitch8Way",
"ACE_TextList",
"ACE_TextPreview",
"ACE_TextSelector",
"ACE_TextToResolution",
"ACE_TextTranslate"
],
{
"title_aux": "ComfyUI AceNodes [UNSAFE]"
}
],
"https://github.com/hgabha/WWAA-CustomNodes": [ "https://github.com/hgabha/WWAA-CustomNodes": [
[ [
"WWAA-BuildString", "WWAA-BuildString",
@@ -2353,14 +2429,6 @@
"title_aux": "comfy-magick [WIP]" "title_aux": "comfy-magick [WIP]"
} }
], ],
"https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId": [
[
"kolors_ipadapter_faceid"
],
{
"title_aux": "ComfyUI-Kolors-IpadapterFaceId [WIP]"
}
],
"https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": [ "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": [
[ [
"EasyBgRemover", "EasyBgRemover",
@@ -2881,7 +2949,9 @@
"AddFluxFlow", "AddFluxFlow",
"ApplyFluxRaveAttention", "ApplyFluxRaveAttention",
"ApplyRefFlux", "ApplyRefFlux",
"ApplyRegionalConds",
"ConfigureModifiedFlux", "ConfigureModifiedFlux",
"CreateRegionalCond",
"FlowEditForwardSampler", "FlowEditForwardSampler",
"FlowEditReverseSampler", "FlowEditReverseSampler",
"FluxAttnOverride", "FluxAttnOverride",
@@ -2897,6 +2967,7 @@
"PrepareAttnBank", "PrepareAttnBank",
"RFDoubleBlocksOverride", "RFDoubleBlocksOverride",
"RFSingleBlocksOverride", "RFSingleBlocksOverride",
"RegionalStyleModelApply",
"SEGAttention" "SEGAttention"
], ],
{ {
@@ -3585,6 +3656,14 @@
"title_aux": "ComfyUI-Rpg-Architect [WIP]" "title_aux": "ComfyUI-Rpg-Architect [WIP]"
} }
], ],
"https://github.com/techzuhaib/ComfyUI-CacheImageNode": [
[
"CacheImageNode"
],
{
"title_aux": "ComfyUI-CacheImageNode"
}
],
"https://github.com/thderoo/ComfyUI-_topfun_s_nodes": [ "https://github.com/thderoo/ComfyUI-_topfun_s_nodes": [
[ [
"ConditioningPerturbation", "ConditioningPerturbation",
@@ -3639,6 +3718,7 @@
], ],
"https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI": [ "https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI": [
[ [
"Make Seamless Tile",
"Sample Image" "Sample Image"
], ],
{ {
@@ -3800,6 +3880,17 @@
"title_aux": "Comfyui_image2prompt" "title_aux": "Comfyui_image2prompt"
} }
], ],
"https://github.com/zmwv823/ComfyUI-Sana": [
[
"UL_SanaModelLoader",
"UL_SanaSampler",
"UL_SanaTextEncode",
"UL_SanaVAEProcess"
],
{
"title_aux": "ComfyUI-Sana [WIP]"
}
],
"https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py": [ "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py": [
[ [
"BatchToList", "BatchToList",

View File

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,26 @@
}, },
{
"author": "huangyangke",
"title": "ComfyUI-Kolors-IpadapterFaceId [DEPRECATED]",
"reference": "https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId",
"files": [
"https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId"
],
"install_type": "git-clone",
"description": "NODES:kolors_ipadapter_faceid\nNOTE: The files in the repo are not organized."
},
{
"author": "zmwv823",
"title": "ComfyUI_Ctrlora [DEPRECATED]",
"reference": "https://github.com/zmwv823/ComfyUI_Ctrlora",
"files": [
"https://github.com/zmwv823/ComfyUI_Ctrlora"
],
"install_type": "git-clone",
"description": "Unofficial custom_node for [a/xyfJASON/ctrlora](https://github.com/xyfJASON/ctrlora)."
},
{ {
"author": "Fannovel16", "author": "Fannovel16",
"title": "ComfyUI Loopchain [DEPRECATED]", "title": "ComfyUI Loopchain [DEPRECATED]",

View File

@@ -10,6 +10,275 @@
{
"author": "takemetosiberia",
"title": "SAMURAI Nodes for ComfyUI",
"reference": "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-",
"files": [
"https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for video object segmentation using [a/SAMURAI](https://github.com/yangchris11/samurai) model."
},
{
"author": "motivated3",
"title": "ComfyUI MiaoShua Creator",
"id": "comfyui-shua-creator",
"reference": "https://github.com/motivated3/comfyui-shua-creator",
"files": [
"https://github.com/motivated3/comfyui-shua-creator"
],
"install_type": "git-clone",
"description": "With the MiaoShua creator's end, you can use this plugin to upload debugged workflows for consumer end users to use."
},
{
"author": "DoctorDiffusion",
"title": "ComfyUI-SnakeOil",
"reference": "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil",
"files": [
"https://github.com/DoctorDiffusion/ComfyUI-SnakeOil"
],
"install_type": "git-clone",
"description": "Use [a/Doctor Diffusion's snake oil nLoRAs](https://civitai.com/models/987843) as well as [a/other negative LoRAs](https://civitai.com/models/186617/doctor-diffusions-negative-xl-lora) easily within ComfyUI."
},
{
"author": "duhaifeng",
"title": "ComfyUI-Flux-Inpainting",
"reference": "https://github.com/rubi-du/ComfyUI-Flux-Inpainting",
"files": [
"https://github.com/rubi-du/ComfyUI-Flux-Inpainting"
],
"install_type": "git-clone",
"description": "This node wraps the flux fill model as ComfyUI nodes. Use NF4 flux fill model, support for inpainting and outpainting image. Compared to the flux fill dev model, these nodes can use the flux fill model to perform inpainting and outpainting work under lower VRM conditions."
},
{
"author": "purpen",
"title": "AIRedoon",
"reference": "https://github.com/purpen/ComfyUI-AIRedoon",
"files": [
"https://github.com/purpen/ComfyUI-AIRedoon"
],
"install_type": "git-clone",
"description": "NODES:AIRedoon Translator, AIRedoon Image Caption"
},
{
"author": "purpen",
"title": "ComfyUI-ImageTagger",
"reference": "https://github.com/purpen/ComfyUI-ImageTagger",
"files": [
"https://github.com/purpen/ComfyUI-ImageTagger"
],
"install_type": "git-clone",
"description": "NODES:AIRedoon Image Caption.\nAnalyze image tagger"
},
{
"author": "Yuan-ManX",
"title": "ComfyUI-SoundHub",
"reference": "https://github.com/Yuan-ManX/ComfyUI-SoundHub",
"files": [
"https://github.com/Yuan-ManX/ComfyUI-SoundHub"
],
"install_type": "git-clone",
"description": "ComfyUI-SoundHub is a collection of audio processing nodes designed for ComfyUI, enabling seamless audio processing and generation within your ComfyUI workflows."
},
{
"author": "Starnodes2024",
"title": "ComfyUI_StarNodes",
"reference": "https://github.com/Starnodes2024/ComfyUI_StarNodes",
"files": [
"https://github.com/Starnodes2024/ComfyUI_StarNodes"
],
"install_type": "git-clone",
"description": "NODES: StarNode Input Image Chooser, SD(XL) Star(t) Settings, SD3.5 Star(t) Settings, Starnode Ollama Helper"
},
{
"author": "bananasss00",
"title": "ComfyUI-flux_fill_patcher",
"reference": "https://github.com/bananasss00/ComfyUI-flux_fill_patcher",
"files": [
"https://github.com/bananasss00/ComfyUI-flux_fill_patcher"
],
"install_type": "git-clone",
"description": "flux patcher for Fill Flux.Dev lora [a/https://civitai.com/models/981615/fluxfill-inpaint-lora](https://civitai.com/models/981615/fluxfill-inpaint-lora)"
},
{
"author": "lldacing",
"title": "ComfyUI_StableDelight_ll",
"id": "comfyui_stabledelight_ll",
"reference": "https://github.com/lldacing/ComfyUI_StableDelight_ll",
"files": [
"https://github.com/lldacing/ComfyUI_StableDelight_ll"
],
"install_type": "git-clone",
"description": "StableDelight: Revealing Hidden Textures by Removing Specular Reflections"
},
{
"author": "flycarl",
"title": "ComfyUI-Pixelate",
"reference": "https://github.com/flycarl/ComfyUI-Pixelate",
"files": [
"https://github.com/flycarl/ComfyUI-Pixelate"
],
"install_type": "git-clone",
"description": "[a/sd-webui-pixelart](https://github.com/mrreplicart/sd-webui-pixelart) are referenced by many webui users, this node is mean to use it in ComfyUI."
},
{
"author": "SparknightLLC",
"title": "ComfyUI-MaskArbiter",
"reference": "https://github.com/SparknightLLC/ComfyUI-MaskArbiter",
"files": [
"https://github.com/SparknightLLC/ComfyUI-MaskArbiter"
],
"install_type": "git-clone",
"description": "A node for ComfyUI that takes a list of masks and returns a single mask based on your criteria. For example, it can be used to mask the leftmost subject in an image containing more than one subject of the same class. The workflow below demonstrates the difference between Mask Arbiter (top) and traditional Grounding DINO masking (bottom.)"
},
{
"author": "tanglup",
"title": "Comfyui_Flux_Style_Adjust",
"reference": "https://github.com/tanglup/Comfyui_Flux_Style_Adjust",
"files": [
"https://github.com/tanglup/Comfyui_Flux_Style_Adjust"
],
"install_type": "git-clone",
"description": "StyleModelApply adds more controls"
},
{
"author": "dymokomi",
"title": "comfyui_dygen",
"reference": "https://github.com/dymokomi/comfyui_dygen",
"files": [
"https://github.com/dymokomi/comfyui_dygen"
],
"install_type": "git-clone",
"description": "NODES: DY Image Quantize, DY Image Cluster, DY Image Palette, DY Image Masks, Image List to Grid"
},
{
"author": "exectails",
"title": "Info Utils",
"id": "et_infoutils",
"reference": "https://github.com/exectails/comfyui-et_infoutils",
"files": [
"https://github.com/exectails/comfyui-et_infoutils"
],
"install_type": "git-clone",
"description": "Nodes that facilitate simpler information providing and gathering, such as Text Box, Show Data and Token Counter nodes."
},
{
"author": "exectails",
"title": "String Utils",
"id": "et_stringutils",
"reference": "https://github.com/exectails/comfyui-et_stringutils",
"files": [
"https://github.com/exectails/comfyui-et_stringutils"
],
"install_type": "git-clone",
"description": "Nodes dedicated to the analysis and transformation of text strings, such as for formatting and conversions between types."
},
{
"author": "exectails",
"title": "Dynamic Prompts",
"id": "et_dynamicprompts",
"reference": "https://github.com/exectails/comfyui-et_dynamicprompts",
"files": [
"https://github.com/exectails/comfyui-et_dynamicprompts"
],
"install_type": "git-clone",
"description": "Nodes that implement functionality similar to the Dynamic Prompts extension for A1111."
},
{
"author": "Lasse Lauwerys",
"title": "Touchpad and trackpad gesture support",
"id": "manager",
"reference": "https://github.com/Iemand005/ComfyUI-Touchpad-Gestures",
"files": [
"https://github.com/Iemand005/ComfyUI-Touchpad-Gestures"
],
"install_type": "git-clone",
"description": "Implements proper touchpad zooming and panning into ComfyUI to make it more usable on laptops."
},
{
"author": "Alvaroeai",
"title": "ComfyUI-Text2Json",
"reference": "https://github.com/Alvaroeai/ComfyUI-Text2Json",
"files": [
"https://github.com/Alvaroeai/ComfyUI-Text2Json"
],
"install_type": "git-clone",
"description": "This repository contains a custom node for ComfyUI that converts text into a JSON object. The node is designed to be user-friendly and supports multi-line JSON input."
},
{
"author": "SleeeepyZhou",
"title": "CNtranslator",
"id": "cn-translator",
"reference": "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator",
"files": [
"https://github.com/SleeeepyZhou/ComfyUI-CNtranslator"
],
"install_type": "git-clone",
"description": "A translation node for users in Chinese Mainland. (Because of the network firewall in Chinese Mainland, many translation APIs cannot be used normally.)"
},
{
"author": "tungdop2",
"title": "Joy Caption Alpha Two for ComfyUI",
"id": "joy-captioner-alpha-two",
"reference": "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two",
"files": [
"https://github.com/tungdop2/Comfyui_joy-caption-alpha-two"
],
"install_type": "git-clone",
"description": "The Joy Caption Alpha Two node for ComfyUI, based on https://huggingface.co/spaces/fancyfeast/joy-caption-alpha-two"
},
{
"author": "c0ffymachyne",
"title": "Bytebeat Synthesizer: Composing with Operators",
"reference": "https://github.com/c0ffymachyne/ComfyUI_BeatByte",
"files": [
"https://github.com/c0ffymachyne/ComfyUI_BeatByte"
],
"install_type": "git-clone",
"description": "Bytebeat is like composing music with the tools of a programmers toolkit. Instead of piano keys, you have operators like >>, |, and &. Its like giving your CPU a guitar and letting it shred! 🤘"
},
{
"author": "ShmuelRonen",
"title": "ComfyUI Pixtral Large Extension",
"reference": "https://github.com/ShmuelRonen/ComfyUI_pixtral_large",
"files": [
"https://github.com/ShmuelRonen/ComfyUI_pixtral_large"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node that integrates Mistral AI's Pixtral Large vision model, enabling powerful multimodal AI capabilities within ComfyUI. Pixtral Large is a 124B parameter model (123B decoder + 1B vision encoder) that can analyze up to 30 high-resolution images simultaneously."
},
{
"author": "wu12023",
"title": "ComfyUI-Image-Evaluation",
"reference": "https://github.com/wu12023/ComfyUI-Image-Evaluation",
"files": [
"https://github.com/wu12023/ComfyUI-Image-Evaluation"
],
"install_type": "git-clone",
"description": "An extension to ComfyUI that evaluates images using multiple models."
},
{
"author": "windfancy",
"title": "zsq_prompt",
"reference": "https://github.com/windfancy/zsq_prompt",
"files": [
"https://github.com/windfancy/zsq_prompt"
],
"install_type": "git-clone",
"description": "NODES: PromptStyler, PromptLatent, PromptCLIPEncode, PromptSelector"
},
{
"author": "bobsblazed",
"title": "Bobs_Latent_Optimizer",
"reference": "https://github.com/BobsBlazed/Bobs_Latent_Optimizer",
"files": [
"https://github.com/BobsBlazed/Bobs_Latent_Optimizer/raw/refs/heads/main/Bobs_Latent_Optimizer.py"
],
"install_type": "copy",
"description": "This custom node for ComfyUI is designed to optimize latent generation for use with FLUX, SDXL and SD3. It provides flexible control over aspect ratios, megapixel sizes, and upscale factors, allowing users to dynamically create latents that fit specific tiling and resolution needs."
},
{ {
"author": "logtd", "author": "logtd",
"title": "ComfyUI-LTXTricks", "title": "ComfyUI-LTXTricks",
@@ -29,7 +298,7 @@
"https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl" "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "This extension offers a new Apply-Style node for Reflux that allows for changing the influence of the conditioning image on the final outcome. This effectively allows for changing the style or content of an image using a prompt while using Reflux." "description": "This extension offers a new Apply-Style node for Redux that allows for changing the influence of the conditioning image on the final outcome. This effectively allows for changing the style or content of an image using a prompt while using Redux."
}, },
{ {
"author": "ramesh-x90", "author": "ramesh-x90",
@@ -425,273 +694,6 @@
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "To use stepfun's library, you need an official api that supports multimodal inputs such as video and pictures [a/https://platform.stepfun.com/request-restriction](https://platform.stepfun.com/request-restriction)" "description": "To use stepfun's library, you need an official api that supports multimodal inputs such as video and pictures [a/https://platform.stepfun.com/request-restriction](https://platform.stepfun.com/request-restriction)"
},
{
"author": "lrzjason",
"title": "Comfyui-In-Context-Lora-Utils",
"reference": "https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils",
"files": [
"https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils"
],
"install_type": "git-clone",
"description": "NODES: Add Mask For IC Lora"
},
{
"author": "1038lab",
"title": "ComfyUI-RMBG",
"reference": "https://github.com/1038lab/ComfyUI-RMBG",
"files": [
"https://github.com/1038lab/ComfyUI-RMBG"
],
"install_type": "git-clone",
"description": "A ComfyUI node for removing image backgrounds using RMBG-2.0"
},
{
"author": "GorillaFrame",
"title": "GFrbmg2",
"reference": "https://github.com/gorillaframeai/GF_nodes",
"files": [
"https://github.com/gorillaframeai/GF_nodes"
],
"install_type": "git-clone",
"description": "This custom node for ComfyUI provides advanced background removal capabilities using the briaai/RMBG-2.0 model. It is designed to seamlessly integrate into the ComfyUI environment, offering users a powerful tool for image processing tasks."
},
{
"author": "amaozhao",
"title": "ComfyUI_DeployCash",
"id": "ComfyUI_DeployCash",
"reference": "https://github.com/jacklukai/ComfyUI_DeployCash",
"files": [
"https://github.com/jacklukai/ComfyUI_DeployCash"
],
"install_type": "git-clone",
"description": "DeployCash, a tool that converts workflows into WeChat and H5 with one click, and supports payments."
},
{
"author": "akatz-ai",
"title": "ComfyUI-X-Portrait-Nodes",
"id": "comfyui-x-portrait-nodes",
"reference": "https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes",
"files": [
"https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes"
],
"install_type": "git-clone",
"description": "Implementation of X-Portrait nodes for ComfyUI, animate portraits with an input video and a reference image."
},
{
"author": "Doctor Diffusion",
"title": "Schedulizer",
"id": "schedulizer",
"reference": "https://github.com/DoctorDiffusion/ComfyUI-Schedulizer",
"files": [
"https://github.com/DoctorDiffusion/ComfyUI-Schedulizer"
],
"install_type": "git-clone",
"description": "Nodes:Whisper Node, Prompt Schedule Converter. Convert song lyrics into a useable prompt travel schedule within comfyUI. Includes whisper large-v2."
},
{
"author": "Doctor Diffusion",
"title": "MediaMixer",
"id": "mediamixer",
"reference": "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer",
"files": [
"https://github.com/DoctorDiffusion/ComfyUI-MediaMixer"
],
"install_type": "git-clone",
"description": "A node suite for downloading audio and video from youtube as we all sevral useful video utilits such as a final frame selector and a node that merges two videos into one."
},
{
"author": "AIFSH",
"title": "MiniMates-ComfyUI",
"reference": "https://github.com/AIFSH/MiniMates-ComfyUI",
"files": [
"https://github.com/AIFSH/MiniMates-ComfyUI"
],
"install_type": "git-clone",
"description": "a custom node for [a/MiniMates](https://github.com/kleinlee/MiniMates)"
},
{
"author": "bombax-xiaoice",
"title": "ComfyUI-MagicDance",
"reference": "https://github.com/bombax-xiaoice/ComfyUI-MagicDance",
"files": [
"https://github.com/bombax-xiaoice/ComfyUI-MagicDance"
],
"install_type": "git-clone",
"description": "ComfyUI supports over [a/Boese0601/MagicDance](https://github.com/Boese0601/MagicDance)."
},
{
"author": "phazei",
"title": "Prompt Stash Saver Node for ComfyUI",
"id": "stash-saver",
"reference": "https://github.com/phazei/ConfyUI-node-prompt-stash-saver",
"files": [
"https://github.com/phazei/ConfyUI-node-prompt-stash-saver"
],
"install_type": "git-clone",
"description": "Prompt Stash is a simple plugin for ComfyUI that lets you save your prompts and organize them into multiple lists. It also features a pass-through functionality, so you can hook it up to an LLM node (or any text outputting node) and capture its outputs directly."
},
{
"author": "LatentSpaceDirective",
"title": "ComfyUI-Texturaizer",
"id": "texturaizer",
"reference": "https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer",
"files": [
"https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer"
],
"install_type": "git-clone",
"description": "These are companion nodes for Texturaizer, a Blender plugin that connects complex 3D data to ComfyUI. https://texturaizer.com"
},
{
"author": "Lasse Lauwerys",
"title": "Touch screen gesture support",
"reference": "https://github.com/Iemand005/ComfyUI-Touch-Gestures",
"files": [
"https://github.com/Iemand005/ComfyUI-Touch-Gestures"
],
"install_type": "git-clone",
"description": "Implements proper multitouch zooming and panning into ComfyUI to make it more usable on mobile devices."
},
{
"author": "robtl2",
"title": "ComfyUI-ComfyBridge",
"reference": "https://github.com/robtl2/ComfyUI-ComfyBridge",
"files": [
"https://github.com/robtl2/ComfyUI-ComfyBridge"
],
"install_type": "git-clone",
"description": "A socket service that helps third-party DCC software maintain long-term image exchange with comfyUI."
},
{
"author": "Isi-dev",
"title": "ComfyUI-Animation_Nodes_and_Workflows",
"id": "ComfyUI-Animation_Nodes_and_Workflows",
"reference": "https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows",
"files": [
"https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows"
],
"install_type": "git-clone",
"description": "These are nodes and workflows that can facilitate the creation of animations and video compilations."
},
{
"author": "ShmuelRonen",
"title": "ComfyUI Flux 1.1 Ultra & Raw Node",
"reference": "https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API",
"files": [
"https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for Black Forest Labs' FLUX 1.1 [pro] API, supporting both regular and Ultra modes with optional Raw mode."
},
{
"author": "akspa0",
"title": "ComfyUI-FapMixPlus",
"reference": "https://github.com/akspa0/ComfyUI-FapMixPlus",
"files": [
"https://github.com/akspa0/ComfyUI-FapMixPlus"
],
"install_type": "git-clone",
"description": "This is an audio processing script that applies soft limiting, optional loudness normalization, and optional slicing for transcription. It can also produce stereo-mixed outputs with optional audio appended to the end. The script organizes processed files into structured folders with sanitized filenames and retains original timestamps for continuity."
},
{
"author": "neph1",
"title": "comfyui-smooth-step-lora-loader",
"reference": "https://github.com/neph1/comfyui-smooth-step-lora-loader",
"files": [
"https://github.com/neph1/comfyui-smooth-step-lora-loader"
],
"install_type": "git-clone",
"description": "This custom node provides a smooth step function that normalizes LoRA values by enhancing elements above the mean while reducing those below it. Users can independently control both the LoRA strength and smooth step intensity to fine-tune their results, though the effectiveness may vary between different seeds and LoRA types."
},
{
"author": "troyxmccall",
"title": "ComfyUI-ScaleToTargetMegapixels",
"reference": "https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels",
"files": [
"https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels"
],
"install_type": "git-clone",
"description": "NODES:ScaleToTargetMegapixels."
},
{
"author": "Comflowy",
"title": "Comflowy's Custom Nodes",
"id": "comflowy",
"reference": "https://github.com/6174/comflowy-nodes",
"files": [
"https://github.com/6174/comflowy-nodes"
],
"install_type": "git-clone",
"description": "Custom nodes for ComfyUI by Comflowy."
},
{
"author": "TTPlanetPig",
"reference": "https://github.com/TTPlanetPig/Comfyui_Hunyuan3D",
"files": [
"https://github.com/TTPlanetPig/Comfyui_Hunyuan3D"
],
"install_type": "git-clone",
"description": "NODES:TTP_Hunyuan3DNode, TTP_SquareImage, TTP_GIFViewer"
},
{
"author": "ARZUMATA",
"title": "ComfyUI-Qwen2",
"reference": "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2",
"files": [
"https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2"
],
"install_type": "git-clone",
"description": "Qwen2 Nodes for ComfyUI.\nI needed to run Qwen2 on ComfyUI to use it in my workflow for batching images and captioning and none of the implementations I found on the web worked the way I wanted.[w/May contain bugs.]"
},
{
"author": "ryanontheinside",
"title": "Doom",
"reference": "https://github.com/ryanontheinside/ComfyUI_Doom",
"files": [
"https://github.com/ryanontheinside/ComfyUI_Doom"
],
"install_type": "git-clone",
"description": "Play Doom in ComfyUI."
},
{
"author": "wTechArtist",
"title": "ComfyUI-StableDelight-weiweiliang",
"reference": "https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang",
"files": [
"https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang"
],
"install_type": "git-clone",
"description": "Nodes:StableDelight-weiweiliang"
},
{
"author": "VangengLab",
"title": "ComfyUI-LivePortrait_v2",
"reference": "https://github.com/VangengLab/ComfyUI-LivePortrait_v2",
"files": [
"https://github.com/VangengLab/ComfyUI-LivePortrait_v2"
],
"install_type": "git-clone",
"description": "We developed a custom_node for Liveportrait_v2 that enables flexible use on Comfyui to drive animal image-based emoji generation from videos."
},
{
"author": "VangengLab",
"title": "ComfyUI-LivePortrait_v3",
"reference": "https://github.com/VangengLab/ComfyUI-LivePortrait_v3",
"files": [
"https://github.com/VangengLab/ComfyUI-LivePortrait_v3"
],
"install_type": "git-clone",
"description": "We developed a custom_node for Liveportrait_v3 that enables flexible use on Comfyui to drive image-based emoji generation from photos."
},
{
"author": "jtydhr88",
"title": "ComfyUI-Hunyuan3D-1-wrapper",
"reference": "https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper",
"files": [
"https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper"
],
"install_type": "git-clone",
"description": "ComfyUI Hunyuan3D-1-wrapper is a custom node that allows you to run [a/Tencent/Hunyuan3D-1](https://github.com/Tencent/Hunyuan3D-1) in ComfyUI as a wrapper."
} }
] ]
} }

View File

@@ -1218,6 +1218,14 @@
"title_aux": "AlekPet/ComfyUI_Custom_Nodes_AlekPet" "title_aux": "AlekPet/ComfyUI_Custom_Nodes_AlekPet"
} }
], ],
"https://github.com/Alvaroeai/ComfyUI-Text2Json": [
[
"TextToJson"
],
{
"title_aux": "ComfyUI-Text2Json"
}
],
"https://github.com/Amorano/Jovimetrix": [ "https://github.com/Amorano/Jovimetrix": [
[ [
"ADJUST (JOV) \ud83d\udd78\ufe0f", "ADJUST (JOV) \ud83d\udd78\ufe0f",
@@ -1898,6 +1906,14 @@
"title_aux": "ComfyUI-Rework-X" "title_aux": "ComfyUI-Rework-X"
} }
], ],
"https://github.com/BobsBlazed/Bobs_Latent_Optimizer/raw/refs/heads/main/Bobs_Latent_Optimizer.py": [
[
"BobsFluxSDXLLatentNode"
],
{
"title_aux": "Bobs_Latent_Optimizer"
}
],
"https://github.com/Bria-AI/ComfyUI-BRIA-API": [ "https://github.com/Bria-AI/ComfyUI-BRIA-API": [
[ [
"BriaEraser" "BriaEraser"
@@ -2297,7 +2313,9 @@
"https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": [ "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": [
[ [
"FinalFrameSelector", "FinalFrameSelector",
"FirstFrameSelector",
"PromptJournal", "PromptJournal",
"ReverseFrameSequence",
"VideoMerge", "VideoMerge",
"YouTubeVideoDownloader" "YouTubeVideoDownloader"
], ],
@@ -2314,6 +2332,14 @@
"title_aux": "Schedulizer" "title_aux": "Schedulizer"
} }
], ],
"https://github.com/DoctorDiffusion/ComfyUI-SnakeOil": [
[
"SnakeOil"
],
{
"title_aux": "ComfyUI-SnakeOil"
}
],
"https://github.com/DrMWeigand/ComfyUI-StereoVision": [ "https://github.com/DrMWeigand/ComfyUI-StereoVision": [
[ [
"AutostereogramGenerator", "AutostereogramGenerator",
@@ -3468,8 +3494,6 @@
"https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": [ "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": [
[ [
"AgentMemoryProvider", "AgentMemoryProvider",
"AgentNode",
"BasicRecursionFilterNode",
"DocumentProcessor", "DocumentProcessor",
"LinuxMemoryDirectory", "LinuxMemoryDirectory",
"QueryNode" "QueryNode"
@@ -3642,6 +3666,7 @@
], ],
"https://github.com/Isulion/ComfyUI_Isulion": [ "https://github.com/Isulion/ComfyUI_Isulion": [
[ [
"IsuCollage_Node",
"IsulionActionGenerator", "IsulionActionGenerator",
"IsulionAlienWorldGenerator", "IsulionAlienWorldGenerator",
"IsulionAnimalBehaviorGenerator", "IsulionAnimalBehaviorGenerator",
@@ -3653,6 +3678,7 @@
"IsulionEmotionGenerator", "IsulionEmotionGenerator",
"IsulionFantasyRaceGenerator", "IsulionFantasyRaceGenerator",
"IsulionHabitatGenerator", "IsulionHabitatGenerator",
"IsulionLoadImagesNode",
"IsulionMagicalEffectGenerator", "IsulionMagicalEffectGenerator",
"IsulionMegaPromptGenerator", "IsulionMegaPromptGenerator",
"IsulionMythicalLocationGenerator", "IsulionMythicalLocationGenerator",
@@ -3666,7 +3692,7 @@
"IsulionTechGenerator", "IsulionTechGenerator",
"IsulionTimeOfDayGenerator", "IsulionTimeOfDayGenerator",
"IsulionWeatherGenerator", "IsulionWeatherGenerator",
"MegaPromptV2" "MegaPromptV3"
], ],
{ {
"title_aux": "ComfyUI_Isulion Random Prompt Generator" "title_aux": "ComfyUI_Isulion Random Prompt Generator"
@@ -4780,7 +4806,8 @@
"https://github.com/MakkiShizu/comfyui_reimgsize": [ "https://github.com/MakkiShizu/comfyui_reimgsize": [
[ [
"Cropimg", "Cropimg",
"Reimgsize" "Reimgsize",
"Resizebyratio"
], ],
{ {
"title_aux": "comfyui_reimgsize" "title_aux": "comfyui_reimgsize"
@@ -5888,7 +5915,8 @@
[ [
"Florence2toCoordinatesButxy", "Florence2toCoordinatesButxy",
"LoadImageWithName", "LoadImageWithName",
"Phi35VisionInstruct" "LoadPhi35VisionModel",
"Phi35VisionRun"
], ],
{ {
"title_aux": "comfyui-florence2xy" "title_aux": "comfyui-florence2xy"
@@ -6551,6 +6579,16 @@
"title_aux": "ComfyUI_Gemini_Flash" "title_aux": "ComfyUI_Gemini_Flash"
} }
], ],
"https://github.com/ShmuelRonen/ComfyUI_pixtral_large": [
[
"ComfyUIPixtralLarge",
"MultiImagesInput",
"preview_text"
],
{
"title_aux": "ComfyUI Pixtral Large Extension"
}
],
"https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": [ "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": [
[ [
"ComfyUIPixtralVision", "ComfyUIPixtralVision",
@@ -6612,6 +6650,15 @@
"title_aux": "ComfyUI_AnimationNodes" "title_aux": "ComfyUI_AnimationNodes"
} }
], ],
"https://github.com/SleeeepyZhou/ComfyUI-CNtranslator": [
[
"CNtranslator",
"TextShow"
],
{
"title_aux": "CNtranslator"
}
],
"https://github.com/Smirnov75/ComfyUI-mxToolkit": [ "https://github.com/Smirnov75/ComfyUI-mxToolkit": [
[ [
"mxSeed", "mxSeed",
@@ -6750,6 +6797,15 @@
"title_aux": "ComfyUI-LatentClamp" "title_aux": "ComfyUI-LatentClamp"
} }
], ],
"https://github.com/SparknightLLC/ComfyUI-MaskArbiter": [
[
"GroundingDinoSAM2SegmentList",
"MaskArbiter"
],
{
"title_aux": "ComfyUI-MaskArbiter"
}
],
"https://github.com/SpenserCai/ComfyUI-FunAudioLLM": [ "https://github.com/SpenserCai/ComfyUI-FunAudioLLM": [
[ [
"CosyVoiceCrossLingualNode", "CosyVoiceCrossLingualNode",
@@ -6806,6 +6862,18 @@
"title_aux": "ComfyUI-tagger" "title_aux": "ComfyUI-tagger"
} }
], ],
"https://github.com/Starnodes2024/ComfyUI_StarNodes": [
[
"FluxStartSettings",
"OllamaModelChooser",
"SD35StartSettings",
"SDXLStartSettings",
"StarNode"
],
{
"title_aux": "ComfyUI_StarNodes"
}
],
"https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [ "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [
[ [
"Ood_CXH" "Ood_CXH"
@@ -6889,10 +6957,10 @@
], ],
"https://github.com/Steudio/ComfyUI_Steudio": [ "https://github.com/Steudio/ComfyUI_Steudio": [
[ [
"Make Size", "Combine Tiles",
"Make Tiles", "Divide Image",
"Make Tiles Math", "Divide and Conquer Algorithm",
"Unmake Tiles" "Make Size"
], ],
{ {
"title_aux": "ComfyUI_Steudio" "title_aux": "ComfyUI_Steudio"
@@ -8149,7 +8217,9 @@
"InstaCSaveImageToS3", "InstaCSaveImageToS3",
"InstaCSeed", "InstaCSeed",
"InstaCText", "InstaCText",
"InstaCTextML" "InstaCTextML",
"InstaPromptMultipleStyleSelector",
"InstaPromptStyleSelector"
], ],
{ {
"title_aux": "InstaSD nodes for ComfyUI" "title_aux": "InstaSD nodes for ComfyUI"
@@ -8338,21 +8408,19 @@
"https://github.com/YarvixPA/ComfyUI-NeuralMedia": [ "https://github.com/YarvixPA/ComfyUI-NeuralMedia": [
[ [
"ApplyControlNet", "ApplyControlNet",
"BiRefNetNode", "CLIPVisionStyleApply",
"InpaintConditioningNode", "InpaintConditioningNode",
"InpaintNode",
"LoadImagesFromFolderNode", "LoadImagesFromFolderNode",
"MultiControlnet", "MultiControlnet",
"MultiControlnetApply", "MultiControlnetApply",
"MultiControlnetUnion", "MultiControlnetUnion",
"OutpaintNode", "RemoveBackgroundNode",
"SDXLTextEncoderSimpleNode", "SDXLTextEncoderSimpleNode",
"SaveCaptionsImages", "SaveCaptionsImages",
"TextFieldNode", "TextFieldNode",
"TileCheckpointPatchNode", "TileCheckpointPatchNode",
"UpscaleImageWithModel", "UpscaleImageWithModel",
"VTracerImageVectorizerNode", "VTracerImageVectorizerNode"
"WeldInpaintNode"
], ],
{ {
"title_aux": "ComfyUI-NeuralMedia" "title_aux": "ComfyUI-NeuralMedia"
@@ -8366,6 +8434,16 @@
"title_aux": "MergeBlockWeighted_fo_ComfyUI" "title_aux": "MergeBlockWeighted_fo_ComfyUI"
} }
], ],
"https://github.com/Yuan-ManX/ComfyUI-SoundHub": [
[
"Load Audio",
"Preview Audio",
"Save Audio"
],
{
"title_aux": "ComfyUI-SoundHub"
}
],
"https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [
[ [
"APISR_Lterative_Zho", "APISR_Lterative_Zho",
@@ -9296,11 +9374,14 @@
], ],
"https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [ "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [
[ [
"blur",
"composite", "composite",
"crop", "crop",
"fill_with_color",
"paste", "paste",
"preview_mask", "preview_mask",
"scale" "scale",
"scale_with_reference"
], ],
{ {
"title_aux": "antrobots ComfyUI Nodepack" "title_aux": "antrobots ComfyUI Nodepack"
@@ -9321,6 +9402,7 @@
"Sage_LoraStack", "Sage_LoraStack",
"Sage_LoraStackDebugString", "Sage_LoraStackDebugString",
"Sage_LoraStackLoader", "Sage_LoraStackLoader",
"Sage_PonyPrefix",
"Sage_SamplerInfo", "Sage_SamplerInfo",
"Sage_SaveImageWithMetadata", "Sage_SaveImageWithMetadata",
"Sage_SetFloat", "Sage_SetFloat",
@@ -9601,6 +9683,14 @@
"title_aux": "SP-Nodes" "title_aux": "SP-Nodes"
} }
], ],
"https://github.com/bananasss00/ComfyUI-flux_fill_patcher": [
[
"ApplyFluxFillPatch"
],
{
"title_aux": "ComfyUI-flux_fill_patcher"
}
],
"https://github.com/banodoco/steerable-motion": [ "https://github.com/banodoco/steerable-motion": [
[ [
"BatchCreativeInterpolation", "BatchCreativeInterpolation",
@@ -10099,6 +10189,14 @@
"title_aux": "ComfyUI_SUNoise" "title_aux": "ComfyUI_SUNoise"
} }
], ],
"https://github.com/c0ffymachyne/ComfyUI_BeatByte": [
[
"BytebeatSynth"
],
{
"title_aux": "Bytebeat Synthesizer: Composing with Operators"
}
],
"https://github.com/c0ffymachyne/ComfyUI_SingalProcessing": [ "https://github.com/c0ffymachyne/ComfyUI_SingalProcessing": [
[ [
"SignalProcessingFilter", "SignalProcessingFilter",
@@ -10842,6 +10940,7 @@
"LayerStyle: ColorOverlay V2", "LayerStyle: ColorOverlay V2",
"LayerStyle: DropShadow", "LayerStyle: DropShadow",
"LayerStyle: DropShadow V2", "LayerStyle: DropShadow V2",
"LayerStyle: DropShadow V3",
"LayerStyle: Gradient Map", "LayerStyle: Gradient Map",
"LayerStyle: GradientOverlay", "LayerStyle: GradientOverlay",
"LayerStyle: GradientOverlay V2", "LayerStyle: GradientOverlay V2",
@@ -10868,6 +10967,7 @@
"LayerUtility: CropBoxResolve", "LayerUtility: CropBoxResolve",
"LayerUtility: CropByMask", "LayerUtility: CropByMask",
"LayerUtility: CropByMask V2", "LayerUtility: CropByMask V2",
"LayerUtility: CropByMask V3",
"LayerUtility: DecodeQRCode", "LayerUtility: DecodeQRCode",
"LayerUtility: ExtendCanvas", "LayerUtility: ExtendCanvas",
"LayerUtility: ExtendCanvasV2", "LayerUtility: ExtendCanvasV2",
@@ -10890,6 +10990,7 @@
"LayerUtility: ImageBlend V2", "LayerUtility: ImageBlend V2",
"LayerUtility: ImageBlendAdvance", "LayerUtility: ImageBlendAdvance",
"LayerUtility: ImageBlendAdvance V2", "LayerUtility: ImageBlendAdvance V2",
"LayerUtility: ImageBlendAdvance V3",
"LayerUtility: ImageChannelMerge", "LayerUtility: ImageChannelMerge",
"LayerUtility: ImageChannelSplit", "LayerUtility: ImageChannelSplit",
"LayerUtility: ImageCombineAlpha", "LayerUtility: ImageCombineAlpha",
@@ -11466,6 +11567,7 @@
"ModelMergeAuraflow", "ModelMergeAuraflow",
"ModelMergeBlocks", "ModelMergeBlocks",
"ModelMergeFlux1", "ModelMergeFlux1",
"ModelMergeLTXV",
"ModelMergeMochiPreview", "ModelMergeMochiPreview",
"ModelMergeSD1", "ModelMergeSD1",
"ModelMergeSD2", "ModelMergeSD2",
@@ -12056,6 +12158,7 @@
"D2 Load Folder Images", "D2 Load Folder Images",
"D2 Load Image", "D2 Load Image",
"D2 Multi Output", "D2 Multi Output",
"D2 Preview Image",
"D2 Refiner Steps", "D2 Refiner Steps",
"D2 Refiner Steps A1111", "D2 Refiner Steps A1111",
"D2 Refiner Steps Tester", "D2 Refiner Steps Tester",
@@ -12737,6 +12840,18 @@
"title_aux": "ObjectFusion_ComfyUI_nodes" "title_aux": "ObjectFusion_ComfyUI_nodes"
} }
], ],
"https://github.com/dymokomi/comfyui_dygen": [
[
"DYImageCluster",
"DYImageMasks",
"DYImagePalette",
"DYImageQuantize",
"ImageListToGrid"
],
{
"title_aux": "comfyui_dygen"
}
],
"https://github.com/e7mac/ComfyUI-ShadertoyGL": [ "https://github.com/e7mac/ComfyUI-ShadertoyGL": [
[ [
"ColorChannelOffset", "ColorChannelOffset",
@@ -12788,6 +12903,7 @@
"Eden_DetermineFrameCount", "Eden_DetermineFrameCount",
"Eden_Float", "Eden_Float",
"Eden_FloatToInt", "Eden_FloatToInt",
"Eden_GPTPromptEnhancer",
"Eden_IMG_padder", "Eden_IMG_padder",
"Eden_IMG_unpadder", "Eden_IMG_unpadder",
"Eden_Image_Math", "Eden_Image_Math",
@@ -12961,6 +13077,43 @@
"title_aux": "comfyui-selector" "title_aux": "comfyui-selector"
} }
], ],
"https://github.com/exectails/comfyui-et_dynamicprompts": [
[
"ETDynamicPrompt"
],
{
"title_aux": "Dynamic Prompts"
}
],
"https://github.com/exectails/comfyui-et_infoutils": [
[
"ETInspectTextNode",
"ETIntBoxNode",
"ETShowDataNode",
"ETStringBoxNode",
"ETTextBoxNode",
"ETTokenCountNode"
],
{
"title_aux": "Info Utils"
}
],
"https://github.com/exectails/comfyui-et_stringutils": [
[
"ETATOI",
"ETITOA",
"ETJoinTextNode",
"ETReplaceTextNode",
"ETSplitTextNode",
"ETSwitchTextNode",
"ETTextFormatter10Node",
"ETTextFormatter2Node",
"ETTextFormatter5Node"
],
{
"title_aux": "String Utils"
}
],
"https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": [ "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": [
[ [
"EZ Concatenate Text", "EZ Concatenate Text",
@@ -13318,6 +13471,14 @@
"title_aux": "ComfyUI-Flowty-TripoSR" "title_aux": "ComfyUI-Flowty-TripoSR"
} }
], ],
"https://github.com/flycarl/ComfyUI-Pixelate": [
[
"ComfyUIPixelate"
],
{
"title_aux": "ComfyUI-Pixelate"
}
],
"https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [ "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [
[ [
"BatchIndex_AS", "BatchIndex_AS",
@@ -13520,9 +13681,15 @@
], ],
"https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": [ "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": [
[ [
"FluxDevRedux_BFL",
"FluxDev_BFL", "FluxDev_BFL",
"FluxPro11Redux_BFL",
"FluxPro11UltraRedux_BFL",
"FluxPro11Ultra_BFL", "FluxPro11Ultra_BFL",
"FluxPro11_BFL", "FluxPro11_BFL",
"FluxProCanny_BFL",
"FluxProDepth_BFL",
"FluxProFill_BFL",
"FluxPro_BFL" "FluxPro_BFL"
], ],
{ {
@@ -13796,6 +13963,7 @@
"https://github.com/glifxyz/ComfyUI-GlifNodes": [ "https://github.com/glifxyz/ComfyUI-GlifNodes": [
[ [
"FilmGrain", "FilmGrain",
"FluxReduxFloatRamp",
"GlifConsistencyDecoder", "GlifConsistencyDecoder",
"GlifPatchConsistencyDecoderTiled", "GlifPatchConsistencyDecoderTiled",
"GlifVariable", "GlifVariable",
@@ -14013,6 +14181,7 @@
"Griptape Create: Agent", "Griptape Create: Agent",
"Griptape Create: Agent from Config", "Griptape Create: Agent from Config",
"Griptape Create: CLIP Text Encode", "Griptape Create: CLIP Text Encode",
"Griptape Create: Image Inpainting Variation",
"Griptape Create: Image Variation", "Griptape Create: Image Variation",
"Griptape Create: Image from Text", "Griptape Create: Image from Text",
"Griptape Create: Pipeline", "Griptape Create: Pipeline",
@@ -14073,6 +14242,8 @@
"Griptape Run: Parallel Image Description", "Griptape Run: Parallel Image Description",
"Griptape Run: Prompt Task", "Griptape Run: Prompt Task",
"Griptape Run: Structure", "Griptape Run: Structure",
"Griptape Run: Task",
"Griptape Run: Text Extraction",
"Griptape Run: Text Summary", "Griptape Run: Text Summary",
"Griptape Run: Text to Speech", "Griptape Run: Text to Speech",
"Griptape Run: Tool Task", "Griptape Run: Tool Task",
@@ -14204,43 +14375,6 @@
"title_aux": "ComfyUI-HH-Image-Selector" "title_aux": "ComfyUI-HH-Image-Selector"
} }
], ],
"https://github.com/hay86/ComfyUI_AceNodes": [
[
"ACE_AnyInputSwitchBool",
"ACE_AnyInputToAny",
"ACE_AudioLoad",
"ACE_AudioPlay",
"ACE_AudioSave",
"ACE_Expression_Eval",
"ACE_Float",
"ACE_ImageColorFix",
"ACE_ImageConstrain",
"ACE_ImageFaceCrop",
"ACE_ImageGetSize",
"ACE_ImageLoadFromCloud",
"ACE_ImagePixelate",
"ACE_ImageQA",
"ACE_ImageRemoveBackground",
"ACE_ImageSaveToCloud",
"ACE_Integer",
"ACE_MaskBlur",
"ACE_Seed",
"ACE_Text",
"ACE_TextConcatenate",
"ACE_TextGoogleTranslate",
"ACE_TextInputSwitch2Way",
"ACE_TextInputSwitch4Way",
"ACE_TextInputSwitch8Way",
"ACE_TextList",
"ACE_TextPreview",
"ACE_TextSelector",
"ACE_TextToResolution",
"ACE_TextTranslate"
],
{
"title_aux": "ComfyUI AceNodes"
}
],
"https://github.com/hay86/ComfyUI_DDColor": [ "https://github.com/hay86/ComfyUI_DDColor": [
[ [
"D_DDColor" "D_DDColor"
@@ -14433,6 +14567,7 @@
"list_extend", "list_extend",
"list_extend_plus", "list_extend_plus",
"listen_audio", "listen_audio",
"load_SQL_memo",
"load_bool", "load_bool",
"load_ebd", "load_ebd",
"load_excel", "load_excel",
@@ -14447,6 +14582,7 @@
"load_name", "load_name",
"load_openai_ebd", "load_openai_ebd",
"load_persona", "load_persona",
"load_redis_memo",
"load_url", "load_url",
"load_wikipedia", "load_wikipedia",
"md_to_excel", "md_to_excel",
@@ -14478,9 +14614,11 @@
"path2img_tool", "path2img_tool",
"red_book_text_persona", "red_book_text_persona",
"replace_string", "replace_string",
"save_SQL_memo",
"save_ebd_database", "save_ebd_database",
"save_memo", "save_memo",
"save_openai_ebd", "save_openai_ebd",
"save_redis_memo",
"savepersona", "savepersona",
"searxng_tool", "searxng_tool",
"selenium_tool", "selenium_tool",
@@ -14759,7 +14897,7 @@
"NSFWScore" "NSFWScore"
], ],
{ {
"title_aux": "ComfyUI-NSFW-Check" "title_aux": "NSFW Check for ComfyUI"
} }
], ],
"https://github.com/icesun963/ComfyUI_HFDownLoad": [ "https://github.com/icesun963/ComfyUI_HFDownLoad": [
@@ -14852,6 +14990,8 @@
"Light-Tool: AddBackground", "Light-Tool: AddBackground",
"Light-Tool: AddBackgroundV2", "Light-Tool: AddBackgroundV2",
"Light-Tool: BoundingBoxCropping", "Light-Tool: BoundingBoxCropping",
"Light-Tool: GetImageSize",
"Light-Tool: ImageConcat",
"Light-Tool: ImageMaskApply", "Light-Tool: ImageMaskApply",
"Light-Tool: ImageOverlay", "Light-Tool: ImageOverlay",
"Light-Tool: ImageToMask", "Light-Tool: ImageToMask",
@@ -15669,6 +15809,7 @@
"https://github.com/justUmen/Bjornulf_custom_nodes": [ "https://github.com/justUmen/Bjornulf_custom_nodes": [
[ [
"Bjornulf_AddLineNumbers", "Bjornulf_AddLineNumbers",
"Bjornulf_AnythingToText",
"Bjornulf_AudioVideoSync", "Bjornulf_AudioVideoSync",
"Bjornulf_CharacterDescriptionGenerator", "Bjornulf_CharacterDescriptionGenerator",
"Bjornulf_CombineBackgroundOverlay", "Bjornulf_CombineBackgroundOverlay",
@@ -15677,6 +15818,9 @@
"Bjornulf_CombineTextsByLines", "Bjornulf_CombineTextsByLines",
"Bjornulf_CombineVideoAudio", "Bjornulf_CombineVideoAudio",
"Bjornulf_ConcatVideos", "Bjornulf_ConcatVideos",
"Bjornulf_ConcatVideosFromList",
"Bjornulf_ConvertVideo",
"Bjornulf_FFmpegConfig",
"Bjornulf_FreeVRAM", "Bjornulf_FreeVRAM",
"Bjornulf_GrayscaleTransform", "Bjornulf_GrayscaleTransform",
"Bjornulf_GreenScreenToTransparency", "Bjornulf_GreenScreenToTransparency",
@@ -15719,6 +15863,7 @@
"Bjornulf_RandomTexts", "Bjornulf_RandomTexts",
"Bjornulf_RemoveTransparency", "Bjornulf_RemoveTransparency",
"Bjornulf_ResizeImage", "Bjornulf_ResizeImage",
"Bjornulf_ResizeImagePercentage",
"Bjornulf_SaveBjornulfLobeChat", "Bjornulf_SaveBjornulfLobeChat",
"Bjornulf_SaveImagePath", "Bjornulf_SaveImagePath",
"Bjornulf_SaveImageToFolder", "Bjornulf_SaveImageToFolder",
@@ -15726,11 +15871,17 @@
"Bjornulf_SaveTmpImage", "Bjornulf_SaveTmpImage",
"Bjornulf_ScramblerCharacter", "Bjornulf_ScramblerCharacter",
"Bjornulf_SelectImageFromList", "Bjornulf_SelectImageFromList",
"Bjornulf_ShowFloat",
"Bjornulf_ShowInt",
"Bjornulf_ShowJson",
"Bjornulf_ShowStringText",
"Bjornulf_ShowText", "Bjornulf_ShowText",
"Bjornulf_SpeechToText", "Bjornulf_SpeechToText",
"Bjornulf_TextReplace",
"Bjornulf_TextToAnything", "Bjornulf_TextToAnything",
"Bjornulf_TextToSpeech", "Bjornulf_TextToSpeech",
"Bjornulf_TextToStringAndSeed", "Bjornulf_TextToStringAndSeed",
"Bjornulf_VideoDetails",
"Bjornulf_VideoPingPong", "Bjornulf_VideoPingPong",
"Bjornulf_VideoPreview", "Bjornulf_VideoPreview",
"Bjornulf_VideoToImagesList", "Bjornulf_VideoToImagesList",
@@ -15807,8 +15958,7 @@
], ],
"https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": [ "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": [
[ [
"StyleModelApplyAdvanced", "ReduxAdvanced",
"StyleModelApplyInterpolation",
"StyleModelApplySimple" "StyleModelApplySimple"
], ],
{ {
@@ -16071,6 +16221,7 @@
"CogVideoImageEncodeFunInP", "CogVideoImageEncodeFunInP",
"CogVideoLatentPreview", "CogVideoLatentPreview",
"CogVideoLoraSelect", "CogVideoLoraSelect",
"CogVideoLoraSelectComfy",
"CogVideoSampler", "CogVideoSampler",
"CogVideoTextEncode", "CogVideoTextEncode",
"CogVideoTextEncodeCombine", "CogVideoTextEncodeCombine",
@@ -16283,6 +16434,7 @@
"CustomControlNetWeightsFluxFromList", "CustomControlNetWeightsFluxFromList",
"CustomSigmas", "CustomSigmas",
"DifferentialDiffusionAdvanced", "DifferentialDiffusionAdvanced",
"DiffusionModelLoaderKJ",
"DownloadAndLoadCLIPSeg", "DownloadAndLoadCLIPSeg",
"DrawInstanceDiffusionTracking", "DrawInstanceDiffusionTracking",
"DummyOut", "DummyOut",
@@ -16644,19 +16796,16 @@
], ],
"https://github.com/klinter007/klinter_nodes": [ "https://github.com/klinter007/klinter_nodes": [
[ [
"AspectSelector",
"ExtraPadding", "ExtraPadding",
"Filter",
"Florence2Captions2IPA",
"FluxSizeSelector",
"FolderLoader", "FolderLoader",
"PresentString", "LoadImagePlus",
"SingleString",
"SizeSelector", "SizeSelector",
"TextAppendNode", "SpeedRamp",
"YellowBus", "YellowBus",
"YellowBusV2",
"ZoomOutComposer", "ZoomOutComposer",
"concat" "concat",
"filter"
], ],
{ {
"title_aux": "Klinter_nodes" "title_aux": "Klinter_nodes"
@@ -17115,6 +17264,7 @@
"https://github.com/liuqianhonga/ComfyUI-Html2Image": [ "https://github.com/liuqianhonga/ComfyUI-Html2Image": [
[ [
"CameraWatermark", "CameraWatermark",
"TemplateToImage",
"WebpageScreenshot" "WebpageScreenshot"
], ],
{ {
@@ -17238,6 +17388,15 @@
"title_aux": "ComfyUI_BiRefNet_ll" "title_aux": "ComfyUI_BiRefNet_ll"
} }
], ],
"https://github.com/lldacing/ComfyUI_StableDelight_ll": [
[
"ApplyStableDelight",
"LoadStableDelightModel"
],
{
"title_aux": "ComfyUI_StableDelight_ll"
}
],
"https://github.com/lldacing/comfyui-easyapi-nodes": [ "https://github.com/lldacing/comfyui-easyapi-nodes": [
[ [
"Base64ToImage", "Base64ToImage",
@@ -17320,6 +17479,7 @@
"https://github.com/lodestone-rock/ComfyUI_FluxMod": [ "https://github.com/lodestone-rock/ComfyUI_FluxMod": [
[ [
"FluxModCheckpointLoader", "FluxModCheckpointLoader",
"FluxModCheckpointLoaderMini",
"KSamplerMod", "KSamplerMod",
"SkipLayerForward" "SkipLayerForward"
], ],
@@ -17373,7 +17533,9 @@
"AddFluxFlow", "AddFluxFlow",
"ApplyFluxRaveAttention", "ApplyFluxRaveAttention",
"ApplyRefFlux", "ApplyRefFlux",
"ApplyRegionalConds",
"ConfigureModifiedFlux", "ConfigureModifiedFlux",
"CreateRegionalCond",
"FlowEditForwardSampler", "FlowEditForwardSampler",
"FlowEditReverseSampler", "FlowEditReverseSampler",
"FluxAttnOverride", "FluxAttnOverride",
@@ -17389,6 +17551,7 @@
"PrepareAttnBank", "PrepareAttnBank",
"RFDoubleBlocksOverride", "RFDoubleBlocksOverride",
"RFSingleBlocksOverride", "RFSingleBlocksOverride",
"RegionalStyleModelApply",
"SEGAttention" "SEGAttention"
], ],
{ {
@@ -18032,7 +18195,6 @@
"LF_BlurImages", "LF_BlurImages",
"LF_Boolean", "LF_Boolean",
"LF_Brightness", "LF_Brightness",
"LF_Brush",
"LF_CharacterImpersonator", "LF_CharacterImpersonator",
"LF_CheckpointSelector", "LF_CheckpointSelector",
"LF_CivitAIMetadataSetup", "LF_CivitAIMetadataSetup",
@@ -18068,6 +18230,7 @@
"LF_LLMMessenger", "LF_LLMMessenger",
"LF_LUTApplication", "LF_LUTApplication",
"LF_LUTGeneration", "LF_LUTGeneration",
"LF_Line",
"LF_LoadAndEditImages", "LF_LoadAndEditImages",
"LF_LoadFileOnce", "LF_LoadFileOnce",
"LF_LoadImages", "LF_LoadImages",
@@ -18772,12 +18935,16 @@
], ],
"https://github.com/morino-kumasan/comfyui-toml-prompt": [ "https://github.com/morino-kumasan/comfyui-toml-prompt": [
[ [
"IntSelector",
"LatentSelector",
"MultipartCLIPTextEncode", "MultipartCLIPTextEncode",
"MultipleLoraTagLoader", "MultipleLoraTagLoader",
"PromptLoader", "PromptLoader",
"StringConcat", "StringConcat",
"StringSelector",
"StringSub", "StringSub",
"StringViewer", "StringViewer",
"SummaryReader",
"TomlPromptDecode" "TomlPromptDecode"
], ],
{ {
@@ -19465,12 +19632,13 @@
"https://github.com/pamparamm/sd-perturbed-attention": [ "https://github.com/pamparamm/sd-perturbed-attention": [
[ [
"PerturbedAttention", "PerturbedAttention",
"SlidingWindowGuidanceAdvanced",
"SmoothedEnergyGuidanceAdvanced", "SmoothedEnergyGuidanceAdvanced",
"TRTAttachPag", "TRTAttachPag",
"TRTPerturbedAttention" "TRTPerturbedAttention"
], ],
{ {
"title_aux": "Perturbed-Attention Guidance" "title_aux": "sd-perturbed-attention"
} }
], ],
"https://github.com/pants007/comfy-pants": [ "https://github.com/pants007/comfy-pants": [
@@ -19756,6 +19924,23 @@
"title_aux": "ComfyUI-SAM2-Realtime" "title_aux": "ComfyUI-SAM2-Realtime"
} }
], ],
"https://github.com/purpen/ComfyUI-AIRedoon": [
[
"AIRedoonImageCaptioning",
"AIRedoonTranslator"
],
{
"title_aux": "AIRedoon"
}
],
"https://github.com/purpen/ComfyUI-ImageTagger": [
[
"AIRedoonImageCaptioning"
],
{
"title_aux": "ComfyUI-ImageTagger"
}
],
"https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [ "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [
[ [
"CheckpointLoader|pysssss", "CheckpointLoader|pysssss",
@@ -19854,7 +20039,7 @@
[ [
"MfluxControlNetLoader", "MfluxControlNetLoader",
"MfluxCustomModels", "MfluxCustomModels",
"MfluxLoadImage", "MfluxImg2Img",
"MfluxLorasLoader", "MfluxLorasLoader",
"MfluxModelsDownloader", "MfluxModelsDownloader",
"MfluxModelsLoader", "MfluxModelsLoader",
@@ -20090,19 +20275,27 @@
[ [
"BatchSlider", "BatchSlider",
"BooleanToEnabled", "BooleanToEnabled",
"ConfigurableDrawText",
"ControlNetSlider", "ControlNetSlider",
"DenoiseSlider", "DenoiseSlider",
"DrawTextConfig",
"FluxContinuumModelRouter",
"GPUSlider", "GPUSlider",
"GuidanceSlider", "GuidanceSlider",
"IPAdapterSlider",
"ImageBatchBoolean",
"ImpactControlBridgeFix", "ImpactControlBridgeFix",
"LatentPass", "LatentPass",
"MaxShiftSlider", "MaxShiftSlider",
"OutputGetString",
"PipePass", "PipePass",
"ResolutionPicker", "ResolutionPicker",
"SEGSPass", "SEGSPass",
"SamplerParameterPacker", "SamplerParameterPacker",
"SamplerParameterUnpacker", "SamplerParameterUnpacker",
"SelectFromBatch", "SelectFromBatch",
"SimpleTextTruncate",
"SplitVec3",
"StepSlider", "StepSlider",
"TextVersions" "TextVersions"
], ],
@@ -20187,6 +20380,15 @@
"title_aux": "ComfyUI-BiRefNet-lite" "title_aux": "ComfyUI-BiRefNet-lite"
} }
], ],
"https://github.com/rubi-du/ComfyUI-Flux-Inpainting": [
[
"Flux Inpaint",
"Flux Inpainting"
],
{
"title_aux": "ComfyUI-Flux-Inpainting"
}
],
"https://github.com/rui40000/RUI-Nodes": [ "https://github.com/rui40000/RUI-Nodes": [
[ [
"ABCondition", "ABCondition",
@@ -21550,6 +21752,15 @@
"title_aux": "ComfyUI LivePhoto Creator" "title_aux": "ComfyUI LivePhoto Creator"
} }
], ],
"https://github.com/stormcenter/ComfyUI-SVGFullfill": [
[
"SVGEditor",
"SVGUploader"
],
{
"title_aux": "ComfyUI-SVGFullfill"
}
],
"https://github.com/storyicon/comfyui_musev_evolved": [ "https://github.com/storyicon/comfyui_musev_evolved": [
[ [
"AnimationZoom (comfyui_musev_evolved)", "AnimationZoom (comfyui_musev_evolved)",
@@ -21792,6 +22003,16 @@
"title_aux": "ComfyUI Scene Composer" "title_aux": "ComfyUI Scene Composer"
} }
], ],
"https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-": [
[
"SAMURAIBoxInputNode",
"SAMURAIPointsInputNode",
"SAMURAIRefineNode"
],
{
"title_aux": "SAMURAI Nodes for ComfyUI"
}
],
"https://github.com/talesofai/comfyui-browser": [ "https://github.com/talesofai/comfyui-browser": [
[ [
"DifyTextGenerator //Browser", "DifyTextGenerator //Browser",
@@ -21822,6 +22043,14 @@
"title_aux": "Comfyui-Ycanvas" "title_aux": "Comfyui-Ycanvas"
} }
], ],
"https://github.com/tanglup/Comfyui_Flux_Style_Adjust": [
[
"StyleModelAdvancedApply"
],
{
"title_aux": "Comfyui_Flux_Style_Adjust"
}
],
"https://github.com/teward/ComfyUI-Helper-Nodes": [ "https://github.com/teward/ComfyUI-Helper-Nodes": [
[ [
"HelperNodes_CfgScale", "HelperNodes_CfgScale",
@@ -22126,6 +22355,14 @@
"title_aux": "Face Restorer for ComfyUI" "title_aux": "Face Restorer for ComfyUI"
} }
], ],
"https://github.com/tungdop2/Comfyui_joy-caption-alpha-two": [
[
"JoyCaptioner"
],
{
"title_aux": "Joy Caption Alpha Two for ComfyUI"
}
],
"https://github.com/turkyden/ComfyUI-SmartCrop": [ "https://github.com/turkyden/ComfyUI-SmartCrop": [
[ [
"ImageSmartCrop" "ImageSmartCrop"
@@ -22324,7 +22561,12 @@
], ],
"https://github.com/veighnsche/comfyui_gr85": [ "https://github.com/veighnsche/comfyui_gr85": [
[ [
"GR85_CTGPhrases",
"GR85_CTGPhrasesSimple",
"GR85_ContainsWord", "GR85_ContainsWord",
"GR85_FilterAndCombineMasks",
"GR85_Florence2RunCTPG",
"GR85_Florence2toCoordinatesGR85",
"GR85_FluxAttentionSeeker2", "GR85_FluxAttentionSeeker2",
"GR85_FluxAttentionSeeker3", "GR85_FluxAttentionSeeker3",
"GR85_FluxAttentionSeekerGenerator", "GR85_FluxAttentionSeekerGenerator",
@@ -22334,11 +22576,17 @@
"GR85_ImageSizerAll", "GR85_ImageSizerAll",
"GR85_IntToString", "GR85_IntToString",
"GR85_IntegerSequenceModifier", "GR85_IntegerSequenceModifier",
"GR85_IslandMaskGenerator",
"GR85_MaskBatchToSEGS",
"GR85_MaskConnectMST",
"GR85_MaskSplitter",
"GR85_NextSeed", "GR85_NextSeed",
"GR85_PasteByMaskGr85", "GR85_PasteByMaskGr85",
"GR85_RandomFloat", "GR85_RandomFloat",
"GR85_RandomInt", "GR85_RandomInt",
"GR85_RandomRatio", "GR85_RandomRatio",
"GR85_RandomizedMaskTransform",
"GR85_Sam2Segmentation",
"GR85_SaveImageFile", "GR85_SaveImageFile",
"GR85_SaveTextFile", "GR85_SaveTextFile",
"GR85_SeedBasedOutputSelector", "GR85_SeedBasedOutputSelector",
@@ -22346,7 +22594,10 @@
"GR85_SimpleWildcardPicker", "GR85_SimpleWildcardPicker",
"GR85_StrSafe", "GR85_StrSafe",
"GR85_TagInjector", "GR85_TagInjector",
"GR85_TagInjectorLarge" "GR85_TagInjectorDuo",
"GR85_TagInjectorLarge",
"GR85_TagInjectorSingle",
"GR85_VerticalWildcardPicker"
], ],
{ {
"title_aux": "comfyui_gr85" "title_aux": "comfyui_gr85"
@@ -22578,6 +22829,17 @@
"title_aux": "ComfyUI-Environment-Visualizer" "title_aux": "ComfyUI-Environment-Visualizer"
} }
], ],
"https://github.com/windfancy/zsq_prompt": [
[
"PromptCLIPEncode",
"PromptLatent",
"PromptSelector",
"PromptStyler"
],
{
"title_aux": "zsq_prompt"
}
],
"https://github.com/wmatson/easy-comfy-nodes": [ "https://github.com/wmatson/easy-comfy-nodes": [
[ [
"EZAssocDictNode", "EZAssocDictNode",
@@ -22656,6 +22918,14 @@
"title_aux": "ComfyUI-RK-Sampler" "title_aux": "ComfyUI-RK-Sampler"
} }
], ],
"https://github.com/wu12023/ComfyUI-Image-Evaluation": [
[
"Clip_Score-\ud83d\udd2c"
],
{
"title_aux": "ComfyUI-Image-Evaluation"
}
],
"https://github.com/wujm424606/ComfyUi-Ollama-YN": [ "https://github.com/wujm424606/ComfyUi-Ollama-YN": [
[ [
"MyOllamaDeleteModel", "MyOllamaDeleteModel",
@@ -22935,7 +23205,11 @@
"FalAPIFluxDevWithLoraInpaintNode", "FalAPIFluxDevWithLoraInpaintNode",
"FalAPIFluxDevWithLoraNode", "FalAPIFluxDevWithLoraNode",
"FalAPIFluxLoraConfigNode", "FalAPIFluxLoraConfigNode",
"FalAPIFluxProCannyNode",
"FalAPIFluxProDepthNode",
"FalAPIFluxProFillNode",
"FalAPIFluxProNode", "FalAPIFluxProNode",
"FalAPIFluxProReduxNode",
"FalAPIFluxProV11Node" "FalAPIFluxProV11Node"
], ],
{ {
@@ -23096,6 +23370,7 @@
"easy ipadapterApplyRegional", "easy ipadapterApplyRegional",
"easy ipadapterStyleComposition", "easy ipadapterStyleComposition",
"easy isFileExist", "easy isFileExist",
"easy isMaskEmpty",
"easy isNone", "easy isNone",
"easy isSDXL", "easy isSDXL",
"easy joinImageBatch", "easy joinImageBatch",
@@ -23114,11 +23389,13 @@
"easy loadImagesForLoop", "easy loadImagesForLoop",
"easy loraStack", "easy loraStack",
"easy loraStackApply", "easy loraStackApply",
"easy makeImageForICLora",
"easy mathFloat", "easy mathFloat",
"easy mathInt", "easy mathInt",
"easy mathString", "easy mathString",
"easy mochiLoader", "easy mochiLoader",
"easy negative", "easy negative",
"easy ominiControlApply",
"easy outputToList", "easy outputToList",
"easy pipeBatchIndex", "easy pipeBatchIndex",
"easy pipeEdit", "easy pipeEdit",
@@ -23650,14 +23927,6 @@
"title_aux": "Hayo comfyui nodes" "title_aux": "Hayo comfyui nodes"
} }
], ],
"https://raw.githubusercontent.com/BobsBlazed/Bobs_Latent_Optimizer/refs/heads/main/Bobs_Latent_Optimizer.py": [
[
"BobsFluxSDXLLatentNode"
],
{
"title_aux": "Bobs_FLUX_SDXL_Latent_Optimizer"
}
],
"https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py": [ "https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py": [
[ [
"Apply Invisible Watermark", "Apply Invisible Watermark",

View File

@@ -1,5 +1,39 @@
{ {
"models": [ "models": [
{
"name": "stabilityai/SD3.5-Large-Controlnet-Blur",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Blur Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_blur.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_blur.safetensors",
"size": "8.65GB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Canny",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Canny Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_canny.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_canny.safetensors",
"size": "8.65GB"
},
{
"name": "stabilityai/SD3.5-Large-Controlnet-Depth",
"type": "controlnet",
"base": "SD3.5",
"save_path": "controlnet/SD3.5",
"description": "Depth Controlnet model for SD3.5 Large",
"reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets",
"filename": "sd3.5_large_controlnet_depth.safetensors",
"url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_depth.safetensors",
"size": "8.65GB"
},
{ {
"name": "LTX-Video 2B v0.9 Checkpoint", "name": "LTX-Video 2B v0.9 Checkpoint",
"type": "checkpoint", "type": "checkpoint",
@@ -646,50 +680,6 @@
"filename": "flux1-dev-Q5_0.gguf", "filename": "flux1-dev-Q5_0.gguf",
"url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_0.gguf", "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_0.gguf",
"size": "8.27GB" "size": "8.27GB"
},
{
"name": "city96/flux1-dev-Q5_1.gguf",
"type": "diffusion_model",
"base": "FLUX.1",
"save_path": "diffusion_models/FLUX1",
"description": "FLUX.1 [Dev] Diffusion model (Q5_1/.gguf)",
"reference": "https://huggingface.co/city96/FLUX.1-dev-gguf",
"filename": "flux1-dev-Q5_1.gguf",
"url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_1.gguf",
"size": "9.01GB"
},
{
"name": "city96/flux1-dev-Q5_K_S.gguf",
"type": "diffusion_model",
"base": "FLUX.1",
"save_path": "diffusion_models/FLUX1",
"description": "FLUX.1 [Dev] Diffusion model (Q5_K_S/.gguf)",
"reference": "https://huggingface.co/city96/FLUX.1-dev-gguf",
"filename": "flux1-dev-Q5_K_S.gguf",
"url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_K_S.gguf",
"size": "8.29GB"
},
{
"name": "city96/flux1-dev-Q6_K.gguf",
"type": "diffusion_model",
"base": "FLUX.1",
"save_path": "diffusion_models/FLUX1",
"description": "FLUX.1 [Dev] Diffusion model (Q6_K/.gguf)",
"reference": "https://huggingface.co/city96/FLUX.1-dev-gguf",
"filename": "flux1-dev-Q6_K.gguf",
"url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q6_K.gguf",
"size": "9.86GB"
},
{
"name": "city96/flux1-dev-Q8_0.gguf",
"type": "diffusion_model",
"base": "FLUX.1",
"save_path": "diffusion_models/FLUX1",
"description": "FLUX.1 [Dev] Diffusion model (Q8_0/.gguf)",
"reference": "https://huggingface.co/city96/FLUX.1-dev-gguf",
"filename": "flux1-dev-Q8_0.gguf",
"url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q8_0.gguf",
"size": "12.7GB"
} }
] ]
} }

View File

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

View File

@@ -1,3 +1,4 @@
pygit2
GitPython GitPython
PyGithub PyGithub
matrix-client==0.4.0 matrix-client==0.4.0

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
rm ~/.tmp/default/*.py > /dev/null 2>&1 rm ~/.tmp/default/*.py > /dev/null 2>&1
python scanner.py ~/.tmp/default $* python -m scanner ~/.tmp/default $*
cp extension-node-map.json node_db/new/. cp extension-node-map.json node_db/new/.
echo "Integrity check" echo "Integrity check"

View File

@@ -2,7 +2,8 @@ import ast
import re import re
import os import os
import json import json
from git import Repo import sys
from glob import git_wrapper
import concurrent import concurrent
import datetime import datetime
import concurrent.futures import concurrent.futures
@@ -243,25 +244,27 @@ def get_py_urls_from_json(json_file):
return py_files return py_files
import traceback
def clone_or_pull_git_repository(git_url): def clone_or_pull_git_repository(git_url):
repo_name = git_url.split("/")[-1].split(".")[0] repo_name = git_url.split("/")[-1].split(".")[0]
repo_dir = os.path.join(temp_dir, repo_name) repo_dir = os.path.join(temp_dir, repo_name)
if os.path.exists(repo_dir): if os.path.exists(repo_dir):
try: try:
repo = Repo(repo_dir) repo = git_wrapper.Repo(repo_dir)
origin = repo.remote(name="origin") origin = repo.remote(name="origin")
origin.pull() origin.pull()
repo.git.submodule('update', '--init', '--recursive') repo.update_recursive()
print(f"Pulling {repo_name}...") print(f"Pulling {repo_name}...")
except Exception as e: except Exception as e:
traceback.print_exc()
print(f"Pulling {repo_name} failed: {e}") print(f"Pulling {repo_name} failed: {e}")
else: else:
try: try:
Repo.clone_from(git_url, repo_dir, recursive=True) git_wrapper.clone_from(git_url, repo_dir, recursive=True)
print(f"Cloning {repo_name}...") print(f"Cloning {repo_name}...")
except Exception as e: except Exception as e:
traceback.print_exc()
print(f"Cloning {repo_name} failed: {e}") print(f"Cloning {repo_name} failed: {e}")