mirror of
https://github.com/Comfy-Org/ComfyUI-Manager.git
synced 2026-04-28 11:12:31 +08:00
Merge branch 'Comfy-Org:main' into fix/manager-conflicts-undefined-error
This commit is contained in:
commit
1ec6736611
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
13007
github-stats.json
13007
github-stats.json
File diff suppressed because it is too large
Load Diff
@ -1,14 +1,377 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "cosmicbuffalo",
|
||||
"title": "comfyui-mobile-frontend",
|
||||
"reference": "https://github.com/cosmicbuffalo/comfyui-mobile-frontend",
|
||||
"author": "Lumiyumi",
|
||||
"title": "comfyui_stringcombineX",
|
||||
"reference": "https://github.com/Lumiyumi/comfyui_stringcombineX",
|
||||
"files": [
|
||||
"https://github.com/cosmicbuffalo/comfyui-mobile-frontend"
|
||||
"https://github.com/Lumiyumi/comfyui_stringcombineX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "An experimental dedicated mobile-first frontend for ComfyUI."
|
||||
"description": "ComfyUI custom node for string combination with extensible class structure for custom variations. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "ayylmao1773",
|
||||
"title": "ComfyUI-switch-aspect",
|
||||
"reference": "https://github.com/ayylmao1773/ComfyUI-switch-aspect",
|
||||
"files": [
|
||||
"https://github.com/ayylmao1773/ComfyUI-switch-aspect"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI node for automatic portrait/landscape aspect ratio switching based on input dimensions."
|
||||
},
|
||||
{
|
||||
"author": "tester4488",
|
||||
"title": "mc_audio",
|
||||
"reference": "https://github.com/tester4488/mc_audio",
|
||||
"files": [
|
||||
"https://github.com/tester4488/mc_audio"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "mc audio info"
|
||||
},
|
||||
|
||||
{
|
||||
"author": "LiJT",
|
||||
"title": "ComfyUI-JT_Tools",
|
||||
"reference": "https://github.com/LiJT/ComfyUI-JT_Tools",
|
||||
"files": [
|
||||
"https://github.com/LiJT/ComfyUI-JT_Tools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-JT_Tools custom nodes."
|
||||
},
|
||||
{
|
||||
"author": "ThanaritKanjanametawatAU",
|
||||
"title": "comfyui_runninghub_nanobanana",
|
||||
"reference": "https://github.com/ThanaritKanjanametawatAU/comfyui_runninghub_nanobanana",
|
||||
"files": [
|
||||
"https://github.com/ThanaritKanjanametawatAU/comfyui_runninghub_nanobanana"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "RunningHub Nano Banana Pro API node for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "DazzleNodes",
|
||||
"title": "ComfyUI-DazzleSwitch",
|
||||
"reference": "https://github.com/DazzleNodes/ComfyUI-DazzleSwitch",
|
||||
"files": [
|
||||
"https://github.com/DazzleNodes/ComfyUI-DazzleSwitch"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Smart switch node for ComfyUI with dropdown-based input selection and INT override for cascading workflows. Route any data type through a named dropdown instead of moving noodles."
|
||||
},
|
||||
{
|
||||
"author": "easelhub",
|
||||
"title": "ComfyUI_EaselHub_Nodes",
|
||||
"reference": "https://github.com/easelhub/ComfyUI_EaselHub_Nodes",
|
||||
"files": [
|
||||
"https://github.com/easelhub/ComfyUI_EaselHub_Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Collection of ComfyUI nodes for image processing, model management, and prompt generation including BiRefNet, Florence2Tagger, and image manipulation tools. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "itom0717",
|
||||
"title": "ComfyUI-Prompt-Selector",
|
||||
"reference": "https://github.com/itom0717/ComfyUI-Prompt-Selector",
|
||||
"files": [
|
||||
"https://github.com/itom0717/ComfyUI-Prompt-Selector"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "No ComfyUI nodes detected. May not be a ComfyUI custom node repository."
|
||||
},
|
||||
{
|
||||
"author": "Echoflare",
|
||||
"title": "ComfyUI-Reverse-Proxy-Fix",
|
||||
"reference": "https://github.com/Echoflare/ComfyUI-Reverse-Proxy-Fix",
|
||||
"files": [
|
||||
"https://github.com/Echoflare/ComfyUI-Reverse-Proxy-Fix"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for fixing the \"405 Method Not Allowed\" issue on certain endpoints when reverse proxying ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "Ronnasayd",
|
||||
"title": "comfyui-nodes",
|
||||
"reference": "https://github.com/Ronnasayd/comfyui-nodes",
|
||||
"files": [
|
||||
"https://github.com/Ronnasayd/comfyui-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A collection of custom nodes for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "vjumpkung",
|
||||
"title": "comfyui-mosaic-blur [NAME CONFLICT]",
|
||||
"reference": "https://github.com/vjumpkung/comfyui-mosaic-blur",
|
||||
"files": [
|
||||
"https://github.com/vjumpkung/comfyui-mosaic-blur"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for applying mosaic blur effects. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "danieljanata",
|
||||
"title": "ComfyUI-phone_compression_ultimate [WIP]",
|
||||
"reference": "https://github.com/danieljanata/ComfyUI-phone_compression_ultimate",
|
||||
"files": [
|
||||
"https://github.com/danieljanata/ComfyUI-phone_compression_ultimate"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI custom node that simulates realistic smartphone camera compression and processing artifacts.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Norsnow",
|
||||
"title": "comfyui-image-ratio-preset [WIP]",
|
||||
"reference": "https://github.com/Norsnow/comfyui-image-ratio-preset",
|
||||
"files": [
|
||||
"https://github.com/Norsnow/comfyui-image-ratio-preset"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI custom node for quickly setting image aspect ratios with presets and custom dimensions, directly generating latent tensors.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "svyatojdismas",
|
||||
"title": "ComfyUI-StDismas [WIP]",
|
||||
"reference": "https://github.com/svyatojdismas/ComfyUI-StDismas",
|
||||
"files": [
|
||||
"https://github.com/svyatojdismas/ComfyUI-StDismas"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom nodes for ComfyUI. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "OtwakO",
|
||||
"title": "ComfyUI-UsefulTools",
|
||||
"reference": "https://github.com/OtwakO/ComfyUI-UsefulTools",
|
||||
"files": [
|
||||
"https://github.com/OtwakO/ComfyUI-UsefulTools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Extract tags from your original prompts by giving it a substring or an array of substrings."
|
||||
},
|
||||
{
|
||||
"author": "vito0131",
|
||||
"title": "ComfyUI_SmartContentCrop [WIP]",
|
||||
"reference": "https://github.com/vito0131/ComfyUI_SmartContentCrop",
|
||||
"files": [
|
||||
"https://github.com/vito0131/ComfyUI_SmartContentCrop"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Smart content cropping with circle processing capabilities. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Vollond",
|
||||
"title": "ComfyUI-LatentCutPlus",
|
||||
"reference": "https://github.com/Vollond/ComfyUI-LatentCutPlus",
|
||||
"files": [
|
||||
"https://github.com/Vollond/ComfyUI-LatentCutPlus"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node: LatentCutPlus (slice latents with amount=-1 to end)"
|
||||
},
|
||||
{
|
||||
"author": "gaonprime-labs",
|
||||
"title": "nordy-custom-node-ComfyUI-NormalOverlapBandBlend",
|
||||
"reference": "https://github.com/gaonprime-labs/nordy-custom-node-ComfyUI-NormalOverlapBandBlend",
|
||||
"files": [
|
||||
"https://github.com/gaonprime-labs/nordy-custom-node-ComfyUI-NormalOverlapBandBlend"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Normal map blending node for overlapping band effects in ComfyUI. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "muriellee1x",
|
||||
"title": "ComfyUI-Mysterious-node3",
|
||||
"reference": "https://github.com/muriellee1x/ComfyUI-Mysterious-node3",
|
||||
"files": [
|
||||
"https://github.com/muriellee1x/ComfyUI-Mysterious-node3"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom node VideoTimeRemapSpeedPresets for ComfyUI. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "muriellee1x",
|
||||
"title": "ComfyUI-Mysterious-node2 [WIP]",
|
||||
"reference": "https://github.com/muriellee1x/ComfyUI-Mysterious-node2",
|
||||
"files": [
|
||||
"https://github.com/muriellee1x/ComfyUI-Mysterious-node2"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Professional green/blue screen chroma keying nodes inspired by After Effects Keylight plugin, supporting automatic/manual key color detection and advanced spillage suppression. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Mexes1978",
|
||||
"title": "Film Photography Prompt Styler [WIP]",
|
||||
"reference": "https://github.com/Mexes1978/film_prompt_styler",
|
||||
"files": [
|
||||
"https://github.com/Mexes1978/film_prompt_styler"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Photography history education tool node with 8 core categories including film stocks, lenses, lighting, genres, print styles, eras, technical processes, and photographer styles for intentional artistic choices.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "RaeZhLiu",
|
||||
"title": "comfy_ark",
|
||||
"reference": "https://github.com/RaeZhLiu/comfy_ark",
|
||||
"files": [
|
||||
"https://github.com/RaeZhLiu/comfy_ark"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for Ark functionality. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "harishcmgit",
|
||||
"title": "comfyui_sp [WIP]",
|
||||
"reference": "https://github.com/harishcmgit/comfyui_sp",
|
||||
"files": [
|
||||
"https://github.com/harishcmgit/comfyui_sp"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for seamless pattern generation. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Omega-L",
|
||||
"title": "comfyUI-prompts",
|
||||
"reference": "https://github.com/Omega-L/comfyUI-prompts",
|
||||
"files": [
|
||||
"https://github.com/Omega-L/comfyUI-prompts"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI Frontend Vue Basic is custom node that demonstrate how to use vue as frontend framework along with primevue and vue-i18n, cooperating with ComfyUI API. Needs ComfyUI Frontend 1.25.0 or later."
|
||||
},
|
||||
{
|
||||
"author": "vjumpkung",
|
||||
"title": "comfyui-mosaic-blur [NAME CONFLICT]",
|
||||
"reference": "https://github.com/vjumpkung/comfyui-mosaic-blur",
|
||||
"files": [
|
||||
"https://github.com/vjumpkung/comfyui-mosaic-blur"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for applying mosaic blur effects. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "richardctw",
|
||||
"title": "ComfyUI-ImageFillBackgroundColor",
|
||||
"reference": "https://github.com/richardctw/ComfyUI-ImageFillBackgroundColor",
|
||||
"files": [
|
||||
"https://github.com/richardctw/ComfyUI-ImageFillBackgroundColor"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: ImageFillBackgroundColor"
|
||||
},
|
||||
{
|
||||
"author": "zxq790909-maker",
|
||||
"title": "ComfyUI-wangyi-OLED [WIP]",
|
||||
"reference": "https://github.com/zxq790909-maker/ComfyUI-wangyi-OLED",
|
||||
"files": [
|
||||
"https://github.com/zxq790909-maker/ComfyUI-wangyi-OLED"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "An extension that highlights the currently running node in ComfyUI with a strong neon outline and breathing effect for easier workflow navigation.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "starsFriday",
|
||||
"title": "ComfyUI-Qwen3-TTS [NAME CONFLICT/WIP]",
|
||||
"reference": "https://github.com/starsFriday/ComfyUI-Qwen3-TTS",
|
||||
"files": [
|
||||
"https://github.com/starsFriday/ComfyUI-Qwen3-TTS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Sound-related nodes for the Qwen3-TTS project\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
|
||||
{
|
||||
"author": "RicoMeng",
|
||||
"title": "CartoonGenComfyui-PromtGenerator",
|
||||
"reference": "https://github.com/RicoMeng/CartoonGenComfyui-PromtGenerator",
|
||||
"files": [
|
||||
"https://github.com/RicoMeng/CartoonGenComfyui-PromtGenerator"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Istanbul 80s Prompt Generator Node for ComfyUI. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "N3uR0TiCV0iD",
|
||||
"title": "ComfyUI-ModelListTools",
|
||||
"reference": "https://github.com/N3uR0TiCV0iD/ComfyUI-ModelListTools",
|
||||
"files": [
|
||||
"https://github.com/N3uR0TiCV0iD/ComfyUI-ModelListTools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: CLIPModelSelectionNode, CLIPVisionModelSelectionNode, CheckpointSelectionNode, DiffusionModelSelectionNode, FilteredCLIPModelsNode, ... (13 total)"
|
||||
},
|
||||
|
||||
{
|
||||
"author": "pollockjj",
|
||||
"title": "ComfyUI-StabilityTest",
|
||||
"reference": "https://github.com/pollockjj/ComfyUI-StabilityTest",
|
||||
"files": [
|
||||
"https://github.com/pollockjj/ComfyUI-StabilityTest"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI stability testing node. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Tr1dae",
|
||||
"title": "[WIP] ComfyUI-MobileSAM",
|
||||
"reference": "https://github.com/Tr1dae/ComfyUI-MobileSAM",
|
||||
"files": [
|
||||
"https://github.com/Tr1dae/ComfyUI-MobileSAM"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI custom node for text-guided image segmentation using GroundingDINO and MobileSAM to segment objects in images using natural language prompts.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Vov1ch",
|
||||
"title": "ComfyUI_GLMImage",
|
||||
"reference": "https://github.com/Vov1ch/ComfyUI_GLMImage",
|
||||
"files": [
|
||||
"https://github.com/Vov1ch/ComfyUI_GLMImage"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for GLM image generation, image-to-image translation, and flexible input handling. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "DailyMok",
|
||||
"title": "ComfyUI-PromptMixerNode",
|
||||
"reference": "https://github.com/DailyMok/ComfyUI-PromptMixerNode",
|
||||
"files": [
|
||||
"https://github.com/DailyMok/ComfyUI-PromptMixerNode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for prompt mixing with PromptMixerDaily node. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "shin131002",
|
||||
"title": "[WIP] ComfyUI-Prompt-Preset-Selector",
|
||||
"reference": "https://github.com/shin131002/ComfyUI-Prompt-Preset-Selector",
|
||||
"files": [
|
||||
"https://github.com/shin131002/ComfyUI-Prompt-Preset-Selector"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Flexible preset selector with YAML support, advanced keyword filtering, and hierarchical key search\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "fogyisland",
|
||||
"title": "Comfy_Show_StringText [WIP]",
|
||||
"reference": "https://github.com/fogyisland/Comfy_Show_StringText",
|
||||
"files": [
|
||||
"https://github.com/fogyisland/Comfy_Show_StringText"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI node for text display that implements string data output. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Leecoahs",
|
||||
"title": "ComfyUI_LeeNodes",
|
||||
"reference": "https://github.com/Leecoahs/ComfyUI_LeeNodes",
|
||||
"files": [
|
||||
"https://github.com/Leecoahs/ComfyUI_LeeNodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for image processing including grayscale combining, overlaying, texture inpainting. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "tdrminglin",
|
||||
@ -20,16 +383,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: HYMotionToNLFBridge, HYMotionToSCAILBridge"
|
||||
},
|
||||
{
|
||||
"author": "joe002",
|
||||
"title": "comfyui-rtx-remix [UNSAFE]",
|
||||
"reference": "https://github.com/joe002/comfyui-rtx-remix",
|
||||
"files": [
|
||||
"https://github.com/joe002/comfyui-rtx-remix"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "RTX Remix texture pipeline integration nodes for ComfyUI[w/This nodepack contains a path traversal vulnerability.]"
|
||||
},
|
||||
{
|
||||
"author": "NakanoSanku",
|
||||
"title": "ComfyUI-Gemini [NAME CONFLICT]",
|
||||
@ -291,16 +644,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI node for creating smooth fade transitions between two video segments using hex color effects. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "jluo-github",
|
||||
"title": "comfyui-easy-resize [WIP]",
|
||||
"reference": "https://github.com/jluo-github/comfyui-easy-resize",
|
||||
"files": [
|
||||
"https://github.com/jluo-github/comfyui-easy-resize"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom nodes for quick image size selection with curated presets\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "w3rc",
|
||||
"title": "lpips-similarity-comfyui",
|
||||
@ -1061,16 +1404,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node implementing the Manifold Alignment Protocol (MAP) within ComfyUI, transforming diffusion sampling into a measurable and visualizable geometric process. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Nynxz",
|
||||
"title": "ComfyUI_DiffsynthPause",
|
||||
"reference": "https://github.com/Nynxz/ComfyUI_DiffsynthPause",
|
||||
"files": [
|
||||
"https://github.com/Nynxz/ComfyUI_DiffsynthPause"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for controlling Diffsynth checkpoint pausing behavior during image generation workflows. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "binarystatic",
|
||||
"title": "ComfyUI-BinarystaticMasterSeed",
|
||||
@ -1985,16 +2318,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node designed for ComfyUI that integrates the **Qwen3-VL-4B-Instruct-FP8** vision-language model for efficient image understanding and description. It supports flexible prompt-combination features to enhance the accuracy and diversity of image descriptions.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "90cube",
|
||||
"title": "CBCanvas Node for ComfyUI [WIP]",
|
||||
"reference": "https://github.com/90cube/Comfyui-CBcanvas",
|
||||
"files": [
|
||||
"https://github.com/90cube/Comfyui-CBcanvas"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Canvas node with intelligent aspect ratio control - 13 preset aspect ratios from ultra-wide (21:9) to ultra-tall (9:21).\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "r-vage",
|
||||
"title": "ComfyUI_Eclipse [UNSAFE]",
|
||||
@ -2247,7 +2570,7 @@
|
||||
},
|
||||
{
|
||||
"author": "PauldeLavallaz",
|
||||
"title": "ComfyUI-concat_images_to_api_gemini [WIP]",
|
||||
"title": "comfyui_morpheus_NanoBanana_Mask [WIP]",
|
||||
"reference": "https://github.com/PauldeLavallaz/comfyui_morpheus_NanoBanana_Mask",
|
||||
"files": [
|
||||
"https://github.com/PauldeLavallaz/comfyui_morpheus_NanoBanana_Mask"
|
||||
@ -2255,16 +2578,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Morpheus · Batch Images + crop image, Morpheus · NanoBanana Mask, Morpheus · Image Editing Prompt, ...\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "PauldeLavallaz",
|
||||
"title": "ComfyUI-concat_images_to_api_gemini",
|
||||
"reference": "https://github.com/PauldeLavallaz/ComfyUI-concat_images_to_api_gemini",
|
||||
"files": [
|
||||
"https://github.com/PauldeLavallaz/ComfyUI-concat_images_to_api_gemini"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Concat Images → Gemini (MP only), Concat Two Images (RAW passthrough), Grid Collage AR Cols, ..."
|
||||
},
|
||||
{
|
||||
"author": "silveroxides",
|
||||
"title": "ComfyUI_PromptAttention [WIP]",
|
||||
@ -2415,16 +2728,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI node that outputs WAN 2.2-ready sizes by preserving aspect ratio, capping the long side, and rounding both dimensions to multiples of 16 pixels to reduce artifacts.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "aistudynow",
|
||||
"title": "comfyui-wilddragon-nodes [WIP]",
|
||||
"reference": "https://github.com/aistudynow/comfyui-wilddragon-nodes",
|
||||
"files": [
|
||||
"https://github.com/aistudynow/comfyui-wilddragon-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Image Face Crop (2025), Person Selector, Pose Face Filter, Person BBox Tracker, Face Restore & Blend, ...\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "RM2-0",
|
||||
"title": "ComfyUI-Upscale",
|
||||
@ -2585,16 +2888,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: DOC_SaveImageAndAddToHistory, DOC_RandomPromptChoice"
|
||||
},
|
||||
{
|
||||
"author": "Dehypnotic",
|
||||
"title": "Save MP3 node for ComfyUI [UNSAFE]",
|
||||
"reference": "https://github.com/Dehypnotic/comfyui-save-mp3",
|
||||
"files": [
|
||||
"https://github.com/Dehypnotic/comfyui-save-mp3"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Simple, flexible MP3 saver with bitrate options and handy path/filename templates.[w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]"
|
||||
},
|
||||
{
|
||||
"author": "obisin",
|
||||
"title": "FSampler for ComfyUI — Fast Skips via Epsilon Extrapolation [WIP]",
|
||||
@ -3947,16 +4240,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A Simple NODE for a Standbybutton in ComyUi. It works also with the webinterface."
|
||||
},
|
||||
{
|
||||
"author": "brandonkish",
|
||||
"title": "comfyUI-extractable-text [WIP]",
|
||||
"reference": "https://github.com/brandonkish/comfyUI-extractable-text",
|
||||
"files": [
|
||||
"https://github.com/brandonkish/comfyUI-extractable-text"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Save Image With Description, Save Image To Folder, Load Image With Description, LoRA Testing Node, Get Smaller Of Two Numbers, Get Larger Of Two Numbers\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Dream-Pixels-Forge",
|
||||
"title": "ComfyUI-Mzikart-Vocal [WIP]",
|
||||
@ -6169,16 +6452,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Ecological extension of comfyui using Rust language."
|
||||
},
|
||||
{
|
||||
"author": "Linsoo",
|
||||
"title": "ComfyUI-Linsoo-Custom-Nodes",
|
||||
"reference": "https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes",
|
||||
"files": [
|
||||
"https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Linsoo Save Image, Linsoo Load Image (In development.. not working), Linsoo Empty Latent Image, Linsoo Multi Inputs, Linsoo Multi Outputs"
|
||||
},
|
||||
{
|
||||
"author": "EricRollei",
|
||||
"title": "Comfy-Metadata-System [WIP]",
|
||||
@ -6800,6 +7073,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Simple Image Rotate"
|
||||
},
|
||||
{
|
||||
"author": "sugarkwork",
|
||||
"title": "comfyui-trtools",
|
||||
"reference": "https://github.com/sugarkwork/comfyui-trtools",
|
||||
"files": [
|
||||
"https://github.com/sugarkwork/comfyui-trtools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "TensorRT Tools for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "DonutsDelivery",
|
||||
"title": "ComfyUI-DonutDetailer",
|
||||
@ -8464,16 +8747,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComyUI wrapper for Intel OIDN image denoising\nWARNING! : this is a development repo, usage in production environments is not advised! Bugs are to be expected."
|
||||
},
|
||||
{
|
||||
"author": "techzuhaib",
|
||||
"title": "ComfyUI-CacheImageNode",
|
||||
"reference": "https://github.com/techzuhaib/ComfyUI-CacheImageNode",
|
||||
"files": [
|
||||
"https://github.com/techzuhaib/ComfyUI-CacheImageNode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: CacheImageNode"
|
||||
},
|
||||
{
|
||||
"author": "hay86",
|
||||
"title": "ComfyUI AceNodes [UNSAFE]",
|
||||
@ -10929,6 +11202,16 @@
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This extension provides the capability to use ComfyUI Workflow as a component and the ability to use the Image Refiner functionality based on components. NOTE: This is an experimental extension feature with no consideration for backward compatibility and can be highly unstable."
|
||||
},
|
||||
{
|
||||
"author": "Humming",
|
||||
"title": "ComfyUI-Model-Downloader",
|
||||
"reference": "https://github.com/Hanmingsan/ComfyUI-Model-Downloader",
|
||||
"files": [
|
||||
"https://github.com/Hanmingsan/ComfyUI-Model-Downloader"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This is a extention that provides model downloading features on remote hosts. However the code is still being actively developed, and stability is not guaranteed."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,295 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "ncky",
|
||||
"title": "ComfyUI-Qwen3-TTS [REMOVED]",
|
||||
"reference": "https://github.com/ncky/ComfyUI-Qwen3-TTS",
|
||||
"files": [
|
||||
"https://github.com/ncky/ComfyUI-Qwen3-TTS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom node that wraps Qwen3-TTS voice cloning for synthesizing speech in a cloned voice. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "artokun",
|
||||
"title": "ComfyUI-Stereo-Gaussian [REMOVED]",
|
||||
"reference": "https://github.com/artokun/ComfyUI-Stereo-Gaussian",
|
||||
"files": [
|
||||
"https://github.com/artokun/ComfyUI-Stereo-Gaussian"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Stereoscopic VR rendering from 3D Gaussian Splats for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "Ysthara",
|
||||
"title": "ComfyUI-Resolution-AR-Node",
|
||||
"reference": "https://github.com/Ysthara/ComfyUI-Resolution-AR-Node",
|
||||
"files": [
|
||||
"https://github.com/Ysthara/ComfyUI-Resolution-AR-Node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A simple ComfyUI utility node that calculates image width and height from a target longest-side value and an aspect ratio."
|
||||
},
|
||||
{
|
||||
"author": "brandonkish",
|
||||
"title": "comfyUI-extractable-text [REMOVED]",
|
||||
"reference": "https://github.com/brandonkish/comfyUI-extractable-text",
|
||||
"files": [
|
||||
"https://github.com/brandonkish/comfyUI-extractable-text"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Save Image With Description, Save Image To Folder, Load Image With Description, LoRA Testing Node, Get Smaller Of Two Numbers, Get Larger Of Two Numbers\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "techzuhaib",
|
||||
"title": "ComfyUI-CacheImageNode [REMOVED]",
|
||||
"reference": "https://github.com/techzuhaib/ComfyUI-CacheImageNode",
|
||||
"files": [
|
||||
"https://github.com/techzuhaib/ComfyUI-CacheImageNode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: CacheImageNode"
|
||||
},
|
||||
{
|
||||
"author": "techzuhaib",
|
||||
"title": "FaceCLIP-ComfyUI [REMOVED]",
|
||||
"reference": "https://github.com/techzuhaib/FaceCLIP-ComfyUI",
|
||||
"files": [
|
||||
"https://github.com/techzuhaib/FaceCLIP-ComfyUI"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "FaceCLIP nodes for ComfyUI providing joint embeddings from aligned face images plus text prompts, and identity-preserving image synthesis using fine-tuned SDXL UNet. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "SlothHole",
|
||||
"title": "Imitatoes [REMOVED]",
|
||||
"reference": "https://github.com/SlothHole/Imitatoes",
|
||||
"files": [
|
||||
"https://github.com/SlothHole/Imitatoes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Build a ComfyUI \"self-improving\" workflow where each render is evaluated by a local vision LLM, which then edits the prompt/parameters and triggers another run."
|
||||
},
|
||||
{
|
||||
"author": "teskor-hub",
|
||||
"title": "comfyui-teskors-utils [REMOVED]",
|
||||
"reference": "https://github.com/teskor-hub/comfyui-teskors-utils",
|
||||
"files": [
|
||||
"https://github.com/teskor-hub/comfyui-teskors-utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "DWpose smoothing and rendering node (body, face, hands)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Dehypnotic",
|
||||
"title": "Save MP3 node for ComfyUI [UNSAFE/REMOVED]",
|
||||
"reference": "https://github.com/Dehypnotic/comfyui-save-mp3",
|
||||
"files": [
|
||||
"https://github.com/Dehypnotic/comfyui-save-mp3"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Simple, flexible MP3 saver with bitrate options and handy path/filename templates.[w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]"
|
||||
},
|
||||
{
|
||||
"author": "jluo-github",
|
||||
"title": "comfyui-easy-resize [REMOVED]",
|
||||
"reference": "https://github.com/jluo-github/comfyui-easy-resize",
|
||||
"files": [
|
||||
"https://github.com/jluo-github/comfyui-easy-resize"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom nodes for quick image size selection with curated presets\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "joe002",
|
||||
"title": "comfyui-rtx-remix [UNSAFE/REMOVED]",
|
||||
"reference": "https://github.com/joe002/comfyui-rtx-remix",
|
||||
"files": [
|
||||
"https://github.com/joe002/comfyui-rtx-remix"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "RTX Remix texture pipeline integration nodes for ComfyUI[w/This nodepack contains a path traversal vulnerability.]"
|
||||
},
|
||||
{
|
||||
"author": "patientx",
|
||||
"title": "CFZ-SwitchMenu [REMOVED]",
|
||||
"reference": "https://github.com/patientx/CFZ-SwitchMenu",
|
||||
"files": [
|
||||
"https://github.com/patientx/CFZ-SwitchMenu"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Adds a menu button that switches between old and new style ComfyUI menus."
|
||||
},
|
||||
{
|
||||
"author": "ved-gaur",
|
||||
"title": "ComfyUI-Sink-Nodes [REMOVED]",
|
||||
"reference": "https://github.com/ved-gaur/ComfyUI-Sink-Nodes",
|
||||
"files": [
|
||||
"https://github.com/ved-gaur/ComfyUI-Sink-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI sink nodes that accept inputs and intentionally do nothing, forcing models to load into memory without running inference. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "A043-studios",
|
||||
"title": "ComfyUI Deforum-X-Flux Nodes [REMOVED]",
|
||||
"reference": "https://github.com/A043-studios/comfyui-deforum-x-flux-nodes",
|
||||
"files": [
|
||||
"https://github.com/A043-studios/comfyui-deforum-x-flux-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Professional video animation nodes for ComfyUI based on Deforum-X-Flux research"
|
||||
},
|
||||
{
|
||||
"author": "linksluckytime",
|
||||
"title": "comfyui_snacknodes [REMOVED]",
|
||||
"reference": "https://github.com/linksluckytime/comfyui_snacknodes",
|
||||
"files": [
|
||||
"https://github.com/linksluckytime/comfyui_snacknodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A comprehensive collection of ComfyUI nodes designed to reduce reliance on multiple third-party node packages."
|
||||
},
|
||||
{
|
||||
"author": "Nynxz",
|
||||
"title": "ComfyUI_DiffsynthPause [REMOVED]",
|
||||
"reference": "https://github.com/Nynxz/ComfyUI_DiffsynthPause",
|
||||
"files": [
|
||||
"https://github.com/Nynxz/ComfyUI_DiffsynthPause"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for controlling Diffsynth checkpoint pausing behavior during image generation workflows. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Angelsan720",
|
||||
"title": "attention_bench [REMOVED]",
|
||||
"reference": "https://github.com/Angelsan720/attention_bench",
|
||||
"files": [
|
||||
"https://github.com/Angelsan720/attention_bench"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A simple ComfyUI node example project to help beginners learn how to develop ComfyUI nodes."
|
||||
},
|
||||
{
|
||||
"author": "balu112121",
|
||||
"title": "Comfyui_Hivision_ID_photo_layout [REMOVED]",
|
||||
"reference": "https://github.com/balu112121/Comfyui_Hivision_ID_photo_layout",
|
||||
"files": [
|
||||
"https://github.com/balu112121/Comfyui_Hivision_ID_photo_layout"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for ID photo layout with support for custom paper sizes, orientation, rows/columns, spacing, margins, and grid display. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "ainewsto",
|
||||
"title": "Comfyui_Comfly_v2 [REMOVED]",
|
||||
"reference": "https://github.com/ainewsto/Comfyui_Comfly_v2",
|
||||
"files": [
|
||||
"https://github.com/ainewsto/Comfyui_Comfly_v2"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Comfly_Mj, Comfly_mjstyle, Comfly_upload, Comfly_Mju, Comfly_Mjv, Comfly_kling_text2video, Comfly_kling_image2video, Comfly_video_extend, Comfly_lip_sync, Comfly_kling_videoPreview, Comfly Gemini API, Comfly Doubao SeedEdit, Comfly ChatGPT Api,Comfly Jimeng API, Comfly_gpt_image_1_edit, Comfly_gpt_image_1"
|
||||
},
|
||||
{
|
||||
"author": "thoddnn",
|
||||
"title": "ComfyUI MLX Nodes [REMOVED]",
|
||||
"reference": "https://github.com/thoddnn/ComfyUI-MLX",
|
||||
"files": [
|
||||
"https://github.com/thoddnn/ComfyUI-MLX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Faster workflows for ComfyUI users on Mac with Apple silicon"
|
||||
},
|
||||
{
|
||||
"author": "90cube",
|
||||
"title": "CBCanvas Node for ComfyUI [REMOVED]",
|
||||
"reference": "https://github.com/90cube/Comfyui-CBcanvas",
|
||||
"files": [
|
||||
"https://github.com/90cube/Comfyui-CBcanvas"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Canvas node with intelligent aspect ratio control - 13 preset aspect ratios from ultra-wide (21:9) to ultra-tall (9:21).\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "inflamously",
|
||||
"title": "comfyui-prompt-enhancer [DEPRECATED]",
|
||||
"reference": "https://github.com/inflamously/comfyui-prompt-enhancer",
|
||||
"files": [
|
||||
"https://github.com/inflamously/comfyui-prompt-enhancer"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A crazy node that pragmatically just enhances a given prompt with various descriptions in the hope that the image quality just increase and prompting just gets easier."
|
||||
},
|
||||
{
|
||||
"author": "tudal",
|
||||
"title": "Hakkun-ComfyUI-nodes [REMOVED]",
|
||||
"reference": "https://github.com/tudal/Hakkun-ComfyUI-nodes",
|
||||
"files": [
|
||||
"https://raw.githubusercontent.com/tudal/Hakkun-ComfyUI-nodes/main/hakkun_nodes.py"
|
||||
],
|
||||
"install_type": "copy",
|
||||
"description": "Mainly its prompt generating by custom syntax. Prompt Parser, Prompt tags, Random Line, Calculate Upscale, Image size to string, Type Converter, Image Resize To Height/Width, Load Random Image, Load Text"
|
||||
},
|
||||
{
|
||||
"author": "huyl3-cpu",
|
||||
"title": "comfyui_segment_anything_a100 [REMOVED]",
|
||||
"reference": "https://github.com/huyl3-cpu/comfyui_segment_anything_a100",
|
||||
"files": [
|
||||
"https://github.com/huyl3-cpu/comfyui_segment_anything_a100"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Heavily optimized A100 GPU fork of ComfyUI Segment Anything using BF16 precision, VRAM Locking, and Zero-Copy GPU processing for massive batch processing."
|
||||
},
|
||||
{
|
||||
"author": "PauldeLavallaz",
|
||||
"title": "comfyui_morpheus_model_management [REMOVED]",
|
||||
"reference": "https://github.com/PauldeLavallaz/comfyui_morpheus_model_management",
|
||||
"files": [
|
||||
"https://github.com/PauldeLavallaz/comfyui_morpheus_model_management"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodo personalizzato per ComfyUI che consente di sfogliare una libreria locale di immagini di talent con interfaccia gallery, filtri avanzati e output multipli. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "laboratoiresonore",
|
||||
"title": "ComfyUI_PerformanceLab [REMOVED]",
|
||||
"reference": "https://github.com/laboratoiresonore/ComfyUI_PerformanceLab",
|
||||
"files": [
|
||||
"https://github.com/laboratoiresonore/ComfyUI_PerformanceLab"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Make any ComfyUI workflow faster, use less VRAM, or produce better quality - with AI assistance"
|
||||
},
|
||||
{
|
||||
"author": "Linsoo",
|
||||
"title": "ComfyUI-Linsoo-Custom-Nodes [REMOVED]",
|
||||
"reference": "https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes",
|
||||
"files": [
|
||||
"https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Linsoo Save Image, Linsoo Load Image (In development.. not working), Linsoo Empty Latent Image, Linsoo Multi Inputs, Linsoo Multi Outputs"
|
||||
},
|
||||
{
|
||||
"author": "PauldeLavallaz",
|
||||
"title": "ComfyUI-concat_images_to_api_gemini [REMOVED]",
|
||||
"reference": "https://github.com/PauldeLavallaz/ComfyUI-concat_images_to_api_gemini",
|
||||
"files": [
|
||||
"https://github.com/PauldeLavallaz/ComfyUI-concat_images_to_api_gemini"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NODES: Concat Images → Gemini (MP only), Concat Two Images (RAW passthrough), Grid Collage AR Cols, ..."
|
||||
},
|
||||
{
|
||||
"author": "aistudynow",
|
||||
"title": "comfyui-wilddragon-nodes [REMOVED]",
|
||||
"reference": "https://github.com/aistudynow/comfyui-wilddragon-nodes",
|
||||
"files": [
|
||||
"https://github.com/aistudynow/comfyui-wilddragon-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Image Face Crop (2025), Person Selector, Pose Face Filter, Person BBox Tracker, Face Restore & Blend, ...\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "Wladimir Palant",
|
||||
"title": "image-resize-comfyui [REMOVED]",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ dependencies = ["GitPython", "PyGithub", "matrix-nio", "transformers", "huggingf
|
||||
|
||||
[project.urls]
|
||||
Repository = "https://github.com/ltdrdata/ComfyUI-Manager"
|
||||
# Used by Comfy Registry https://comfyregistry.org
|
||||
# Used by Comfy Registry https://registry.comfy.org
|
||||
|
||||
[tool.comfy]
|
||||
PublisherId = "drltdata"
|
||||
|
||||
94
scanner.py
94
scanner.py
@ -2,6 +2,8 @@ import ast
|
||||
import re
|
||||
import os
|
||||
import json
|
||||
import threading
|
||||
from collections import defaultdict
|
||||
from git import Repo
|
||||
import concurrent
|
||||
import datetime
|
||||
@ -20,7 +22,7 @@ from pathlib import Path
|
||||
from typing import Set, Dict, Optional
|
||||
|
||||
# Scanner version for cache invalidation
|
||||
SCANNER_VERSION = "2.0.12" # Add dict comprehension + export list detection
|
||||
SCANNER_VERSION = "2.0.13" # Add fallback for dynamic v3 node_id
|
||||
|
||||
# Cache for extract_nodes and extract_nodes_enhanced results
|
||||
_extract_nodes_cache: Dict[str, Set[str]] = {}
|
||||
@ -195,6 +197,82 @@ g = None
|
||||
|
||||
parse_cnt = 0
|
||||
|
||||
# Thread-safe git error state
|
||||
_git_error_lock = threading.Lock()
|
||||
_git_errors: defaultdict = defaultdict(list) # category -> list[{'repo': str, 'op': str, 'msg': str}]
|
||||
|
||||
# Ordered categories: (key, display label, compiled regex). First match wins.
|
||||
# Single source of truth — add new categories here only.
|
||||
_GIT_ERROR_CATEGORIES = [
|
||||
('repository_not_found', 'Repository Not Found', re.compile(
|
||||
r'repository\s+not\s+found|does\s+not\s+exist|\b404\b|remote:\s*repository\s+not\s+found',
|
||||
re.IGNORECASE
|
||||
)),
|
||||
('divergent_branch', 'Divergent Branch', re.compile(
|
||||
r'divergent\s+branches|need\s+to\s+specify\s+how\s+to\s+reconcile\s+divergent\s+branches',
|
||||
re.IGNORECASE
|
||||
)),
|
||||
('auth_failed', 'Authentication Failed', re.compile(
|
||||
r'authentication\s+failed|could\s+not\s+read\s+username|invalid\s+username|invalid\s+password|auth\s+failed',
|
||||
re.IGNORECASE
|
||||
)),
|
||||
('network_error', 'Network Error', re.compile(
|
||||
r'could\s+not\s+resolve\s+host|connection\s+refused|timed?\s*out|failed\s+to\s+connect|'
|
||||
r'network\s+is\s+unreachable|temporary\s+failure\s+in\s+name\s+resolution',
|
||||
re.IGNORECASE
|
||||
)),
|
||||
('merge_conflict', 'Merge Conflict', re.compile(
|
||||
r'merge\s+conflict|\bCONFLICT\b|automatic\s+merge\s+failed',
|
||||
re.IGNORECASE
|
||||
)),
|
||||
('permission_denied', 'Permission Denied', re.compile(
|
||||
r'permission\s+denied|access\s+denied|operation\s+not\s+permitted|publickey',
|
||||
re.IGNORECASE
|
||||
)),
|
||||
]
|
||||
|
||||
|
||||
def _categorize_git_error(error_str: str) -> str:
|
||||
"""Classify a git error string into a category. First match wins."""
|
||||
for category, _label, pattern in _GIT_ERROR_CATEGORIES:
|
||||
if pattern.search(error_str):
|
||||
return category
|
||||
return 'other'
|
||||
|
||||
|
||||
def _record_git_error(repo_name: str, op: str, error: Exception) -> None:
|
||||
"""Record a git error in the thread-safe collector."""
|
||||
category = _categorize_git_error(str(error))
|
||||
with _git_error_lock:
|
||||
_git_errors[category].append({'repo': repo_name, 'op': op, 'msg': str(error)})
|
||||
|
||||
|
||||
def _report_git_errors() -> None:
|
||||
"""Print a grouped summary of git errors by category."""
|
||||
if not _git_errors:
|
||||
return
|
||||
|
||||
total = sum(len(v) for v in _git_errors.values())
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Git Operation Errors Summary: {total} failure(s)")
|
||||
print(f"{'='*60}")
|
||||
|
||||
for category, label, _pattern in _GIT_ERROR_CATEGORIES:
|
||||
entries = _git_errors.get(category, [])
|
||||
if not entries:
|
||||
continue
|
||||
print(f"\n[{label}] ({len(entries)} repo(s))")
|
||||
for entry in entries:
|
||||
print(f" • {entry['repo']} ({entry['op']}): {entry['msg']}")
|
||||
|
||||
other_entries = _git_errors.get('other', [])
|
||||
if other_entries:
|
||||
print(f"\n[Other] ({len(other_entries)} repo(s))")
|
||||
for entry in other_entries:
|
||||
print(f" • {entry['repo']} ({entry['op']}): {entry['msg']}")
|
||||
|
||||
print(f"{'='*60}\n")
|
||||
|
||||
|
||||
def extract_nodes(code_text):
|
||||
global parse_cnt
|
||||
@ -936,6 +1014,9 @@ def extract_v3_nodes(code_text):
|
||||
node_id = extract_node_id_from_schema(node)
|
||||
if node_id:
|
||||
nodes.add(node_id)
|
||||
else:
|
||||
# Fallback: use class name when node_id is dynamic/empty
|
||||
nodes.add(node.name)
|
||||
|
||||
return nodes
|
||||
|
||||
@ -1157,7 +1238,7 @@ def clone_or_pull_git_repository(git_url):
|
||||
repo_name = git_url.split("/")[-1]
|
||||
if repo_name.endswith(".git"):
|
||||
repo_name = repo_name[:-4]
|
||||
|
||||
|
||||
repo_dir = os.path.join(temp_dir, repo_name)
|
||||
|
||||
if os.path.exists(repo_dir):
|
||||
@ -1169,12 +1250,14 @@ def clone_or_pull_git_repository(git_url):
|
||||
print(f"Pulling {repo_name}...")
|
||||
except Exception as e:
|
||||
print(f"Failed to pull '{repo_name}': {e}")
|
||||
_record_git_error(repo_name, 'pull', e)
|
||||
else:
|
||||
try:
|
||||
Repo.clone_from(git_url, repo_dir, recursive=True)
|
||||
print(f"Cloning {repo_name}...")
|
||||
except Exception as e:
|
||||
print(f"Failed to clone '{repo_name}': {e}")
|
||||
_record_git_error(repo_name, 'clone', e)
|
||||
|
||||
|
||||
def update_custom_nodes(scan_only_mode=False, url_list_file=None):
|
||||
@ -1325,11 +1408,18 @@ def update_custom_nodes(scan_only_mode=False, url_list_file=None):
|
||||
if not skip_stat_update:
|
||||
process_git_stats(git_url_titles_preemptions)
|
||||
|
||||
# Reset error collector before this run
|
||||
with _git_error_lock:
|
||||
_git_errors.clear()
|
||||
|
||||
# Git clone/pull for all repositories
|
||||
with concurrent.futures.ThreadPoolExecutor(11) as executor:
|
||||
for url, title, preemptions, node_pattern in git_url_titles_preemptions:
|
||||
executor.submit(process_git_url_title, url, title, preemptions, node_pattern)
|
||||
|
||||
# Report any git errors grouped by category (after all workers complete)
|
||||
_report_git_errors()
|
||||
|
||||
# .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')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user