Compare commits

...

4 Commits

Author SHA1 Message Date
Fernando Manzo
4c4bb6b43f
Merge c98117a802 into 29b4824ee2 2025-12-23 00:40:13 -03:00
Dr.Lt.Data
29b4824ee2 update DB
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
2025-12-23 12:35:16 +09:00
Dr.Lt.Data
e3a8b669b2 improved: scanner.py - more pattern 2025-12-23 12:34:55 +09:00
Fernando Manzo
c98117a802 Add ComfyUI User Profiles to custom-node-list.json
User profile management extension with:
- Multiple profiles with custom input/output folders
- Password protection
- Optional file encryption (AES-256)
- Native toolbar integration
2025-12-19 17:23:23 -03:00
10 changed files with 13525 additions and 13266 deletions

View File

@ -20356,6 +20356,16 @@
"install_type": "git-clone",
"description": "A simple node for ComfyUI that rotates or resizes the input latent to common orientations."
},
{
"author": "SparknightLLC",
"title": "ComfyUI-ModelSamplingSD3Advanced",
"reference": "https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced",
"files": [
"https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced"
],
"install_type": "git-clone",
"description": "Adds windowed, curved shift control for Flow Matching samplers (SD3-style / flow schedules). It is a drop-in replacement for Comfy's included ModelSamplingSD3 node."
},
{
"author": "lightricks",
"title": "ComfyUI-LTXVideo",
@ -38908,6 +38918,16 @@
"install_type": "git-clone",
"description": "Generate human poses from text descriptions using T2P Transformer for ControlNet/T2I-Adapter workflows"
},
{
"author": "logicalor",
"title": "comfyui_friendly_pipe",
"reference": "https://github.com/logicalor/comfyui_friendly_pipe",
"files": [
"https://github.com/logicalor/comfyui_friendly_pipe"
],
"install_type": "git-clone",
"description": "Flexible pipe nodes for bundling and unbundling multiple connections of any type in ComfyUI"
},
{
"author": "ssspace1",
"title": "SSpack_ComfyUI",
@ -39228,8 +39248,56 @@
"install_type": "git-clone",
"description": "A ComfyUI extension that helps users relink missing models in workflows"
},
{
"author": "xuheyao",
"title": "comfyui-dinov3-point-prompt",
"reference": "https://github.com/xuheyao/comfyui-dinov3-point-prompt",
"files": [
"https://github.com/xuheyao/comfyui-dinov3-point-prompt"
],
"install_type": "git-clone",
"description": "ComfyUI custom node for DINOv3 point prompt functionality with integration of Facebook's DINOv3 research model. (Description by CC)"
},
{
"author": "Asidert",
"title": "ComfyUI_Base64Images",
"reference": "https://github.com/Asidert/ComfyUI_Base64Images",
"files": [
"https://github.com/Asidert/ComfyUI_Base64Images"
],
"install_type": "git-clone",
"description": "A set of base64 input and output nodes for a custom API using ComfyUI"
},
{
"author": "ddontsov93",
"title": "ComfyUI-AudioSeparator",
"reference": "https://github.com/ddontsov93/ComfyUI-AudioSeparator",
"files": [
"https://github.com/ddontsov93/ComfyUI-AudioSeparator"
],
"install_type": "git-clone",
"description": "Custom node for ComfyUI integrating audio-separator library that separates audio stems (vocals vs instrumental), removes noise, and fixes audio artifacts using GPU acceleration. (Description by CC)"
},
{
"author": "TobiasGlaubach",
"title": "ComfyUI-TG_pydocmaker",
"reference": "https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker",
"files": [
"https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker"
],
"install_type": "git-clone",
"description": "A minimal node set in comfyui to render pydocmaker reports"
},
{
"author": "cyberlightdev",
"title": "ComfyUI-CyberUtils",
"reference": "https://github.com/cyberlightdev/ComfyUI-CyberUtils",
"files": [
"https://github.com/cyberlightdev/ComfyUI-CyberUtils"
],
"install_type": "git-clone",
"description": "A minimal template for creating React/TypeScript frontend extensions for ComfyUI, with complete boilerplate setup including internationalization and unit testing."
},
@ -39631,6 +39699,17 @@
],
"install_type": "unzip",
"description": "This is a node to convert an image into a CMYK Halftone dot image."
},
{
"author": "femanzo",
"title": "ComfyUI User Profiles",
"id": "comfyui-user-profiles",
"reference": "https://github.com/femanzo/comfyui-user-profiles",
"files": [
"https://github.com/femanzo/comfyui-user-profiles"
],
"install_type": "git-clone",
"description": "User profile management with custom input/output folders and optional file encryption (AES-256). Create multiple profiles, protect with passwords, and encrypt your files when logged out."
}
]
}

View File

