Merge branch 'Comfy-Org:main' into main

This commit is contained in:
Eric Rollei 2025-11-19 08:31:56 -08:00 committed by GitHub
commit 4fee08aae4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 6973 additions and 5758 deletions

View File

@ -430,6 +430,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Apply AFFINE noise transforms to latent space to improve image quality, especially with light loras." "description": "Apply AFFINE noise transforms to latent space to improve image quality, especially with light loras."
}, },
{
"author": "was",
"title": "WAS LMStudio Easy-Query",
"reference": "https://github.com/WASasquatch/ComfyUI_LMStudio_EasyQuery",
"files": [
"https://github.com/WASasquatch/ComfyUI_LMStudio_EasyQuery"
],
"install_type": "git-clone",
"description": "LM Studio calls with image support and easy task directions."
},
{ {
"author": "omar92", "author": "omar92",
"title": "Quality of life Suit:V2", "title": "Quality of life Suit:V2",
@ -20001,6 +20011,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A video transition effects plugin implemented using a Chromium headless browser and Python." "description": "A video transition effects plugin implemented using a Chromium headless browser and Python."
}, },
{
"author": "yichengup",
"title": "ComfyUI-YCNodes_Toolkit",
"reference": "https://github.com/yichengup/ComfyUI-YCNodes_Toolkit",
"files": [
"https://github.com/yichengup/ComfyUI-YCNodes_Toolkit"
],
"install_type": "git-clone",
"description": "ComfyUI toolkit with custom nodes for BBox canvas visualization, image brush mask drawing, and coordinate annotation for debugging and external data bridging. (Description by CC)"
},
{ {
"author": "Horizon Team", "author": "Horizon Team",
"title": "ComfyUI_FluxMod", "title": "ComfyUI_FluxMod",
@ -21304,6 +21324,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI wrapper nodes for Ruyi, an image-to-video model by CreateAI." "description": "ComfyUI wrapper nodes for Ruyi, an image-to-video model by CreateAI."
}, },
{
"author": "IamCreateAI",
"title": "ComfyUI-Animon",
"reference": "https://github.com/IamCreateAI/ComfyUI-Animon",
"files": [
"https://github.com/IamCreateAI/ComfyUI-Animon"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for [Animon Platform](https://platform.animon.ai/), a comprehensive API service offering a variety of image and video generation models."
},
{ {
"author": "pollockjj", "author": "pollockjj",
"title": "ComfyUI-MultiGPU", "title": "ComfyUI-MultiGPU",
@ -22483,6 +22513,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Fixed implementation of the export workflow image utility from [a/pythongosssss/ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts). All nodes should display and all node links should be visible and render 1:1 to their actual states in ComfyUI." "description": "Fixed implementation of the export workflow image utility from [a/pythongosssss/ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts). All nodes should display and all node links should be visible and render 1:1 to their actual states in ComfyUI."
}, },
{
"author": "fuselayer",
"title": "comfyui-lite-tracker",
"reference": "https://github.com/fuselayer/comfyui-lite-tracker",
"files": [
"https://github.com/fuselayer/comfyui-lite-tracker"
],
"install_type": "git-clone",
"description": "ComfyUI custom nodes for LiteTracker, a fast and efficient point tracking model for videos with load model, track, and grid editor nodes."
},
{ {
"author": "jerrylongyan", "author": "jerrylongyan",
"title": "ComfyUI-My-Mask", "title": "ComfyUI-My-Mask",
@ -28159,9 +28199,9 @@
{ {
"author": "GACLove", "author": "GACLove",
"title": "ComfyUI-Lightx2vWrapper", "title": "ComfyUI-Lightx2vWrapper",
"reference": "https://github.com/GACLove/ComfyUI-Lightx2vWrapper", "reference": "https://github.com/ModelTC/ComfyUI-Lightx2vWrapper",
"files": [ "files": [
"https://github.com/GACLove/ComfyUI-Lightx2vWrapper" "https://github.com/ModelTC/ComfyUI-Lightx2vWrapper"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI-Lightx2vWrapper is an inference wrapper for Lightx2v designed for use with ComfyUI." "description": "ComfyUI-Lightx2vWrapper is an inference wrapper for Lightx2v designed for use with ComfyUI."
@ -29054,36 +29094,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "This is keit's utility nodes." "description": "This is keit's utility nodes."
}, },
{
"author": "fredconex",
"title": "ComfyUI-SoundFlow",
"reference": "https://github.com/fredconex/ComfyUI-SoundFlow",
"files": [
"https://github.com/fredconex/ComfyUI-SoundFlow"
],
"install_type": "git-clone",
"description": "This is a bunch of nodes for ComfyUI to help with sound work."
},
{
"author": "fredconex",
"title": "Sync Edit",
"reference": "https://github.com/fredconex/ComfyUI-SyncEdit",
"files": [
"https://github.com/fredconex/ComfyUI-SyncEdit"
],
"install_type": "git-clone",
"description": "This node allow to intercept changes on the input string and choose between use the current one or sync with incoming new one."
},
{
"author": "fredconex",
"title": "SongBloom",
"reference": "https://github.com/fredconex/ComfyUI-SongBloom",
"files": [
"https://github.com/fredconex/ComfyUI-SongBloom"
],
"install_type": "git-clone",
"description": "ComfyUI Nodes for SongBloom"
},
{ {
"author": "A043-studios", "author": "A043-studios",
"title": "Pixel3DMM ComfyUI Nodes", "title": "Pixel3DMM ComfyUI Nodes",
@ -30615,10 +30625,10 @@
"id": "comfyui-exloadout", "id": "comfyui-exloadout",
"reference": "https://github.com/IsItDanOrAi/ComfyUI-exLoadout", "reference": "https://github.com/IsItDanOrAi/ComfyUI-exLoadout",
"files": [ "files": [
"https://github.com/IsItDanOrAi/ComfyUI-exLoadout" "https://github.com/IsItDanOrAi/ComfyUI-exLoadout"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "Excel spreadsheet-driven ComfyUI nodes that let you load models, values, and workflows based on saved rows in Excel. Great for organizing and switching between CLIPs, VAEs, LoRAs, and more." "description": "Excel spreadsheet-driven ComfyUI nodes that let you load models, values, and workflows based on saved rows in Excel. Great for organizing and switching between CLIPs, VAEs, LoRAs, and more."
}, },
{ {
"author": "claptrap0", "author": "claptrap0",
@ -30967,6 +30977,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Extract comprehensive scene properties from 360-degree equirectangular panoramas, including depth, normals, and PBR materials, using OmniX adapters with Flux." "description": "Extract comprehensive scene properties from 360-degree equirectangular panoramas, including depth, normals, and PBR materials, using OmniX adapters with Flux."
}, },
{
"author": "cedarconnor",
"title": "ComfyUI-DreamCube",
"reference": "https://github.com/cedarconnor/ComfyUI-DreamCube",
"files": [
"https://github.com/cedarconnor/ComfyUI-DreamCube"
],
"install_type": "git-clone",
"description": "360° panoramic depth estimation with multi-plane synchronization for ComfyUI, featuring equirectangular-cubemap transformations, cross-face consistency, and boundary blending for seamless depth maps."
},
{ {
"author": "vaishnav-vn", "author": "vaishnav-vn",
"title": "va1", "title": "va1",
@ -33501,6 +33521,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A set of ComfyUI nodes for calling the Nano-Banana API , while also supporting the Google API and frankAI API." "description": "A set of ComfyUI nodes for calling the Nano-Banana API , while also supporting the Google API and frankAI API."
}, },
{
"author": "fr0nky0ng",
"title": "ComfyUI-JSON-Prompt",
"reference": "https://github.com/fr0nky0ng/ComfyUI-JSON-Prompt",
"files": [
"https://github.com/fr0nky0ng/ComfyUI-JSON-Prompt"
],
"install_type": "git-clone",
"description": "Custom node for ComfyUI that generates JSON prompts from natural language descriptions to improve text-to-image generation quality. Supports local LLM integration via Ollama or Google Gemini API."
},
{ {
"author": "Tr1dae", "author": "Tr1dae",
"title": "LoRA Matcher Nodes for ComfyUI", "title": "LoRA Matcher Nodes for ComfyUI",
@ -34865,6 +34895,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI nodes to use Depth Anything V3 - the latest depth estimation model from ByteDance. For now monocular depth, camera pose estimation and 3D point clouds/gaussians are supported. Models autodownload from HuggingFace (depth-anything org). This is a first draft, let me know if you have any feedback! :)" "description": "ComfyUI nodes to use Depth Anything V3 - the latest depth estimation model from ByteDance. For now monocular depth, camera pose estimation and 3D point clouds/gaussians are supported. Models autodownload from HuggingFace (depth-anything org). This is a first draft, let me know if you have any feedback! :)"
}, },
{
"author": "PozzettiAndrea",
"title": "ComfyUI-AnyTop",
"reference": "https://github.com/PozzettiAndrea/ComfyUI-AnyTop",
"files": [
"https://github.com/PozzettiAndrea/ComfyUI-AnyTop"
],
"install_type": "git-clone",
"description": "Standalone ComfyUI custom nodes for AnyTop - Universal Motion Generation for Any Skeleton Topology."
},
{ {
"author": "rookiestar28", "author": "rookiestar28",
"title": "Danbooru Tags Upsampler for ComfyUI", "title": "Danbooru Tags Upsampler for ComfyUI",
@ -35009,6 +35049,26 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Professional ComfyUI nodes for Tencent HunyuanImage-3.0, the 80B parameter native multimodal image generation model. Features: BF16/NF4 loading, multi-GPU support, smart memory management, official prompt enhancement with LLM APIs (DeepSeek/OpenAI/Claude/local), large image generation with CPU offload, organized resolution presets. Requires 24GB+ VRAM for NF4, 80GB+ for BF16." "description": "Professional ComfyUI nodes for Tencent HunyuanImage-3.0, the 80B parameter native multimodal image generation model. Features: BF16/NF4 loading, multi-GPU support, smart memory management, official prompt enhancement with LLM APIs (DeepSeek/OpenAI/Claude/local), large image generation with CPU offload, organized resolution presets. Requires 24GB+ VRAM for NF4, 80GB+ for BF16."
} }
{
"author": "EricRollei",
"title": "Comfy_HunyuanImage3",
"reference": "https://github.com/EricRollei/Comfy_HunyuanImage3",
"files": [
"https://github.com/EricRollei/Comfy_HunyuanImage3"
],
"install_type": "git-clone",
"description": "Professional ComfyUI custom nodes for Tencent's HunyuanImage-3.0 80B multimodal model, with multiple loading modes, smart memory management, large image generation with CPU offload, and optional prompt enhancement via LLM APIs."
},
{
"author": "EricRollei",
"title": "Eric_Image_Processing_Nodes",
"reference": "https://github.com/EricRollei/Eric_Image_Processing_Nodes",
"files": [
"https://github.com/EricRollei/Eric_Image_Processing_Nodes"
],
"install_type": "git-clone",
"description": "A comprehensive collection of advanced image processing nodes for ComfyUI, featuring state-of-the-art denoising, enhancement, and restoration techniques with GPU acceleration and specialized film grain processing."
},
{ {
"author": "nomadoor", "author": "nomadoor",
"title": "ComfyUI Temporal Mask Tools", "title": "ComfyUI Temporal Mask Tools",
@ -35451,6 +35511,26 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Multi-frame reference conditioning nodes for Wan2.2 A14B I2V models." "description": "Multi-frame reference conditioning nodes for Wan2.2 A14B I2V models."
}, },
{
"author": "wallen0322",
"title": "ComfyUI-TTM-WAN22",
"reference": "https://github.com/wallen0322/ComfyUI-TTM-WAN22",
"files": [
"https://github.com/wallen0322/ComfyUI-TTM-WAN22"
],
"install_type": "git-clone",
"description": "TTM (Time-to-Move) node for ComfyUI enabling motion-controlled video generation with Wan2.2 models using dual-clock denoising for independent background and object animation control."
},
{
"author": "wallen0322",
"title": "ComfyUI-AE-Animation",
"reference": "https://github.com/wallen0322/ComfyUI-AE-Animation",
"files": [
"https://github.com/wallen0322/ComfyUI-AE-Animation"
],
"install_type": "git-clone",
"description": "After Effects-style animation nodes for ComfyUI with timeline-based keyframe control, layer management, and real-time preview rendering. (Description by CC)"
},
{ {
"author": "KursatAs", "author": "KursatAs",
"title": "Comfyui Krs Nodes", "title": "Comfyui Krs Nodes",
@ -36171,6 +36251,16 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Simple implementation of [a/ByteDance Sa2VA](https://github.com/bytedance/Sa2VA) nodes for ComfyUI." "description": "Simple implementation of [a/ByteDance Sa2VA](https://github.com/bytedance/Sa2VA) nodes for ComfyUI."
}, },
{
"author": "alexjx",
"title": "ComfyUI-XJNodes",
"reference": "https://github.com/alexjx/ComfyUI-XJNodes",
"files": [
"https://github.com/alexjx/ComfyUI-XJNodes"
],
"install_type": "git-clone",
"description": "A modular collection of custom nodes for ComfyUI, organized by data type for easy navigation and maintenance."
},
{ {
"author": "bowtiedbluefin", "author": "bowtiedbluefin",
"title": "ComfyUI-AI-CustomURL", "title": "ComfyUI-AI-CustomURL",
@ -36617,11 +36707,96 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Human-in-the-loop image selection tool for ComfyUI workflows using a Flask web server, enabling users to pause workflows and interactively select images via a web browser interface." "description": "Human-in-the-loop image selection tool for ComfyUI workflows using a Flask web server, enabling users to pause workflows and interactively select images via a web browser interface."
}, },
{
"author": "Devin Garner",
"title": "ComfyUI_Make-It-Animatable",
"reference": "https://github.com/speige/ComfyUI_Make-It-Animatable",
"files": [
"https://github.com/speige/ComfyUI_Make-It-Animatable"
],
"install_type": "git-clone",
"description": "Auto-Rigging humanoid 3D meshes for Mixamo animations"
},
{
"author": "hua1995116",
"title": "comfyui_goenhance_ffmpeg_wm",
"reference": "https://github.com/hua1995116/comfyui_goenhance_ffmpeg_wm",
"files": [
"https://github.com/hua1995116/comfyui_goenhance_ffmpeg_wm"
],
"install_type": "git-clone",
"description": "ComfyUI custom node for adding watermarks to videos using FFmpeg, with configurable position, opacity, scale, and hardware acceleration support."
},
{
"author": "dowa-git",
"title": "comfyui-dowa",
"reference": "https://github.com/dowa-git/comfyui-dowa",
"files": [
"https://github.com/dowa-git/comfyui-dowa"
],
"install_type": "git-clone",
"description": "Professional navigation bar widget for ComfyUI with JWT-based user authentication, workflow templates, and team collaboration features in a purple gradient design."
},
{
"author": "wzyfromhust",
"title": "ComfyUI_SAM2UltraV2",
"reference": "https://github.com/wzyfromhust/ComfyUI_SAM2UltraV2",
"files": [
"https://github.com/wzyfromhust/ComfyUI_SAM2UltraV2"
],
"install_type": "git-clone",
"description": "A fully modular and high-performance implementation of SAM2 (Segment Anything Model 2) for ComfyUI with dual-prompt support, negative point sampling, and upper body segmentation."
},
{
"author": "slahiri",
"title": "ComfyUI-AI-Photography-Toolkit",
"reference": "https://github.com/slahiri/ComfyUI-AI-Photography-Toolkit",
"files": [
"https://github.com/slahiri/ComfyUI-AI-Photography-Toolkit"
],
"install_type": "git-clone",
"description": "A collection of AI-powered photography and image generation tools for ComfyUI, featuring the SID_AIPromptGenerator node that uses Anthropic's Claude API to analyze images and generate optimized prompts for various image generation models."
},
{
"author": "neonr0",
"title": "ComfyUI-PixelConstrainedScaler",
"reference": "https://github.com/neonr-0/ComfyUI-PixelConstrainedScaler",
"files": [
"https://github.com/neonr-0/ComfyUI-PixelConstrainedScaler"
],
"install_type": "git-clone",
"description": "Smart upscaling with pixel-budget awareness while preserving native aspect ratios. Ideal for Image to Image (I2I) and Image to Video (I2V) workflows!"
},
{
"author": "swan7-py",
"title": "ComfyUI-ImageAlphaCrop",
"reference": "https://github.com/swan7-py/ComfyUI-ImageAlphaCrop",
"files": [
"https://github.com/swan7-py/ComfyUI-ImageAlphaCrop"
],
"install_type": "git-clone",
"description": "ComfyUI plugin for automatically cropping transparent alpha channel borders from images - ideal for processing logos and icons. Supports batch processing with adjustable padding and alpha threshold. (Description by CC)"
},
{
"author": "huyl3-cpu",
"title": "comfyui-huyl2-nodes",
"reference": "https://github.com/huyl3-cpu/comfyui-sortlist",
"files": [
"https://github.com/huyl3-cpu/comfyui-sortlist"
],
"install_type": "git-clone",
"description": "Custom utility nodes for ComfyUI by huyl2 (sort list v2, etc.)"
},
{
"author": "7BEII",
"title": "comfyui-PD_comfy-api-node",
"reference": "https://github.com/7BEII/comfyui-PD_comfy-api-node",
"files": [
"https://github.com/7BEII/comfyui-PD_comfy-api-node"
],
"install_type": "git-clone",
"description": "ComfyUI custom node suite integrating multiple AI image generation APIs (Gemini, Flux.1 Kontext Pro) with unified authentication via ComfyUI API Key and real-time cost tracking. (Description by CC)"
},
@ -37062,6 +37237,6 @@
], ],
"install_type": "unzip", "install_type": "unzip",
"description": "This is a node to convert an image into a CMYK Halftone dot image." "description": "This is a node to convert an image into a CMYK Halftone dot image."
} }
] ]
} }

View File

@ -381,12 +381,14 @@
"1hew_AnyEmptyInt", "1hew_AnyEmptyInt",
"1hew_AnySwitchBool", "1hew_AnySwitchBool",
"1hew_AnySwitchInt", "1hew_AnySwitchInt",
"1hew_AudioDuration",
"1hew_DetectGuideLine", "1hew_DetectGuideLine",
"1hew_DetectYolo", "1hew_DetectYolo",
"1hew_ImageAddLabel", "1hew_ImageAddLabel",
"1hew_ImageBBoxOverlayByMask", "1hew_ImageBBoxOverlayByMask",
"1hew_ImageBatchExtract", "1hew_ImageBatchExtract",
"1hew_ImageBatchGroup", "1hew_ImageBatchGroup",
"1hew_ImageBatchRange",
"1hew_ImageBatchSplit", "1hew_ImageBatchSplit",
"1hew_ImageBatchToList", "1hew_ImageBatchToList",
"1hew_ImageBlendModeByAlpha", "1hew_ImageBlendModeByAlpha",
@ -395,29 +397,30 @@
"1hew_ImageCropWithBBoxMask", "1hew_ImageCropWithBBoxMask",
"1hew_ImageEdgeCropPad", "1hew_ImageEdgeCropPad",
"1hew_ImageEditStitch", "1hew_ImageEditStitch",
"1hew_ImageGetSize",
"1hew_ImageGridSplit", "1hew_ImageGridSplit",
"1hew_ImageHLFreqCombine", "1hew_ImageHLFreqCombine",
"1hew_ImageHLFreqSeparate", "1hew_ImageHLFreqSeparate",
"1hew_ImageHLFreqTransform", "1hew_ImageHLFreqTransform",
"1hew_ImageListAppend", "1hew_ImageListAppend",
"1hew_ImageListToBatch", "1hew_ImageListToBatch",
"1hew_ImageMainStitch",
"1hew_ImageMaskBlend", "1hew_ImageMaskBlend",
"1hew_ImageMaskCrop", "1hew_ImageMaskCrop",
"1hew_ImagePasteByBBoxMask", "1hew_ImagePasteByBBoxMask",
"1hew_ImagePingPong",
"1hew_ImagePlot", "1hew_ImagePlot",
"1hew_ImageResizeFluxKontext", "1hew_ImageResizeFluxKontext",
"1hew_ImageResizeQwenImage", "1hew_ImageResizeQwenImage",
"1hew_ImageResizeUniversal", "1hew_ImageResizeUniversal",
"1hew_ImageRotateWithMask", "1hew_ImageRotateWithMask",
"1hew_ImageSolid", "1hew_ImageSolid",
"1hew_ImageSolidFluxKontext",
"1hew_ImageSolidQwenImage",
"1hew_ImageStrokeByMask", "1hew_ImageStrokeByMask",
"1hew_ImageThreeStitch",
"1hew_ImageTileMerge", "1hew_ImageTileMerge",
"1hew_ImageTileSplit", "1hew_ImageTileSplit",
"1hew_ImageTileSplitPreset", "1hew_ImageTileSplitPreset",
"1hew_IntImageSideLength",
"1hew_IntImageSize",
"1hew_IntMaskSideLength",
"1hew_IntSplit", "1hew_IntSplit",
"1hew_IntWan", "1hew_IntWan",
"1hew_ListCustomFloat", "1hew_ListCustomFloat",
@ -425,6 +428,7 @@
"1hew_ListCustomSeed", "1hew_ListCustomSeed",
"1hew_ListCustomString", "1hew_ListCustomString",
"1hew_MaskBatchMathOps", "1hew_MaskBatchMathOps",
"1hew_MaskBatchRange",
"1hew_MaskBatchSplit", "1hew_MaskBatchSplit",
"1hew_MaskBatchToList", "1hew_MaskBatchToList",
"1hew_MaskCropByBBoxMask", "1hew_MaskCropByBBoxMask",
@ -437,13 +441,15 @@
"1hew_MultiMaskBatch", "1hew_MultiMaskBatch",
"1hew_MultiStringJoin", "1hew_MultiStringJoin",
"1hew_RangeMapping", "1hew_RangeMapping",
"1hew_SaveVideo",
"1hew_SaveVideoRGBA",
"1hew_StringCoordinateToBBoxMask", "1hew_StringCoordinateToBBoxMask",
"1hew_StringCoordinateToBBoxes", "1hew_StringCoordinateToBBoxes",
"1hew_StringFilter",
"1hew_StringJoinMulti",
"1hew_TextCustomExtract", "1hew_TextCustomExtract",
"1hew_TextEncodeQwenImageEditKeepSize", "1hew_TextEncodeQwenImageEditKeepSize",
"1hew_TextFilter", "1hew_TextListToString",
"1hew_TextJoinByTextList",
"1hew_TextJoinMulti",
"1hew_TextPrefixSuffix", "1hew_TextPrefixSuffix",
"1hew_URLToVideo", "1hew_URLToVideo",
"1hew_VideoCutGroup", "1hew_VideoCutGroup",
@ -659,6 +665,16 @@
"title_aux": "Comflowy's Custom Nodes" "title_aux": "Comflowy's Custom Nodes"
} }
], ],
"https://github.com/7BEII/comfyui-PD_comfy-api-node": [
[
"PDFluxKontextProOfficial",
"PDGeminiImageGenComfyKey",
"PDOpenAIGPTImageKey"
],
{
"title_aux": "comfyui-PD_comfy-api-node"
}
],
"https://github.com/807502278/ComfyUI-3D-MeshTool": [ "https://github.com/807502278/ComfyUI-3D-MeshTool": [
[ [
"Auto_Normal", "Auto_Normal",
@ -4553,6 +4569,54 @@
"title_aux": "JH Misc. Nodes" "title_aux": "JH Misc. Nodes"
} }
], ],
"https://github.com/ComfyUI-WanVideoWrapper/QQ.copied": [
[
"ImageBlend_GPU",
"ImageRadialZoomBlur_GPU",
"LoraExtractKJv2",
"PowerLoraLoaderV2",
"VideoMergeABC",
"WanScaleAB",
"WanVideoCacheSamples",
"WanVideoCacheVideos",
"WanVideoEmptyEmbeds_v2",
"WanVideoFlowmapDistortion",
"WanVideoImageToVideoEncode_v2",
"WanVideoMotionToFlowmap",
"WanVideoPowerLoraLoader"
],
{}
],
"https://github.com/ComfyUI/Eagleshadow": [
[
"Batch 12 Images",
"Detect Transparency",
"Fix Checkpoint Name",
"ImageLinearGammaCompositeMasked",
"KSampler Same Noise",
"MaskGlow",
"OffsetImage",
"Round Float to String",
"SaveImageToFolder",
"Select ControlNet",
"Select Model 20",
"Simple Load Image Batch"
],
{}
],
"https://github.com/ComfyUI/SequentialGroupController": [
[
"SequentialGroupController",
"SequentialGroupControllerV2"
],
{}
],
"https://github.com/ComfyUI/subjectselector": [
[
"ComfyUI_subjectselector"
],
{}
],
"https://github.com/ComplexRobot/ComfyUI-Simple-VFI": [ "https://github.com/ComplexRobot/ComfyUI-Simple-VFI": [
[ [
"Simple_Frame_Interpolation" "Simple_Frame_Interpolation"
@ -5672,8 +5736,10 @@
"BoyoImageGrab", "BoyoImageGrab",
"BoyoIncontextSaver", "BoyoIncontextSaver",
"BoyoLoRAConfigInspector", "BoyoLoRAConfigInspector",
"BoyoLoRAConfigProcessor",
"BoyoLoRAJSONBuilder", "BoyoLoRAJSONBuilder",
"BoyoLoRAPairedLoader", "BoyoLoRAPairedLoader",
"BoyoLoRAPathForwarder",
"BoyoLoadImageList", "BoyoLoadImageList",
"BoyoLoopCollector", "BoyoLoopCollector",
"BoyoLoopImageSaver", "BoyoLoopImageSaver",
@ -6085,6 +6151,79 @@
"title_aux": "ComfyUI-EreNodes" "title_aux": "ComfyUI-EreNodes"
} }
], ],
"https://github.com/EricRollei/Comfy_HunyuanImage3": [
[
"HunyuanImage3FullGPULoader",
"HunyuanImage3FullLoader",
"HunyuanImage3Generate",
"HunyuanImage3GenerateLarge",
"HunyuanImage3QuantizedLoader",
"HunyuanImage3Unload"
],
{
"title_aux": "Comfy_HunyuanImage3"
}
],
"https://github.com/EricRollei/Eric_Image_Processing_Nodes": [
[
"AdaptiveFrequencyFilter",
"AdaptiveImageEnhancement",
"AdvancedFilmGrainNode",
"AutoDenoiseComparisonNode",
"AutoDenoiseNode",
"BM3D Film Grain Denoising",
"BM3DComparisonNode",
"BM3DDeblurNode",
"BM3DDenoiseNode",
"BatchImageProcessing",
"ComprehensiveComparison",
"DeepImagePriorNode",
"DiffBIRRestorationNode",
"DnCNNDenoiseNode",
"FGANNFilmGrainDenoiseNode",
"FilmGrainAnalysis",
"FilmGrainAnalysisNode",
"FilmGrainProcessing",
"FrequencyEnhancementPresets",
"GPUWaveletDenoiseNode",
"HomomorphicFilter",
"ImageQualityAssessment",
"LB-CLAHE",
"LightweightCNNDenoiseNode",
"MemoryOptimization",
"Multi-Scale Retinex",
"MultiscaleFFTEnhancement",
"NAFNetDenoiseNode",
"Noise2VoidNode",
"NoiseDABatchNode",
"NoiseDANode",
"NonLocalMeans",
"NonLocalMeansSimple",
"PhasePreservingEnhancement",
"ProfessionalRestorationPipeline",
"RealBM3DDeblurNode",
"RealBM3DNode",
"RestormerRestorationNode",
"RichardsonLucy",
"RichardsonLucyGPU",
"RichardsonLucySimple",
"SCUNetBatchRestoration",
"SCUNetRestoration",
"Smart Sharpening",
"SmartWorkflowNode",
"StationaryWaveletDenoise",
"SwinIRBatch",
"SwinIRRestoration",
"SwinIRSharpnessBoostNode",
"WaveletDenoise",
"WienerFilter",
"WienerFilterCompare",
"WienerFilterSNR"
],
{
"title_aux": "Eric_Image_Processing_Nodes"
}
],
"https://github.com/EricRollei/Local_LLM_Prompt_Enhancer": [ "https://github.com/EricRollei/Local_LLM_Prompt_Enhancer": [
[ [
"EricImageToImagePromptExpander", "EricImageToImagePromptExpander",
@ -7089,26 +7228,6 @@
"title_aux": "ComfyUI-SD3-Powerlab" "title_aux": "ComfyUI-SD3-Powerlab"
} }
], ],
"https://github.com/GACLove/ComfyUI-Lightx2vWrapper": [
[
"LightX2VConfigCombiner",
"LightX2VConfigCombinerV2",
"LightX2VInferenceConfig",
"LightX2VLoRALoader",
"LightX2VMemoryOptimization",
"LightX2VModularInference",
"LightX2VModularInferenceV2",
"LightX2VQuantization",
"LightX2VTalkObjectInput",
"LightX2VTalkObjectsCombiner",
"LightX2VTalkObjectsFromFiles",
"LightX2VTalkObjectsFromJSON",
"LightX2VTeaCache"
],
{
"title_aux": "ComfyUI-Lightx2vWrapper"
}
],
"https://github.com/GACLove/ComfyUI-VFI": [ "https://github.com/GACLove/ComfyUI-VFI": [
[ [
"CalculateLoadedFPS", "CalculateLoadedFPS",
@ -7898,9 +8017,8 @@
], ],
"https://github.com/Haoming02/comfyui-diffusion-cg": [ "https://github.com/Haoming02/comfyui-diffusion-cg": [
[ [
"Normalization", "Diffusion CG",
"Recenter", "Disable CG"
"Recenter XL"
], ],
{ {
"title_aux": "Diffusion CG" "title_aux": "Diffusion CG"
@ -7916,7 +8034,7 @@
], ],
"https://github.com/Haoming02/comfyui-resharpen": [ "https://github.com/Haoming02/comfyui-resharpen": [
[ [
"Resharpen" "ReSharpen"
], ],
{ {
"title_aux": "ComfyUI ReSharpen" "title_aux": "ComfyUI ReSharpen"
@ -8149,7 +8267,9 @@
"https://github.com/IAMCCS/IAMCCS-nodes": [ "https://github.com/IAMCCS/IAMCCS-nodes": [
[ [
"IAMCCS_ModelWithLoRA", "IAMCCS_ModelWithLoRA",
"IAMCCS_WanLoRAStack" "IAMCCS_WanLoRAStack",
"IAMCCS_WanLoRAStackModelIO",
"IAMCCS_qwenloraloader"
], ],
{ {
"title_aux": "IAMCCS-nodes" "title_aux": "IAMCCS-nodes"
@ -8273,6 +8393,22 @@
"title_aux": "ComfyUI-VideoDescription" "title_aux": "ComfyUI-VideoDescription"
} }
], ],
"https://github.com/IamCreateAI/ComfyUI-Animon": [
[
"AnimonImageToVideoNode",
"AnimonKeyNode",
"AnimonStartEndToVideoNode",
"AnimonUploadImageFromFileNode",
"AnimonUploadImageFromTensorNode",
"AnimonUploadVideoFromBytesNode",
"AnimonUploadVideoFromFileNode",
"AnimonUploadVideoFromTensorNode",
"AnimonUpscaleVideoNode"
],
{
"title_aux": "ComfyUI-Animon"
}
],
"https://github.com/IamCreateAI/Ruyi-Models": [ "https://github.com/IamCreateAI/Ruyi-Models": [
[ [
"Ruyi_EnhanceAVideo", "Ruyi_EnhanceAVideo",
@ -11264,6 +11400,12 @@
"title_aux": "ComfyUI-OneForOne" "title_aux": "ComfyUI-OneForOne"
} }
], ],
"https://github.com/MergeBlockWeighted/fo_ComfyUI": [
[
"MergeBlockWeighted"
],
{}
],
"https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": [ "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": [
[ [
"VideoReportData", "VideoReportData",
@ -11446,6 +11588,26 @@
"title_aux": "ComfyUI-LightVAE" "title_aux": "ComfyUI-LightVAE"
} }
], ],
"https://github.com/ModelTC/ComfyUI-Lightx2vWrapper": [
[
"LightX2VConfigCombiner",
"LightX2VConfigCombinerV2",
"LightX2VInferenceConfig",
"LightX2VLoRALoader",
"LightX2VMemoryOptimization",
"LightX2VModularInference",
"LightX2VModularInferenceV2",
"LightX2VQuantization",
"LightX2VTalkObjectInput",
"LightX2VTalkObjectsCombiner",
"LightX2VTalkObjectsFromFiles",
"LightX2VTalkObjectsFromJSON",
"LightX2VTeaCache"
],
{
"title_aux": "ComfyUI-Lightx2vWrapper"
}
],
"https://github.com/MohammadAboulEla/ComfyUI-iTools": [ "https://github.com/MohammadAboulEla/ComfyUI-iTools": [
[ [
"iToolsAddOverlay", "iToolsAddOverlay",
@ -12812,6 +12974,18 @@
"title_aux": "ComfyUI-AdvancedLivePortrait" "title_aux": "ComfyUI-AdvancedLivePortrait"
} }
], ],
"https://github.com/PozzettiAndrea/ComfyUI-AnyTop": [
[
"AnyTopConditionLoader",
"AnyTopExportBVH",
"AnyTopGenerateMotion",
"AnyTopMotionPreview",
"DownLoadAnyTopModel"
],
{
"title_aux": "ComfyUI-AnyTop"
}
],
"https://github.com/PozzettiAndrea/ComfyUI-DepthAnythingV3": [ "https://github.com/PozzettiAndrea/ComfyUI-DepthAnythingV3": [
[ [
"DA3_CreateCameraParams", "DA3_CreateCameraParams",
@ -12822,11 +12996,11 @@
"DA3_Save3DGaussians", "DA3_Save3DGaussians",
"DA3_SavePointCloud", "DA3_SavePointCloud",
"DA3_To3DGaussians", "DA3_To3DGaussians",
"DA3_ToMesh",
"DA3_ToPointCloud", "DA3_ToPointCloud",
"DepthAnythingV3_3D", "DepthAnythingV3_3D",
"DepthAnythingV3_Advanced", "DepthAnythingV3_Advanced",
"DepthAnythingV3_MultiView", "DepthAnythingV3_MultiView",
"DepthAnythingV3_MultiView_3D",
"DepthAnything_V3", "DepthAnything_V3",
"DownloadAndLoadDepthAnythingV3Model" "DownloadAndLoadDepthAnythingV3Model"
], ],
@ -12836,22 +13010,21 @@
], ],
"https://github.com/PozzettiAndrea/ComfyUI-GeometryPack": [ "https://github.com/PozzettiAndrea/ComfyUI-GeometryPack": [
[ [
"GeomPackBlenderRemeshWithTexture", "GeomPackAppendMesh",
"GeomPackBlenderUV", "GeomPackBlenderUV",
"GeomPackBooleanOp", "GeomPackBooleanOp",
"GeomPackCheckNormals", "GeomPackCheckNormals",
"GeomPackCombineMeshes", "GeomPackCombineMeshes",
"GeomPackCombineMeshesWeighted",
"GeomPackComputeNormals", "GeomPackComputeNormals",
"GeomPackComputeSDF",
"GeomPackCreatePrimitive", "GeomPackCreatePrimitive",
"GeomPackDetectSelfIntersections", "GeomPackDetectSelfIntersections",
"GeomPackExampleNode", "GeomPackExampleNode",
"GeomPackExtractSkeleton", "GeomPackExtractSkeleton",
"GeomPackFillHoles", "GeomPackFillHoles",
"GeomPackFilterComponents",
"GeomPackFixIntersectionsByPerturbation",
"GeomPackFixIntersectionsByRemoval",
"GeomPackFixNormals", "GeomPackFixNormals",
"GeomPackFixSelfIntersectionsByPerturbation",
"GeomPackFixSelfIntersectionsByRemoval",
"GeomPackLibiglARAP", "GeomPackLibiglARAP",
"GeomPackLibiglHarmonic", "GeomPackLibiglHarmonic",
"GeomPackLibiglLSCM", "GeomPackLibiglLSCM",
@ -12859,30 +13032,32 @@
"GeomPackLoadMeshBatch", "GeomPackLoadMeshBatch",
"GeomPackLoadMeshBlend", "GeomPackLoadMeshBlend",
"GeomPackLoadMeshFBX", "GeomPackLoadMeshFBX",
"GeomPackMarkBoundaryEdges", "GeomPackMeshFromSkeleton",
"GeomPackMeshDistance",
"GeomPackMeshInfo", "GeomPackMeshInfo",
"GeomPackMeshQuality",
"GeomPackMeshToMeshDistance",
"GeomPackMeshToPointCloud", "GeomPackMeshToPointCloud",
"GeomPackPreviewBoundingBoxesVTK", "GeomPackPointCloudToMesh",
"GeomPackPointToMeshDistance",
"GeomPackPreviewMesh", "GeomPackPreviewMesh",
"GeomPackPreviewMeshUV", "GeomPackPreviewMeshUV",
"GeomPackPreviewMeshVTK", "GeomPackPreviewMeshVTK",
"GeomPackPreviewMeshVTKFields", "GeomPackPreviewMeshVTKEdges",
"GeomPackPreviewMeshVTKFilters", "GeomPackPreviewMeshVTKPointCloud",
"GeomPackPreviewMeshVTKHidableMenu", "GeomPackPreviewMeshVTKSplit",
"GeomPackPreviewMeshVTKTextured", "GeomPackPreviewMeshVTKWithNormals",
"GeomPackPreviewMeshVTKWithTexture",
"GeomPackReconstructSurface", "GeomPackReconstructSurface",
"GeomPackRefineMesh", "GeomPackRefineMesh",
"GeomPackRemesh", "GeomPackRemesh",
"GeomPackRemeshSelfIntersections", "GeomPackRemeshSelfIntersections",
"GeomPackRemeshUV",
"GeomPackSaveMesh", "GeomPackSaveMesh",
"GeomPackSkeletonToLines", "GeomPackTextureToGeometry",
"GeomPackSkeletonToMesh", "GeomPackTransformMesh",
"GeomPackSplitComponents", "GeomPackUVUnwrap",
"GeomPackStripMeshAdjacency", "GeomPackVisualizeNormalField",
"GeomPackTransform", "GeomPackVisualizeSkeleton",
"GeomPackVisualizeNormals",
"GeomPackXAtlasRemeshWithTexture",
"GeomPackXAtlasUVUnwrap" "GeomPackXAtlasUVUnwrap"
], ],
{ {
@ -13626,6 +13801,7 @@
], ],
"https://github.com/S4MUEL-404/ComfyUI-PromptsO": [ "https://github.com/S4MUEL-404/ComfyUI-PromptsO": [
[ [
"\ud83d\udc80S4AnyToString",
"\ud83d\udc80S4ImageWithGemini", "\ud83d\udc80S4ImageWithGemini",
"\ud83d\udc80S4ImageWithGrok", "\ud83d\udc80S4ImageWithGrok",
"\ud83d\udc80S4PromptsCombine", "\ud83d\udc80S4PromptsCombine",
@ -14370,7 +14546,8 @@
[ [
"Simple Readable Metadata Text Viewer-SG", "Simple Readable Metadata Text Viewer-SG",
"SimpleReadableMetadataMAXSG", "SimpleReadableMetadataMAXSG",
"SimpleReadableMetadataSG" "SimpleReadableMetadataSG",
"SimpleReadableMetadataSaveTextSG"
], ],
{ {
"title_aux": "ComfyUI-Simple_Readable_Metadata-SG" "title_aux": "ComfyUI-Simple_Readable_Metadata-SG"
@ -17292,6 +17469,21 @@
"title_aux": "ControlFlowUtils" "title_aux": "ControlFlowUtils"
} }
], ],
"https://github.com/WASasquatch/ComfyUI_LMStudio_EasyQuery": [
[
"WASLMStudioCaption",
"WASLMStudioCaptionDataset",
"WASLMStudioCaptionDatasetCustom",
"WASLMStudioChat",
"WASLMStudioModel",
"WASLMStudioOptions",
"WASLMStudioQuery",
"WASLoadImageDirectory"
],
{
"title_aux": "WAS LMStudio Easy-Query"
}
],
"https://github.com/WASasquatch/ComfyUI_Preset_Merger": [ "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [
[ [
"Preset_Model_Merge" "Preset_Model_Merge"
@ -18021,12 +18213,14 @@
"ApplyStyleModelEnhanced", "ApplyStyleModelEnhanced",
"ApplyStyleModelSimple", "ApplyStyleModelSimple",
"BatchImagesNode", "BatchImagesNode",
"FrameCalculator",
"FrameCalculatorAudio", "FrameCalculatorAudio",
"FrameCalculatorVideo",
"GetResolutionImage",
"InpaintConditioningNode", "InpaintConditioningNode",
"InpaintFluxKontextConditioning", "InpaintFluxKontextConditioning",
"Prepimg2Vid", "Prepimg2Vid",
"RemoveBackgroundNode", "RemoveBackgroundNode",
"ShowAnyDataType",
"StitchImages", "StitchImages",
"StitchImagesAndMask", "StitchImagesAndMask",
"TextFieldNode", "TextFieldNode",
@ -19995,6 +20189,39 @@
"title_aux": "ComfyUI-Sa2VA-XJ" "title_aux": "ComfyUI-Sa2VA-XJ"
} }
], ],
"https://github.com/alexjx/ComfyUI-XJNodes": [
[
"XJFloatRangeList",
"XJImageGrid",
"XJImageListFilter",
"XJImageRandomTransform",
"XJImageScaleCalc",
"XJImageScaleMegapixel",
"XJImageTransform",
"XJIntOffset",
"XJIntegerDecrement",
"XJIntegerIncrement",
"XJJSONExtractor",
"XJLoadImageByPath",
"XJLoadImageWithMetadata",
"XJLoadImagesFromDirBatch",
"XJLoadImagesFromDirList",
"XJOneImageFromBatch",
"XJRandomImagesFromBatch",
"XJRandomTextFromFile",
"XJRandomTextFromList",
"XJSamplerAdapter",
"XJSaveImageWithMetadata",
"XJSchedulerAdapter",
"XJStringPass",
"XJSupirParameters",
"XJTextFileInfo",
"XJTextListFromFile"
],
{
"title_aux": "ComfyUI-XJNodes"
}
],
"https://github.com/alibof96/ComfyUI-DownscaleIRN": [ "https://github.com/alibof96/ComfyUI-DownscaleIRN": [
[ [
"IRNDownscale" "IRNDownscale"
@ -22883,6 +23110,28 @@
"title_aux": "ComfyUI-DiT360" "title_aux": "ComfyUI-DiT360"
} }
], ],
"https://github.com/cedarconnor/ComfyUI-DreamCube": [
[
"ApplyDepthToCubemapFace",
"BatchCubemapDepth",
"CreateEmptyCubemap",
"CubemapInfo",
"CubemapPreview",
"CubemapSeamValidator",
"CubemapToEquirect",
"EnforceDepthConsistency",
"EquirectToCubemap",
"ExtractCubemapFace",
"ExtractDepthChannel",
"InsertCubemapFace",
"MergeCubemapDepth",
"NormalizeCubemapDepth",
"SmoothCubemapDepth"
],
{
"title_aux": "ComfyUI-DreamCube"
}
],
"https://github.com/cedarconnor/ComfyUI-OmniX": [ "https://github.com/cedarconnor/ComfyUI-OmniX": [
[ [
"OmniX_PanoPerception_Depth", "OmniX_PanoPerception_Depth",
@ -25277,7 +25526,8 @@
"WanVaceToVideo", "WanVaceToVideo",
"WebcamCapture", "WebcamCapture",
"unCLIPCheckpointLoader", "unCLIPCheckpointLoader",
"unCLIPConditioning" "unCLIPConditioning",
"wanBlockSwap"
], ],
{ {
"title_aux": "ComfyUI" "title_aux": "ComfyUI"
@ -26855,6 +27105,14 @@
"title_aux": "ComfyUI Deadline Submission" "title_aux": "ComfyUI Deadline Submission"
} }
], ],
"https://github.com/dowa-git/comfyui-dowa": [
[
"DowaNavigationNode"
],
{
"title_aux": "comfyui-dowa"
}
],
"https://github.com/downlifted/ComfyUI_GROQ-PromptWizard": [ "https://github.com/downlifted/ComfyUI_GROQ-PromptWizard": [
[ [
"GroqAudioProcessor", "GroqAudioProcessor",
@ -28606,6 +28864,7 @@
[ [
"OnDemandCLIPLoader", "OnDemandCLIPLoader",
"OnDemandCheckpointLoader", "OnDemandCheckpointLoader",
"OnDemandCivitaiLikedLoraLoader",
"OnDemandControlNetLoader", "OnDemandControlNetLoader",
"OnDemandGGUFLoader", "OnDemandGGUFLoader",
"OnDemandLoraLoader", "OnDemandLoraLoader",
@ -28646,42 +28905,6 @@
"title_aux": "ComfyUI_llm_easyanimiate" "title_aux": "ComfyUI_llm_easyanimiate"
} }
], ],
"https://github.com/fredconex/ComfyUI-SongBloom": [
[
"SongBloomGenerate",
"SongBloomModelLoader"
],
{
"title_aux": "SongBloom"
}
],
"https://github.com/fredconex/ComfyUI-SoundFlow": [
[
"SoundFlow_Concatenator",
"SoundFlow_DuckCompressor",
"SoundFlow_Equalizer",
"SoundFlow_Fade",
"SoundFlow_GainPitchControl",
"SoundFlow_GetLength",
"SoundFlow_Mixer",
"SoundFlow_PreviewAudio",
"SoundFlow_SetLength",
"SoundFlow_SilenceTrimmer",
"SoundFlow_SimpleCompressor",
"SoundFlow_TrimAudio"
],
{
"title_aux": "ComfyUI-SoundFlow"
}
],
"https://github.com/fredconex/ComfyUI-SyncEdit": [
[
"SyncTextEditor"
],
{
"title_aux": "Sync Edit"
}
],
"https://github.com/fredhopp/comfyui-flipflopnodes": [ "https://github.com/fredhopp/comfyui-flipflopnodes": [
[ [
"FF Group Positioner", "FF Group Positioner",
@ -28769,6 +28992,16 @@
"title_aux": "ComfyUI_pose_inter" "title_aux": "ComfyUI_pose_inter"
} }
], ],
"https://github.com/fuselayer/comfyui-lite-tracker": [
[
"LiteTracker_LoadModel",
"LiteTracker_Track",
"RectEditor"
],
{
"title_aux": "comfyui-lite-tracker"
}
],
"https://github.com/fuselayer/comfyui-mosaic-blur": [ "https://github.com/fuselayer/comfyui-mosaic-blur": [
[ [
"ImageMosaic" "ImageMosaic"
@ -28914,6 +29147,7 @@
"PerturbedAttentionDelta", "PerturbedAttentionDelta",
"PromptShuffler", "PromptShuffler",
"QuantileMatchScaling", "QuantileMatchScaling",
"ReflectionPadding",
"SADAInfo", "SADAInfo",
"SADAModelPatch", "SADAModelPatch",
"SDXL_LoRA_BlockSlider_Loader", "SDXL_LoRA_BlockSlider_Loader",
@ -29287,6 +29521,9 @@
"HunyuanVideoLoraTrainer_fal", "HunyuanVideoLoraTrainer_fal",
"Ideogramv3_fal", "Ideogramv3_fal",
"Imagen4Preview_fal", "Imagen4Preview_fal",
"InfinityStarTextToVideo_fal",
"Kling21Pro_fal",
"Kling25TurboPro_fal",
"KlingMaster_fal", "KlingMaster_fal",
"KlingPro10_fal", "KlingPro10_fal",
"KlingPro16_fal", "KlingPro16_fal",
@ -29301,6 +29538,7 @@
"MiniMax_fal", "MiniMax_fal",
"NanoBananaEdit_fal", "NanoBananaEdit_fal",
"NanoBananaTextToImage_fal", "NanoBananaTextToImage_fal",
"PixverseSwapNode_fal",
"QwenImageEdit_fal", "QwenImageEdit_fal",
"Recraft_fal", "Recraft_fal",
"ReveTextToImage_fal", "ReveTextToImage_fal",
@ -29312,12 +29550,15 @@
"SeedreamV4Edit_fal", "SeedreamV4Edit_fal",
"Seedvr_Upscale_Video_fal", "Seedvr_Upscale_Video_fal",
"Seedvr_Upscaler_fal", "Seedvr_Upscaler_fal",
"Sora2Pro_fal",
"Topaz_Upscale_Video_fal", "Topaz_Upscale_Video_fal",
"UploadFile_fal", "UploadFile_fal",
"UploadVideo_fal", "UploadVideo_fal",
"Upscaler_fal", "Upscaler_fal",
"VLM_fal", "VLM_fal",
"Veo2ImageToVideo_fal", "Veo2ImageToVideo_fal",
"Veo31Fast_fal",
"Veo31_fal",
"Veo3_fal", "Veo3_fal",
"VideoUpscaler_fal", "VideoUpscaler_fal",
"Wan2214b_animate_move_character_fal", "Wan2214b_animate_move_character_fal",
@ -30358,6 +30599,7 @@
"WWAA_PromptWriter", "WWAA_PromptWriter",
"WWAA_SearchReplaceMulti", "WWAA_SearchReplaceMulti",
"WWAA_SearchReplaceText", "WWAA_SearchReplaceText",
"WWAA_SlicedArt",
"WWAA_Switch_Int", "WWAA_Switch_Int",
"WWAA_VideoResolution" "WWAA_VideoResolution"
], ],
@ -30462,6 +30704,14 @@
"title_aux": "ComfyUI-MusePose-Remaster" "title_aux": "ComfyUI-MusePose-Remaster"
} }
], ],
"https://github.com/hua1995116/comfyui_goenhance_ffmpeg_wm": [
[
"GOENHANCE_FFmpegWatermark"
],
{
"title_aux": "comfyui_goenhance_ffmpeg_wm"
}
],
"https://github.com/huagetai/ComfyUI-Gaffer": [ "https://github.com/huagetai/ComfyUI-Gaffer": [
[ [
"ApplyICLight", "ApplyICLight",
@ -30673,6 +30923,15 @@
"title_aux": "ComfyUI Text Remove Node" "title_aux": "ComfyUI Text Remove Node"
} }
], ],
"https://github.com/huyl3-cpu/comfyui-sortlist": [
[
"sort_list_string",
"video_dir_combiner"
],
{
"title_aux": "comfyui-huyl2-nodes"
}
],
"https://github.com/hvppycoding/comfyui-json-prompt-renderer": [ "https://github.com/hvppycoding/comfyui-json-prompt-renderer": [
[ [
"ExtractJSON", "ExtractJSON",
@ -30702,6 +30961,7 @@
], ],
"https://github.com/hw5511/comfyui_hf_upscaler_loader": [ "https://github.com/hw5511/comfyui_hf_upscaler_loader": [
[ [
"GGUFModelLoaderFromHF",
"UpscaleModelLoaderFromHF" "UpscaleModelLoaderFromHF"
], ],
{ {
@ -31185,6 +31445,7 @@
"IG1AspectRatioProperties", "IG1AspectRatioProperties",
"IG1FluxReport", "IG1FluxReport",
"IG1ImageSelector", "IG1ImageSelector",
"IG1LoadImage",
"IG1QwenImageNativesResolutions", "IG1QwenImageNativesResolutions",
"IG1Resolution", "IG1Resolution",
"IG1ResolutionAdvisor", "IG1ResolutionAdvisor",
@ -37607,7 +37868,8 @@
], ],
"https://github.com/mercu-lore/-Multiple-Angle-Camera-Control": [ "https://github.com/mercu-lore/-Multiple-Angle-Camera-Control": [
[ [
"CameraControlPromptNode" "CameraControlPromptNode",
"RelightingPromptNode"
], ],
{ {
"title_aux": "Multiple-Angle-Camera-Control" "title_aux": "Multiple-Angle-Camera-Control"
@ -38548,6 +38810,14 @@
"title_aux": "comfyui-usetaesd" "title_aux": "comfyui-usetaesd"
} }
], ],
"https://github.com/neonr-0/ComfyUI-PixelConstrainedScaler": [
[
"PixelConstrainedScaler"
],
{
"title_aux": "ComfyUI-PixelConstrainedScaler"
}
],
"https://github.com/neph1/comfyui-smooth-step-lora-loader": [ "https://github.com/neph1/comfyui-smooth-step-lora-loader": [
[ [
"Smooth_Step_Lora_Loader" "Smooth_Step_Lora_Loader"
@ -43421,6 +43691,14 @@
"title_aux": "Skycoder Tools" "title_aux": "Skycoder Tools"
} }
], ],
"https://github.com/slahiri/ComfyUI-AI-Photography-Toolkit": [
[
"SID_AIPromptGenerator"
],
{
"title_aux": "ComfyUI-AI-Photography-Toolkit"
}
],
"https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": [ "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": [
[ [
"SmartFormatString", "SmartFormatString",
@ -44324,6 +44602,15 @@
"title_aux": "comfyui-lsnet" "title_aux": "comfyui-lsnet"
} }
], ],
"https://github.com/speige/ComfyUI_Make-It-Animatable": [
[
"MakeItAnimatableRig",
"MakeItAnimatableRigGS"
],
{
"title_aux": "ComfyUI_Make-It-Animatable"
}
],
"https://github.com/spinagon/ComfyUI-seam-carving": [ "https://github.com/spinagon/ComfyUI-seam-carving": [
[ [
"SeamCarving" "SeamCarving"
@ -44768,6 +45055,15 @@
"title_aux": "ComfyUI-RetroDiffusion-API-Node" "title_aux": "ComfyUI-RetroDiffusion-API-Node"
} }
], ],
"https://github.com/swan7-py/ComfyUI-ImageAlphaCrop": [
[
"ImageAlphaCrop",
"ImageAlphaCropAdvanced"
],
{
"title_aux": "ComfyUI-ImageAlphaCrop"
}
],
"https://github.com/sweetndata/ComfyUI-Image-Harmonizer": [ "https://github.com/sweetndata/ComfyUI-Image-Harmonizer": [
[ [
"harmonizer" "harmonizer"
@ -46220,10 +46516,12 @@
"https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [ "https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [
[ [
"API Request Node", "API Request Node",
"CombineImageAudioToVideoNode",
"Empty Image Node", "Empty Image Node",
"JSON Builder Node", "JSON Builder Node",
"JSON Parser Node", "JSON Parser Node",
"JsonBuilderNode", "JsonBuilderNode",
"LoadAudioFromUrlNode",
"LoadImageFromUrlNode", "LoadImageFromUrlNode",
"MultilinePromptNode", "MultilinePromptNode",
"OSSUploadNode", "OSSUploadNode",
@ -46671,6 +46969,7 @@
"https://github.com/walke2019/ComfyUI-GGUF-VLM": [ "https://github.com/walke2019/ComfyUI-GGUF-VLM": [
[ [
"LocalTextModelLoader", "LocalTextModelLoader",
"MemoryManagerNode",
"MultiImageAnalysis", "MultiImageAnalysis",
"NexaServiceStatus", "NexaServiceStatus",
"RemoteAPIConfig", "RemoteAPIConfig",
@ -46687,6 +46986,15 @@
"title_aux": "Qwen2.5-VL GGUF Nodes" "title_aux": "Qwen2.5-VL GGUF Nodes"
} }
], ],
"https://github.com/wallen0322/ComfyUI-AE-Animation": [
[
"AEAnimationCore",
"AERender"
],
{
"title_aux": "ComfyUI-AE-Animation"
}
],
"https://github.com/wallen0322/ComfyUI-QI-QwenEditSafe": [ "https://github.com/wallen0322/ComfyUI-QI-QwenEditSafe": [
[ [
"QI_DyPE", "QI_DyPE",
@ -46707,6 +47015,16 @@
"title_aux": "ComfyUI-SageAttention3" "title_aux": "ComfyUI-SageAttention3"
} }
], ],
"https://github.com/wallen0322/ComfyUI-TTM-WAN22": [
[
"WanTTMConditioning",
"WanTTMSampler",
"WanTTMSamplerComplete"
],
{
"title_aux": "ComfyUI-TTM-WAN22"
}
],
"https://github.com/wallen0322/ComfyUI-Wan22FMLF": [ "https://github.com/wallen0322/ComfyUI-Wan22FMLF": [
[ [
"WanAdvancedExtractLastFrames", "WanAdvancedExtractLastFrames",
@ -47502,6 +47820,21 @@
"title_aux": "Steganos Node for ComfyUI" "title_aux": "Steganos Node for ComfyUI"
} }
], ],
"https://github.com/wzyfromhust/ComfyUI_SAM2UltraV2": [
[
"SAM2UltraV2: Crop",
"SAM2UltraV2: LoadModel",
"SAM2UltraV2: MaskKeepLargestN",
"SAM2UltraV2: UpperBody"
],
{
"author": "chflame",
"description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.",
"nickname": "LayerStyle",
"title": "LayerStyle",
"title_aux": "ComfyUI_SAM2UltraV2"
}
],
"https://github.com/x0x0b/ComfyUI-PromptHistoryGallery": [ "https://github.com/x0x0b/ComfyUI-PromptHistoryGallery": [
[ [
"PromptHistoryInput" "PromptHistoryInput"
@ -48111,6 +48444,16 @@
"title_aux": "ComfyUI-YCNodes" "title_aux": "ComfyUI-YCNodes"
} }
], ],
"https://github.com/yichengup/ComfyUI-YCNodes_Toolkit": [
[
"ycBBoxBridge",
"ycCanvasBBox",
"ycimagebrushmask"
],
{
"title_aux": "ComfyUI-YCNodes_Toolkit"
}
],
"https://github.com/yichengup/ComfyUI_SwiftCut": [ "https://github.com/yichengup/ComfyUI_SwiftCut": [
[ [
"SelectImages", "SelectImages",
@ -49057,6 +49400,7 @@
"TextPreview", "TextPreview",
"TorchCompileModelAdvanced", "TorchCompileModelAdvanced",
"UpscaleImageWithModelIfNeed", "UpscaleImageWithModelIfNeed",
"VolcanoArkImageEditNode",
"VolcanoImageEditNode", "VolcanoImageEditNode",
"VolcanoOutpaintingNode" "VolcanoOutpaintingNode"
], ],
@ -49433,9 +49777,6 @@
"SDXLAspectRatio" "SDXLAspectRatio"
], ],
{ {
"preemptions": [
"SAMLoader"
],
"title_aux": "SDXLCustomAspectRatio" "title_aux": "SDXLCustomAspectRatio"
} }
], ],

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,115 @@
{ {
"custom_nodes": [ "custom_nodes": [
{
"author": "frost-byte",
"title": "fb-tools",
"reference": "https://github.com/frost-byte/fbTools",
"files": [
"https://github.com/frost-byte/fbTools"
],
"install_type": "git-clone",
"description": "A collect of custom nodes for ComfyUI"
},
{
"author": "Aruntd008",
"title": "ComfyUI_blender_render",
"reference": "https://github.com/Aruntd008/ComfyUI_blender_render",
"files": [
"https://github.com/Aruntd008/ComfyUI_blender_render"
],
"install_type": "git-clone",
"description": "NODES: Blender Render (Auto-Setup)"
},
{
"author": "mertgoksel",
"title": "comfyui-noot-nodes [WIP]",
"reference": "https://github.com/mertgoksel/ComfyUI-Noot-Nodes",
"files": [
"https://github.com/mertgoksel/ComfyUI-Noot-Nodes"
],
"install_type": "git-clone",
"description": "Nodes i made to suit my needs, currently includes a tag randomizer and a stagedksampler which iterates sampler steps and upscaling."
},
{
"author": "egormly",
"title": "ComfyUI-EG_Tools [WIP]",
"reference": "https://github.com/egormly/ComfyUI-EG_Tools",
"files": [
"https://github.com/egormly/ComfyUI-EG_Tools"
],
"install_type": "git-clone",
"description": "Quality-of-life utility nodes for ComfyUI providing smart switches for dynamic data routing, path helpers for consistent file naming, and image utilities including Qwen vision model preparation.\nNOTE: The files in the repo are not organized."
},
{
"author": "huhu-tiger",
"title": "ComfyUI-RemoteDownload",
"reference": "https://github.com/huhu-tiger/ComfyUI-RemoteDownload",
"files": [
"https://github.com/huhu-tiger/ComfyUI-RemoteDownload"
],
"install_type": "git-clone",
"description": "NODES: LoadImageFromRemote"
},
{
"author": "zhupeter010903",
"title": "ComfyUI-prompt-library",
"reference": "https://github.com/zhupeter010903/ComfyUI-prompt-library",
"files": [
"https://github.com/zhupeter010903/ComfyUI-prompt-library"
],
"install_type": "git-clone",
"description": "NODES: Grouped Prompt Node, ..."
},
{
"author": "basenc",
"title": "Comfyui-Nodes-basenc [UNSAFE]",
"reference": "https://github.com/basenc/Comfyui-Nodes-basenc",
"files": [
"https://github.com/basenc/Comfyui-Nodes-basenc"
],
"install_type": "git-clone",
"description": "NODES: Custom OpenAI Chat Completion, Environment Variable, Eval, JSON Path Select, JSON Path Select, Wan Video Size, ... [w/This node pack has a vulnerability that allows arbitrary file contents to be read remotely.]"
},
{
"author": "jkaarlehto",
"title": "ComfyUI-GetWorkflowName [WIP]",
"reference": "https://github.com/jKaarlehto/ComfyUI-GetWorkflowName",
"files": [
"https://github.com/jKaarlehto/ComfyUI-GetWorkflowName"
],
"install_type": "git-clone",
"description": "Adds a node that outputs the workflow's name as a string\nNOTE: The files in the repo are not organized."
},
{
"author": "PozzettiAndrea",
"title": "ComfyUI-CameraAnalysis",
"reference": "https://github.com/PozzettiAndrea/ComfyUI-CameraAnalysis",
"files": [
"https://github.com/PozzettiAndrea/ComfyUI-CameraAnalysis"
],
"install_type": "git-clone",
"description": "Extracts camera intrinsic parameters from image EXIF data."
},
{
"author": "newraina",
"title": "comfyui-photoshop-v2 [WIP]",
"reference": "https://github.com/newraina/comfyui-photoshop-v2",
"files": [
"https://github.com/newraina/comfyui-photoshop-v2"
],
"install_type": "git-clone",
"description": "NODES: Photoshop ComfyUI Plugin, Send To Photoshop, ClipPass, modelPass, Photoshop RemoteConnection, ..."
},
{
"author": "eddyhhlure1Eddy",
"title": "ComfyUI-QwenImageWrapper [WIP]",
"reference": "https://github.com/eddyhhlure1Eddy/ComfyUI-QwenImageWrapper",
"files": [
"https://github.com/eddyhhlure1Eddy/ComfyUI-QwenImageWrapper"
],
"install_type": "git-clone",
"description": "Integrated Qwen-Image node for ComfyUI with all-in-one model loading, 4 LoRA slots, memory optimization via BlockSwap reducing VRAM usage by 30-60%, and multiple quantization options.\nNOTE: The files in the repo are not organized."
},
{ {
"author": "nohikomiso", "author": "nohikomiso",
"title": "ComfyUI-ImageFolderPicker [UNSAFE]", "title": "ComfyUI-ImageFolderPicker [UNSAFE]",
@ -19,7 +129,7 @@
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI node for batch image generation from text file prompts with configurable resolution, quantity, and model settings for Stable Diffusion workflows. (Description by CC)[w/This node pack has a vulnerability that allows arbitrary file contents to be read remotely.]" "description": "ComfyUI node for batch image generation from text file prompts with configurable resolution, quantity, and model settings for Stable Diffusion workflows. (Description by CC)[w/This node pack has a vulnerability that allows arbitrary file contents to be read remotely.]"
}, },
{ {
"author": "unphased", "author": "unphased",
"title": "code-nodes [UNSAFE]", "title": "code-nodes [UNSAFE]",
@ -149,7 +259,7 @@
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: Weight-Only Quantize (Linear)\nNOTE: The files in the repo are not organized." "description": "NODES: Weight-Only Quantize (Linear)\nNOTE: The files in the repo are not organized."
}, },
{ {
"author": "KXSR", "author": "KXSR",
"title": "ComfyUI-Easy-s3", "title": "ComfyUI-Easy-s3",
@ -1332,16 +1442,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: ModelMergeCombos\nNOTE: The files in the repo are not organized." "description": "NODES: ModelMergeCombos\nNOTE: The files in the repo are not organized."
}, },
{
"author": "Santat2023",
"title": "ComfyUiRagNodes",
"reference": "https://github.com/Santat2023/ComfyUiRagNodes",
"files": [
"https://github.com/Santat2023/ComfyUiRagNodes"
],
"install_type": "git-clone",
"description": "NODES: RAG KSampler Node, LLM Node, DB Load Node, ..."
},
{ {
"author": "lu64k", "author": "lu64k",
"title": "ks_nodes", "title": "ks_nodes",
@ -1482,16 +1582,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: WanVideo T5 Apply Soft Prefix" "description": "NODES: WanVideo T5 Apply Soft Prefix"
}, },
{
"author": "flybirdxx",
"title": "ComfyUI-SDMatte [WIP]",
"reference": "https://github.com/flybirdxx/ComfyUI-SDMatte",
"files": [
"https://github.com/flybirdxx/ComfyUI-SDMatte"
],
"install_type": "git-clone",
"description": "[a/SDMatte](https://github.com/vivoCameraResearch/SDMatte) is an interactive image matting method based on Stable Diffusion, developed by the vivo Camera Research team and accepted by ICCV 2025. This method leverages the powerful priors of pre-trained diffusion models and supports multiple visual prompts (points, boxes, masks) for accurately extracting target objects from natural images.\nThis plugin integrates SDMatte into ComfyUI, providing a simple and easy-to-use node interface focused on trimap-guided matting functionality with built-in VRAM optimization strategies.\nNOTE: The files in the repo are not organized."
},
{ {
"author": "NSFW-API", "author": "NSFW-API",
"title": "ComfyUI-WanSoftPrefix", "title": "ComfyUI-WanSoftPrefix",
@ -1683,16 +1773,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "This repository contains ComfyUI-Luna-Collection, a bespoke collection of custom nodes for ComfyUI, engineered for power, flexibility, and a efficient workflow. These tools are born from a collaborative project between a human architect and their AI muse, Luna.\nNOTE: The files in the repo are not organized." "description": "This repository contains ComfyUI-Luna-Collection, a bespoke collection of custom nodes for ComfyUI, engineered for power, flexibility, and a efficient workflow. These tools are born from a collaborative project between a human architect and their AI muse, Luna.\nNOTE: The files in the repo are not organized."
}, },
{
"author": "5agado",
"title": "Sagado Nodes for ComfyUI",
"reference": "https://github.com/5agado/ComfyUI-Sagado-Nodes",
"files": [
"https://github.com/5agado/ComfyUI-Sagado-Nodes"
],
"install_type": "git-clone",
"description": "NODES: Image Loader, Get Num Frames, Get Resolution Node, Video Loader"
},
{ {
"author": "Juste-Leo2", "author": "Juste-Leo2",
"title": "ComfyUI-Arduino [WIP]", "title": "ComfyUI-Arduino [WIP]",
@ -1783,26 +1863,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A ComfyUI custom node implementation of ByteDance's USO (Unified Style and Subject-Driven Generation) model, which enables advanced style transfer and subject preservation using FLUX.\nNOTE: The files in the repo are not organized." "description": "A ComfyUI custom node implementation of ByteDance's USO (Unified Style and Subject-Driven Generation) model, which enables advanced style transfer and subject preservation using FLUX.\nNOTE: The files in the repo are not organized."
}, },
{
"author": "Fabio Sarracino",
"title": "VibeVoice ComfyUI [NAME CONFLICT]",
"reference": "https://github.com/Enemyx-net/VibeVoice-ComfyUI",
"files": [
"https://github.com/Enemyx-net/VibeVoice-ComfyUI"
],
"install_type": "git-clone",
"description": "ComfyUI wrapper for Microsoft VibeVoice TTS model. Supports single speaker, multi-speaker, and text file loading"
},
{
"author": "chaserhkj",
"title": "Chaser's Custom Nodes",
"reference": "https://github.com/chaserhkj/ComfyUI-Chaser-nodes",
"files": [
"https://github.com/chaserhkj/ComfyUI-Chaser-nodes"
],
"install_type": "git-clone",
"description": "NODES: Upload image(s) to WebDAV, Upload video as WebM to WebDAV, Load image from WebDAV, Evaluate S-Expr with integer output, Evaluate S-Expr with float output"
},
{ {
"author": "numq", "author": "numq",
"title": "comfyui-camera-capture-node", "title": "comfyui-camera-capture-node",
@ -2023,16 +2083,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI FileTo64" "description": "ComfyUI FileTo64"
}, },
{
"author": "chaserhkj",
"title": "ComfyUI Chaser Custom Nodes",
"reference": "https://github.com/chaserhkj/ComfyUI-Chaser-nodes",
"files": [
"https://github.com/chaserhkj/ComfyUI-Chaser-nodes"
],
"install_type": "git-clone",
"description": "NODES: Upload image(s) to WebDAV, Upload video as WebM to WebDAV, Load image from WebDAV"
},
{ {
"author": "LittleTechPomp", "author": "LittleTechPomp",
"title": "comfyui-pixxio", "title": "comfyui-pixxio",
@ -2183,16 +2233,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "Automation for ComfyUI Web UI [w/This nodepack provides functionality to access files through an endpoint.]" "description": "Automation for ComfyUI Web UI [w/This nodepack provides functionality to access files through an endpoint.]"
}, },
{
"author": "kblueleaf",
"title": "HDM [WIP]",
"reference": "https://github.com/KohakuBlueleaf/HDM-ext",
"files": [
"https://github.com/KohakuBlueleaf/HDM-ext"
],
"install_type": "git-clone",
"description": "HDM(HomeDiffusionModel) Extension"
},
{ {
"author": "Rizzlord", "author": "Rizzlord",
"title": "ComfyUI-SeqTex", "title": "ComfyUI-SeqTex",
@ -2454,16 +2494,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: Add Numbers, Float to String, Input Text, Show Text, Combine Strings, Text Appender, SSchl Text Encoder, Character, Connector" "description": "NODES: Add Numbers, Float to String, Input Text, Show Text, Combine Strings, Text Appender, SSchl Text Encoder, Character, Connector"
}, },
{
"author": "KY-2000",
"title": "comfyui-ksampler-tester-loop",
"reference": "https://github.com/KY-2000/comfyui-ksampler-tester-loop",
"files": [
"https://github.com/KY-2000/comfyui-ksampler-tester-loop"
],
"install_type": "git-clone",
"description": "Batch samplers, schedulers, cfg, shift and steps tester custom node, automatic looping functionality for Ksampler node"
},
{ {
"author": "xgfone", "author": "xgfone",
"title": "ComfyUI_RasterCardMaker", "title": "ComfyUI_RasterCardMaker",
@ -2944,16 +2974,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: Audio Duration, Audio Overlay (Mix)" "description": "NODES: Audio Duration, Audio Overlay (Mix)"
}, },
{
"author": "Baverne",
"title": "TiledWan ComfyUI Node Set [WIP]",
"reference": "https://github.com/Baverne/comfyUI-TiledWan",
"files": [
"https://github.com/Baverne/comfyUI-TiledWan"
],
"install_type": "git-clone",
"description": "A custom node set for ComfyUI that provides tiled processing capabilities.\nNOTE: The files in the repo are not organized."
},
{ {
"author": "soliton", "author": "soliton",
"title": "Watermark Detection YOLO Custom Node [WIP]", "title": "Watermark Detection YOLO Custom Node [WIP]",
@ -3575,16 +3595,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: WAN Optimal Resolution Selector, WAN Show Image Dimensions" "description": "NODES: WAN Optimal Resolution Selector, WAN Show Image Dimensions"
}, },
{
"author": "iacoposk8",
"title": "ComfyUI XOR Pickle Nodes",
"reference": "https://github.com/iacoposk8/xor_pickle_nodes",
"files": [
"https://github.com/iacoposk8/xor_pickle_nodes"
],
"install_type": "git-clone",
"description": "Two custom nodes for ComfyUI that allow you to encrypt and decrypt Python objects using simple XOR encryption with pickle."
},
{ {
"author": "yamanacn", "author": "yamanacn",
"title": "comfyui_qwen_object [WIP]", "title": "comfyui_qwen_object [WIP]",
@ -3675,16 +3685,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: FlowMatchSigmas" "description": "NODES: FlowMatchSigmas"
}, },
{
"author": "casterpollux",
"title": "MiniMax-bmo",
"reference": "https://github.com/casterpollux/MiniMax-bmo",
"files": [
"https://github.com/casterpollux/MiniMax-bmo"
],
"install_type": "git-clone",
"description": "ComfyUI MiniMax Remover Node"
},
{ {
"author": "franky519", "author": "franky519",
"title": "ComfyUI Face Four Image Matcher [WIP]", "title": "ComfyUI Face Four Image Matcher [WIP]",
@ -3825,16 +3825,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "This custom node for ComfyUI provides a markdown renderer to display formatted text and notes within your workflow." "description": "This custom node for ComfyUI provides a markdown renderer to display formatted text and notes within your workflow."
}, },
{
"author": "IsItDanOrAi",
"title": "ComfyUI-exLoadout [WIP]",
"reference": "https://github.com/IsItDanOrAi/ComfyUI-exLoadout",
"files": [
"https://github.com/IsItDanOrAi/ComfyUI-exLoadout"
],
"install_type": "git-clone",
"description": "exLoadout is a suite of lightweight ComfyUI custom nodes that let you define and switch between full loadouts stored in an Excel sheet. A loadout could include any node inputs that expect string values—models (checkpoints, CLIP, VAE, ControlNets, LoRAs, UNets), numeric or text variables (CFG, sampler names, scheduler types, etc.)—all pulled from a row in your sheet. By selecting a row, you instantly apply all of its settings in your workflow, with builtin support for editing and reading those cells right inside the UI."
},
{ {
"author": "grokuku", "author": "grokuku",
"title": "ComfyUI-Holaf-Terminal [UNSAFE]", "title": "ComfyUI-Holaf-Terminal [UNSAFE]",
@ -8630,17 +8620,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "a comfyui custom node for ViViD" "description": "a comfyui custom node for ViViD"
}, },
{
"author": "NeuralNotW0rk",
"title": "ComfyUI-Waveform-Extensions",
"reference": "https://github.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions",
"files": [
"https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py",
"https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_AudioManipulation.py"
],
"install_type": "copy",
"description": "Some additional audio utilites for use on top of Sample Diffusion ComfyUI Extension"
},
{ {
"author": "nat-chan", "author": "nat-chan",
"title": "comfyui-paint", "title": "comfyui-paint",

View File

@ -283,18 +283,6 @@
"title_aux": "ComfyUI_crdong" "title_aux": "ComfyUI_crdong"
} }
], ],
"https://github.com/5agado/ComfyUI-Sagado-Nodes": [
[
"Film Grain",
"Get Num Frames",
"Get Resolution",
"Image Loader",
"Video Loader"
],
{
"title_aux": "Sagado Nodes for ComfyUI"
}
],
"https://github.com/5x00/ComfyUI-Prompt-Plus": [ "https://github.com/5x00/ComfyUI-Prompt-Plus": [
[ [
"LoadAPI", "LoadAPI",
@ -368,13 +356,15 @@
"PD_CropBorder", "PD_CropBorder",
"PD_GetImageRatio", "PD_GetImageRatio",
"PD_GetImageSize", "PD_GetImageSize",
"PD_ImageFengMianWipe",
"PD_ImageListForSort", "PD_ImageListForSort",
"PD_ImageListForSortWithMetadata", "PD_ImageListForSortWithMetadata",
"PD_ImageListToGif",
"PD_Image_Crop_Location", "PD_Image_Crop_Location",
"PD_Image_Rotate_v1", "PD_Image_Rotate_v1",
"PD_Image_centerCrop", "PD_Image_centerCrop",
"PD_LoadImagesFromDir",
"PD_LoadImagesFromZip",
"PD_LoadTextsFromDir",
"PD_LoadTextsFromZip",
"PD_MASK_SELECTION", "PD_MASK_SELECTION",
"PD_Mask Selector", "PD_Mask Selector",
"PD_Mask Selector By Area Left", "PD_Mask Selector By Area Left",
@ -387,10 +377,12 @@
"PD_Text Overlay Node", "PD_Text Overlay Node",
"PD_del_word", "PD_del_word",
"PD_empty_word", "PD_empty_word",
"PD_image_to_text_v1",
"PD_random_prompt", "PD_random_prompt",
"PDbananaImagesizeByRatio", "PDbananaImagesizeByRatio",
"PDimage_corp_v1", "PDimage_corp_v1",
"PDimage_corp_v2", "PDimage_corp_v2",
"PDimage_dual_batch_by_list",
"PDimage_dual_batch_v1", "PDimage_dual_batch_v1",
"SimpleResolutionNode", "SimpleResolutionNode",
"mask_edge_selector" "mask_edge_selector"
@ -1011,6 +1003,15 @@
"title_aux": "comfyui-face-remap [WIP]" "title_aux": "comfyui-face-remap [WIP]"
} }
], ],
"https://github.com/Aruntd008/ComfyUI_blender_render": [
[
"Blender Render Node",
"BlenderRenderNode"
],
{
"title_aux": "ComfyUI_blender_render"
}
],
"https://github.com/BARKEM-JC/ComfyUI-Dynamic-Lora-Loader": [ "https://github.com/BARKEM-JC/ComfyUI-Dynamic-Lora-Loader": [
[ [
"DynamicLoraBlockWeights", "DynamicLoraBlockWeights",
@ -1080,19 +1081,6 @@
"title_aux": "ComfyUI-FileOps [UNSAFE]" "title_aux": "ComfyUI-FileOps [UNSAFE]"
} }
], ],
"https://github.com/Baverne/comfyUI-TiledWan": [
[
"TiledWanImageStatistics",
"TiledWanImageToMask",
"TiledWanInpaintCropImproved",
"TiledWanInpaintStitchImproved",
"TiledWanMaskStatistics",
"TiledWanVideoVACEpipe"
],
{
"title_aux": "TiledWan ComfyUI Node Set [WIP]"
}
],
"https://github.com/Beinsezii/DEET": [ "https://github.com/Beinsezii/DEET": [
[ [
"DEET" "DEET"
@ -1832,18 +1820,6 @@
"title_aux": "ComfyUI-Math [WIP]" "title_aux": "ComfyUI-Math [WIP]"
} }
], ],
"https://github.com/Enemyx-net/VibeVoice-ComfyUI": [
[
"VibeVoice Free Memory",
"VibeVoice LoRA",
"VibeVoice Load Text From File",
"VibeVoice Multiple Speakers",
"VibeVoice Single Speaker"
],
{
"title_aux": "VibeVoice ComfyUI [NAME CONFLICT]"
}
],
"https://github.com/Eric7758/ComfyUI-IAT": [ "https://github.com/Eric7758/ComfyUI-IAT": [
[ [
"Base64ToImageNode by IAT", "Base64ToImageNode by IAT",
@ -1895,11 +1871,13 @@
[ [
"Attention couple", "Attention couple",
"AttentionCouple", "AttentionCouple",
"CombineVideoClips",
"LoadImageFolder", "LoadImageFolder",
"MakeBatchFromSingleImage", "MakeBatchFromSingleImage",
"RegionConditionMerge", "RegionConditionMerge",
"RegionConditionSpecPct", "RegionConditionSpecPct",
"RegionConditionSpecPx" "RegionConditionSpecPx",
"WanVideoVaceSeamlessJoin"
], ],
{ {
"title_aux": "ComfyUI-CustomNodes [NAME CONFLICT]" "title_aux": "ComfyUI-CustomNodes [NAME CONFLICT]"
@ -2220,23 +2198,6 @@
"title_aux": "comfyui-HandDetect" "title_aux": "comfyui-HandDetect"
} }
], ],
"https://github.com/IsItDanOrAi/ComfyUI-exLoadout": [
[
"dropdowns",
"exCheckpointLoader",
"exLoadoutCheckpointLoader",
"exLoadoutEditCell",
"exLoadoutReadColumn",
"exLoadoutSeg",
"exLoadoutSeg2",
"exLoadoutSelector",
"exSeg",
"exSeg2"
],
{
"title_aux": "ComfyUI-exLoadout [WIP]"
}
],
"https://github.com/IvanZhd/comfyui-codeformer": [ "https://github.com/IvanZhd/comfyui-codeformer": [
[ [
"RedBeanie_CustomImageInverter" "RedBeanie_CustomImageInverter"
@ -2376,22 +2337,6 @@
"title_aux": "ComfyUI-Easy-s3" "title_aux": "ComfyUI-Easy-s3"
} }
], ],
"https://github.com/KY-2000/comfyui-ksampler-tester-loop": [
[
"AllParametersLoop",
"AllParametersLoopAdvanced",
"FloatRangeLoop",
"ParametersRangeLoop",
"SamplerLoop",
"SamplerLoopAdvanced",
"SamplerSchedulerLoop",
"SamplerSchedulerLoopAdvanced",
"SchedulerLoop"
],
{
"title_aux": "comfyui-ksampler-tester-loop"
}
],
"https://github.com/Karlmeister/comfyui-karlmeister-nodes-suit": [ "https://github.com/Karlmeister/comfyui-karlmeister-nodes-suit": [
[ [
"A_IfNotNone", "A_IfNotNone",
@ -2437,16 +2382,6 @@
"title_aux": "ComfyUI-RoysNodes [WIP]" "title_aux": "ComfyUI-RoysNodes [WIP]"
} }
], ],
"https://github.com/KohakuBlueleaf/HDM-ext": [
[
"HDMCameraParam",
"HDMLoader",
"HDMTreadGamma"
],
{
"title_aux": "HDM [WIP]"
}
],
"https://github.com/KoinnAI/ComfyUI-DynPromptSimplified": [ "https://github.com/KoinnAI/ComfyUI-DynPromptSimplified": [
[ [
"DynPromptExpand" "DynPromptExpand"
@ -3565,6 +3500,14 @@
"title_aux": "CADabra [WIP]" "title_aux": "CADabra [WIP]"
} }
], ],
"https://github.com/PozzettiAndrea/ComfyUI-CameraAnalysis": [
[
"CameraAnalysis"
],
{
"title_aux": "ComfyUI-CameraAnalysis"
}
],
"https://github.com/PozzettiAndrea/ComfyUI-Hunyuan3D-Part": [ "https://github.com/PozzettiAndrea/ComfyUI-Hunyuan3D-Part": [
[ [
"ClearAllModelCaches", "ClearAllModelCaches",
@ -3698,13 +3641,15 @@
], ],
"https://github.com/Randomwalkforest/Comfyui-Koi-Toolkit": [ "https://github.com/Randomwalkforest/Comfyui-Koi-Toolkit": [
[ [
"DashScopeChat",
"Florence2CoordinateExtractor", "Florence2CoordinateExtractor",
"Florence2JsonShow", "Florence2JsonShow",
"ImageBinarize",
"ImageSubtraction", "ImageSubtraction",
"ImageSubtractionAdvanced", "ImageSubtractionAdvanced",
"MaskExternalRectangle", "MaskExternalRectangle",
"QwenDashScopeChat",
"SimpleImageStitch", "SimpleImageStitch",
"TextSplitLines",
"imageStitchForICImproved", "imageStitchForICImproved",
"imageStitchForICImproved_CropBack" "imageStitchForICImproved_CropBack"
], ],
@ -3905,16 +3850,6 @@
"title_aux": "HiDreamSampler for ComfyUI [WIP]" "title_aux": "HiDreamSampler for ComfyUI [WIP]"
} }
], ],
"https://github.com/Santat2023/ComfyUiRagNodes": [
[
"MyNodesForDB",
"MyNodesForLLM",
"MyNodesForRAG"
],
{
"title_aux": "ComfyUiRagNodes"
}
],
"https://github.com/Scaryplasmon/ComfTrellis": [ "https://github.com/Scaryplasmon/ComfTrellis": [
[ [
"LoadTrellisModel", "LoadTrellisModel",
@ -4226,6 +4161,7 @@
"SDVN Fill Background", "SDVN Fill Background",
"SDVN Filter List", "SDVN Filter List",
"SDVN Flip Image", "SDVN Flip Image",
"SDVN Float Slider",
"SDVN GPT Image", "SDVN GPT Image",
"SDVN Gemini Flash 2 Image", "SDVN Gemini Flash 2 Image",
"SDVN Get Mask Size", "SDVN Get Mask Size",
@ -4247,6 +4183,7 @@
"SDVN Inpaint", "SDVN Inpaint",
"SDVN Inpaint Crop", "SDVN Inpaint Crop",
"SDVN InstantIDModel Download", "SDVN InstantIDModel Download",
"SDVN Int Slider",
"SDVN Join Parameter", "SDVN Join Parameter",
"SDVN Joy Caption", "SDVN Joy Caption",
"SDVN KSampler", "SDVN KSampler",
@ -4269,6 +4206,7 @@
"SDVN Mask Regions", "SDVN Mask Regions",
"SDVN Mask To Transparent Color", "SDVN Mask To Transparent Color",
"SDVN Menu Option", "SDVN Menu Option",
"SDVN Menu Option Extra",
"SDVN Merge Flux", "SDVN Merge Flux",
"SDVN Merge SD1", "SDVN Merge SD1",
"SDVN Merge SDXL", "SDVN Merge SDXL",
@ -5606,6 +5544,19 @@
"title_aux": "ComfyUI Environment Variable Node [UNSAFE]" "title_aux": "ComfyUI Environment Variable Node [UNSAFE]"
} }
], ],
"https://github.com/basenc/Comfyui-Nodes-basenc": [
[
"ChatMessagesCreate",
"CustomOpenAIChatCompletion",
"EnvVarNode",
"Eval",
"JMESPathSelect",
"WanVideoSize"
],
{
"title_aux": "Comfyui-Nodes-basenc [UNSAFE]"
}
],
"https://github.com/benda1989/WaterMarkRemover_ComfyUI": [ "https://github.com/benda1989/WaterMarkRemover_ComfyUI": [
[ [
"Remover", "Remover",
@ -6016,14 +5967,6 @@
"title_aux": "ComfyUI USO Custom Node [WIP]" "title_aux": "ComfyUI USO Custom Node [WIP]"
} }
], ],
"https://github.com/casterpollux/MiniMax-bmo": [
[
"MinimaxRemoverBMO"
],
{
"title_aux": "MiniMax-bmo"
}
],
"https://github.com/catboxanon/ComfyUI-Pixelsmith": [ "https://github.com/catboxanon/ComfyUI-Pixelsmith": [
[ [
"Pixelsmith" "Pixelsmith"
@ -6131,27 +6074,6 @@
"title_aux": "ComfyUI-mobvoi-openapi" "title_aux": "ComfyUI-mobvoi-openapi"
} }
], ],
"https://github.com/chaserhkj/ComfyUI-Chaser-nodes": [
[
"EvalFloatExpr",
"EvalIntExpr",
"LoadImageFromWebDAV",
"MergeData",
"PromptFormatter",
"PromptTemplate",
"RegisterTemplate",
"SetData",
"TemplateFileLoader",
"UploadImagesToWebDAV",
"UploadMP4ToWebDAV",
"UploadWebMToWebDAV",
"YAMLData",
"YAMLFileLoader"
],
{
"title_aux": "ComfyUI Chaser Custom Nodes"
}
],
"https://github.com/chenbaiyujason/ComfyUI_StepFun": [ "https://github.com/chenbaiyujason/ComfyUI_StepFun": [
[ [
"CombineStrings", "CombineStrings",
@ -6813,7 +6735,8 @@
"WanVaceToVideo", "WanVaceToVideo",
"WebcamCapture", "WebcamCapture",
"unCLIPCheckpointLoader", "unCLIPCheckpointLoader",
"unCLIPConditioning" "unCLIPConditioning",
"wanBlockSwap"
], ],
{ {
"title_aux": "ComfyUI" "title_aux": "ComfyUI"
@ -7139,6 +7062,91 @@
"title_aux": "Duck_Nodes [UNSAFE]" "title_aux": "Duck_Nodes [UNSAFE]"
} }
], ],
"https://github.com/eddyhhlure1Eddy/ComfyUI-QwenImageWrapper": [
[
"CLIPLoader",
"CLIPSetLastLayer",
"CLIPTextEncode",
"CLIPVisionEncode",
"CLIPVisionLoader",
"CheckpointLoader",
"CheckpointLoaderSimple",
"ConditioningAverage",
"ConditioningCombine",
"ConditioningConcat",
"ConditioningSetArea",
"ConditioningSetAreaPercentage",
"ConditioningSetAreaStrength",
"ConditioningSetMask",
"ConditioningSetTimestepRange",
"ConditioningZeroOut",
"ControlNetApply",
"ControlNetApplyAdvanced",
"ControlNetLoader",
"DiffControlNetLoader",
"DiffusersLoader",
"DualCLIPLoader",
"EmptyImage",
"EmptyLatentImage",
"GLIGENLoader",
"GLIGENTextBoxApply",
"ImageBatch",
"ImageInvert",
"ImagePadForOutpaint",
"ImageScale",
"ImageScaleBy",
"InpaintModelConditioning",
"KSampler",
"KSamplerAdvanced",
"LatentBlend",
"LatentComposite",
"LatentCrop",
"LatentFlip",
"LatentFromBatch",
"LatentRotate",
"LatentUpscale",
"LatentUpscaleBy",
"LoadImage",
"LoadImageMask",
"LoadImageOutput",
"LoadLatent",
"LoraLoader",
"LoraLoaderModelOnly",
"PreviewImage",
"RepeatLatentBatch",
"SaveImage",
"SaveLatent",
"SetLatentNoiseMask",
"StyleModelApply",
"StyleModelLoader",
"UNETLoader",
"VAEDecode",
"VAEDecodeTiled",
"VAEEncode",
"VAEEncodeForInpaint",
"VAEEncodeTiled",
"VAELoader",
"eddy_batch_image_generator",
"eddy_batch_prompt",
"eddy_image_blend",
"eddy_qwen_CLIPLoader",
"eddy_qwen_CLIPTextEncode",
"eddy_qwen_EmptySD3LatentImage",
"eddy_qwen_KSampler",
"eddy_qwen_LoraLoaderModelOnly",
"eddy_qwen_ModelSamplingAuraFlow",
"eddy_qwen_SaveImage",
"eddy_qwen_UNETLoader",
"eddy_qwen_VAEDecode",
"eddy_qwen_VAELoader",
"eddy_qwen_image_blockswap",
"unCLIPCheckpointLoader",
"unCLIPConditioning"
],
{
"title_aux": "ComfyUI-QwenImageWrapper [WIP]"
}
],
"https://github.com/edisonchan/ComfyUI-Sysinfo": [ "https://github.com/edisonchan/ComfyUI-Sysinfo": [
[ [
"SysInfoDisplay" "SysInfoDisplay"
@ -7159,6 +7167,25 @@
"title_aux": "DiffusionRenderer-ComfyUI [WIP]" "title_aux": "DiffusionRenderer-ComfyUI [WIP]"
} }
], ],
"https://github.com/egormly/ComfyUI-EG_Tools": [
[
"EG_AppendSubfolder",
"EG_GetDateTime",
"EG_ImageInfo",
"EG_IncrementCounter",
"EG_ListFiles",
"EG_PathExists",
"EG_PathIndexFilename",
"EG_PathIndexPrefix",
"EG_PathParts",
"EG_ProjectRoot",
"EG_SaveImage",
"EG_WithNewExtension"
],
{
"title_aux": "ComfyUI-EG_Tools [WIP]"
}
],
"https://github.com/eigenpunk/ComfyUI-audio": [ "https://github.com/eigenpunk/ComfyUI-audio": [
[ [
"ApplyVoiceFixer", "ApplyVoiceFixer",
@ -7394,14 +7421,6 @@
"title_aux": "comfyui-flowty-lcm" "title_aux": "comfyui-flowty-lcm"
} }
], ],
"https://github.com/flybirdxx/ComfyUI-SDMatte": [
[
"SDMatteApply"
],
{
"title_aux": "ComfyUI-SDMatte [WIP]"
}
],
"https://github.com/flyingdogsoftware/gyre_for_comfyui": [ "https://github.com/flyingdogsoftware/gyre_for_comfyui": [
[ [
"BackgroundRemoval", "BackgroundRemoval",
@ -7462,6 +7481,24 @@
"title_aux": "ComfyUI-LLM-Utils [WIP]" "title_aux": "ComfyUI-LLM-Utils [WIP]"
} }
], ],
"https://github.com/frost-byte/fbTools": [
[
"FBTextEncodeQwenImageEditPlus",
"OpaqueAlpha",
"SAMPreprocessNHWC",
"SaveScene",
"SceneInput",
"SceneOutput",
"SceneView",
"SelectScene",
"SubdirLister",
"TailEnhancePro",
"TailSplit"
],
{
"title_aux": "fb-tools"
}
],
"https://github.com/ftechmax/ComfyUI-NovaKit-Pack": [ "https://github.com/ftechmax/ComfyUI-NovaKit-Pack": [
[ [
"CountTokens" "CountTokens"
@ -7807,6 +7844,7 @@
"HolafSaveImage", "HolafSaveImage",
"HolafSliceCalculator", "HolafSliceCalculator",
"HolafTileCalculator", "HolafTileCalculator",
"HolafTiledDiffusionKSampler",
"HolafTiledKSampler", "HolafTiledKSampler",
"HolafZoneConditioner", "HolafZoneConditioner",
"UpscaleImageHolaf" "UpscaleImageHolaf"
@ -8054,6 +8092,14 @@
"title_aux": "comfy-magick [WIP]" "title_aux": "comfy-magick [WIP]"
} }
], ],
"https://github.com/huhu-tiger/ComfyUI-RemoteDownload": [
[
"LoadImageFromRemote"
],
{
"title_aux": "ComfyUI-RemoteDownload"
}
],
"https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": [ "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": [
[ [
"EasyBgRemover", "EasyBgRemover",
@ -8268,16 +8314,6 @@
"title_aux": "comfyui-copilot" "title_aux": "comfyui-copilot"
} }
], ],
"https://github.com/iacoposk8/xor_pickle_nodes": [
[
"DecryptXORText",
"Load XOR Pickle From File",
"Save XOR Pickle To File"
],
{
"title_aux": "ComfyUI XOR Pickle Nodes"
}
],
"https://github.com/idoru/ComfyUI-SKCFI-NetworkFileIO": [ "https://github.com/idoru/ComfyUI-SKCFI-NetworkFileIO": [
[ [
"FilestashUploadNode", "FilestashUploadNode",
@ -8366,6 +8402,14 @@
"title_aux": "ComfyUI-Lovis-Node [WIP]" "title_aux": "ComfyUI-Lovis-Node [WIP]"
} }
], ],
"https://github.com/jKaarlehto/ComfyUI-GetWorkflowName": [
[
"GetWorkflowName"
],
{
"title_aux": "ComfyUI-GetWorkflowName [WIP]"
}
],
"https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [ "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [
[ [
"PaintingCoder::DynamicImageCombiner", "PaintingCoder::DynamicImageCombiner",
@ -9880,6 +9924,15 @@
"title_aux": "ComfyUI-Lygia" "title_aux": "ComfyUI-Lygia"
} }
], ],
"https://github.com/mertgoksel/ComfyUI-Noot-Nodes": [
[
"StagedKSampler",
"TagRandomizer"
],
{
"title_aux": "comfyui-noot-nodes [WIP]"
}
],
"https://github.com/mico-world/comfyui_mico_node": [ "https://github.com/mico-world/comfyui_mico_node": [
[ [
"HFUNETLoader" "HFUNETLoader"
@ -10197,6 +10250,23 @@
"title_aux": "ComfyUI-Remote-Save-Image [UNSAFE]" "title_aux": "ComfyUI-Remote-Save-Image [UNSAFE]"
} }
], ],
"https://github.com/newraina/comfyui-photoshop-v2": [
[
"\ud83d\udd39 Photoshop RemoteConnection",
"\ud83d\udd39ClipPass",
"\ud83d\udd39Floats",
"\ud83d\udd39Photoshop ComfyUI Plugin",
"\ud83d\udd39Photoshop Images",
"\ud83d\udd39Photoshop Strings",
"\ud83d\udd39Reroute - Anything Everywhere",
"\ud83d\udd39SeedManager",
"\ud83d\udd39SendTo Photoshop Plugin",
"\ud83d\udd39modelPass"
],
{
"title_aux": "comfyui-photoshop-v2 [WIP]"
}
],
"https://github.com/nidefawl/ComfyUI-nidefawl": [ "https://github.com/nidefawl/ComfyUI-nidefawl": [
[ [
"BlendImagesWithBoundedMasks", "BlendImagesWithBoundedMasks",
@ -12135,6 +12205,7 @@
], ],
"https://github.com/unphased/code-nodes": [ "https://github.com/unphased/code-nodes": [
[ [
"ImageBatcherByIndexProV2",
"PythonCodeNode", "PythonCodeNode",
"ShellCodeNode" "ShellCodeNode"
], ],
@ -12995,6 +13066,21 @@
"title_aux": "ComfyUI-ZVNodes [WIP]" "title_aux": "ComfyUI-ZVNodes [WIP]"
} }
], ],
"https://github.com/zhupeter010903/ComfyUI-prompt-library": [
[
"GroupedPromptNode",
"XYZ Group Prompt Toggle",
"XYZ Grouped Prompts",
"XYZ Multi Clip Encoder",
"XYZ Multi Text Concatenate",
"XYZ Multi Text Replace",
"XYZ Prompt Library",
"XYZ Random String Picker"
],
{
"title_aux": "ComfyUI-prompt-library"
}
],
"https://github.com/zjkhurry/comfyui_MetalFX": [ "https://github.com/zjkhurry/comfyui_MetalFX": [
[ [
"metalFXImg" "metalFXImg"
@ -13029,17 +13115,6 @@
"title_aux": "ComfyUI-zyd232-Nodes" "title_aux": "ComfyUI-zyd232-Nodes"
} }
], ],
"https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py": [
[
"BatchToList",
"ConcatAudioList",
"SequenceVariation",
"SliceAudio"
],
{
"title_aux": "ComfyUI-Waveform-Extensions"
}
],
"https://raw.githubusercontent.com/jp0215/comfyUI_padding-resize_node/main/PaddingNode.py": [ "https://raw.githubusercontent.com/jp0215/comfyUI_padding-resize_node/main/PaddingNode.py": [
[ [
"function" "function"

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,35 @@
{ {
"custom_nodes": [ "custom_nodes": [
{
"author": "fredconex",
"title": "Sync Edit [REMOVED]",
"reference": "https://github.com/fredconex/ComfyUI-SyncEdit",
"files": [
"https://github.com/fredconex/ComfyUI-SyncEdit"
],
"install_type": "git-clone",
"description": "This node allow to intercept changes on the input string and choose between use the current one or sync with incoming new one."
},
{
"author": "fredconex",
"title": "ComfyUI-SoundFlow [REMOVED]",
"reference": "https://github.com/fredconex/ComfyUI-SoundFlow",
"files": [
"https://github.com/fredconex/ComfyUI-SoundFlow"
],
"install_type": "git-clone",
"description": "This is a bunch of nodes for ComfyUI to help with sound work."
},
{
"author": "fredconex",
"title": "SongBloom [REMOVED]",
"reference": "https://github.com/fredconex/ComfyUI-SongBloom",
"files": [
"https://github.com/fredconex/ComfyUI-SongBloom"
],
"install_type": "git-clone",
"description": "ComfyUI Nodes for SongBloom"
},
{ {
"author": "EQXai", "author": "EQXai",
"title": "ComfyUI_EQX [REMOVED]", "title": "ComfyUI_EQX [REMOVED]",

View File

@ -1,5 +1,216 @@
{ {
"custom_nodes": [ "custom_nodes": [
{
"author": "fr0nky0ng",
"title": "ComfyUI-JSON-Prompt",
"reference": "https://github.com/fr0nky0ng/ComfyUI-JSON-Prompt",
"files": [
"https://github.com/fr0nky0ng/ComfyUI-JSON-Prompt"
],
"install_type": "git-clone",
"description": "Custom node for ComfyUI that generates JSON prompts from natural language descriptions to improve text-to-image generation quality. Supports local LLM integration via Ollama or Google Gemini API."
},
{
"author": "EricRollei",
"title": "Eric_Image_Processing_Nodes",
"reference": "https://github.com/EricRollei/Eric_Image_Processing_Nodes",
"files": [
"https://github.com/EricRollei/Eric_Image_Processing_Nodes"
],
"install_type": "git-clone",
"description": "A comprehensive collection of advanced image processing nodes for ComfyUI, featuring state-of-the-art denoising, enhancement, and restoration techniques with GPU acceleration and specialized film grain processing."
},
{
"author": "huyl3-cpu",
"title": "comfyui-huyl2-nodes",
"reference": "https://github.com/huyl3-cpu/comfyui-sortlist",
"files": [
"https://github.com/huyl3-cpu/comfyui-sortlist"
],
"install_type": "git-clone",
"description": "Custom utility nodes for ComfyUI by huyl2 (sort list v2, etc.)"
},
{
"author": "7BEII",
"title": "comfyui-PD_comfy-api-node",
"reference": "https://github.com/7BEII/comfyui-PD_comfy-api-node",
"files": [
"https://github.com/7BEII/comfyui-PD_comfy-api-node"
],
"install_type": "git-clone",
"description": "ComfyUI custom node suite integrating multiple AI image generation APIs (Gemini, Flux.1 Kontext Pro) with unified authentication via ComfyUI API Key and real-time cost tracking. (Description by CC)"
},
{
"author": "wallen0322",
"title": "ComfyUI-AE-Animation",
"reference": "https://github.com/wallen0322/ComfyUI-AE-Animation",
"files": [
"https://github.com/wallen0322/ComfyUI-AE-Animation"
],
"install_type": "git-clone",
"description": "After Effects-style animation nodes for ComfyUI with timeline-based keyframe control, layer management, and real-time preview rendering. (Description by CC)"
},
{
"author": "wallen0322",
"title": "ComfyUI-TTM-WAN22",
"reference": "https://github.com/wallen0322/ComfyUI-TTM-WAN22",
"files": [
"https://github.com/wallen0322/ComfyUI-TTM-WAN22"
],
"install_type": "git-clone",
"description": "TTM (Time-to-Move) node for ComfyUI enabling motion-controlled video generation with Wan2.2 models using dual-clock denoising for independent background and object animation control."
},
{
"author": "swan7-py",
"title": "ComfyUI-ImageAlphaCrop",
"reference": "https://github.com/swan7-py/ComfyUI-ImageAlphaCrop",
"files": [
"https://github.com/swan7-py/ComfyUI-ImageAlphaCrop"
],
"install_type": "git-clone",
"description": "ComfyUI plugin for automatically cropping transparent alpha channel borders from images - ideal for processing logos and icons. Supports batch processing with adjustable padding and alpha threshold. (Description by CC)"
},
{
"author": "was",
"title": "WAS LMStudio Easy-Query",
"reference": "https://github.com/WASasquatch/ComfyUI_LMStudio_EasyQuery",
"files": [
"https://github.com/WASasquatch/ComfyUI_LMStudio_EasyQuery"
],
"install_type": "git-clone",
"description": "LM Studio calls with image support and easy task directions."
},
{
"author": "PozzettiAndrea",
"title": "ComfyUI-AnyTop",
"reference": "https://github.com/PozzettiAndrea/ComfyUI-AnyTop",
"files": [
"https://github.com/PozzettiAndrea/ComfyUI-AnyTop"
],
"install_type": "git-clone",
"description": "Standalone ComfyUI custom nodes for AnyTop - Universal Motion Generation for Any Skeleton Topology."
},
{
"author": "IamCreateAI",
"title": "ComfyUI-Animon",
"reference": "https://github.com/IamCreateAI/ComfyUI-Animon",
"files": [
"https://github.com/IamCreateAI/ComfyUI-Animon"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for [Animon Platform](https://platform.animon.ai/), a comprehensive API service offering a variety of image and video generation models."
},
{
"author": "neonr0",
"title": "ComfyUI-PixelConstrainedScaler",
"reference": "https://github.com/neonr-0/ComfyUI-PixelConstrainedScaler",
"files": [
"https://github.com/neonr-0/ComfyUI-PixelConstrainedScaler"
],
"install_type": "git-clone",
"description": "Smart upscaling with pixel-budget awareness while preserving native aspect ratios. Ideal for Image to Image (I2I) and Image to Video (I2V) workflows!"
},
{
"author": "slahiri",
"title": "ComfyUI-AI-Photography-Toolkit",
"reference": "https://github.com/slahiri/ComfyUI-AI-Photography-Toolkit",
"files": [
"https://github.com/slahiri/ComfyUI-AI-Photography-Toolkit"
],
"install_type": "git-clone",
"description": "A collection of AI-powered photography and image generation tools for ComfyUI, featuring the SID_AIPromptGenerator node that uses Anthropic's Claude API to analyze images and generate optimized prompts for various image generation models."
},
{
"author": "wzyfromhust",
"title": "ComfyUI_SAM2UltraV2",
"reference": "https://github.com/wzyfromhust/ComfyUI_SAM2UltraV2",
"files": [
"https://github.com/wzyfromhust/ComfyUI_SAM2UltraV2"
],
"install_type": "git-clone",
"description": "A fully modular and high-performance implementation of SAM2 (Segment Anything Model 2) for ComfyUI with dual-prompt support, negative point sampling, and upper body segmentation."
},
{
"author": "cedarconnor",
"title": "ComfyUI-DreamCube",
"reference": "https://github.com/cedarconnor/ComfyUI-DreamCube",
"files": [
"https://github.com/cedarconnor/ComfyUI-DreamCube"
],
"install_type": "git-clone",
"description": "360° panoramic depth estimation with multi-plane synchronization for ComfyUI, featuring equirectangular-cubemap transformations, cross-face consistency, and boundary blending for seamless depth maps."
},
{
"author": "dowa-git",
"title": "comfyui-dowa",
"reference": "https://github.com/dowa-git/comfyui-dowa",
"files": [
"https://github.com/dowa-git/comfyui-dowa"
],
"install_type": "git-clone",
"description": "Professional navigation bar widget for ComfyUI with JWT-based user authentication, workflow templates, and team collaboration features in a purple gradient design."
},
{
"author": "fuselayer",
"title": "comfyui-lite-tracker",
"reference": "https://github.com/fuselayer/comfyui-lite-tracker",
"files": [
"https://github.com/fuselayer/comfyui-lite-tracker"
],
"install_type": "git-clone",
"description": "ComfyUI custom nodes for LiteTracker, a fast and efficient point tracking model for videos with load model, track, and grid editor nodes."
},
{
"author": "yichengup",
"title": "ComfyUI-YCNodes_Toolkit",
"reference": "https://github.com/yichengup/ComfyUI-YCNodes_Toolkit",
"files": [
"https://github.com/yichengup/ComfyUI-YCNodes_Toolkit"
],
"install_type": "git-clone",
"description": "ComfyUI toolkit with custom nodes for BBox canvas visualization, image brush mask drawing, and coordinate annotation for debugging and external data bridging. (Description by CC)"
},
{
"author": "hua1995116",
"title": "comfyui_goenhance_ffmpeg_wm",
"reference": "https://github.com/hua1995116/comfyui_goenhance_ffmpeg_wm",
"files": [
"https://github.com/hua1995116/comfyui_goenhance_ffmpeg_wm"
],
"install_type": "git-clone",
"description": "ComfyUI custom node for adding watermarks to videos using FFmpeg, with configurable position, opacity, scale, and hardware acceleration support."
},
{
"author": "EricRollei",
"title": "Comfy_HunyuanImage3",
"reference": "https://github.com/EricRollei/Comfy_HunyuanImage3",
"files": [
"https://github.com/EricRollei/Comfy_HunyuanImage3"
],
"install_type": "git-clone",
"description": "Professional ComfyUI custom nodes for Tencent's HunyuanImage-3.0 80B multimodal model, with multiple loading modes, smart memory management, large image generation with CPU offload, and optional prompt enhancement via LLM APIs."
},
{
"author": "Devin Garner",
"title": "ComfyUI_Make-It-Animatable",
"reference": "https://github.com/speige/ComfyUI_Make-It-Animatable",
"files": [
"https://github.com/speige/ComfyUI_Make-It-Animatable"
],
"install_type": "git-clone",
"description": "Auto-Rigging humanoid 3D meshes for Mixamo animations"
},
{
"author": "alexjx",
"title": "ComfyUI-XJNodes",
"reference": "https://github.com/alexjx/ComfyUI-XJNodes",
"files": [
"https://github.com/alexjx/ComfyUI-XJNodes"
],
"install_type": "git-clone",
"description": "A modular collection of custom nodes for ComfyUI, organized by data type for easy navigation and maintenance."
},
{ {
"author": "princepainter", "author": "princepainter",
"title": "Comfyui-PainterSampler", "title": "Comfyui-PainterSampler",
@ -486,214 +697,6 @@
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "ComfyUI nodes for working with Photoshop mockup files - automatically project images onto PSD smart objects while preserving perspective, rotation, and scale transforms for seamless mockup rendering." "description": "ComfyUI nodes for working with Photoshop mockup files - automatically project images onto PSD smart objects while preserving perspective, rotation, and scale transforms for seamless mockup rendering."
},
{
"author": "NudeJS-dev",
"title": "ComfyUI-NudeJS-Image2Prompt",
"reference": "https://github.com/NudeJS-dev/ComfyUI-NudeJS-Image2Prompt",
"files": [
"https://github.com/NudeJS-dev/ComfyUI-NudeJS-Image2Prompt"
],
"install_type": "git-clone",
"description": "ComfyUI custom node converting images to text prompts via external API, with automatic image preprocessing, base64 encoding, intelligent retry logic, and dual output modes. (Description by CC)"
},
{
"author": "eddyhhlure1Eddy",
"title": "ComfyUI-PreviewImageNode",
"reference": "https://github.com/eddyhhlure1Eddy/ComfyUI-PreviewImageNode",
"files": [
"https://github.com/eddyhhlure1Eddy/ComfyUI-PreviewImageNode"
],
"install_type": "git-clone",
"description": "Standalone version of ComfyUI's PreviewImage and SaveImage nodes, extracted as an independent custom node for easy reuse and customization."
},
{
"author": "eddyhhlure1Eddy",
"title": "ComfyUI-QwenFrameSelector",
"reference": "https://github.com/eddyhhlure1Eddy/ComfyUI-QwenFrameSelector",
"files": [
"https://github.com/eddyhhlure1Eddy/ComfyUI-QwenFrameSelector"
],
"install_type": "git-clone",
"description": "Intelligent video frame selection node powered by Qwen3-VL-235B vision model. Automatically analyzes and selects the best quality frames from videos for further creative work."
},
{
"author": "princepainter",
"title": "ComfyUI-PainterLongVideo",
"reference": "https://github.com/princepainter/ComfyUI-PainterLongVideo",
"files": [
"https://github.com/princepainter/ComfyUI-PainterLongVideo"
],
"install_type": "git-clone",
"description": "Powerful node for generating long-form videos with consistent motion, global scene coherence, and slow-motion correction in Wan 2.2-based workflows."
},
{
"author": "psdwizzard",
"title": "Comfyui-XYZ-stitch",
"reference": "https://github.com/psdwizzard/Comfyui-XYZ-stitch",
"files": [
"https://github.com/psdwizzard/Comfyui-XYZ-stitch"
],
"install_type": "git-clone",
"description": "Create A1111-style XYZ plot grids in ComfyUI to test multiple parameters and compare results in organized, labeled comparison grids."
},
{
"author": "anhrefnyoiyoi",
"title": "Placeholder-Replacer-By-ID",
"reference": "https://github.com/anhrefnyoiyoi/Placeholder-Replacer-By-ID",
"files": [
"https://github.com/anhrefnyoiyoi/Placeholder-Replacer-By-ID"
],
"install_type": "git-clone",
"description": "Utility node that automates prompt assembly by replacing placeholder tokens with mapped artist or style names based on ID sequences, supporting multiple prompts and flexible ID handling strategies."
},
{
"author": "judian17",
"title": "ComfyUI-SRT-subtitles-VoxCPM",
"reference": "https://github.com/judian17/ComfyUI-SRT-subtitles-VoxCPM",
"files": [
"https://github.com/judian17/ComfyUI-SRT-subtitles-VoxCPM"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for generating and editing speech from SRT subtitle files using VoxCPM text-to-speech model, supporting multi-speaker dialogue and audio replacement workflows."
},
{
"author": "ttulttul",
"title": "ComfyUI-FlowMatching-Upscaler",
"reference": "https://github.com/ttulttul/ComfyUI-FlowMatching-Upscaler",
"files": [
"https://github.com/ttulttul/ComfyUI-FlowMatching-Upscaler"
],
"install_type": "git-clone",
"description": "Progressive upscaling node for flow-matching models that incrementally doubles resolution with flow-consistent re-noising, denoising, and skip residual blending to preserve composition."
},
{
"author": "elyetis",
"title": "Comfyui-ColorMatchNodes",
"reference": "https://github.com/elyetis/Comfyui-ColorMatchNodes",
"files": [
"https://github.com/elyetis/Comfyui-ColorMatchNodes"
],
"install_type": "git-clone",
"description": "Color match nodes for ComfyUI that color-match target images against reference images with manual or auto-ramped blending, ideal for smooth color transitions between video clips."
},
{
"author": "rafacost",
"title": "rafacostComfy",
"id": "rafacost-comfy",
"reference": "https://github.com/rafacost/rafacost-comfy",
"files": [
"https://github.com/rafacost/rafacost-comfy"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for DreamOmni2 GGUF multimodal models — powered directly by llama-cpp-python."
},
{
"author": "Boba-svg",
"title": "ComfyUI_AutoBatchRunner",
"reference": "https://github.com/Boba-svg/ComfyUI_AutoBatchRunner",
"files": [
"https://github.com/Boba-svg/ComfyUI_AutoBatchRunner"
],
"install_type": "git-clone",
"description": "ComfyUI UI extension that automates batch prompt execution with configurable run counts and intervals, featuring keyboard shortcuts and a fixed control panel for streamlined workflow automation."
},
{
"author": "Wladimir Palant",
"title": "image-resize-comfyui",
"reference": "https://github.com/ussoewwin/image_resize_comfyui",
"files": [
"https://github.com/ussoewwin/image_resize_comfyui"
],
"install_type": "git-clone",
"description": "Advanced image resizing node for ComfyUI with aspect ratio preservation and mask support"
},
{
"author": "PozzettiAndrea",
"title": "ComfyUI-HunyuanX",
"reference": "https://github.com/PozzettiAndrea/ComfyUI-HunyuanX",
"files": [
"https://github.com/PozzettiAndrea/ComfyUI-HunyuanX"
],
"install_type": "git-clone",
"description": "Hunyuan 3D 2.1 image-to-3D generation nodes for ComfyUI with PBR texturing and model caching. Granular control for research."
},
{
"author": "arthur",
"title": "Video Output Bridge",
"id": "videooutputbridge",
"reference": "https://github.com/arthurtravers/ComfyUI-VideoOutputBridge",
"files": [
"https://github.com/arthurtravers/ComfyUI-VideoOutputBridge"
],
"install_type": "git-clone",
"description": "Bridge VHS_VideoCombine video outputs to standard image payloads for serverless runners (RunPod, Modal). Enables automatic S3 uploads of MP4/WebP files in worker-comfyui deployments."
},
{
"author": "val",
"title": "Groq Nodes",
"id": "groqnodes",
"reference": "https://github.com/brayevalerien/ComfyUI-GroqNodes",
"files": [
"https://github.com/brayevalerien/ComfyUI-GroqNodes"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for Groq API - chat, vision, audio, tool use, and batch processing"
},
{
"author": "x0x0b",
"title": "Prompt History Gallery",
"id": "prompthistorygallery",
"reference": "https://github.com/x0x0b/ComfyUI-PromptHistoryGallery",
"files": [
"https://github.com/x0x0b/ComfyUI-PromptHistoryGallery"
],
"install_type": "git-clone",
"description": "Prompt history input node and sidebar gallery for ComfyUI."
},
{
"author": "EnragedAntelope",
"title": "comfy-modelopt",
"id": "modelopt",
"reference": "https://github.com/EnragedAntelope/comfy-modelopt",
"files": [
"https://github.com/EnragedAntelope/comfy-modelopt"
],
"install_type": "git-clone",
"description": "NVIDIA ModelOpt integration for ComfyUI - Quantize and optimize diffusion models with INT8/FP8/INT4"
},
{
"author": "Owl-V",
"title": "ComfyUI-Owlv_Nodes",
"id": "comfyui-owlv_nodes",
"reference": "https://github.com/OwlvChirotha/ComfyUI-Owlv_Nodes",
"files": [
"https://github.com/OwlvChirotha/ComfyUI-Owlv_Nodes"
],
"install_type": "git-clone",
"description": "A collection of custom utility nodes for ComfyUI, providing a variety of practical mini-tools with multiple functions.",
"tags": ["utility"]
},
{
"author": "shiba2shiba",
"title": "ComfyUI_FreeU_V2_advanced",
"reference": "https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_advanced",
"files": [
"https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_advanced"
],
"install_type": "git-clone",
"description": "This is a custom node to add timestep for FreeU V2."
},
{
"author": "Creditas",
"title": "Adforge",
"id": "adforge",
"reference": "https://github.com/Creditas-labs/ComfyUI-Adforge",
"files": [
"https://github.com/Creditas-labs/ComfyUI-Adforge"
],
"install_type": "git-clone",
"description": "Creditas' Ad Creation Toolkit for ComfyUI"
} }
] ]
} }

View File

@ -381,12 +381,14 @@
"1hew_AnyEmptyInt", "1hew_AnyEmptyInt",
"1hew_AnySwitchBool", "1hew_AnySwitchBool",
"1hew_AnySwitchInt", "1hew_AnySwitchInt",
"1hew_AudioDuration",
"1hew_DetectGuideLine", "1hew_DetectGuideLine",
"1hew_DetectYolo", "1hew_DetectYolo",
"1hew_ImageAddLabel", "1hew_ImageAddLabel",
"1hew_ImageBBoxOverlayByMask", "1hew_ImageBBoxOverlayByMask",
"1hew_ImageBatchExtract", "1hew_ImageBatchExtract",
"1hew_ImageBatchGroup", "1hew_ImageBatchGroup",
"1hew_ImageBatchRange",
"1hew_ImageBatchSplit", "1hew_ImageBatchSplit",
"1hew_ImageBatchToList", "1hew_ImageBatchToList",
"1hew_ImageBlendModeByAlpha", "1hew_ImageBlendModeByAlpha",
@ -395,29 +397,30 @@
"1hew_ImageCropWithBBoxMask", "1hew_ImageCropWithBBoxMask",
"1hew_ImageEdgeCropPad", "1hew_ImageEdgeCropPad",
"1hew_ImageEditStitch", "1hew_ImageEditStitch",
"1hew_ImageGetSize",
"1hew_ImageGridSplit", "1hew_ImageGridSplit",
"1hew_ImageHLFreqCombine", "1hew_ImageHLFreqCombine",
"1hew_ImageHLFreqSeparate", "1hew_ImageHLFreqSeparate",
"1hew_ImageHLFreqTransform", "1hew_ImageHLFreqTransform",
"1hew_ImageListAppend", "1hew_ImageListAppend",
"1hew_ImageListToBatch", "1hew_ImageListToBatch",
"1hew_ImageMainStitch",
"1hew_ImageMaskBlend", "1hew_ImageMaskBlend",
"1hew_ImageMaskCrop", "1hew_ImageMaskCrop",
"1hew_ImagePasteByBBoxMask", "1hew_ImagePasteByBBoxMask",
"1hew_ImagePingPong",
"1hew_ImagePlot", "1hew_ImagePlot",
"1hew_ImageResizeFluxKontext", "1hew_ImageResizeFluxKontext",
"1hew_ImageResizeQwenImage", "1hew_ImageResizeQwenImage",
"1hew_ImageResizeUniversal", "1hew_ImageResizeUniversal",
"1hew_ImageRotateWithMask", "1hew_ImageRotateWithMask",
"1hew_ImageSolid", "1hew_ImageSolid",
"1hew_ImageSolidFluxKontext",
"1hew_ImageSolidQwenImage",
"1hew_ImageStrokeByMask", "1hew_ImageStrokeByMask",
"1hew_ImageThreeStitch",
"1hew_ImageTileMerge", "1hew_ImageTileMerge",
"1hew_ImageTileSplit", "1hew_ImageTileSplit",
"1hew_ImageTileSplitPreset", "1hew_ImageTileSplitPreset",
"1hew_IntImageSideLength",
"1hew_IntImageSize",
"1hew_IntMaskSideLength",
"1hew_IntSplit", "1hew_IntSplit",
"1hew_IntWan", "1hew_IntWan",
"1hew_ListCustomFloat", "1hew_ListCustomFloat",
@ -425,6 +428,7 @@
"1hew_ListCustomSeed", "1hew_ListCustomSeed",
"1hew_ListCustomString", "1hew_ListCustomString",
"1hew_MaskBatchMathOps", "1hew_MaskBatchMathOps",
"1hew_MaskBatchRange",
"1hew_MaskBatchSplit", "1hew_MaskBatchSplit",
"1hew_MaskBatchToList", "1hew_MaskBatchToList",
"1hew_MaskCropByBBoxMask", "1hew_MaskCropByBBoxMask",
@ -437,13 +441,15 @@
"1hew_MultiMaskBatch", "1hew_MultiMaskBatch",
"1hew_MultiStringJoin", "1hew_MultiStringJoin",
"1hew_RangeMapping", "1hew_RangeMapping",
"1hew_SaveVideo",
"1hew_SaveVideoRGBA",
"1hew_StringCoordinateToBBoxMask", "1hew_StringCoordinateToBBoxMask",
"1hew_StringCoordinateToBBoxes", "1hew_StringCoordinateToBBoxes",
"1hew_StringFilter",
"1hew_StringJoinMulti",
"1hew_TextCustomExtract", "1hew_TextCustomExtract",
"1hew_TextEncodeQwenImageEditKeepSize", "1hew_TextEncodeQwenImageEditKeepSize",
"1hew_TextFilter", "1hew_TextListToString",
"1hew_TextJoinByTextList",
"1hew_TextJoinMulti",
"1hew_TextPrefixSuffix", "1hew_TextPrefixSuffix",
"1hew_URLToVideo", "1hew_URLToVideo",
"1hew_VideoCutGroup", "1hew_VideoCutGroup",
@ -659,6 +665,16 @@
"title_aux": "Comflowy's Custom Nodes" "title_aux": "Comflowy's Custom Nodes"
} }
], ],
"https://github.com/7BEII/comfyui-PD_comfy-api-node": [
[
"PDFluxKontextProOfficial",
"PDGeminiImageGenComfyKey",
"PDOpenAIGPTImageKey"
],
{
"title_aux": "comfyui-PD_comfy-api-node"
}
],
"https://github.com/807502278/ComfyUI-3D-MeshTool": [ "https://github.com/807502278/ComfyUI-3D-MeshTool": [
[ [
"Auto_Normal", "Auto_Normal",
@ -4553,6 +4569,54 @@
"title_aux": "JH Misc. Nodes" "title_aux": "JH Misc. Nodes"
} }
], ],
"https://github.com/ComfyUI-WanVideoWrapper/QQ.copied": [
[
"ImageBlend_GPU",
"ImageRadialZoomBlur_GPU",
"LoraExtractKJv2",
"PowerLoraLoaderV2",
"VideoMergeABC",
"WanScaleAB",
"WanVideoCacheSamples",
"WanVideoCacheVideos",
"WanVideoEmptyEmbeds_v2",
"WanVideoFlowmapDistortion",
"WanVideoImageToVideoEncode_v2",
"WanVideoMotionToFlowmap",
"WanVideoPowerLoraLoader"
],
{}
],
"https://github.com/ComfyUI/Eagleshadow": [
[
"Batch 12 Images",
"Detect Transparency",
"Fix Checkpoint Name",
"ImageLinearGammaCompositeMasked",
"KSampler Same Noise",
"MaskGlow",
"OffsetImage",
"Round Float to String",
"SaveImageToFolder",
"Select ControlNet",
"Select Model 20",
"Simple Load Image Batch"
],
{}
],
"https://github.com/ComfyUI/SequentialGroupController": [
[
"SequentialGroupController",
"SequentialGroupControllerV2"
],
{}
],
"https://github.com/ComfyUI/subjectselector": [
[
"ComfyUI_subjectselector"
],
{}
],
"https://github.com/ComplexRobot/ComfyUI-Simple-VFI": [ "https://github.com/ComplexRobot/ComfyUI-Simple-VFI": [
[ [
"Simple_Frame_Interpolation" "Simple_Frame_Interpolation"
@ -5672,8 +5736,10 @@
"BoyoImageGrab", "BoyoImageGrab",
"BoyoIncontextSaver", "BoyoIncontextSaver",
"BoyoLoRAConfigInspector", "BoyoLoRAConfigInspector",
"BoyoLoRAConfigProcessor",
"BoyoLoRAJSONBuilder", "BoyoLoRAJSONBuilder",
"BoyoLoRAPairedLoader", "BoyoLoRAPairedLoader",
"BoyoLoRAPathForwarder",
"BoyoLoadImageList", "BoyoLoadImageList",
"BoyoLoopCollector", "BoyoLoopCollector",
"BoyoLoopImageSaver", "BoyoLoopImageSaver",
@ -6085,6 +6151,79 @@
"title_aux": "ComfyUI-EreNodes" "title_aux": "ComfyUI-EreNodes"
} }
], ],
"https://github.com/EricRollei/Comfy_HunyuanImage3": [
[
"HunyuanImage3FullGPULoader",
"HunyuanImage3FullLoader",
"HunyuanImage3Generate",
"HunyuanImage3GenerateLarge",
"HunyuanImage3QuantizedLoader",
"HunyuanImage3Unload"
],
{
"title_aux": "Comfy_HunyuanImage3"
}
],
"https://github.com/EricRollei/Eric_Image_Processing_Nodes": [
[
"AdaptiveFrequencyFilter",
"AdaptiveImageEnhancement",
"AdvancedFilmGrainNode",
"AutoDenoiseComparisonNode",
"AutoDenoiseNode",
"BM3D Film Grain Denoising",
"BM3DComparisonNode",
"BM3DDeblurNode",
"BM3DDenoiseNode",
"BatchImageProcessing",
"ComprehensiveComparison",
"DeepImagePriorNode",
"DiffBIRRestorationNode",
"DnCNNDenoiseNode",
"FGANNFilmGrainDenoiseNode",
"FilmGrainAnalysis",
"FilmGrainAnalysisNode",
"FilmGrainProcessing",
"FrequencyEnhancementPresets",
"GPUWaveletDenoiseNode",
"HomomorphicFilter",
"ImageQualityAssessment",
"LB-CLAHE",
"LightweightCNNDenoiseNode",
"MemoryOptimization",
"Multi-Scale Retinex",
"MultiscaleFFTEnhancement",
"NAFNetDenoiseNode",
"Noise2VoidNode",
"NoiseDABatchNode",
"NoiseDANode",
"NonLocalMeans",
"NonLocalMeansSimple",
"PhasePreservingEnhancement",
"ProfessionalRestorationPipeline",
"RealBM3DDeblurNode",
"RealBM3DNode",
"RestormerRestorationNode",
"RichardsonLucy",
"RichardsonLucyGPU",
"RichardsonLucySimple",
"SCUNetBatchRestoration",
"SCUNetRestoration",
"Smart Sharpening",
"SmartWorkflowNode",
"StationaryWaveletDenoise",
"SwinIRBatch",
"SwinIRRestoration",
"SwinIRSharpnessBoostNode",
"WaveletDenoise",
"WienerFilter",
"WienerFilterCompare",
"WienerFilterSNR"
],
{
"title_aux": "Eric_Image_Processing_Nodes"
}
],
"https://github.com/EricRollei/Local_LLM_Prompt_Enhancer": [ "https://github.com/EricRollei/Local_LLM_Prompt_Enhancer": [
[ [
"EricImageToImagePromptExpander", "EricImageToImagePromptExpander",
@ -7089,26 +7228,6 @@
"title_aux": "ComfyUI-SD3-Powerlab" "title_aux": "ComfyUI-SD3-Powerlab"
} }
], ],
"https://github.com/GACLove/ComfyUI-Lightx2vWrapper": [
[
"LightX2VConfigCombiner",
"LightX2VConfigCombinerV2",
"LightX2VInferenceConfig",
"LightX2VLoRALoader",
"LightX2VMemoryOptimization",
"LightX2VModularInference",
"LightX2VModularInferenceV2",
"LightX2VQuantization",
"LightX2VTalkObjectInput",
"LightX2VTalkObjectsCombiner",
"LightX2VTalkObjectsFromFiles",
"LightX2VTalkObjectsFromJSON",
"LightX2VTeaCache"
],
{
"title_aux": "ComfyUI-Lightx2vWrapper"
}
],
"https://github.com/GACLove/ComfyUI-VFI": [ "https://github.com/GACLove/ComfyUI-VFI": [
[ [
"CalculateLoadedFPS", "CalculateLoadedFPS",
@ -7898,9 +8017,8 @@
], ],
"https://github.com/Haoming02/comfyui-diffusion-cg": [ "https://github.com/Haoming02/comfyui-diffusion-cg": [
[ [
"Normalization", "Diffusion CG",
"Recenter", "Disable CG"
"Recenter XL"
], ],
{ {
"title_aux": "Diffusion CG" "title_aux": "Diffusion CG"
@ -7916,7 +8034,7 @@
], ],
"https://github.com/Haoming02/comfyui-resharpen": [ "https://github.com/Haoming02/comfyui-resharpen": [
[ [
"Resharpen" "ReSharpen"
], ],
{ {
"title_aux": "ComfyUI ReSharpen" "title_aux": "ComfyUI ReSharpen"
@ -8149,7 +8267,9 @@
"https://github.com/IAMCCS/IAMCCS-nodes": [ "https://github.com/IAMCCS/IAMCCS-nodes": [
[ [
"IAMCCS_ModelWithLoRA", "IAMCCS_ModelWithLoRA",
"IAMCCS_WanLoRAStack" "IAMCCS_WanLoRAStack",
"IAMCCS_WanLoRAStackModelIO",
"IAMCCS_qwenloraloader"
], ],
{ {
"title_aux": "IAMCCS-nodes" "title_aux": "IAMCCS-nodes"
@ -8273,6 +8393,22 @@
"title_aux": "ComfyUI-VideoDescription" "title_aux": "ComfyUI-VideoDescription"
} }
], ],
"https://github.com/IamCreateAI/ComfyUI-Animon": [
[
"AnimonImageToVideoNode",
"AnimonKeyNode",
"AnimonStartEndToVideoNode",
"AnimonUploadImageFromFileNode",
"AnimonUploadImageFromTensorNode",
"AnimonUploadVideoFromBytesNode",
"AnimonUploadVideoFromFileNode",
"AnimonUploadVideoFromTensorNode",
"AnimonUpscaleVideoNode"
],
{
"title_aux": "ComfyUI-Animon"
}
],
"https://github.com/IamCreateAI/Ruyi-Models": [ "https://github.com/IamCreateAI/Ruyi-Models": [
[ [
"Ruyi_EnhanceAVideo", "Ruyi_EnhanceAVideo",
@ -11264,6 +11400,12 @@
"title_aux": "ComfyUI-OneForOne" "title_aux": "ComfyUI-OneForOne"
} }
], ],
"https://github.com/MergeBlockWeighted/fo_ComfyUI": [
[
"MergeBlockWeighted"
],
{}
],
"https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": [ "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": [
[ [
"VideoReportData", "VideoReportData",
@ -11446,6 +11588,26 @@
"title_aux": "ComfyUI-LightVAE" "title_aux": "ComfyUI-LightVAE"
} }
], ],
"https://github.com/ModelTC/ComfyUI-Lightx2vWrapper": [
[
"LightX2VConfigCombiner",
"LightX2VConfigCombinerV2",
"LightX2VInferenceConfig",
"LightX2VLoRALoader",
"LightX2VMemoryOptimization",
"LightX2VModularInference",
"LightX2VModularInferenceV2",
"LightX2VQuantization",
"LightX2VTalkObjectInput",
"LightX2VTalkObjectsCombiner",
"LightX2VTalkObjectsFromFiles",
"LightX2VTalkObjectsFromJSON",
"LightX2VTeaCache"
],
{
"title_aux": "ComfyUI-Lightx2vWrapper"
}
],
"https://github.com/MohammadAboulEla/ComfyUI-iTools": [ "https://github.com/MohammadAboulEla/ComfyUI-iTools": [
[ [
"iToolsAddOverlay", "iToolsAddOverlay",
@ -12812,6 +12974,18 @@
"title_aux": "ComfyUI-AdvancedLivePortrait" "title_aux": "ComfyUI-AdvancedLivePortrait"
} }
], ],
"https://github.com/PozzettiAndrea/ComfyUI-AnyTop": [
[
"AnyTopConditionLoader",
"AnyTopExportBVH",
"AnyTopGenerateMotion",
"AnyTopMotionPreview",
"DownLoadAnyTopModel"
],
{
"title_aux": "ComfyUI-AnyTop"
}
],
"https://github.com/PozzettiAndrea/ComfyUI-DepthAnythingV3": [ "https://github.com/PozzettiAndrea/ComfyUI-DepthAnythingV3": [
[ [
"DA3_CreateCameraParams", "DA3_CreateCameraParams",
@ -12822,11 +12996,11 @@
"DA3_Save3DGaussians", "DA3_Save3DGaussians",
"DA3_SavePointCloud", "DA3_SavePointCloud",
"DA3_To3DGaussians", "DA3_To3DGaussians",
"DA3_ToMesh",
"DA3_ToPointCloud", "DA3_ToPointCloud",
"DepthAnythingV3_3D", "DepthAnythingV3_3D",
"DepthAnythingV3_Advanced", "DepthAnythingV3_Advanced",
"DepthAnythingV3_MultiView", "DepthAnythingV3_MultiView",
"DepthAnythingV3_MultiView_3D",
"DepthAnything_V3", "DepthAnything_V3",
"DownloadAndLoadDepthAnythingV3Model" "DownloadAndLoadDepthAnythingV3Model"
], ],
@ -12836,22 +13010,21 @@
], ],
"https://github.com/PozzettiAndrea/ComfyUI-GeometryPack": [ "https://github.com/PozzettiAndrea/ComfyUI-GeometryPack": [
[ [
"GeomPackBlenderRemeshWithTexture", "GeomPackAppendMesh",
"GeomPackBlenderUV", "GeomPackBlenderUV",
"GeomPackBooleanOp", "GeomPackBooleanOp",
"GeomPackCheckNormals", "GeomPackCheckNormals",
"GeomPackCombineMeshes", "GeomPackCombineMeshes",
"GeomPackCombineMeshesWeighted",
"GeomPackComputeNormals", "GeomPackComputeNormals",
"GeomPackComputeSDF",
"GeomPackCreatePrimitive", "GeomPackCreatePrimitive",
"GeomPackDetectSelfIntersections", "GeomPackDetectSelfIntersections",
"GeomPackExampleNode", "GeomPackExampleNode",
"GeomPackExtractSkeleton", "GeomPackExtractSkeleton",
"GeomPackFillHoles", "GeomPackFillHoles",
"GeomPackFilterComponents",
"GeomPackFixIntersectionsByPerturbation",
"GeomPackFixIntersectionsByRemoval",
"GeomPackFixNormals", "GeomPackFixNormals",
"GeomPackFixSelfIntersectionsByPerturbation",
"GeomPackFixSelfIntersectionsByRemoval",
"GeomPackLibiglARAP", "GeomPackLibiglARAP",
"GeomPackLibiglHarmonic", "GeomPackLibiglHarmonic",
"GeomPackLibiglLSCM", "GeomPackLibiglLSCM",
@ -12859,30 +13032,32 @@
"GeomPackLoadMeshBatch", "GeomPackLoadMeshBatch",
"GeomPackLoadMeshBlend", "GeomPackLoadMeshBlend",
"GeomPackLoadMeshFBX", "GeomPackLoadMeshFBX",
"GeomPackMarkBoundaryEdges", "GeomPackMeshFromSkeleton",
"GeomPackMeshDistance",
"GeomPackMeshInfo", "GeomPackMeshInfo",
"GeomPackMeshQuality",
"GeomPackMeshToMeshDistance",
"GeomPackMeshToPointCloud", "GeomPackMeshToPointCloud",
"GeomPackPreviewBoundingBoxesVTK", "GeomPackPointCloudToMesh",
"GeomPackPointToMeshDistance",
"GeomPackPreviewMesh", "GeomPackPreviewMesh",
"GeomPackPreviewMeshUV", "GeomPackPreviewMeshUV",
"GeomPackPreviewMeshVTK", "GeomPackPreviewMeshVTK",
"GeomPackPreviewMeshVTKFields", "GeomPackPreviewMeshVTKEdges",
"GeomPackPreviewMeshVTKFilters", "GeomPackPreviewMeshVTKPointCloud",
"GeomPackPreviewMeshVTKHidableMenu", "GeomPackPreviewMeshVTKSplit",
"GeomPackPreviewMeshVTKTextured", "GeomPackPreviewMeshVTKWithNormals",
"GeomPackPreviewMeshVTKWithTexture",
"GeomPackReconstructSurface", "GeomPackReconstructSurface",
"GeomPackRefineMesh", "GeomPackRefineMesh",
"GeomPackRemesh", "GeomPackRemesh",
"GeomPackRemeshSelfIntersections", "GeomPackRemeshSelfIntersections",
"GeomPackRemeshUV",
"GeomPackSaveMesh", "GeomPackSaveMesh",
"GeomPackSkeletonToLines", "GeomPackTextureToGeometry",
"GeomPackSkeletonToMesh", "GeomPackTransformMesh",
"GeomPackSplitComponents", "GeomPackUVUnwrap",
"GeomPackStripMeshAdjacency", "GeomPackVisualizeNormalField",
"GeomPackTransform", "GeomPackVisualizeSkeleton",
"GeomPackVisualizeNormals",
"GeomPackXAtlasRemeshWithTexture",
"GeomPackXAtlasUVUnwrap" "GeomPackXAtlasUVUnwrap"
], ],
{ {
@ -13626,6 +13801,7 @@
], ],
"https://github.com/S4MUEL-404/ComfyUI-PromptsO": [ "https://github.com/S4MUEL-404/ComfyUI-PromptsO": [
[ [
"\ud83d\udc80S4AnyToString",
"\ud83d\udc80S4ImageWithGemini", "\ud83d\udc80S4ImageWithGemini",
"\ud83d\udc80S4ImageWithGrok", "\ud83d\udc80S4ImageWithGrok",
"\ud83d\udc80S4PromptsCombine", "\ud83d\udc80S4PromptsCombine",
@ -14370,7 +14546,8 @@
[ [
"Simple Readable Metadata Text Viewer-SG", "Simple Readable Metadata Text Viewer-SG",
"SimpleReadableMetadataMAXSG", "SimpleReadableMetadataMAXSG",
"SimpleReadableMetadataSG" "SimpleReadableMetadataSG",
"SimpleReadableMetadataSaveTextSG"
], ],
{ {
"title_aux": "ComfyUI-Simple_Readable_Metadata-SG" "title_aux": "ComfyUI-Simple_Readable_Metadata-SG"
@ -17292,6 +17469,21 @@
"title_aux": "ControlFlowUtils" "title_aux": "ControlFlowUtils"
} }
], ],
"https://github.com/WASasquatch/ComfyUI_LMStudio_EasyQuery": [
[
"WASLMStudioCaption",
"WASLMStudioCaptionDataset",
"WASLMStudioCaptionDatasetCustom",
"WASLMStudioChat",
"WASLMStudioModel",
"WASLMStudioOptions",
"WASLMStudioQuery",
"WASLoadImageDirectory"
],
{
"title_aux": "WAS LMStudio Easy-Query"
}
],
"https://github.com/WASasquatch/ComfyUI_Preset_Merger": [ "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [
[ [
"Preset_Model_Merge" "Preset_Model_Merge"
@ -18021,12 +18213,14 @@
"ApplyStyleModelEnhanced", "ApplyStyleModelEnhanced",
"ApplyStyleModelSimple", "ApplyStyleModelSimple",
"BatchImagesNode", "BatchImagesNode",
"FrameCalculator",
"FrameCalculatorAudio", "FrameCalculatorAudio",
"FrameCalculatorVideo",
"GetResolutionImage",
"InpaintConditioningNode", "InpaintConditioningNode",
"InpaintFluxKontextConditioning", "InpaintFluxKontextConditioning",
"Prepimg2Vid", "Prepimg2Vid",
"RemoveBackgroundNode", "RemoveBackgroundNode",
"ShowAnyDataType",
"StitchImages", "StitchImages",
"StitchImagesAndMask", "StitchImagesAndMask",
"TextFieldNode", "TextFieldNode",
@ -19995,6 +20189,39 @@
"title_aux": "ComfyUI-Sa2VA-XJ" "title_aux": "ComfyUI-Sa2VA-XJ"
} }
], ],
"https://github.com/alexjx/ComfyUI-XJNodes": [
[
"XJFloatRangeList",
"XJImageGrid",
"XJImageListFilter",
"XJImageRandomTransform",
"XJImageScaleCalc",
"XJImageScaleMegapixel",
"XJImageTransform",
"XJIntOffset",
"XJIntegerDecrement",
"XJIntegerIncrement",
"XJJSONExtractor",
"XJLoadImageByPath",
"XJLoadImageWithMetadata",
"XJLoadImagesFromDirBatch",
"XJLoadImagesFromDirList",
"XJOneImageFromBatch",
"XJRandomImagesFromBatch",
"XJRandomTextFromFile",
"XJRandomTextFromList",
"XJSamplerAdapter",
"XJSaveImageWithMetadata",
"XJSchedulerAdapter",
"XJStringPass",
"XJSupirParameters",
"XJTextFileInfo",
"XJTextListFromFile"
],
{
"title_aux": "ComfyUI-XJNodes"
}
],
"https://github.com/alibof96/ComfyUI-DownscaleIRN": [ "https://github.com/alibof96/ComfyUI-DownscaleIRN": [
[ [
"IRNDownscale" "IRNDownscale"
@ -22883,6 +23110,28 @@
"title_aux": "ComfyUI-DiT360" "title_aux": "ComfyUI-DiT360"
} }
], ],
"https://github.com/cedarconnor/ComfyUI-DreamCube": [
[
"ApplyDepthToCubemapFace",
"BatchCubemapDepth",
"CreateEmptyCubemap",
"CubemapInfo",
"CubemapPreview",
"CubemapSeamValidator",
"CubemapToEquirect",
"EnforceDepthConsistency",
"EquirectToCubemap",
"ExtractCubemapFace",
"ExtractDepthChannel",
"InsertCubemapFace",
"MergeCubemapDepth",
"NormalizeCubemapDepth",
"SmoothCubemapDepth"
],
{
"title_aux": "ComfyUI-DreamCube"
}
],
"https://github.com/cedarconnor/ComfyUI-OmniX": [ "https://github.com/cedarconnor/ComfyUI-OmniX": [
[ [
"OmniX_PanoPerception_Depth", "OmniX_PanoPerception_Depth",
@ -25277,7 +25526,8 @@
"WanVaceToVideo", "WanVaceToVideo",
"WebcamCapture", "WebcamCapture",
"unCLIPCheckpointLoader", "unCLIPCheckpointLoader",
"unCLIPConditioning" "unCLIPConditioning",
"wanBlockSwap"
], ],
{ {
"title_aux": "ComfyUI" "title_aux": "ComfyUI"
@ -26855,6 +27105,14 @@
"title_aux": "ComfyUI Deadline Submission" "title_aux": "ComfyUI Deadline Submission"
} }
], ],
"https://github.com/dowa-git/comfyui-dowa": [
[
"DowaNavigationNode"
],
{
"title_aux": "comfyui-dowa"
}
],
"https://github.com/downlifted/ComfyUI_GROQ-PromptWizard": [ "https://github.com/downlifted/ComfyUI_GROQ-PromptWizard": [
[ [
"GroqAudioProcessor", "GroqAudioProcessor",
@ -28606,6 +28864,7 @@
[ [
"OnDemandCLIPLoader", "OnDemandCLIPLoader",
"OnDemandCheckpointLoader", "OnDemandCheckpointLoader",
"OnDemandCivitaiLikedLoraLoader",
"OnDemandControlNetLoader", "OnDemandControlNetLoader",
"OnDemandGGUFLoader", "OnDemandGGUFLoader",
"OnDemandLoraLoader", "OnDemandLoraLoader",
@ -28646,42 +28905,6 @@
"title_aux": "ComfyUI_llm_easyanimiate" "title_aux": "ComfyUI_llm_easyanimiate"
} }
], ],
"https://github.com/fredconex/ComfyUI-SongBloom": [
[
"SongBloomGenerate",
"SongBloomModelLoader"
],
{
"title_aux": "SongBloom"
}
],
"https://github.com/fredconex/ComfyUI-SoundFlow": [
[
"SoundFlow_Concatenator",
"SoundFlow_DuckCompressor",
"SoundFlow_Equalizer",
"SoundFlow_Fade",
"SoundFlow_GainPitchControl",
"SoundFlow_GetLength",
"SoundFlow_Mixer",
"SoundFlow_PreviewAudio",
"SoundFlow_SetLength",
"SoundFlow_SilenceTrimmer",
"SoundFlow_SimpleCompressor",
"SoundFlow_TrimAudio"
],
{
"title_aux": "ComfyUI-SoundFlow"
}
],
"https://github.com/fredconex/ComfyUI-SyncEdit": [
[
"SyncTextEditor"
],
{
"title_aux": "Sync Edit"
}
],
"https://github.com/fredhopp/comfyui-flipflopnodes": [ "https://github.com/fredhopp/comfyui-flipflopnodes": [
[ [
"FF Group Positioner", "FF Group Positioner",
@ -28769,6 +28992,16 @@
"title_aux": "ComfyUI_pose_inter" "title_aux": "ComfyUI_pose_inter"
} }
], ],
"https://github.com/fuselayer/comfyui-lite-tracker": [
[
"LiteTracker_LoadModel",
"LiteTracker_Track",
"RectEditor"
],
{
"title_aux": "comfyui-lite-tracker"
}
],
"https://github.com/fuselayer/comfyui-mosaic-blur": [ "https://github.com/fuselayer/comfyui-mosaic-blur": [
[ [
"ImageMosaic" "ImageMosaic"
@ -28914,6 +29147,7 @@
"PerturbedAttentionDelta", "PerturbedAttentionDelta",
"PromptShuffler", "PromptShuffler",
"QuantileMatchScaling", "QuantileMatchScaling",
"ReflectionPadding",
"SADAInfo", "SADAInfo",
"SADAModelPatch", "SADAModelPatch",
"SDXL_LoRA_BlockSlider_Loader", "SDXL_LoRA_BlockSlider_Loader",
@ -29287,6 +29521,9 @@
"HunyuanVideoLoraTrainer_fal", "HunyuanVideoLoraTrainer_fal",
"Ideogramv3_fal", "Ideogramv3_fal",
"Imagen4Preview_fal", "Imagen4Preview_fal",
"InfinityStarTextToVideo_fal",
"Kling21Pro_fal",
"Kling25TurboPro_fal",
"KlingMaster_fal", "KlingMaster_fal",
"KlingPro10_fal", "KlingPro10_fal",
"KlingPro16_fal", "KlingPro16_fal",
@ -29301,6 +29538,7 @@
"MiniMax_fal", "MiniMax_fal",
"NanoBananaEdit_fal", "NanoBananaEdit_fal",
"NanoBananaTextToImage_fal", "NanoBananaTextToImage_fal",
"PixverseSwapNode_fal",
"QwenImageEdit_fal", "QwenImageEdit_fal",
"Recraft_fal", "Recraft_fal",
"ReveTextToImage_fal", "ReveTextToImage_fal",
@ -29312,12 +29550,15 @@
"SeedreamV4Edit_fal", "SeedreamV4Edit_fal",
"Seedvr_Upscale_Video_fal", "Seedvr_Upscale_Video_fal",
"Seedvr_Upscaler_fal", "Seedvr_Upscaler_fal",
"Sora2Pro_fal",
"Topaz_Upscale_Video_fal", "Topaz_Upscale_Video_fal",
"UploadFile_fal", "UploadFile_fal",
"UploadVideo_fal", "UploadVideo_fal",
"Upscaler_fal", "Upscaler_fal",
"VLM_fal", "VLM_fal",
"Veo2ImageToVideo_fal", "Veo2ImageToVideo_fal",
"Veo31Fast_fal",
"Veo31_fal",
"Veo3_fal", "Veo3_fal",
"VideoUpscaler_fal", "VideoUpscaler_fal",
"Wan2214b_animate_move_character_fal", "Wan2214b_animate_move_character_fal",
@ -30358,6 +30599,7 @@
"WWAA_PromptWriter", "WWAA_PromptWriter",
"WWAA_SearchReplaceMulti", "WWAA_SearchReplaceMulti",
"WWAA_SearchReplaceText", "WWAA_SearchReplaceText",
"WWAA_SlicedArt",
"WWAA_Switch_Int", "WWAA_Switch_Int",
"WWAA_VideoResolution" "WWAA_VideoResolution"
], ],
@ -30462,6 +30704,14 @@
"title_aux": "ComfyUI-MusePose-Remaster" "title_aux": "ComfyUI-MusePose-Remaster"
} }
], ],
"https://github.com/hua1995116/comfyui_goenhance_ffmpeg_wm": [
[
"GOENHANCE_FFmpegWatermark"
],
{
"title_aux": "comfyui_goenhance_ffmpeg_wm"
}
],
"https://github.com/huagetai/ComfyUI-Gaffer": [ "https://github.com/huagetai/ComfyUI-Gaffer": [
[ [
"ApplyICLight", "ApplyICLight",
@ -30673,6 +30923,15 @@
"title_aux": "ComfyUI Text Remove Node" "title_aux": "ComfyUI Text Remove Node"
} }
], ],
"https://github.com/huyl3-cpu/comfyui-sortlist": [
[
"sort_list_string",
"video_dir_combiner"
],
{
"title_aux": "comfyui-huyl2-nodes"
}
],
"https://github.com/hvppycoding/comfyui-json-prompt-renderer": [ "https://github.com/hvppycoding/comfyui-json-prompt-renderer": [
[ [
"ExtractJSON", "ExtractJSON",
@ -30702,6 +30961,7 @@
], ],
"https://github.com/hw5511/comfyui_hf_upscaler_loader": [ "https://github.com/hw5511/comfyui_hf_upscaler_loader": [
[ [
"GGUFModelLoaderFromHF",
"UpscaleModelLoaderFromHF" "UpscaleModelLoaderFromHF"
], ],
{ {
@ -31185,6 +31445,7 @@
"IG1AspectRatioProperties", "IG1AspectRatioProperties",
"IG1FluxReport", "IG1FluxReport",
"IG1ImageSelector", "IG1ImageSelector",
"IG1LoadImage",
"IG1QwenImageNativesResolutions", "IG1QwenImageNativesResolutions",
"IG1Resolution", "IG1Resolution",
"IG1ResolutionAdvisor", "IG1ResolutionAdvisor",
@ -37607,7 +37868,8 @@
], ],
"https://github.com/mercu-lore/-Multiple-Angle-Camera-Control": [ "https://github.com/mercu-lore/-Multiple-Angle-Camera-Control": [
[ [
"CameraControlPromptNode" "CameraControlPromptNode",
"RelightingPromptNode"
], ],
{ {
"title_aux": "Multiple-Angle-Camera-Control" "title_aux": "Multiple-Angle-Camera-Control"
@ -38548,6 +38810,14 @@
"title_aux": "comfyui-usetaesd" "title_aux": "comfyui-usetaesd"
} }
], ],
"https://github.com/neonr-0/ComfyUI-PixelConstrainedScaler": [
[
"PixelConstrainedScaler"
],
{
"title_aux": "ComfyUI-PixelConstrainedScaler"
}
],
"https://github.com/neph1/comfyui-smooth-step-lora-loader": [ "https://github.com/neph1/comfyui-smooth-step-lora-loader": [
[ [
"Smooth_Step_Lora_Loader" "Smooth_Step_Lora_Loader"
@ -43421,6 +43691,14 @@
"title_aux": "Skycoder Tools" "title_aux": "Skycoder Tools"
} }
], ],
"https://github.com/slahiri/ComfyUI-AI-Photography-Toolkit": [
[
"SID_AIPromptGenerator"
],
{
"title_aux": "ComfyUI-AI-Photography-Toolkit"
}
],
"https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": [ "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": [
[ [
"SmartFormatString", "SmartFormatString",
@ -44324,6 +44602,15 @@
"title_aux": "comfyui-lsnet" "title_aux": "comfyui-lsnet"
} }
], ],
"https://github.com/speige/ComfyUI_Make-It-Animatable": [
[
"MakeItAnimatableRig",
"MakeItAnimatableRigGS"
],
{
"title_aux": "ComfyUI_Make-It-Animatable"
}
],
"https://github.com/spinagon/ComfyUI-seam-carving": [ "https://github.com/spinagon/ComfyUI-seam-carving": [
[ [
"SeamCarving" "SeamCarving"
@ -44768,6 +45055,15 @@
"title_aux": "ComfyUI-RetroDiffusion-API-Node" "title_aux": "ComfyUI-RetroDiffusion-API-Node"
} }
], ],
"https://github.com/swan7-py/ComfyUI-ImageAlphaCrop": [
[
"ImageAlphaCrop",
"ImageAlphaCropAdvanced"
],
{
"title_aux": "ComfyUI-ImageAlphaCrop"
}
],
"https://github.com/sweetndata/ComfyUI-Image-Harmonizer": [ "https://github.com/sweetndata/ComfyUI-Image-Harmonizer": [
[ [
"harmonizer" "harmonizer"
@ -46220,10 +46516,12 @@
"https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [ "https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [
[ [
"API Request Node", "API Request Node",
"CombineImageAudioToVideoNode",
"Empty Image Node", "Empty Image Node",
"JSON Builder Node", "JSON Builder Node",
"JSON Parser Node", "JSON Parser Node",
"JsonBuilderNode", "JsonBuilderNode",
"LoadAudioFromUrlNode",
"LoadImageFromUrlNode", "LoadImageFromUrlNode",
"MultilinePromptNode", "MultilinePromptNode",
"OSSUploadNode", "OSSUploadNode",
@ -46671,6 +46969,7 @@
"https://github.com/walke2019/ComfyUI-GGUF-VLM": [ "https://github.com/walke2019/ComfyUI-GGUF-VLM": [
[ [
"LocalTextModelLoader", "LocalTextModelLoader",
"MemoryManagerNode",
"MultiImageAnalysis", "MultiImageAnalysis",
"NexaServiceStatus", "NexaServiceStatus",
"RemoteAPIConfig", "RemoteAPIConfig",
@ -46687,6 +46986,15 @@
"title_aux": "Qwen2.5-VL GGUF Nodes" "title_aux": "Qwen2.5-VL GGUF Nodes"
} }
], ],
"https://github.com/wallen0322/ComfyUI-AE-Animation": [
[
"AEAnimationCore",
"AERender"
],
{
"title_aux": "ComfyUI-AE-Animation"
}
],
"https://github.com/wallen0322/ComfyUI-QI-QwenEditSafe": [ "https://github.com/wallen0322/ComfyUI-QI-QwenEditSafe": [
[ [
"QI_DyPE", "QI_DyPE",
@ -46707,6 +47015,16 @@
"title_aux": "ComfyUI-SageAttention3" "title_aux": "ComfyUI-SageAttention3"
} }
], ],
"https://github.com/wallen0322/ComfyUI-TTM-WAN22": [
[
"WanTTMConditioning",
"WanTTMSampler",
"WanTTMSamplerComplete"
],
{
"title_aux": "ComfyUI-TTM-WAN22"
}
],
"https://github.com/wallen0322/ComfyUI-Wan22FMLF": [ "https://github.com/wallen0322/ComfyUI-Wan22FMLF": [
[ [
"WanAdvancedExtractLastFrames", "WanAdvancedExtractLastFrames",
@ -47502,6 +47820,21 @@
"title_aux": "Steganos Node for ComfyUI" "title_aux": "Steganos Node for ComfyUI"
} }
], ],
"https://github.com/wzyfromhust/ComfyUI_SAM2UltraV2": [
[
"SAM2UltraV2: Crop",
"SAM2UltraV2: LoadModel",
"SAM2UltraV2: MaskKeepLargestN",
"SAM2UltraV2: UpperBody"
],
{
"author": "chflame",
"description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.",
"nickname": "LayerStyle",
"title": "LayerStyle",
"title_aux": "ComfyUI_SAM2UltraV2"
}
],
"https://github.com/x0x0b/ComfyUI-PromptHistoryGallery": [ "https://github.com/x0x0b/ComfyUI-PromptHistoryGallery": [
[ [
"PromptHistoryInput" "PromptHistoryInput"
@ -48111,6 +48444,16 @@
"title_aux": "ComfyUI-YCNodes" "title_aux": "ComfyUI-YCNodes"
} }
], ],
"https://github.com/yichengup/ComfyUI-YCNodes_Toolkit": [
[
"ycBBoxBridge",
"ycCanvasBBox",
"ycimagebrushmask"
],
{
"title_aux": "ComfyUI-YCNodes_Toolkit"
}
],
"https://github.com/yichengup/ComfyUI_SwiftCut": [ "https://github.com/yichengup/ComfyUI_SwiftCut": [
[ [
"SelectImages", "SelectImages",
@ -49057,6 +49400,7 @@
"TextPreview", "TextPreview",
"TorchCompileModelAdvanced", "TorchCompileModelAdvanced",
"UpscaleImageWithModelIfNeed", "UpscaleImageWithModelIfNeed",
"VolcanoArkImageEditNode",
"VolcanoImageEditNode", "VolcanoImageEditNode",
"VolcanoOutpaintingNode" "VolcanoOutpaintingNode"
], ],
@ -49433,9 +49777,6 @@
"SDXLAspectRatio" "SDXLAspectRatio"
], ],
{ {
"preemptions": [
"SAMLoader"
],
"title_aux": "SDXLCustomAspectRatio" "title_aux": "SDXLCustomAspectRatio"
} }
], ],

View File

@ -8,6 +8,7 @@ import datetime
import concurrent.futures import concurrent.futures
import requests import requests
import warnings import warnings
import argparse
builtin_nodes = set() builtin_nodes = set()
@ -40,27 +41,51 @@ def download_url(url, dest_folder, filename=None):
raise Exception(f"Failed to download file from {url}") raise Exception(f"Failed to download file from {url}")
# prepare temp dir def parse_arguments():
if len(sys.argv) > 1: """Parse command-line arguments"""
temp_dir = sys.argv[1] parser = argparse.ArgumentParser(
else: description='ComfyUI Manager Node Scanner',
temp_dir = os.path.join(os.getcwd(), ".tmp") formatter_class=argparse.RawDescriptionHelpFormatter,
epilog='''
Examples:
# Standard mode
python3 scanner.py
python3 scanner.py --skip-update
if not os.path.exists(temp_dir): # Scan-only mode
os.makedirs(temp_dir) python3 scanner.py --scan-only temp-urls-clean.list
python3 scanner.py --scan-only urls.list --temp-dir /custom/temp
python3 scanner.py --scan-only urls.list --skip-update
'''
)
parser.add_argument('--scan-only', type=str, metavar='URL_LIST_FILE',
help='Scan-only mode: provide URL list file (one URL per line)')
parser.add_argument('--temp-dir', type=str, metavar='DIR',
help='Temporary directory for cloned repositories')
parser.add_argument('--skip-update', action='store_true',
help='Skip git clone/pull operations')
parser.add_argument('--skip-stat-update', action='store_true',
help='Skip GitHub stats collection')
parser.add_argument('--skip-all', action='store_true',
help='Skip all update operations')
# Backward compatibility: positional argument for temp_dir
parser.add_argument('temp_dir_positional', nargs='?', metavar='TEMP_DIR',
help='(Legacy) Temporary directory path')
args = parser.parse_args()
return args
skip_update = '--skip-update' in sys.argv or '--skip-all' in sys.argv # Module-level variables (will be set in main if running as script)
skip_stat_update = '--skip-stat-update' in sys.argv or '--skip-all' in sys.argv args = None
scan_only_mode = False
if not skip_stat_update: url_list_file = None
auth = Auth.Token(os.environ.get('GITHUB_TOKEN')) temp_dir = None
g = Github(auth=auth) skip_update = False
else: skip_stat_update = True
g = None g = None
print(f"TEMP DIR: {temp_dir}")
parse_cnt = 0 parse_cnt = 0
@ -310,6 +335,53 @@ def get_nodes(target_dir):
return py_files, directories return py_files, directories
def get_urls_from_list_file(list_file):
"""
Read URLs from list file for scan-only mode
Args:
list_file (str): Path to URL list file (one URL per line)
Returns:
list of tuples: [(url, "", None, None), ...]
Format: (url, title, preemptions, nodename_pattern)
- title: Empty string
- preemptions: None
- nodename_pattern: None
File format:
https://github.com/owner/repo1
https://github.com/owner/repo2
# Comments starting with # are ignored
Raises:
FileNotFoundError: If list_file does not exist
"""
if not os.path.exists(list_file):
raise FileNotFoundError(f"URL list file not found: {list_file}")
urls = []
with open(list_file, 'r', encoding='utf-8') as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
# Skip empty lines and comments
if not line or line.startswith('#'):
continue
# Validate URL format (basic check)
if not (line.startswith('http://') or line.startswith('https://')):
print(f"WARNING: Line {line_num} is not a valid URL: {line}")
continue
# Add URL with empty metadata
# (url, title, preemptions, nodename_pattern)
urls.append((line, "", None, None))
print(f"Loaded {len(urls)} URLs from {list_file}")
return urls
def get_git_urls_from_json(json_file): def get_git_urls_from_json(json_file):
with open(json_file, encoding='utf-8') as file: with open(json_file, encoding='utf-8') as file:
data = json.load(file) data = json.load(file)
@ -366,13 +438,43 @@ def clone_or_pull_git_repository(git_url):
print(f"Failed to clone '{repo_name}': {e}") print(f"Failed to clone '{repo_name}': {e}")
def update_custom_nodes(): def update_custom_nodes(scan_only_mode=False, url_list_file=None):
"""
Update custom nodes by cloning/pulling repositories
Args:
scan_only_mode (bool): If True, use URL list file instead of custom-node-list.json
url_list_file (str): Path to URL list file (required if scan_only_mode=True)
Returns:
dict: node_info mapping {repo_name: (url, title, preemptions, node_pattern)}
"""
if not os.path.exists(temp_dir): if not os.path.exists(temp_dir):
os.makedirs(temp_dir) os.makedirs(temp_dir)
node_info = {} node_info = {}
git_url_titles_preemptions = get_git_urls_from_json('custom-node-list.json') # Select URL source based on mode
if scan_only_mode:
if not url_list_file:
raise ValueError("url_list_file is required in scan-only mode")
git_url_titles_preemptions = get_urls_from_list_file(url_list_file)
print("\n[Scan-Only Mode]")
print(f" - URL source: {url_list_file}")
print(" - GitHub stats: DISABLED")
print(f" - Git clone/pull: {'ENABLED' if not skip_update else 'DISABLED'}")
print(" - Metadata: EMPTY")
else:
if not os.path.exists('custom-node-list.json'):
raise FileNotFoundError("custom-node-list.json not found")
git_url_titles_preemptions = get_git_urls_from_json('custom-node-list.json')
print("\n[Standard Mode]")
print(" - URL source: custom-node-list.json")
print(f" - GitHub stats: {'ENABLED' if not skip_stat_update else 'DISABLED'}")
print(f" - Git clone/pull: {'ENABLED' if not skip_update else 'DISABLED'}")
print(" - Metadata: FULL")
def process_git_url_title(url, title, preemptions, node_pattern): def process_git_url_title(url, title, preemptions, node_pattern):
name = os.path.basename(url) name = os.path.basename(url)
@ -484,46 +586,59 @@ def update_custom_nodes():
if not skip_stat_update: if not skip_stat_update:
process_git_stats(git_url_titles_preemptions) process_git_stats(git_url_titles_preemptions)
# Git clone/pull for all repositories
with concurrent.futures.ThreadPoolExecutor(11) as executor: with concurrent.futures.ThreadPoolExecutor(11) as executor:
for url, title, preemptions, node_pattern in git_url_titles_preemptions: for url, title, preemptions, node_pattern in git_url_titles_preemptions:
executor.submit(process_git_url_title, url, title, preemptions, node_pattern) executor.submit(process_git_url_title, url, title, preemptions, node_pattern)
py_url_titles_and_pattern = get_py_urls_from_json('custom-node-list.json') # .py file download (skip in scan-only mode - only process git repos)
if not scan_only_mode:
py_url_titles_and_pattern = get_py_urls_from_json('custom-node-list.json')
def download_and_store_info(url_title_preemptions_and_pattern): def download_and_store_info(url_title_preemptions_and_pattern):
url, title, preemptions, node_pattern = url_title_preemptions_and_pattern url, title, preemptions, node_pattern = url_title_preemptions_and_pattern
name = os.path.basename(url) name = os.path.basename(url)
if name.endswith(".py"): if name.endswith(".py"):
node_info[name] = (url, title, preemptions, node_pattern) node_info[name] = (url, title, preemptions, node_pattern)
try: try:
download_url(url, temp_dir) download_url(url, temp_dir)
except: except:
print(f"[ERROR] Cannot download '{url}'") print(f"[ERROR] Cannot download '{url}'")
with concurrent.futures.ThreadPoolExecutor(10) as executor: with concurrent.futures.ThreadPoolExecutor(10) as executor:
executor.map(download_and_store_info, py_url_titles_and_pattern) executor.map(download_and_store_info, py_url_titles_and_pattern)
return node_info return node_info
def gen_json(node_info): def gen_json(node_info, scan_only_mode=False):
"""
Generate extension-node-map.json from scanned node information
Args:
node_info (dict): Repository metadata mapping
scan_only_mode (bool): If True, exclude metadata from output
"""
# scan from .py file # scan from .py file
node_files, node_dirs = get_nodes(temp_dir) node_files, node_dirs = get_nodes(temp_dir)
comfyui_path = os.path.abspath(os.path.join(temp_dir, "ComfyUI")) comfyui_path = os.path.abspath(os.path.join(temp_dir, "ComfyUI"))
node_dirs.remove(comfyui_path) # Only reorder if ComfyUI exists in the list
node_dirs = [comfyui_path] + node_dirs if comfyui_path in node_dirs:
node_dirs.remove(comfyui_path)
node_dirs = [comfyui_path] + node_dirs
data = {} data = {}
for dirname in node_dirs: for dirname in node_dirs:
py_files = get_py_file_paths(dirname) py_files = get_py_file_paths(dirname)
metadata = {} metadata = {}
nodes = set() nodes = set()
for py in py_files: for py in py_files:
nodes_in_file, metadata_in_file = scan_in_file(py, dirname == "ComfyUI") nodes_in_file, metadata_in_file = scan_in_file(py, dirname == "ComfyUI")
nodes.update(nodes_in_file) nodes.update(nodes_in_file)
# Include metadata from .py files in both modes
metadata.update(metadata_in_file) metadata.update(metadata_in_file)
dirname = os.path.basename(dirname) dirname = os.path.basename(dirname)
@ -538,17 +653,28 @@ def gen_json(node_info):
if dirname in node_info: if dirname in node_info:
git_url, title, preemptions, node_pattern = node_info[dirname] git_url, title, preemptions, node_pattern = node_info[dirname]
metadata['title_aux'] = title # Conditionally add metadata based on mode
if not scan_only_mode:
# Standard mode: include all metadata
metadata['title_aux'] = title
if preemptions is not None: if preemptions is not None:
metadata['preemptions'] = preemptions metadata['preemptions'] = preemptions
if node_pattern is not None: if node_pattern is not None:
metadata['nodename_pattern'] = node_pattern metadata['nodename_pattern'] = node_pattern
# Scan-only mode: metadata remains empty
data[git_url] = (nodes, metadata) data[git_url] = (nodes, metadata)
else: else:
print(f"WARN: {dirname} is removed from custom-node-list.json") # Scan-only mode: Repository not in node_info (expected behavior)
# Construct URL from dirname (author_repo format)
if '_' in dirname:
parts = dirname.split('_', 1)
git_url = f"https://github.com/{parts[0]}/{parts[1]}"
data[git_url] = (nodes, metadata)
else:
print(f"WARN: {dirname} is removed from custom-node-list.json")
for file in node_files: for file in node_files:
nodes, metadata = scan_in_file(file) nodes, metadata = scan_in_file(file)
@ -561,13 +687,16 @@ def gen_json(node_info):
if file in node_info: if file in node_info:
url, title, preemptions, node_pattern = node_info[file] url, title, preemptions, node_pattern = node_info[file]
metadata['title_aux'] = title
if preemptions is not None: # Conditionally add metadata based on mode
metadata['preemptions'] = preemptions if not scan_only_mode:
metadata['title_aux'] = title
if node_pattern is not None:
metadata['nodename_pattern'] = node_pattern if preemptions is not None:
metadata['preemptions'] = preemptions
if node_pattern is not None:
metadata['nodename_pattern'] = node_pattern
data[url] = (nodes, metadata) data[url] = (nodes, metadata)
else: else:
@ -579,6 +708,10 @@ def gen_json(node_info):
for extension in extensions: for extension in extensions:
node_list_json_path = os.path.join(temp_dir, extension, 'node_list.json') node_list_json_path = os.path.join(temp_dir, extension, 'node_list.json')
if os.path.exists(node_list_json_path): if os.path.exists(node_list_json_path):
# Skip if extension not in node_info (scan-only mode with limited URLs)
if extension not in node_info:
continue
git_url, title, preemptions, node_pattern = node_info[extension] git_url, title, preemptions, node_pattern = node_info[extension]
with open(node_list_json_path, 'r', encoding='utf-8') as f: with open(node_list_json_path, 'r', encoding='utf-8') as f:
@ -608,14 +741,16 @@ def gen_json(node_info):
print("------------------------------------------------------") print("------------------------------------------------------")
node_list_json = {} node_list_json = {}
metadata_in_url['title_aux'] = title # Conditionally add metadata based on mode
if not scan_only_mode:
metadata_in_url['title_aux'] = title
if preemptions is not None: if preemptions is not None:
metadata['preemptions'] = preemptions metadata_in_url['preemptions'] = preemptions
if node_pattern is not None:
metadata_in_url['nodename_pattern'] = node_pattern
if node_pattern is not None:
metadata_in_url['nodename_pattern'] = node_pattern
nodes = list(nodes) nodes = list(nodes)
nodes.sort() nodes.sort()
data[git_url] = (nodes, metadata_in_url) data[git_url] = (nodes, metadata_in_url)
@ -625,12 +760,53 @@ def gen_json(node_info):
json.dump(data, file, indent=4, sort_keys=True) json.dump(data, file, indent=4, sort_keys=True)
print("### ComfyUI Manager Node Scanner ###") if __name__ == "__main__":
# Parse arguments
args = parse_arguments()
print("\n# Updating extensions\n") # Determine mode
updated_node_info = update_custom_nodes() scan_only_mode = args.scan_only is not None
url_list_file = args.scan_only if scan_only_mode else None
print("\n# 'extension-node-map.json' file is generated.\n") # Determine temp_dir
gen_json(updated_node_info) if args.temp_dir:
temp_dir = args.temp_dir
elif args.temp_dir_positional:
temp_dir = args.temp_dir_positional
else:
temp_dir = os.path.join(os.getcwd(), ".tmp")
print("\nDONE.\n") if not os.path.exists(temp_dir):
os.makedirs(temp_dir)
# Determine skip flags
skip_update = args.skip_update or args.skip_all
skip_stat_update = args.skip_stat_update or args.skip_all or scan_only_mode
if not skip_stat_update:
auth = Auth.Token(os.environ.get('GITHUB_TOKEN'))
g = Github(auth=auth)
else:
g = None
print("### ComfyUI Manager Node Scanner ###")
if scan_only_mode:
print(f"\n# [Scan-Only Mode] Processing URL list: {url_list_file}\n")
else:
print("\n# [Standard Mode] Updating extensions\n")
# Update/clone repositories and collect node info
updated_node_info = update_custom_nodes(scan_only_mode, url_list_file)
print("\n# Generating 'extension-node-map.json'...\n")
# Generate extension-node-map.json
gen_json(updated_node_info, scan_only_mode)
print("\n✅ DONE.\n")
if scan_only_mode:
print("Output: extension-node-map.json (node mappings only)")
else:
print("Output: extension-node-map.json (full metadata)")