@ -161,7 +161,11 @@
"https://github.com/1038lab/ComfyUI-QwenVL": [
[
"AILab_QwenVL",
"AILab_QwenVL_Advanced"
"AILab_QwenVL_Advanced",
"AILab_QwenVL_GGUF",
"AILab_QwenVL_GGUF_Advanced",
"AILab_QwenVL_GGUF_PromptEnhancer",
"AILab_QwenVL_PromptEnhancer"
],
{
"title_aux": "ComfyUI-QwenVL"
@ -2971,6 +2975,15 @@
"title_aux": "Dir Gir"
}
],
"https://github.com/Asidert/ComfyUI_Base64Images": [
[
"ConvertImageToBase64",
"LoadImageFromBase64"
],
{
"title_aux": "ComfyUI_Base64Images"
}
],
"https://github.com/AstrionX/ComfyUI-Tensor-Prism-Node-Pack": [
[
"AdvancedCLIPMerge",
@ -3028,6 +3041,16 @@
"title_aux": "ComfyUI-AnimateAnyone-reproduction"
}
],
"https://github.com/AuroBit/ComfyUI-OOTDiffusion": [
[
"LoadOOTDPipeline",
"LoadOOTDPipelineHub",
"OOTDGenerate"
],
{
"title_aux": "ComfyUI OOTDiffusion"
}
],
"https://github.com/Austat/ComfyUI-DownsampleFPS": [
[
"DownsampleFPSNode"
@ -8373,12 +8396,14 @@
"GR Background Remover REMBG",
"GR Checkered Board",
"GR Counter",
"GR Filename",
"GR Flip Tile Random Inverted",
"GR Flip Tile Random Red Ring",
"GR Florence 2 Caption Generator",
"GR INT Incremetor",
"GR Image Details Displayer",
"GR Image Details Saver",
"GR Image Multiplication",
"GR Image Multiplier",
"GR Image Paste",
"GR Image Paste With Mask",
@ -17155,8 +17180,11 @@
"https://github.com/ShootTheSound/comfyUI-Realtime-Lora": [
[
"ApplyTrainedLora",
"ClippyRebornImageLoader",
"FLUXSelectiveLoRALoader",
"ImageOfDayLoader",
"LoRALoaderWithAnalysis",
"LoRALoaderWithAnalysisV2",
"MusubiQwenImageEditLoraTrainer",
"MusubiQwenImageLoraTrainer",
"MusubiWanLoraTrainer",
@ -17166,6 +17194,7 @@
"SD15LoraTrainer",
"SDXLLoraTrainer",
"SDXLSelectiveLoRALoader",
"ScheduledLoRALoader",
"WanSelectiveLoRALoader",
"ZImageSelectiveLoRALoader"
],
@ -17586,6 +17615,14 @@
"title_aux": "ComfyUI-MaskArbiter"
}
],
"https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced": [
[
"ModelSamplingSD3Advanced"
],
{
"title_aux": "ComfyUI-ModelSamplingSD3Advanced"
}
],
"https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice": [
[
"WeightedRandomChoice"
@ -19293,6 +19330,15 @@
"title_aux": "DreamO Comfyui"
}
],
"https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker": [
[
"TG_PydGetMetadata",
"TG_PydPreview"
],
{
"title_aux": "ComfyUI-TG_pydocmaker"
}
],
"https://github.com/Tr1dae/ComfyUI-Dequality": [
[
"Dequality"
@ -29779,6 +29825,14 @@
"title_aux": "ComfyUI_text_diff"
}
],
"https://github.com/ddontsov93/ComfyUI-AudioSeparator": [
[
"AudioSeparatorNode"
],
{
"title_aux": "ComfyUI-AudioSeparator"
}
],
"https://github.com/denfrost/Den_ComfyUI_Workflow": [
[
"Den_CropImage_AS",
@ -39641,6 +39695,16 @@
"title_aux": "Comfyui_three_js"
}
],
"https://github.com/logicalor/comfyui_friendly_pipe": [
[
"FriendlyPipeEdit",
"FriendlyPipeIn",
"FriendlyPipeOut"
],
{
"title_aux": "comfyui_friendly_pipe"
}
],
"https://github.com/logicalor/comfyui_multi_replace": [
[
"FindReplacePairs",
@ -45337,6 +45401,17 @@
"title_aux": "ComfyUI WD 1.4 Tagger"
}
],
"https://github.com/pzc163/Comfyui-CatVTON": [
[
"AutoMasker",
"CatVTON",
"LoadAutoMasker",
"LoadCatVTONPipeline"
],
{
"title_aux": "Comfyui-CatVTON"
}
],
"https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator": [
[
"Prompt_Generator",
@ -46254,6 +46329,17 @@
"title_aux": "Dia realistic TTS"
}
],
"https://github.com/rnbwdsh/ComfyUI-LatentWalk": [
[
"LatentWalkConditional",
"LatentWalkConditionalRandom",
"LatentWalkNoise",
"LatentWalkVae"
],
{
"title_aux": "Latent Walk"
}
],
"https://github.com/rndnanthu/ComfyUI-RndNanthu": [
[
"AutoGradePro",
@ -52744,6 +52830,17 @@
"title_aux": "Comfyui_Get_promptId"
}
],
"https://github.com/xuheyao/comfyui-dinov3-point-prompt": [
[
"DINOv3Loader",
"DINOv3PointCollector",
"DINOv3Process",
"DINOv3Similarity"
],
{
"title_aux": "comfyui-dinov3-point-prompt"
}
],
"https://github.com/xuhongming251/ComfyUI-GPEN": [
[
"FaceEnhancement"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,25 @@
{
"custom_nodes": [
{
"author": "TobiasGlaubach",
"title": "ComfyUI-TG_PyCode [UNSAFE]",
"reference": "https://github.com/TobiasGlaubach/ComfyUI-TG_PyCode",
"files": [
"https://github.com/TobiasGlaubach/ComfyUI-TG_PyCode"
],
"install_type": "git-clone",
"description": "ComfyUI node library with an editor and nodes to run Python code within ComfyUI workflows.[w/This nodepack has a vulnerability that allows arbitrary code execution remotely.]"
},
{
"author": "jchiotaka",
"title": "ComfyUI-ClarityAI-Upscaler",
"reference": "https://github.com/jchiotaka/ComfyUI-ClarityAI-Upscaler",
"files": [
"https://github.com/jchiotaka/ComfyUI-ClarityAI-Upscaler"
],
"install_type": "git-clone",
"description": "ComfyUI upscaler nodes including ClarityCreativeUpscaler, ClarityCrystalUpscaler, and ClarityFluxUpscaler. (Description by CC)"
},
{
"author": "tpc2233",
"title": "ComfyUI-TP-IMtalker [WIP]",

View File

@ -9126,13 +9126,18 @@
],
"https://github.com/jorin91/ComfyUI-JSG-Utils": [
[
"JSGAddMetadata",
"JSGDeleteFilePassAny",
"JSGDeleteFilePassImage",
"JSGDeleteFilePassString",
"JSGFindImagePathsRecursive",
"JSGFindImagesRecursiveList",
"JSGLoadImageFromPath",
"JSGParsePath"
"JSGParsePath",
"JSGRandomColorHSVA",
"JSGRemoveMetadata",
"JSGSaveImage",
"JSGSetMetadata"
],
{
"title_aux": "ComfyUI-JSG-Utils [UNSAFE]"
@ -12202,12 +12207,7 @@
"ListItemExtractor",
"LogValue",
"LoopAny",
"PromptCombinationProcessor",
"PromptConditioner",
"PromptPartJoin",
"PromptRandomizer",
"PromptTagFilter",
"PromptWeightManager",
"StringBuilder",
"StringCollector",
"StringConcatenation",

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,65 @@
{
"custom_nodes": [
"custom_nodes": [
{
"author": "SparknightLLC",
"title": "ComfyUI-ModelSamplingSD3Advanced",
"reference": "https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced",
"files": [
"https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced"
],
"install_type": "git-clone",
"description": "Adds windowed, curved shift control for Flow Matching samplers (SD3-style / flow schedules). It is a drop-in replacement for Comfy's included ModelSamplingSD3 node."
},
{
"author": "ddontsov93",
"title": "ComfyUI-AudioSeparator",
"reference": "https://github.com/ddontsov93/ComfyUI-AudioSeparator",
"files": [
"https://github.com/ddontsov93/ComfyUI-AudioSeparator"
],
"install_type": "git-clone",
"description": "Custom node for ComfyUI integrating audio-separator library that separates audio stems (vocals vs instrumental), removes noise, and fixes audio artifacts using GPU acceleration. (Description by CC)"
},
{
"author": "TobiasGlaubach",
"title": "ComfyUI-TG_pydocmaker",
"reference": "https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker",
"files": [
"https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker"
],
"install_type": "git-clone",
"description": "A minimal node set in comfyui to render pydocmaker reports"
},
{
"author": "xuheyao",
"title": "comfyui-dinov3-point-prompt",
"reference": "https://github.com/xuheyao/comfyui-dinov3-point-prompt",
"files": [
"https://github.com/xuheyao/comfyui-dinov3-point-prompt"
],
"install_type": "git-clone",
"description": "ComfyUI custom node for DINOv3 point prompt functionality with integration of Facebook's DINOv3 research model. (Description by CC)"
},
{
"author": "logicalor",
"title": "comfyui_friendly_pipe",
"reference": "https://github.com/logicalor/comfyui_friendly_pipe",
"files": [
"https://github.com/logicalor/comfyui_friendly_pipe"
],
"install_type": "git-clone",
"description": "Flexible pipe nodes for bundling and unbundling multiple connections of any type in ComfyUI"
},
{
"author": "Asidert",
"title": "ComfyUI_Base64Images",
"reference": "https://github.com/Asidert/ComfyUI_Base64Images",
"files": [
"https://github.com/Asidert/ComfyUI_Base64Images"
],
"install_type": "git-clone",
"description": "A set of base64 input and output nodes for a custom API using ComfyUI"
},
{
"author": "9nate-drake",
"title": "ComfyUI-PanoTools",
@ -662,343 +722,6 @@
],
"install_type": "git-clone",
"description": "Efficient lazy path switch for ComfyUI. Skips execution of the inactive branch entirely using native lazy evaluation. Includes live status display."
},
{
"author": "Deathspike",
"title": "ComfyUI-MyOriginalWaifu",
"reference": "https://github.com/Deathspike/ComfyUI-MyOriginalWaifu",
"files": [
"https://github.com/Deathspike/ComfyUI-MyOriginalWaifu"
],
"install_type": "git-clone",
"description": "My Original Waifu is a tag-based prompt-transformation engine for ComfyUI designed for creators who want their original characters to feel consistent, expressive, and faithfully rendered across every scene. Instead of manually adjusting tags each time you generate an image, you define the essence of your waifu, her look, her outfits, the way she appears in different contexts, and the engine transforms your prompt to match those intentions. It stays out of the way and simply follows your rules with clarity and consistency. Your Waifu. Your Rules. Your Perfect Prompt."
},
{
"author": "LeonQ8",
"title": "ComfyUI-Dynamic-Lora-Scheduler",
"reference": "https://github.com/LeonQ8/ComfyUI-Dynamic-Lora-Scheduler",
"files": [
"https://github.com/LeonQ8/ComfyUI-Dynamic-Lora-Scheduler"
],
"install_type": "git-clone",
"description": "Dynamically balance weights of multiple LoRAs over generation steps for ComfyUI."
},
{
"author": "sebagallo",
"title": "comfyui-sg-llama-cpp",
"reference": "https://github.com/sebagallo/comfyui-sg-llama-cpp",
"files": [
"https://github.com/sebagallo/comfyui-sg-llama-cpp"
],
"install_type": "git-clone",
"description": "llama-cpp-python wrapper, with support for vision models. It allows the user to generate text responses from prompts using llama.cpp."
},
{
"author": "Limbicnation",
"title": "ComfyUI-PromptGenerator",
"id": "comfyui-prompt-generator",
"reference": "https://github.com/Limbicnation/ComfyUI-PromptGenerator",
"files": [
"https://github.com/Limbicnation/ComfyUI-PromptGenerator"
],
"install_type": "git-clone",
"description": "Generate Stable Diffusion prompts using Qwen3-8B via Ollama with 7 style presets (cinematic, anime, photorealistic, fantasy, abstract, cyberpunk, sci-fi)"
},
{
"author": "TuonoMindCode",
"title": "ComfyUI-Resolution-Suggest-Downscale",
"reference": "https://github.com/TuonoMindCode/ComfyUI-Resolution-Suggest-Downscale",
"files": [
"https://github.com/TuonoMindCode/ComfyUI-Resolution-Suggest-Downscale"
],
"install_type": "git-clone",
"description": "Resolution suggestion and downscale helper node for ComfyUI."
},
{
"author": "dcyd-lun",
"title": "ComfyUI_text_diff",
"reference": "https://github.com/dcyd-lun/ComfyUI_text_diff",
"files": [
"https://github.com/dcyd-lun/ComfyUI_text_diff"
],
"install_type": "git-clone",
"description": "Compare two texts with GitHub/GitLab-style diff highlighting in ComfyUI"
},
{
"author": "SKFRMSEHF",
"title": "SK-ComfyUI-FolderingLoader",
"id": "skloader",
"reference": "https://github.com/SKFRMSEHF/comfyui_SK_Loader",
"files": [
"https://github.com/SKFRMSEHF/comfyui_SK_Loader"
],
"install_type": "git-clone",
"description": "Unified loader nodes with folder organization support for checkpoints, LoRA, VAE, and diffusion models"
},
{
"author": "drawthingsai",
"title": "draw-things-comfyui",
"reference": "https://github.com/drawthingsai/draw-things-comfyui",
"files": [
"https://github.com/drawthingsai/draw-things-comfyui"
],
"install_type": "git-clone",
"description": "The official Draw Things extension for ComfyUI. Sends image-generation requests to Draw Things over gRPC. Supports Bridge Mode for DT+ cloud and local model execution."
},
{
"author": "darrell-goh",
"title": "ComfyUI-NanoBanana_node",
"reference": "https://github.com/darrell-goh/ComfyUI-NanoBanana_node",
"files": [
"https://github.com/darrell-goh/ComfyUI-NanoBanana_node"
],
"install_type": "git-clone",
"description": "A custom node for ComfyUI that allows you to interact with Nano Banana's Vertex API proxy, providing access to Gemini models with dynamic image inputs."
},
{
"author": "This-is-Uncut",
"title": "Custom-Node-ComfyUI-NBP-Uncut",
"reference": "https://github.com/This-is-Uncut/Custom-Node-ComfyUI-NBP-Uncut",
"files": [
"https://github.com/This-is-Uncut/Custom-Node-ComfyUI-NBP-Uncut"
],
"install_type": "git-clone",
"description": "Node to use NBP with custom API key to improve data privacy control."
},
{
"author": "princepainter",
"title": "Comfyui-PainterAudioLength",
"reference": "https://github.com/princepainter/Comfyui-PainterAudioLength",
"files": [
"https://github.com/princepainter/Comfyui-PainterAudioLength"
],
"install_type": "git-clone",
"description": "A tool for calculating audio duration that takes audio input and outputs the audio length as a floating-point number. (Description by CC)"
},
{
"author": "akaugun",
"title": "comfyui-lora-hook-trigger",
"reference": "https://github.com/akaugun/comfyui-lora-hook-trigger",
"files": [
"https://github.com/akaugun/comfyui-lora-hook-trigger"
],
"install_type": "git-clone",
"description": "A clean and simple ComfyUI custom node that creates a LoRA Hook and automatically finds and loads trigger TXT files placed in a folder named after the LoRA file."
},
{
"author": "tumbowungus",
"title": "MultiMaskCouple",
"reference": "https://github.com/tumbowungus/MultiMaskCouple",
"files": [
"https://github.com/tumbowungus/MultiMaskCouple"
],
"install_type": "git-clone",
"description": "A custom node for ComfyUI which simplifies the process of masking multiple prompts, making it easier to manage scenes with multiple distinct characters."
},
{
"author": "fudosanit",
"title": "ComfyUI-Random-Resolution",
"reference": "https://github.com/fudosanit/ComfyUI-Random-Resolution",
"files": [
"https://github.com/fudosanit/ComfyUI-Random-Resolution"
],
"install_type": "git-clone",
"description": "A custom node for ComfyUI. Based on the specified resolution, it randomly selects and outputs one of three patterns: original orientation, swapped width/height, or a square format. (Description by CC)"
},
{
"author": "SuLU-K",
"title": "comfyui-easy-sam3-tools",
"reference": "https://github.com/SuLU-K/comfyui-easy-sam3-tools",
"files": [
"https://github.com/SuLU-K/comfyui-easy-sam3-tools"
],
"install_type": "git-clone",
"description": "Custom nodes for building SAM3-centric editing pipelines inside ComfyUI, featuring mask merging, bounding box rendering, and DOM-based interactive editing. (Description by CC)"
},
{
"author": "EMkrtchyan",
"title": "ComfyUI-NormalsToDepth",
"reference": "https://github.com/EMkrtchyan/ComfyUI-NormalsToDepth",
"files": [
"https://github.com/EMkrtchyan/ComfyUI-NormalsToDepth"
],
"install_type": "git-clone",
"description": "Converts normal maps to depth maps for use in ComfyUI. (Description by CC)"
},
{
"author": "jeankassio",
"title": "JK AceStep Nodes",
"id": "JK-AceStep-Nodes",
"reference": "https://github.com/jeankassio/JK-AceStep-Nodes",
"files": [
"https://github.com/jeankassio/JK-AceStep-Nodes"
],
"install_type": "git-clone",
"description": "Advanced nodes optimized for ACE-Step audio generation in ComfyUI."
},
{
"author": "a-und-b",
"title": "ComfyUI_AB_Wildcard",
"reference": "https://github.com/a-und-b/ComfyUI_AB_Wildcard",
"files": [
"https://github.com/a-und-b/ComfyUI_AB_Wildcard"
],
"install_type": "git-clone",
"description": "Simple node for advanced wildcard text processing. Supports variables, conditionals, tag aggregation, weighted selection, and deep nesting. Lightweight, fast, zero external dependencies."
},
{
"author": "RamonGuthrie",
"title": "ComfyUI-RBG-SmartSeedVariance",
"reference": "https://github.com/RamonGuthrie/ComfyUI-RBG-SmartSeedVariance",
"files": [
"https://github.com/RamonGuthrie/ComfyUI-RBG-SmartSeedVariance"
],
"install_type": "git-clone",
"description": "Advanced seed diversity enhancement for ComfyUI with intelligent noise injection and directional biasing."
},
{
"author": "theshubzworld",
"title": "ComfyUI-NvidiaCaptioner",
"reference": "https://github.com/theshubzworld/ComfyUI-NvidiaCaptioner",
"files": [
"https://github.com/theshubzworld/ComfyUI-NvidiaCaptioner"
],
"install_type": "git-clone",
"description": "A ComfyUI node for generating rich, detailed captions for images using NVIDIA's vision models. Supports batch processing, multiple captioning styles, and includes built-in caching for efficient workflows."
},
{
"author": "theshubzworld",
"title": "ComfyUI-Universal-Latent",
"reference": "https://github.com/theshubzworld/ComfyUI-Universal-Latent",
"files": [
"https://github.com/theshubzworld/ComfyUI-Universal-Latent"
],
"install_type": "git-clone",
"description": "Enhanced empty latent node with extended aspect ratio support for ComfyUI"
},
{
"author": "lrzjason",
"title": "Comfyui-LatentUtils",
"reference": "https://github.com/lrzjason/Comfyui-LatentUtils",
"files": [
"https://github.com/lrzjason/Comfyui-LatentUtils"
],
"install_type": "git-clone",
"description": "Custom ComfyUI node performing selective latent denoising and detail enhancement using Fourier Transform (FFT) to separate and enhance image frequencies while suppressing noise. (Description by CC)"
},
{
"author": "aTanguay",
"title": "ComfyUI_Detonate",
"reference": "https://github.com/aTanguay/ComfyUI_Detonate",
"files": [
"https://github.com/aTanguay/ComfyUI_Detonate"
],
"install_type": "git-clone",
"description": "Professional compositing nodes for ComfyUI - bringing Nuke and Fusion workflows to AI-powered image generation"
},
{
"author": "huihuihuiz",
"title": "LoRA Downloader for ComfyUI",
"id": "lora_downloader",
"reference": "https://github.com/huihuihuiz/lora_downloader",
"files": [
"https://github.com/huihuihuiz/lora_downloader"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for downloading and managing LoRA models directly within the UI."
},
{
"author": "lovelybbq",
"title": "ComfyUI Custom Node Color",
"reference": "https://github.com/lovelybbq/comfyui-custom-node-color",
"files": [
"https://github.com/lovelybbq/comfyui-custom-node-color"
],
"install_type": "git-clone",
"description": "A modern GUI-based color picker for ComfyUI nodes. Features visual spectrum, HEX/RGB inputs, eyedropper tool, and favorite colors support."
},
{
"author": "Moeblack",
"title": "ComfyUI-SimpleChat",
"reference": "https://github.com/Moeblack/ComfyUI-SimpleChat",
"files": [
"https://github.com/Moeblack/ComfyUI-SimpleChat"
],
"install_type": "git-clone",
"description": "Simple, no-nonsense LLM chat nodes for ComfyUI. Support OpenAI, Claude, Gemini and NoASS Roleplay.",
"tags": [
"LLM",
"chat",
"openai",
"claude",
"gemini",
"roleplay",
"noass"
]
},
{
"author": "Lord Lethris",
"title": "Dia2 TTS & Captions Generators for ComfyUI",
"id": "dia2_tts_captions",
"reference": "https://github.com/lord-lethris/ComfyUI-lethris-dia2",
"files": [
"https://github.com/lord-lethris/ComfyUI-lethris-dia2"
],
"install_type": "Git-Clone",
"description": "This package provides two ComfyUI nodes: 🗣️ Dia2 TTS Generator for text-to-speech using Dia2-2B, and 💬 Dia2 Captions Generator to convert TTS timestamps into SRT/SSA/VTT subtitles. Includes example workflow and voice samples. GPU users require CUDA 12.8+."
},
{
"author": "Braeden90000",
"title": "ComfyUI Load Image URL",
"id": "load-image-url",
"reference": "https://github.com/Braeden90000/comfyui-load-image-url",
"files": [
"https://github.com/Braeden90000/comfyui-load-image-url"
],
"pip": ["requests"],
"install_type": "git-clone",
"description": "Load images from files or URLs with live preview and source switching."
},
{
"author": "purzbeats",
"title": "ComfyUI-Purz",
"reference": "https://github.com/purzbeats/ComfyUI-Purz",
"files": [
"https://github.com/purzbeats/ComfyUI-Purz"
],
"install_type": "git-clone",
"description": "A comprehensive node pack for ComfyUI that provides powerful image effects, pattern generation, and animated pattern creation capabilities."
},
{
"author": "TheArtOfficial",
"title": "ComfyUI-MaskMorph",
"reference": "https://github.com/TheArtOfficial/ComfyUI-MaskMorph",
"files": [
"https://github.com/TheArtOfficial/ComfyUI-MaskMorph"
],
"install_type": "git-clone",
"description": "Directional mask expansion node that extends masks along specified directions with pixel-precise control, plus separate pinch/widen morphology operations."
},
{
"author": "brahianrosswill",
"title": "ComfyUi-RandomNoiseCustom",
"reference": "https://github.com/brahianrosswill/ComfyUi-RandomNoiseCustom",
"files": [
"https://github.com/brahianrosswill/ComfyUi-RandomNoiseCustom"
],
"install_type": "git-clone",
"description": "Provides custom noise generation capabilities for ComfyUI workflows with configurable parameters. (Description by CC)"
},
{
"author": "amtarr",
"title": "ComfyUI-TextureAlchemy",
"reference": "https://github.com/amtarr/ComfyUI-TextureAlchemy",
"files": [
"https://github.com/amtarr/ComfyUI-TextureAlchemy"
],
"install_type": "git-clone",
"description": "Complete workflow suite for ComfyUI that transforms images into PBR material sets ready for game engines and 3D software."
}
]
}

View File

@ -161,7 +161,11 @@
"https://github.com/1038lab/ComfyUI-QwenVL": [
[
"AILab_QwenVL",
"AILab_QwenVL_Advanced"
"AILab_QwenVL_Advanced",
"AILab_QwenVL_GGUF",
"AILab_QwenVL_GGUF_Advanced",
"AILab_QwenVL_GGUF_PromptEnhancer",
"AILab_QwenVL_PromptEnhancer"
],
{
"title_aux": "ComfyUI-QwenVL"
@ -2971,6 +2975,15 @@
"title_aux": "Dir Gir"
}
],
"https://github.com/Asidert/ComfyUI_Base64Images": [
[
"ConvertImageToBase64",
"LoadImageFromBase64"
],
{
"title_aux": "ComfyUI_Base64Images"
}
],
"https://github.com/AstrionX/ComfyUI-Tensor-Prism-Node-Pack": [
[
"AdvancedCLIPMerge",
@ -3028,6 +3041,16 @@
"title_aux": "ComfyUI-AnimateAnyone-reproduction"
}
],
"https://github.com/AuroBit/ComfyUI-OOTDiffusion": [
[
"LoadOOTDPipeline",
"LoadOOTDPipelineHub",
"OOTDGenerate"
],
{
"title_aux": "ComfyUI OOTDiffusion"
}
],
"https://github.com/Austat/ComfyUI-DownsampleFPS": [
[
"DownsampleFPSNode"
@ -8373,12 +8396,14 @@
"GR Background Remover REMBG",
"GR Checkered Board",
"GR Counter",
"GR Filename",
"GR Flip Tile Random Inverted",
"GR Flip Tile Random Red Ring",
"GR Florence 2 Caption Generator",
"GR INT Incremetor",
"GR Image Details Displayer",
"GR Image Details Saver",
"GR Image Multiplication",
"GR Image Multiplier",
"GR Image Paste",
"GR Image Paste With Mask",
@ -17155,8 +17180,11 @@
"https://github.com/ShootTheSound/comfyUI-Realtime-Lora": [
[
"ApplyTrainedLora",
"ClippyRebornImageLoader",
"FLUXSelectiveLoRALoader",
"ImageOfDayLoader",
"LoRALoaderWithAnalysis",
"LoRALoaderWithAnalysisV2",
"MusubiQwenImageEditLoraTrainer",
"MusubiQwenImageLoraTrainer",
"MusubiWanLoraTrainer",
@ -17166,6 +17194,7 @@
"SD15LoraTrainer",
"SDXLLoraTrainer",
"SDXLSelectiveLoRALoader",
"ScheduledLoRALoader",
"WanSelectiveLoRALoader",
"ZImageSelectiveLoRALoader"
],
@ -17586,6 +17615,14 @@
"title_aux": "ComfyUI-MaskArbiter"
}
],
"https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced": [
[
"ModelSamplingSD3Advanced"
],
{
"title_aux": "ComfyUI-ModelSamplingSD3Advanced"
}
],
"https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice": [
[
"WeightedRandomChoice"
@ -19293,6 +19330,15 @@
"title_aux": "DreamO Comfyui"
}
],
"https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker": [
[
"TG_PydGetMetadata",
"TG_PydPreview"
],
{
"title_aux": "ComfyUI-TG_pydocmaker"
}
],
"https://github.com/Tr1dae/ComfyUI-Dequality": [
[
"Dequality"
@ -29779,6 +29825,14 @@
"title_aux": "ComfyUI_text_diff"
}
],
"https://github.com/ddontsov93/ComfyUI-AudioSeparator": [
[
"AudioSeparatorNode"
],
{
"title_aux": "ComfyUI-AudioSeparator"
}
],
"https://github.com/denfrost/Den_ComfyUI_Workflow": [
[
"Den_CropImage_AS",
@ -39641,6 +39695,16 @@
"title_aux": "Comfyui_three_js"
}
],
"https://github.com/logicalor/comfyui_friendly_pipe": [
[
"FriendlyPipeEdit",
"FriendlyPipeIn",
"FriendlyPipeOut"
],
{
"title_aux": "comfyui_friendly_pipe"
}
],
"https://github.com/logicalor/comfyui_multi_replace": [
[
"FindReplacePairs",
@ -45337,6 +45401,17 @@
"title_aux": "ComfyUI WD 1.4 Tagger"
}
],
"https://github.com/pzc163/Comfyui-CatVTON": [
[
"AutoMasker",
"CatVTON",
"LoadAutoMasker",
"LoadCatVTONPipeline"
],
{
"title_aux": "Comfyui-CatVTON"
}
],
"https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator": [
[
"Prompt_Generator",
@ -46254,6 +46329,17 @@
"title_aux": "Dia realistic TTS"
}
],
"https://github.com/rnbwdsh/ComfyUI-LatentWalk": [
[
"LatentWalkConditional",
"LatentWalkConditionalRandom",
"LatentWalkNoise",
"LatentWalkVae"
],
{
"title_aux": "Latent Walk"
}
],
"https://github.com/rndnanthu/ComfyUI-RndNanthu": [
[
"AutoGradePro",
@ -52744,6 +52830,17 @@
"title_aux": "Comfyui_Get_promptId"
}
],
"https://github.com/xuheyao/comfyui-dinov3-point-prompt": [
[
"DINOv3Loader",
"DINOv3PointCollector",
"DINOv3Process",
"DINOv3Similarity"
],
{
"title_aux": "comfyui-dinov3-point-prompt"
}
],
"https://github.com/xuhongming251/ComfyUI-GPEN": [
[
"FaceEnhancement"

View File

@ -20,7 +20,7 @@ from pathlib import Path
from typing import Set, Dict, Optional
# Scanner version for cache invalidation
SCANNER_VERSION = "2.0.11" # Multi-layer detection: class existence + display names
SCANNER_VERSION = "2.0.12" # Add dict comprehension + export list detection
# Cache for extract_nodes and extract_nodes_enhanced results
_extract_nodes_cache: Dict[str, Set[str]] = {}
@ -552,12 +552,22 @@ def extract_nodes_enhanced(
if exists:
phase5_nodes.add(node_name)
# Union all results (FIX: Scanner 2.0.9 bug + Scanner 2.0.10 bug)
# Phase 6: Dict comprehension pattern (NEW in 2.0.12)
# Detects: NODE_CLASS_MAPPINGS = {cls.__name__: cls for cls in to_export}
# Example: TobiasGlaubach/ComfyUI-TG_PyCode
phase6_nodes = _fallback_dict_comprehension(code_text, file_path)
# Phase 7: Import-based class names for dict comprehension (NEW in 2.0.12)
# Detects imported classes that are added to export lists
phase7_nodes = _fallback_import_class_names(code_text, file_path)
# Union all results (FIX: Scanner 2.0.9 bug + Scanner 2.0.10 bug + Scanner 2.0.12 dict comp)
# 2.0.9: Used early return which missed Phase 3 nodes
# 2.0.10: Only checked registrations, missed classes referenced in display names
all_nodes = phase1_nodes | phase2_nodes | phase3_nodes | phase4_nodes | phase5_nodes
# 2.0.12: Added dict comprehension and import-based class detection
all_nodes = phase1_nodes | phase2_nodes | phase3_nodes | phase4_nodes | phase5_nodes | phase6_nodes | phase7_nodes
# Phase 6: Empty dict detector (logging only, doesn't add nodes)
# Phase 8: Empty dict detector (logging only, doesn't add nodes)
if not all_nodes:
_fallback_empty_dict_detector(code_text, file_path, verbose)
@ -616,7 +626,7 @@ def _fallback_classname_resolver(code_text: str, file_path: Optional[Path]) -> S
def _fallback_item_assignment(code_text: str) -> Set[str]:
"""
Detect item assignment pattern.
Pattern:
NODE_CLASS_MAPPINGS = {}
NODE_CLASS_MAPPINGS["MyNode"] = MyNode
@ -627,9 +637,9 @@ def _fallback_item_assignment(code_text: str) -> Set[str]:
parsed = ast.parse(code_text)
except:
return set()
nodes = set()
for node in ast.walk(parsed):
if isinstance(node, ast.Assign):
for target in node.targets:
@ -640,10 +650,156 @@ def _fallback_item_assignment(code_text: str) -> Set[str]:
if isinstance(target.slice, ast.Constant):
if isinstance(target.slice.value, str):
nodes.add(target.slice.value)
return nodes
def _fallback_dict_comprehension(code_text: str, file_path: Optional[Path] = None) -> Set[str]:
"""
Detect dict comprehension pattern with __name__ attribute access.
Pattern:
NODE_CLASS_MAPPINGS = {cls.__name__: cls for cls in to_export}
NODE_CLASS_MAPPINGS = {c.__name__: c for c in [ClassA, ClassB]}
This function detects dict comprehension assignments to NODE_CLASS_MAPPINGS
and extracts class names from the iterable (list literal or variable reference).
Returns:
Set of class names extracted from the dict comprehension
"""
try:
with warnings.catch_warnings():
warnings.filterwarnings('ignore', category=SyntaxWarning)
parsed = ast.parse(code_text)
except:
return set()
nodes = set()
export_lists = {} # Track list variables and their contents
# First pass: collect list assignments (to_export = [...], exports = [...])
for node in ast.walk(parsed):
if isinstance(node, ast.Assign):
for target in node.targets:
if isinstance(target, ast.Name):
var_name = target.id
# Check for list literal
if isinstance(node.value, ast.List):
class_names = set()
for elt in node.value.elts:
if isinstance(elt, ast.Name):
class_names.add(elt.id)
export_lists[var_name] = class_names
# Handle augmented assignment: to_export += [...]
elif isinstance(node, ast.AugAssign):
if isinstance(node.target, ast.Name) and isinstance(node.op, ast.Add):
var_name = node.target.id
if isinstance(node.value, ast.List):
class_names = set()
for elt in node.value.elts:
if isinstance(elt, ast.Name):
class_names.add(elt.id)
if var_name in export_lists:
export_lists[var_name].update(class_names)
else:
export_lists[var_name] = class_names
# Second pass: find NODE_CLASS_MAPPINGS dict comprehension
for node in ast.walk(parsed):
if isinstance(node, ast.Assign):
for target in node.targets:
if isinstance(target, ast.Name) and target.id in ['NODE_CLASS_MAPPINGS', 'NODE_CONFIG']:
# Check for dict comprehension
if isinstance(node.value, ast.DictComp):
dictcomp = node.value
# Check if key is cls.__name__ pattern
key = dictcomp.key
if isinstance(key, ast.Attribute) and key.attr == '__name__':
# Get the iterable from the first generator
for generator in dictcomp.generators:
iter_node = generator.iter
# Case 1: Inline list [ClassA, ClassB, ...]
if isinstance(iter_node, ast.List):
for elt in iter_node.elts:
if isinstance(elt, ast.Name):
nodes.add(elt.id)
# Case 2: Variable reference (to_export, exports, etc.)
elif isinstance(iter_node, ast.Name):
var_name = iter_node.id
if var_name in export_lists:
nodes.update(export_lists[var_name])
return nodes
def _fallback_import_class_names(code_text: str, file_path: Optional[Path] = None) -> Set[str]:
"""
Extract class names from imports that are added to export lists.
Pattern:
from .module import ClassA, ClassB
to_export = [ClassA, ClassB]
NODE_CLASS_MAPPINGS = {cls.__name__: cls for cls in to_export}
This is a complementary fallback that works with _fallback_dict_comprehension
to resolve import-based node registrations.
Returns:
Set of imported class names that appear in export-like contexts
"""
try:
with warnings.catch_warnings():
warnings.filterwarnings('ignore', category=SyntaxWarning)
parsed = ast.parse(code_text)
except:
return set()
# Collect imported names
imported_names = set()
for node in ast.walk(parsed):
if isinstance(node, ast.ImportFrom):
for alias in node.names:
name = alias.asname if alias.asname else alias.name
imported_names.add(name)
# Check if these names appear in list assignments that feed into NODE_CLASS_MAPPINGS
export_candidates = set()
has_dict_comp_mapping = False
for node in ast.walk(parsed):
# Check for dict comprehension NODE_CLASS_MAPPINGS
if isinstance(node, ast.Assign):
for target in node.targets:
if isinstance(target, ast.Name) and target.id == 'NODE_CLASS_MAPPINGS':
if isinstance(node.value, ast.DictComp):
has_dict_comp_mapping = True
# Collect list contents
if isinstance(node, ast.Assign):
if isinstance(node.value, ast.List):
for elt in node.value.elts:
if isinstance(elt, ast.Name) and elt.id in imported_names:
export_candidates.add(elt.id)
# Handle augmented assignment
elif isinstance(node, ast.AugAssign):
if isinstance(node.value, ast.List):
for elt in node.value.elts:
if isinstance(elt, ast.Name) and elt.id in imported_names:
export_candidates.add(elt.id)
# Only return if there's a dict comprehension mapping
if has_dict_comp_mapping:
return export_candidates
return set()
def _extract_repo_name(file_path: Path) -> str:
"""
Extract repository name from file path.