mirror of
https://github.com/Comfy-Org/ComfyUI-Manager.git
synced 2026-05-23 15:27:23 +08:00
Compare commits
10 Commits
da1b99ca86
...
09dc16d9f1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
09dc16d9f1 | ||
|
|
29b4824ee2 | ||
|
|
e3a8b669b2 | ||
|
|
80e5c8a987 | ||
|
|
e0e4886e63 | ||
|
|
c0947f4192 | ||
|
|
7706b047ce | ||
|
|
a44c6ff27c | ||
|
|
d4c4d53579 | ||
|
|
40afda065f |
@ -8324,6 +8324,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI-QwenVL custom node: Integrates the Qwen-VL series, including Qwen2.5-VL and the latest Qwen3-VL, to enable advanced multimodal AI for text generation, image understanding, and video analysis."
|
||||
},
|
||||
{
|
||||
"author": "1038lab",
|
||||
"title": "ComfyUI-NodeAlign",
|
||||
"reference": "https://github.com/1038lab/ComfyUI-NodeAlign",
|
||||
"files": [
|
||||
"https://github.com/1038lab/ComfyUI-NodeAlign"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Lightweight alignment toolbar for ComfyUI graphs. Provides quick align, equal size, and distribution actions with optional keyboard shortcuts."
|
||||
},
|
||||
{
|
||||
"author": "Klinter",
|
||||
"title": "Klinter_nodes",
|
||||
@ -8602,16 +8612,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes:FaceCompare"
|
||||
},
|
||||
{
|
||||
"author": "TheBill2001",
|
||||
"title": "comfyui-upscale-by-model",
|
||||
"reference": "https://github.com/TheBill2001/comfyui-upscale-by-model",
|
||||
"files": [
|
||||
"https://github.com/TheBill2001/comfyui-upscale-by-model"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This custom node allow upscaling an image by a factor using a model."
|
||||
},
|
||||
{
|
||||
"author": "leoleelxh",
|
||||
"title": "ComfyUI-LLMs",
|
||||
@ -19518,17 +19518,6 @@
|
||||
"description": "ComfyUI custom_node that publish output image to rabbit_mq",
|
||||
"install_type": "git-clone"
|
||||
},
|
||||
{
|
||||
"author": "Blonicx",
|
||||
"title": "ComfyUI-Rework-X",
|
||||
"id": "rework-x",
|
||||
"reference": "https://github.com/Blonicx/ComfyUI-X-Rework",
|
||||
"files": [
|
||||
"https://github.com/Blonicx/ComfyUI-X-Rework"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This is a plugin for ComfyUI that adds new Util Nodes and Nodes for easier image creation and sharing."
|
||||
},
|
||||
{
|
||||
"author": "1zhangyy1",
|
||||
"title": "ComfyUI VIDU",
|
||||
@ -20367,6 +20356,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A simple node for ComfyUI that rotates or resizes the input latent to common orientations."
|
||||
},
|
||||
{
|
||||
"author": "SparknightLLC",
|
||||
"title": "ComfyUI-ModelSamplingSD3Advanced",
|
||||
"reference": "https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced",
|
||||
"files": [
|
||||
"https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Adds windowed, curved shift control for Flow Matching samplers (SD3-style / flow schedules). It is a drop-in replacement for Comfy's included ModelSamplingSD3 node."
|
||||
},
|
||||
{
|
||||
"author": "lightricks",
|
||||
"title": "ComfyUI-LTXVideo",
|
||||
@ -22058,6 +22057,26 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes: MultiText, TextBox, TitlePlus, SeamlessTexture, AspectRatioPlus, DisplayEverything, ComparerPlus, AnySwitch, Node Design Tools..."
|
||||
},
|
||||
{
|
||||
"author": "SKBv0",
|
||||
"title": "ComfyUI_SpideyReroute",
|
||||
"reference": "https://github.com/SKBv0/ComfyUI_SpideyReroute",
|
||||
"files": [
|
||||
"https://github.com/SKBv0/ComfyUI_SpideyReroute"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Just a reroute node with a tiny twist."
|
||||
},
|
||||
{
|
||||
"author": "SKBv0",
|
||||
"title": "ComfyUI_LinkFX",
|
||||
"reference": "https://github.com/SKBv0/ComfyUI_LinkFX",
|
||||
"files": [
|
||||
"https://github.com/SKBv0/ComfyUI_LinkFX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Visual effects for ComfyUI links (wires) with various animation styles (Neon, Matrix, Fire) and gravity physics rope simulation. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "civen-cn",
|
||||
"title": "ComfyUI Whisper Translator",
|
||||
@ -22946,6 +22965,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A specialized node for ComfyUI that enable advanced motion and animation capabilities for image as guider for video processing In Hunyuan Video."
|
||||
},
|
||||
{
|
||||
"author": "benjiyaya",
|
||||
"title": "ComfyUI-QwenImageLayeredToLength",
|
||||
"reference": "https://github.com/benjiyaya/ComfyUI-QwenImageLayeredToLength",
|
||||
"files": [
|
||||
"https://github.com/benjiyaya/ComfyUI-QwenImageLayeredToLength"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom ComfyUI node for using Qwen-Image-Layered as a conversion tool to transform layer numbers into latent space length parameters. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Zeks",
|
||||
"title": "comfyui-rapidfire",
|
||||
@ -32214,6 +32243,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A universal neural network latent upscaler that supports SD1.5, SDXL, Flux, and Wan2.2 models. Uses trained neural networks instead of simple interpolation for higher quality latent upscaling.\nBuilt upon the excellent foundation of [a/Ttl's ComfyUi_NNLatentUpscale](https://github.com/Ttl/ComfyUi_NNLatentUpscale) - this project extends the original work with universal model support and improved architectures."
|
||||
},
|
||||
{
|
||||
"author": "DenRakEiw",
|
||||
"title": "ComfyUI-nearest-qwen-resolution",
|
||||
"reference": "https://github.com/DenRakEiw/ComfyUI-nearest-qwen-resolution",
|
||||
"files": [
|
||||
"https://github.com/DenRakEiw/ComfyUI-nearest-qwen-resolution"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node that converts input image dimensions to the nearest recommended Qwen-Image resolution preset, matching orientation and aspect ratio while optimizing for the target model."
|
||||
},
|
||||
{
|
||||
"author": "RainyN0077",
|
||||
"title": "ComfyUI-PromptSE",
|
||||
@ -33895,16 +33934,6 @@
|
||||
"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",
|
||||
"title": "LoRA Matcher Nodes for ComfyUI",
|
||||
"reference": "https://github.com/Tr1dae/ComfyUI-LoraPromptMatcher",
|
||||
"files": [
|
||||
"https://github.com/Tr1dae/ComfyUI-LoraPromptMatcher"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This custom node provides two different approaches to automatically match text prompts with LoRA models using their descriptions."
|
||||
},
|
||||
{
|
||||
"author": "nakagawadev",
|
||||
"title": "comfyui_nakagawa",
|
||||
@ -34656,6 +34685,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes for SeC (Segment Concept) - SOTA video object segmentation. Uses SeC-4B model by OpenIXCLab. Also includes coordinate plotter for visualization"
|
||||
},
|
||||
{
|
||||
"author": "9nate-drake",
|
||||
"title": "ComfyUI-PanoTools",
|
||||
"reference": "https://github.com/9nate-drake/ComfyUI-PanoTools",
|
||||
"files": [
|
||||
"https://github.com/9nate-drake/ComfyUI-PanoTools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Professional panorama generation tools for ComfyUI converting perspective images/video to equirectangular 360° panoramas with automatic camera calibration via AI, horizon detection, or vertical line detection."
|
||||
},
|
||||
{
|
||||
"author": "Kishor900",
|
||||
"title": "ComfyUI WANv2v Video Stitcher",
|
||||
@ -35339,6 +35378,46 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "SHARP integration for ComfyUI - Monocular 3D Gaussian Splatting in under 1 second. Generate 3D Gaussians from a single image using Apple's SHARP model."
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-BGPSeg",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-BGPSeg",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-BGPSeg"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "BGPSeg: Boundary-Guided Primitive Segmentation - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-SECADNET",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-SECADNET",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-SECADNET"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "SECAD-Net: Sketch-Extrude CAD Reconstruction - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-Cadrille",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-Cadrille",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-Cadrille"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Cadrille: Multi-modal CAD Reconstruction - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-NeurCADRecon",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-NeurCADRecon",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-NeurCADRecon"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NeurCADRecon: Neural Implicit CAD Reconstruction - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "rookiestar28",
|
||||
"title": "Danbooru Tags Upsampler for ComfyUI",
|
||||
@ -36952,6 +37031,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A tool for calculating audio duration that takes audio input and outputs the audio length as a floating-point number. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "princepainter",
|
||||
"title": "ComfyUI-PainterVideoCombine",
|
||||
"reference": "https://github.com/princepainter/ComfyUI-PainterVideoCombine",
|
||||
"files": [
|
||||
"https://github.com/princepainter/ComfyUI-PainterVideoCombine"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI node: extract fps/frames/duration/width/height from video"
|
||||
},
|
||||
{
|
||||
"author": "rafacost",
|
||||
"title": "rafacostComfy",
|
||||
@ -37495,14 +37584,14 @@
|
||||
},
|
||||
{
|
||||
"author": "akawana",
|
||||
"title": "Utils Extra",
|
||||
"reference": "https://github.com/akawana/ComfyUI-Utils-extra",
|
||||
"title": "AK Pack",
|
||||
"reference": "https://github.com/akawana/ComfyUI-AK-Pack",
|
||||
"files": [
|
||||
"https://github.com/akawana/ComfyUI-Utils-extra"
|
||||
"https://github.com/akawana/ComfyUI-AK-Pack"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Utility tools. Index Multiple is used for expanding multiple values from a list, IsOneOfGroupsActive to identify groups state, RepeatGroupState group enable/disable like rg but without connection etc.",
|
||||
"tags": ["utility", "list", "batch"]
|
||||
"description": "Utility tools: IndexMultiple, IsOneOfGroupsActive, RepeatGroupState group enable/disable like rg but without connection, Pipe, Getter, Setter highly optimized.",
|
||||
"tags": ["utility", "list", "batch", "get", "set", "pipe"]
|
||||
},
|
||||
{
|
||||
"author": "akawana",
|
||||
@ -38769,16 +38858,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Integrates Freepik's AI capabilities into ComfyUI workflows with features for photorealistic generation, upscaling, and background removal, plus smart caching and cost management. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "thnikk",
|
||||
"title": "comfyui-thnikk-utils",
|
||||
"reference": "https://github.com/thnikk/comfyui-thnikk-utils",
|
||||
"files": [
|
||||
"https://github.com/thnikk/comfyui-thnikk-utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes to clean up your workflow."
|
||||
},
|
||||
{
|
||||
"author": "XYMikky12138",
|
||||
"title": "ComfyUI-MIKKY-Mask-Editor",
|
||||
@ -38789,16 +38868,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "A powerful frame-by-frame video mask editor for ComfyUI with painting, auto BBox, hole filling, blur/feathering, and video slicing features."
|
||||
},
|
||||
{
|
||||
"author": "XYMikky12138",
|
||||
"title": "ComfyUI-NanoBanana-inpaint",
|
||||
"reference": "https://github.com/XYMikky12138/ComfyUI-NanoBanana-inpaint",
|
||||
"files": [
|
||||
"https://github.com/XYMikky12138/ComfyUI-NanoBanana-inpaint"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for API-based inpainting (Gemini, Imagen) with aspect ratio constraints, smart cropping, resize fitting, intelligent paste-back with transparency support. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "SiegeKeebsOffical",
|
||||
"title": "comfyui-lmstudio",
|
||||
@ -38849,6 +38918,16 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Generate human poses from text descriptions using T2P Transformer for ControlNet/T2I-Adapter workflows"
|
||||
},
|
||||
{
|
||||
"author": "logicalor",
|
||||
"title": "comfyui_friendly_pipe",
|
||||
"reference": "https://github.com/logicalor/comfyui_friendly_pipe",
|
||||
"files": [
|
||||
"https://github.com/logicalor/comfyui_friendly_pipe"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Flexible pipe nodes for bundling and unbundling multiple connections of any type in ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "ssspace1",
|
||||
"title": "SSpack_ComfyUI",
|
||||
@ -38929,16 +39008,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for using SimpleTuner-trained Flux 2 LoRA models. SimpleTuner's Flux 2 architecture uses fused layers, making its LoRAs incompatible with standard ComfyUI Flux nodes. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "scott-createplay",
|
||||
"title": "ComfyUI_video_essentials",
|
||||
"reference": "https://github.com/scott-createplay/ComfyUI_video_essentials",
|
||||
"files": [
|
||||
"https://github.com/scott-createplay/ComfyUI_video_essentials"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Essential video processing nodes for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "revisionhiep-create",
|
||||
"title": "comfyui-standard-trigger-words",
|
||||
@ -39019,9 +39088,216 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Adds two nodes that reuse upstream ComfyUI-QwenVL presets but add a runtime override that can be wired/unwired without getting stuck."
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
"author": "Arctenox",
|
||||
"title": "Arctenoxs-Essentials_ComfyUI",
|
||||
"reference": "https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI",
|
||||
"files": [
|
||||
"https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A collection of efficient workflow nodes for ComfyUI with advanced sampling, seed management, temporal prompt processing, and workflow optimization tools"
|
||||
},
|
||||
{
|
||||
"author": "by-ae",
|
||||
"title": "ae-in-workflow",
|
||||
"reference": "https://github.com/by-ae/ae-in-workflow",
|
||||
"files": [
|
||||
"https://github.com/by-ae/ae-in-workflow"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "In-workflow Nodes for ComfyUI - Heavy interaction and streaming capabilities"
|
||||
},
|
||||
{
|
||||
"author": "OhSeongHyeon",
|
||||
"title": "comfyui-watdafox-nodes",
|
||||
"reference": "https://github.com/OhSeongHyeon/comfyui-watdafox-nodes",
|
||||
"files": [
|
||||
"https://github.com/OhSeongHyeon/comfyui-watdafox-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A node pack for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "pixelpainter",
|
||||
"title": "mute-bypass by node ID",
|
||||
"reference": "https://github.com/pixelpainter/comfyui-mute-bypass-by-ID",
|
||||
"files": [
|
||||
"https://github.com/pixelpainter/comfyui-mute-bypass-by-ID"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "2 nodes for muting or bypassing a node by node ID. They are widget linkable and promotable to a Subgraph node as a switch to mute or bypass a node in it's own Subgraph, or any other Subgraph, or it can be used as a stand alone node anywhere"
|
||||
},
|
||||
{
|
||||
"author": "Austat",
|
||||
"title": "ComfyUI-RemacriScale",
|
||||
"reference": "https://github.com/Austat/ComfyUI-RemacriScale",
|
||||
"files": [
|
||||
"https://github.com/Austat/ComfyUI-RemacriScale"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for upscaling videos using the Remacri upscaler and then downscaling them. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Austat",
|
||||
"title": "ComfyUI-DownsampleFPS",
|
||||
"reference": "https://github.com/Austat/ComfyUI-DownsampleFPS",
|
||||
"files": [
|
||||
"https://github.com/Austat/ComfyUI-DownsampleFPS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A node for ComfyUI to downsample framerate ie. from 48 to 24."
|
||||
},
|
||||
{
|
||||
"author": "Lysthan",
|
||||
"title": "ComfyUI-LYSTHAN-PPS",
|
||||
"reference": "https://github.com/Lysthan/ComfyUI-LYSTHAN-PPS",
|
||||
"files": [
|
||||
"https://github.com/Lysthan/ComfyUI-LYSTHAN-PPS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Privacy-Protected Saver node for ComfyUI that encrypts and archives output images into password-protected ZIP files or videos for secure storage and privacy protection."
|
||||
},
|
||||
{
|
||||
"author": "mirabarukaso",
|
||||
"title": "ComfyUI_MiraSubPack",
|
||||
"reference": "https://github.com/mirabarukaso/ComfyUI_MiraSubPack",
|
||||
"files": [
|
||||
"https://github.com/mirabarukaso/ComfyUI_MiraSubPack"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "More test nodes for ComfyUI_Mira extension. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "BennyDaBall930",
|
||||
"title": "ComfyUI-Z-Engineer",
|
||||
"reference": "https://github.com/BennyDaBall930/ComfyUI-Z-Engineer",
|
||||
"files": [
|
||||
"https://github.com/BennyDaBall930/ComfyUI-Z-Engineer"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom node for ComfyUI that integrates a local LLM via OpenAI-compatible API to engineer optimal prompts for Z-Image Turbo workflows. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "chameleon-ai",
|
||||
"title": "comfyui_momo",
|
||||
"reference": "https://github.com/chameleon-ai/comfyui_momo",
|
||||
"files": [
|
||||
"https://github.com/chameleon-ai/comfyui_momo"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Implementation of MoMo interpolation for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "styletransfer",
|
||||
"title": "ComfyUI-TRELLIS2_Motion",
|
||||
"reference": "https://github.com/styletransfer/ComfyUI-TRELLIS2_Motion",
|
||||
"files": [
|
||||
"https://github.com/styletransfer/ComfyUI-TRELLIS2_Motion"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A comprehensive ComfyUI node package that uses Microsoft's TRELLIS2 to transform video footage into 3D mesh reconstructions with advanced rendering effects."
|
||||
},
|
||||
{
|
||||
"author": "SuzumiyaAkizuki",
|
||||
"title": "ComfyUI-LLM_Prompt_XML_Formatter",
|
||||
"reference": "https://github.com/SuzumiyaAkizuki/ComfyUI-LLM_Prompt_XML_Formatter",
|
||||
"files": [
|
||||
"https://github.com/SuzumiyaAkizuki/ComfyUI-LLM_Prompt_XML_Formatter"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for automatically generating XML-style prompts compatible with NewBie models using LLM APIs, with style customization and preset management capabilities. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "AugustusLXIII",
|
||||
"title": "ComfyUI_CustomResolution_I2V",
|
||||
"reference": "https://github.com/AugustusLXIII/ComfyUI_CustomResolution_I2V",
|
||||
"files": [
|
||||
"https://github.com/AugustusLXIII/ComfyUI_CustomResolution_I2V"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Specialized resolution utility node for WanVideo Image-to-Video workflows with 20 preset levels, manual override with auto-rounding, and tooltips for custom dimensions. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "RyukoMatoiFan",
|
||||
"title": "ComfyUI-Switti",
|
||||
"reference": "https://github.com/RyukoMatoiFan/ComfyUI-Switti",
|
||||
"files": [
|
||||
"https://github.com/RyukoMatoiFan/ComfyUI-Switti"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom nodes for running the Switti text-to-image model inside ComfyUI with support for checkpoint loading, VAE, CLIP encoders, and pipeline building."
|
||||
},
|
||||
{
|
||||
"author": "Bzbaozi",
|
||||
"title": "ComfyUI-YK-Banana2-Batch",
|
||||
"reference": "https://github.com/Bzbaozi/ComfyUI-YK-Banana2-Batch",
|
||||
"files": [
|
||||
"https://github.com/Bzbaozi/ComfyUI-YK-Banana2-Batch"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A powerful batch image generation node for ComfyUI using the YK-Banana2 Pro API to generate multiple images in parallel with reference image support. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "rethink-studios",
|
||||
"title": "comfyui-model-linker-desktop",
|
||||
"reference": "https://github.com/rethink-studios/comfyui-model-linker-desktop",
|
||||
"files": [
|
||||
"https://github.com/rethink-studios/comfyui-model-linker-desktop"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI extension that helps users relink missing models in workflows"
|
||||
},
|
||||
{
|
||||
"author": "xuheyao",
|
||||
"title": "comfyui-dinov3-point-prompt",
|
||||
"reference": "https://github.com/xuheyao/comfyui-dinov3-point-prompt",
|
||||
"files": [
|
||||
"https://github.com/xuheyao/comfyui-dinov3-point-prompt"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for DINOv3 point prompt functionality with integration of Facebook's DINOv3 research model. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Asidert",
|
||||
"title": "ComfyUI_Base64Images",
|
||||
"reference": "https://github.com/Asidert/ComfyUI_Base64Images",
|
||||
"files": [
|
||||
"https://github.com/Asidert/ComfyUI_Base64Images"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of base64 input and output nodes for a custom API using ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "ddontsov93",
|
||||
"title": "ComfyUI-AudioSeparator",
|
||||
"reference": "https://github.com/ddontsov93/ComfyUI-AudioSeparator",
|
||||
"files": [
|
||||
"https://github.com/ddontsov93/ComfyUI-AudioSeparator"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom node for ComfyUI integrating audio-separator library that separates audio stems (vocals vs instrumental), removes noise, and fixes audio artifacts using GPU acceleration. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "TobiasGlaubach",
|
||||
"title": "ComfyUI-TG_pydocmaker",
|
||||
"reference": "https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker",
|
||||
"files": [
|
||||
"https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A minimal node set in comfyui to render pydocmaker reports"
|
||||
},
|
||||
{
|
||||
"author": "cyberlightdev",
|
||||
"title": "ComfyUI-CyberUtils",
|
||||
"reference": "https://github.com/cyberlightdev/ComfyUI-CyberUtils",
|
||||
"files": [
|
||||
"https://github.com/cyberlightdev/ComfyUI-CyberUtils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A minimal template for creating React/TypeScript frontend extensions for ComfyUI, with complete boilerplate setup including internationalization and unit testing."
|
||||
},
|
||||
|
||||
|
||||
|
||||
@ -39413,6 +39689,17 @@
|
||||
"install_type": "unzip",
|
||||
"description": "Various image processing nodes."
|
||||
},
|
||||
{
|
||||
"author": "CX330V",
|
||||
"title": "Qwen-Image-Toolkit",
|
||||
"id": "Cx330",
|
||||
"reference": "https://github.com/CX330V/Qwen-Image-Toolkit",
|
||||
"files": [
|
||||
"https://github.com/CX330V/Qwen-Image-Toolkit"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A toolkit for Qwen-Image, including a specialized LoRA loader, prompt styler, and aspect ratio presets. Enables seamless integration of Qwen-Image LoRAs within ComfyUI.",
|
||||
},
|
||||
{
|
||||
"author": "aimingfail",
|
||||
"title": "Image2Halftone Node for ComfyUI",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
16494
github-stats-cache.json
16494
github-stats-cache.json
File diff suppressed because it is too large
Load Diff
8945
github-stats.json
8945
github-stats.json
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,65 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "TobiasGlaubach",
|
||||
"title": "ComfyUI-TG_PyCode [UNSAFE]",
|
||||
"reference": "https://github.com/TobiasGlaubach/ComfyUI-TG_PyCode",
|
||||
"files": [
|
||||
"https://github.com/TobiasGlaubach/ComfyUI-TG_PyCode"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI node library with an editor and nodes to run Python code within ComfyUI workflows.[w/This nodepack has a vulnerability that allows arbitrary code execution remotely.]"
|
||||
},
|
||||
{
|
||||
"author": "jchiotaka",
|
||||
"title": "ComfyUI-ClarityAI-Upscaler",
|
||||
"reference": "https://github.com/jchiotaka/ComfyUI-ClarityAI-Upscaler",
|
||||
"files": [
|
||||
"https://github.com/jchiotaka/ComfyUI-ClarityAI-Upscaler"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI upscaler nodes including ClarityCreativeUpscaler, ClarityCrystalUpscaler, and ClarityFluxUpscaler. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "tpc2233",
|
||||
"title": "ComfyUI-TP-IMtalker [WIP]",
|
||||
"reference": "https://github.com/tpc2233/ComfyUI-TP-IMtalker",
|
||||
"files": [
|
||||
"https://github.com/tpc2233/ComfyUI-TP-IMtalker"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Comfy UI nodes for IMtalker to run native weights.)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "yutrodimitri-ship-it",
|
||||
"title": "ComfyUI-YUTRO-CastingStudio-v2 [WIP]",
|
||||
"reference": "https://github.com/yutrodimitri-ship-it/ComfyUI-YUTRO-CastingStudio-v2",
|
||||
"files": [
|
||||
"https://github.com/yutrodimitri-ship-it/ComfyUI-YUTRO-CastingStudio-v2"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A professional modular suite of nodes for ComfyUI designed for virtual casting agencies, professional photographers, and content creators to generate high-quality model portfolios efficiently. (Description by CC)\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "yuyu0218yu",
|
||||
"title": "comfyui-NXCM-tool [UNSAFE]",
|
||||
"reference": "https://github.com/yuyu0218yu/comfyui-NXCM-tool",
|
||||
"files": [
|
||||
"https://github.com/yuyu0218yu/comfyui-NXCM-tool"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Next-generation creative media encryption toolkit for ComfyUI providing image and video encryption with AES-256-CTR + HMAC-SHA256, metadata preservation, and batch processing support. (Description by CC) [w/hardcoded encryption key]"
|
||||
},
|
||||
{
|
||||
"author": "SergeyKarleev",
|
||||
"title": "[WIP] comfyui-textutils",
|
||||
"reference": "https://github.com/SergeyKarleev/comfyui-textutils",
|
||||
"files": [
|
||||
"https://github.com/SergeyKarleev/comfyui-textutils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Small utility nodes for ComfyUI text workflows.\nNOTE: The files in the repo are not organized."
|
||||
},
|
||||
{
|
||||
"author": "love530love",
|
||||
"title": "[WIP] ComfyUI-TorchMonitor",
|
||||
|
||||
@ -340,8 +340,6 @@
|
||||
"ImageBlendText",
|
||||
"ImageBlendV1",
|
||||
"ImageRatioCrop",
|
||||
"Load_Images_Advance",
|
||||
"Load_Images_V1",
|
||||
"PD Image Resize_V1",
|
||||
"PDEmptyRatioLatent",
|
||||
"PDIMAGE_ImageCombine",
|
||||
@ -366,6 +364,7 @@
|
||||
"PD_GetImageRatio",
|
||||
"PD_GetImageSize",
|
||||
"PD_ImageFileTraining",
|
||||
"PD_ImageGroupComposite",
|
||||
"PD_ImageListForSort",
|
||||
"PD_ImageListForSortWithMetadata",
|
||||
"PD_ImageSearch",
|
||||
@ -376,7 +375,6 @@
|
||||
"PD_JoinStringMultiLine",
|
||||
"PD_LoadImageMetadata",
|
||||
"PD_LoadImageWithMeta",
|
||||
"PD_LoadImagesFromDir",
|
||||
"PD_LoadImagesFromZip",
|
||||
"PD_LoadTextsFromDir",
|
||||
"PD_LoadTextsFromZip",
|
||||
@ -411,6 +409,8 @@
|
||||
"PD_image_to_text_v1",
|
||||
"PD_imagesave_path",
|
||||
"PD_load_image_v1",
|
||||
"PD_loadimage_path",
|
||||
"PD_loadimage_path advance",
|
||||
"PD_name_replacewordorder",
|
||||
"PD_number_star",
|
||||
"PD_number_start",
|
||||
@ -636,6 +636,8 @@
|
||||
],
|
||||
"https://github.com/AMTPorn/comfyui_amt": [
|
||||
[
|
||||
"AMTCountTagsInDirectory",
|
||||
"AMTEmbedTagFrequencySafetensors",
|
||||
"AMTMultiConditionRegexReplace",
|
||||
"AMTReplaceAndMaybeDropString",
|
||||
"AMTStringDeduplication"
|
||||
@ -879,6 +881,7 @@
|
||||
"TSRestoreFromCrop",
|
||||
"TSWhisper",
|
||||
"TS_BGRM_BiRefNet",
|
||||
"TS_BatchPromptLoader",
|
||||
"TS_Color_Grade",
|
||||
"TS_DeflickerNode",
|
||||
"TS_FilePathLoader",
|
||||
@ -894,6 +897,7 @@
|
||||
"TS_Qwen3_VL",
|
||||
"TS_QwenCanvas",
|
||||
"TS_QwenSafeResize",
|
||||
"TS_Qwen_3VL_FP8",
|
||||
"TS_VideoDepthNode",
|
||||
"TS_Video_Upscale_With_Model",
|
||||
"TS_WAN_SafeResize"
|
||||
@ -1647,6 +1651,7 @@
|
||||
"DonutApplyLoRAStack",
|
||||
"DonutCacheDebug",
|
||||
"DonutClipEncode",
|
||||
"DonutDetailerZIT",
|
||||
"DonutFillerClip",
|
||||
"DonutFillerModel",
|
||||
"DonutHotReload",
|
||||
@ -2651,8 +2656,10 @@
|
||||
[
|
||||
"LunaBatchPromptExtractor",
|
||||
"LunaBatchPromptLoader",
|
||||
"LunaBatchUpscaleRefine",
|
||||
"LunaCheckpointLoader",
|
||||
"LunaCheckpointTunnel",
|
||||
"LunaChessRefiner",
|
||||
"LunaCivitaiBatchScraper",
|
||||
"LunaCivitaiScraper",
|
||||
"LunaConfigGateway",
|
||||
@ -2667,8 +2674,10 @@
|
||||
"LunaExpressionPromptBuilder",
|
||||
"LunaExpressionSlicerSaver",
|
||||
"LunaGGUFConverter",
|
||||
"LunaINT8Loader",
|
||||
"LunaKSampler",
|
||||
"LunaKSamplerAdvanced",
|
||||
"LunaKSamplerHeadless",
|
||||
"LunaLoRARandomizer",
|
||||
"LunaLoRAStacker",
|
||||
"LunaLoRATriggerInjector",
|
||||
@ -2676,12 +2685,17 @@
|
||||
"LunaModelRestore",
|
||||
"LunaModelRouter",
|
||||
"LunaMultiSaver",
|
||||
"LunaNF4Loader",
|
||||
"LunaOptimizedWeightsManager",
|
||||
"LunaPipeExpander",
|
||||
"LunaPromptCraft",
|
||||
"LunaPromptCraftDebug",
|
||||
"LunaPyramidNoiseGenerator",
|
||||
"LunaResetModelWeights",
|
||||
"LunaSAM3Detector",
|
||||
"LunaScaffoldUpscaler",
|
||||
"LunaSecondaryModelLoader",
|
||||
"LunaSemanticDetailer",
|
||||
"LunaSmartLoRALinker",
|
||||
"LunaSuperUpscaler",
|
||||
"LunaSuperUpscalerSimple",
|
||||
@ -3561,7 +3575,13 @@
|
||||
],
|
||||
"https://github.com/OhSeongHyeon/comfyui-random-image-size": [
|
||||
[
|
||||
"RandomImageSize"
|
||||
"CheckpointLoaderWithOuputDirByModelName",
|
||||
"IntegerPicker",
|
||||
"OuputDirByModelName",
|
||||
"RandomImageSizeAdvanced",
|
||||
"RandomImageSizeAdvancedYAML",
|
||||
"RandomInteger",
|
||||
"UniqueStringList"
|
||||
],
|
||||
{
|
||||
"title_aux": "comfyui-random-image-size"
|
||||
@ -4208,6 +4228,14 @@
|
||||
"title_aux": "comfyui_caption-around-image"
|
||||
}
|
||||
],
|
||||
"https://github.com/SergeyKarleev/comfyui-textutils": [
|
||||
[
|
||||
"TextLinesBatch"
|
||||
],
|
||||
{
|
||||
"title_aux": "[WIP] comfyui-textutils"
|
||||
}
|
||||
],
|
||||
"https://github.com/ShahFaisalWani/ComfyUI-Mojen-Nodeset": [
|
||||
[
|
||||
"MojenAnalyzeProcessor",
|
||||
@ -6679,13 +6707,13 @@
|
||||
"EmptyLatentHunyuan3Dv2",
|
||||
"EmptyLatentImage",
|
||||
"EmptyMochiLatentVideo",
|
||||
"EmptyQwenImageLayeredLatentImage",
|
||||
"EmptySD3LatentImage",
|
||||
"Epsilon Scaling",
|
||||
"ExponentialScheduler",
|
||||
"ExtendIntermediateSigmas",
|
||||
"FeatherMask",
|
||||
"FlipSigmas",
|
||||
"Flux2ProImageNode",
|
||||
"Flux2Scheduler",
|
||||
"FluxDisableGuidance",
|
||||
"FluxGuidance",
|
||||
@ -6793,6 +6821,7 @@
|
||||
"LatentConcat",
|
||||
"LatentCrop",
|
||||
"LatentCut",
|
||||
"LatentCutToBatch",
|
||||
"LatentFlip",
|
||||
"LatentFromBatch",
|
||||
"LatentInterpolate",
|
||||
@ -9097,13 +9126,18 @@
|
||||
],
|
||||
"https://github.com/jorin91/ComfyUI-JSG-Utils": [
|
||||
[
|
||||
"JSGAddMetadata",
|
||||
"JSGDeleteFilePassAny",
|
||||
"JSGDeleteFilePassImage",
|
||||
"JSGDeleteFilePassString",
|
||||
"JSGFindImagePathsRecursive",
|
||||
"JSGFindImagesRecursiveList",
|
||||
"JSGLoadImageFromPath",
|
||||
"JSGParsePath"
|
||||
"JSGParsePath",
|
||||
"JSGRandomColorHSVA",
|
||||
"JSGRemoveMetadata",
|
||||
"JSGSaveImage",
|
||||
"JSGSetMetadata"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-JSG-Utils [UNSAFE]"
|
||||
@ -11674,7 +11708,9 @@
|
||||
"https://github.com/saltchicken/ComfyUI-Identity-Mixer": [
|
||||
[
|
||||
"IdentityLoraMixer",
|
||||
"IdentityLoraMixerStack"
|
||||
"IdentityLoraMixerDirectory",
|
||||
"IdentityLoraMixerStack",
|
||||
"IdentityLoraMixerStackDirectory"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Identity-Mixer"
|
||||
@ -11708,6 +11744,8 @@
|
||||
"https://github.com/saltchicken/ComfyUI-Video-Utils": [
|
||||
[
|
||||
"FinalFrameSelector",
|
||||
"NthLastFrameSelector",
|
||||
"PreviewImageWithCounter",
|
||||
"VideoMerge"
|
||||
],
|
||||
{
|
||||
@ -12151,9 +12189,9 @@
|
||||
"https://github.com/stalkervr/ComfyUI-StalkerVr": [
|
||||
[
|
||||
"AnyCollector",
|
||||
"ImageAspectRatioFixer",
|
||||
"ImageBatchCrop",
|
||||
"ImageGridCropper",
|
||||
"ImageRatioResizer",
|
||||
"JsonArraySplitter",
|
||||
"JsonBuilder",
|
||||
"JsonDeserializeObject",
|
||||
@ -12620,6 +12658,16 @@
|
||||
"title_aux": "ComfyUI-SDXLGenerateFromTextFile [UNSAFE]"
|
||||
}
|
||||
],
|
||||
"https://github.com/tpc2233/ComfyUI-TP-IMtalker": [
|
||||
[
|
||||
"IMTalkerAudioDriven",
|
||||
"IMTalkerLoader",
|
||||
"IMTalkerVideoDriven"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-TP-IMtalker [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/tracerstar/comfyui-p5js-node": [
|
||||
[
|
||||
"HYPE_P5JSImage"
|
||||
@ -13388,6 +13436,7 @@
|
||||
"FloatNode",
|
||||
"FloatToIntNode",
|
||||
"IfNode",
|
||||
"ImageRemoveAlphaNode",
|
||||
"ImageSizeNode",
|
||||
"ImageToBase64Node",
|
||||
"ImageToVideoNode",
|
||||
@ -13505,6 +13554,14 @@
|
||||
"title_aux": "ComfyUI-Dropbox-API [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/yutrodimitri-ship-it/ComfyUI-YUTRO-CastingStudio-v2": [
|
||||
[
|
||||
"YUTROWardrobePreset"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-YUTRO-CastingStudio-v2 [WIP]"
|
||||
}
|
||||
],
|
||||
"https://github.com/yuvraj108c/ComfyUI-HYPIR": [
|
||||
[
|
||||
"HYPIRProcess",
|
||||
@ -13515,6 +13572,16 @@
|
||||
"title_aux": "ComfyUI HYPIR [NAME CONFLICT]"
|
||||
}
|
||||
],
|
||||
"https://github.com/yuyu0218yu/comfyui-NXCM-tool": [
|
||||
[
|
||||
"HD_EncryptImage",
|
||||
"HD_EncryptVideo",
|
||||
"VideoToGarbledImage"
|
||||
],
|
||||
{
|
||||
"title_aux": "comfyui-NXCM-tool [UNSAFE]"
|
||||
}
|
||||
],
|
||||
"https://github.com/z604159435g/comfyui_random_prompt_plugin": [
|
||||
[
|
||||
"NaturalLanguagePromptGenerator",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,15 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "Fossiel",
|
||||
"title": "ComfyUI-MultiGPU-Patched",
|
||||
"reference": "https://github.com/Fossiel/ComfyUI-MultiGPU-Patched",
|
||||
"files": [
|
||||
"https://github.com/Fossiel/ComfyUI-MultiGPU-Patched"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Patched fork of ComfyUI-MultiGPU providing universal .safetensors and GGUF multi-GPU distribution with DisTorch 2.0 engine, model-driven allocation options (bytes/ratio modes), WanVideoWrapper integration, and up to 10% faster GGUF inference. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "synchronicity-labs",
|
||||
"title": "ComfyUI Sync Lipsync Node",
|
||||
|
||||
@ -1,5 +1,67 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "TheBill2001",
|
||||
"title": "comfyui-upscale-by-model [REMOVED]",
|
||||
"reference": "https://github.com/TheBill2001/comfyui-upscale-by-model",
|
||||
"files": [
|
||||
"https://github.com/TheBill2001/comfyui-upscale-by-model"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This custom node allow upscaling an image by a factor using a model."
|
||||
},
|
||||
{
|
||||
"author": "XYMikky12138",
|
||||
"title": "ComfyUI-NanoBanana-inpaint [REMOVED]",
|
||||
"reference": "https://github.com/XYMikky12138/ComfyUI-NanoBanana-inpaint",
|
||||
"files": [
|
||||
"https://github.com/XYMikky12138/ComfyUI-NanoBanana-inpaint"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for API-based inpainting (Gemini, Imagen) with aspect ratio constraints, smart cropping, resize fitting, intelligent paste-back with transparency support. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Blonicx",
|
||||
"title": "ComfyUI-Rework-X [REMOVED]",
|
||||
"id": "rework-x",
|
||||
"reference": "https://github.com/Blonicx/ComfyUI-X-Rework",
|
||||
"files": [
|
||||
"https://github.com/Blonicx/ComfyUI-X-Rework"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This is a plugin for ComfyUI that adds new Util Nodes and Nodes for easier image creation and sharing."
|
||||
},
|
||||
{
|
||||
"author": "scott-createplay",
|
||||
"title": "ComfyUI_video_essentials [REMOVED]",
|
||||
"reference": "https://github.com/scott-createplay/ComfyUI_video_essentials",
|
||||
"files": [
|
||||
"https://github.com/scott-createplay/ComfyUI_video_essentials"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Essential video processing nodes for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "thnikk",
|
||||
"title": "comfyui-thnikk-utils [REMOVED]",
|
||||
"reference": "https://github.com/thnikk/comfyui-thnikk-utils",
|
||||
"files": [
|
||||
"https://github.com/thnikk/comfyui-thnikk-utils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes to clean up your workflow."
|
||||
},
|
||||
{
|
||||
"author": "Tr1dae",
|
||||
"title": "LoRA Matcher Nodes for ComfyUI [REMOVED]",
|
||||
"reference": "https://github.com/Tr1dae/ComfyUI-LoraPromptMatcher",
|
||||
"files": [
|
||||
"https://github.com/Tr1dae/ComfyUI-LoraPromptMatcher"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This custom node provides two different approaches to automatically match text prompts with LoRA models using their descriptions."
|
||||
},
|
||||
|
||||
{
|
||||
"author": "jkhayiying",
|
||||
"title": "ImageLoadFromLocalOrUrl Node for ComfyUI [REMOVED]",
|
||||
|
||||
@ -1,5 +1,337 @@
|
||||
{
|
||||
"custom_nodes": [
|
||||
{
|
||||
"author": "SparknightLLC",
|
||||
"title": "ComfyUI-ModelSamplingSD3Advanced",
|
||||
"reference": "https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced",
|
||||
"files": [
|
||||
"https://github.com/SparknightLLC/ComfyUI-ModelSamplingSD3Advanced"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Adds windowed, curved shift control for Flow Matching samplers (SD3-style / flow schedules). It is a drop-in replacement for Comfy's included ModelSamplingSD3 node."
|
||||
},
|
||||
{
|
||||
"author": "ddontsov93",
|
||||
"title": "ComfyUI-AudioSeparator",
|
||||
"reference": "https://github.com/ddontsov93/ComfyUI-AudioSeparator",
|
||||
"files": [
|
||||
"https://github.com/ddontsov93/ComfyUI-AudioSeparator"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom node for ComfyUI integrating audio-separator library that separates audio stems (vocals vs instrumental), removes noise, and fixes audio artifacts using GPU acceleration. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "TobiasGlaubach",
|
||||
"title": "ComfyUI-TG_pydocmaker",
|
||||
"reference": "https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker",
|
||||
"files": [
|
||||
"https://github.com/TobiasGlaubach/ComfyUI-TG_pydocmaker"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A minimal node set in comfyui to render pydocmaker reports"
|
||||
},
|
||||
{
|
||||
"author": "xuheyao",
|
||||
"title": "comfyui-dinov3-point-prompt",
|
||||
"reference": "https://github.com/xuheyao/comfyui-dinov3-point-prompt",
|
||||
"files": [
|
||||
"https://github.com/xuheyao/comfyui-dinov3-point-prompt"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for DINOv3 point prompt functionality with integration of Facebook's DINOv3 research model. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "logicalor",
|
||||
"title": "comfyui_friendly_pipe",
|
||||
"reference": "https://github.com/logicalor/comfyui_friendly_pipe",
|
||||
"files": [
|
||||
"https://github.com/logicalor/comfyui_friendly_pipe"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Flexible pipe nodes for bundling and unbundling multiple connections of any type in ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "Asidert",
|
||||
"title": "ComfyUI_Base64Images",
|
||||
"reference": "https://github.com/Asidert/ComfyUI_Base64Images",
|
||||
"files": [
|
||||
"https://github.com/Asidert/ComfyUI_Base64Images"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of base64 input and output nodes for a custom API using ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "9nate-drake",
|
||||
"title": "ComfyUI-PanoTools",
|
||||
"reference": "https://github.com/9nate-drake/ComfyUI-PanoTools",
|
||||
"files": [
|
||||
"https://github.com/9nate-drake/ComfyUI-PanoTools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Professional panorama generation tools for ComfyUI converting perspective images/video to equirectangular 360° panoramas with automatic camera calibration via AI, horizon detection, or vertical line detection."
|
||||
},
|
||||
{
|
||||
"author": "Bzbaozi",
|
||||
"title": "ComfyUI-YK-Banana2-Batch",
|
||||
"reference": "https://github.com/Bzbaozi/ComfyUI-YK-Banana2-Batch",
|
||||
"files": [
|
||||
"https://github.com/Bzbaozi/ComfyUI-YK-Banana2-Batch"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A powerful batch image generation node for ComfyUI using the YK-Banana2 Pro API to generate multiple images in parallel with reference image support. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "rethink-studios",
|
||||
"title": "comfyui-model-linker-desktop",
|
||||
"reference": "https://github.com/rethink-studios/comfyui-model-linker-desktop",
|
||||
"files": [
|
||||
"https://github.com/rethink-studios/comfyui-model-linker-desktop"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI extension that helps users relink missing models in workflows"
|
||||
},
|
||||
{
|
||||
"author": "OhSeongHyeon",
|
||||
"title": "comfyui-watdafox-nodes",
|
||||
"reference": "https://github.com/OhSeongHyeon/comfyui-watdafox-nodes",
|
||||
"files": [
|
||||
"https://github.com/OhSeongHyeon/comfyui-watdafox-nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A node pack for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "pixelpainter",
|
||||
"title": "mute-bypass by node ID",
|
||||
"reference": "https://github.com/pixelpainter/comfyui-mute-bypass-by-ID",
|
||||
"files": [
|
||||
"https://github.com/pixelpainter/comfyui-mute-bypass-by-ID"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "2 nodes for muting or bypassing a node by node ID. They are widget linkable and promotable to a Subgraph node as a switch to mute or bypass a node in it's own Subgraph, or any other Subgraph, or it can be used as a stand alone node anywhere"
|
||||
},
|
||||
{
|
||||
"author": "benjiyaya",
|
||||
"title": "ComfyUI-QwenImageLayeredToLength",
|
||||
"reference": "https://github.com/benjiyaya/ComfyUI-QwenImageLayeredToLength",
|
||||
"files": [
|
||||
"https://github.com/benjiyaya/ComfyUI-QwenImageLayeredToLength"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom ComfyUI node for using Qwen-Image-Layered as a conversion tool to transform layer numbers into latent space length parameters. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "princepainter",
|
||||
"title": "ComfyUI-PainterVideoCombine",
|
||||
"reference": "https://github.com/princepainter/ComfyUI-PainterVideoCombine",
|
||||
"files": [
|
||||
"https://github.com/princepainter/ComfyUI-PainterVideoCombine"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI node: extract fps/frames/duration/width/height from video"
|
||||
},
|
||||
{
|
||||
"author": "Arctenox",
|
||||
"title": "Arctenoxs-Essentials_ComfyUI",
|
||||
"reference": "https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI",
|
||||
"files": [
|
||||
"https://github.com/Arctenox/Arctenoxs-Essentials_ComfyUI"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A collection of efficient workflow nodes for ComfyUI with advanced sampling, seed management, temporal prompt processing, and workflow optimization tools"
|
||||
},
|
||||
{
|
||||
"author": "by-ae",
|
||||
"title": "ae-in-workflow",
|
||||
"reference": "https://github.com/by-ae/ae-in-workflow",
|
||||
"files": [
|
||||
"https://github.com/by-ae/ae-in-workflow"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "In-workflow Nodes for ComfyUI - Heavy interaction and streaming capabilities"
|
||||
},
|
||||
|
||||
{
|
||||
"author": "chameleon-ai",
|
||||
"title": "comfyui_momo",
|
||||
"reference": "https://github.com/chameleon-ai/comfyui_momo",
|
||||
"files": [
|
||||
"https://github.com/chameleon-ai/comfyui_momo"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Implementation of MoMo interpolation for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-BGPSeg",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-BGPSeg",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-BGPSeg"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "BGPSeg: Boundary-Guided Primitive Segmentation - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-SECADNET",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-SECADNET",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-SECADNET"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "SECAD-Net: Sketch-Extrude CAD Reconstruction - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-Cadrille",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-Cadrille",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-Cadrille"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Cadrille: Multi-modal CAD Reconstruction - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "PozzettiAndrea",
|
||||
"title": "ComfyUI-NeurCADRecon",
|
||||
"reference": "https://github.com/PozzettiAndrea/ComfyUI-NeurCADRecon",
|
||||
"files": [
|
||||
"https://github.com/PozzettiAndrea/ComfyUI-NeurCADRecon"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "NeurCADRecon: Neural Implicit CAD Reconstruction - Originally from ComfyUI-CADabra"
|
||||
},
|
||||
{
|
||||
"author": "RyukoMatoiFan",
|
||||
"title": "ComfyUI-Switti",
|
||||
"reference": "https://github.com/RyukoMatoiFan/ComfyUI-Switti",
|
||||
"files": [
|
||||
"https://github.com/RyukoMatoiFan/ComfyUI-Switti"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom nodes for running the Switti text-to-image model inside ComfyUI with support for checkpoint loading, VAE, CLIP encoders, and pipeline building."
|
||||
},
|
||||
{
|
||||
"author": "DenRakEiw",
|
||||
"title": "ComfyUI-nearest-qwen-resolution",
|
||||
"reference": "https://github.com/DenRakEiw/ComfyUI-nearest-qwen-resolution",
|
||||
"files": [
|
||||
"https://github.com/DenRakEiw/ComfyUI-nearest-qwen-resolution"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node that converts input image dimensions to the nearest recommended Qwen-Image resolution preset, matching orientation and aspect ratio while optimizing for the target model."
|
||||
},
|
||||
{
|
||||
"author": "styletransfer",
|
||||
"title": "ComfyUI-TRELLIS2_Motion",
|
||||
"reference": "https://github.com/styletransfer/ComfyUI-TRELLIS2_Motion",
|
||||
"files": [
|
||||
"https://github.com/styletransfer/ComfyUI-TRELLIS2_Motion"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A comprehensive ComfyUI node package that uses Microsoft's TRELLIS2 to transform video footage into 3D mesh reconstructions with advanced rendering effects."
|
||||
},
|
||||
{
|
||||
"author": "SuzumiyaAkizuki",
|
||||
"title": "ComfyUI-LLM_Prompt_XML_Formatter",
|
||||
"reference": "https://github.com/SuzumiyaAkizuki/ComfyUI-LLM_Prompt_XML_Formatter",
|
||||
"files": [
|
||||
"https://github.com/SuzumiyaAkizuki/ComfyUI-LLM_Prompt_XML_Formatter"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for automatically generating XML-style prompts compatible with NewBie models using LLM APIs, with style customization and preset management capabilities. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "AugustusLXIII",
|
||||
"title": "ComfyUI_CustomResolution_I2V",
|
||||
"reference": "https://github.com/AugustusLXIII/ComfyUI_CustomResolution_I2V",
|
||||
"files": [
|
||||
"https://github.com/AugustusLXIII/ComfyUI_CustomResolution_I2V"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Specialized resolution utility node for WanVideo Image-to-Video workflows with 20 preset levels, manual override with auto-rounding, and tooltips for custom dimensions. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "1038lab",
|
||||
"title": "ComfyUI-NodeAlign",
|
||||
"reference": "https://github.com/1038lab/ComfyUI-NodeAlign",
|
||||
"files": [
|
||||
"https://github.com/1038lab/ComfyUI-NodeAlign"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Lightweight alignment toolbar for ComfyUI graphs. Provides quick align, equal size, and distribution actions with optional keyboard shortcuts."
|
||||
},
|
||||
{
|
||||
"author": "SKBv0",
|
||||
"title": "ComfyUI_LinkFX",
|
||||
"reference": "https://github.com/SKBv0/ComfyUI_LinkFX",
|
||||
"files": [
|
||||
"https://github.com/SKBv0/ComfyUI_LinkFX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Visual effects for ComfyUI links (wires) with various animation styles (Neon, Matrix, Fire) and gravity physics rope simulation. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Austat",
|
||||
"title": "ComfyUI-DownsampleFPS",
|
||||
"reference": "https://github.com/Austat/ComfyUI-DownsampleFPS",
|
||||
"files": [
|
||||
"https://github.com/Austat/ComfyUI-DownsampleFPS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A node for ComfyUI to downsample framerate ie. from 48 to 24."
|
||||
},
|
||||
{
|
||||
"author": "BennyDaBall930",
|
||||
"title": "ComfyUI-Z-Engineer",
|
||||
"reference": "https://github.com/BennyDaBall930/ComfyUI-Z-Engineer",
|
||||
"files": [
|
||||
"https://github.com/BennyDaBall930/ComfyUI-Z-Engineer"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom node for ComfyUI that integrates a local LLM via OpenAI-compatible API to engineer optimal prompts for Z-Image Turbo workflows. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "SKBv0",
|
||||
"title": "ComfyUI_SpideyReroute",
|
||||
"reference": "https://github.com/SKBv0/ComfyUI_SpideyReroute",
|
||||
"files": [
|
||||
"https://github.com/SKBv0/ComfyUI_SpideyReroute"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Just a reroute node with a tiny twist."
|
||||
},
|
||||
{
|
||||
"author": "Austat",
|
||||
"title": "ComfyUI-RemacriScale",
|
||||
"reference": "https://github.com/Austat/ComfyUI-RemacriScale",
|
||||
"files": [
|
||||
"https://github.com/Austat/ComfyUI-RemacriScale"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI custom node for upscaling videos using the Remacri upscaler and then downscaling them. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "Lysthan",
|
||||
"title": "ComfyUI-LYSTHAN-PPS",
|
||||
"reference": "https://github.com/Lysthan/ComfyUI-LYSTHAN-PPS",
|
||||
"files": [
|
||||
"https://github.com/Lysthan/ComfyUI-LYSTHAN-PPS"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Privacy-Protected Saver node for ComfyUI that encrypts and archives output images into password-protected ZIP files or videos for secure storage and privacy protection."
|
||||
},
|
||||
{
|
||||
"author": "mirabarukaso",
|
||||
"title": "ComfyUI_MiraSubPack",
|
||||
"reference": "https://github.com/mirabarukaso/ComfyUI_MiraSubPack",
|
||||
"files": [
|
||||
"https://github.com/mirabarukaso/ComfyUI_MiraSubPack"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "More test nodes for ComfyUI_Mira extension. (Description by CC)"
|
||||
},
|
||||
|
||||
{
|
||||
"author": "huchenlei",
|
||||
"title": "ComfyUI-execution-glow",
|
||||
@ -40,16 +372,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Advanced tiling plugin for ComfyUI solving VRAM limitations in 4K/8K+ image generation using intelligent tiling and seamless weighted fusion with multiple blending modes."
|
||||
},
|
||||
{
|
||||
"author": "XYMikky12138",
|
||||
"title": "ComfyUI-NanoBanana-inpaint",
|
||||
"reference": "https://github.com/XYMikky12138/ComfyUI-NanoBanana-inpaint",
|
||||
"files": [
|
||||
"https://github.com/XYMikky12138/ComfyUI-NanoBanana-inpaint"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for API-based inpainting (Gemini, Imagen) with aspect ratio constraints, smart cropping, resize fitting, intelligent paste-back with transparency support. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "GiusTex",
|
||||
"title": "ComfyUI-Wan-TimeToMove",
|
||||
@ -160,16 +482,6 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI nodes for using SimpleTuner-trained Flux 2 LoRA models. SimpleTuner's Flux 2 architecture uses fused layers, making its LoRAs incompatible with standard ComfyUI Flux nodes. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "scott-createplay",
|
||||
"title": "ComfyUI_video_essentials",
|
||||
"reference": "https://github.com/scott-createplay/ComfyUI_video_essentials",
|
||||
"files": [
|
||||
"https://github.com/scott-createplay/ComfyUI_video_essentials"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Essential video processing nodes for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "revisionhiep-create",
|
||||
"title": "comfyui-standard-trigger-words",
|
||||
@ -410,343 +722,6 @@
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Efficient lazy path switch for ComfyUI. Skips execution of the inactive branch entirely using native lazy evaluation. Includes live status display."
|
||||
},
|
||||
{
|
||||
"author": "Deathspike",
|
||||
"title": "ComfyUI-MyOriginalWaifu",
|
||||
"reference": "https://github.com/Deathspike/ComfyUI-MyOriginalWaifu",
|
||||
"files": [
|
||||
"https://github.com/Deathspike/ComfyUI-MyOriginalWaifu"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "My Original Waifu is a tag-based prompt-transformation engine for ComfyUI designed for creators who want their original characters to feel consistent, expressive, and faithfully rendered across every scene. Instead of manually adjusting tags each time you generate an image, you define the essence of your waifu, her look, her outfits, the way she appears in different contexts, and the engine transforms your prompt to match those intentions. It stays out of the way and simply follows your rules with clarity and consistency. Your Waifu. Your Rules. Your Perfect Prompt."
|
||||
},
|
||||
{
|
||||
"author": "LeonQ8",
|
||||
"title": "ComfyUI-Dynamic-Lora-Scheduler",
|
||||
"reference": "https://github.com/LeonQ8/ComfyUI-Dynamic-Lora-Scheduler",
|
||||
"files": [
|
||||
"https://github.com/LeonQ8/ComfyUI-Dynamic-Lora-Scheduler"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Dynamically balance weights of multiple LoRAs over generation steps for ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "sebagallo",
|
||||
"title": "comfyui-sg-llama-cpp",
|
||||
"reference": "https://github.com/sebagallo/comfyui-sg-llama-cpp",
|
||||
"files": [
|
||||
"https://github.com/sebagallo/comfyui-sg-llama-cpp"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "llama-cpp-python wrapper, with support for vision models. It allows the user to generate text responses from prompts using llama.cpp."
|
||||
},
|
||||
{
|
||||
"author": "Limbicnation",
|
||||
"title": "ComfyUI-PromptGenerator",
|
||||
"id": "comfyui-prompt-generator",
|
||||
"reference": "https://github.com/Limbicnation/ComfyUI-PromptGenerator",
|
||||
"files": [
|
||||
"https://github.com/Limbicnation/ComfyUI-PromptGenerator"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Generate Stable Diffusion prompts using Qwen3-8B via Ollama with 7 style presets (cinematic, anime, photorealistic, fantasy, abstract, cyberpunk, sci-fi)"
|
||||
},
|
||||
{
|
||||
"author": "TuonoMindCode",
|
||||
"title": "ComfyUI-Resolution-Suggest-Downscale",
|
||||
"reference": "https://github.com/TuonoMindCode/ComfyUI-Resolution-Suggest-Downscale",
|
||||
"files": [
|
||||
"https://github.com/TuonoMindCode/ComfyUI-Resolution-Suggest-Downscale"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Resolution suggestion and downscale helper node for ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "dcyd-lun",
|
||||
"title": "ComfyUI_text_diff",
|
||||
"reference": "https://github.com/dcyd-lun/ComfyUI_text_diff",
|
||||
"files": [
|
||||
"https://github.com/dcyd-lun/ComfyUI_text_diff"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Compare two texts with GitHub/GitLab-style diff highlighting in ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "SKFRMSEHF",
|
||||
"title": "SK-ComfyUI-FolderingLoader",
|
||||
"id": "skloader",
|
||||
"reference": "https://github.com/SKFRMSEHF/comfyui_SK_Loader",
|
||||
"files": [
|
||||
"https://github.com/SKFRMSEHF/comfyui_SK_Loader"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Unified loader nodes with folder organization support for checkpoints, LoRA, VAE, and diffusion models"
|
||||
},
|
||||
{
|
||||
"author": "drawthingsai",
|
||||
"title": "draw-things-comfyui",
|
||||
"reference": "https://github.com/drawthingsai/draw-things-comfyui",
|
||||
"files": [
|
||||
"https://github.com/drawthingsai/draw-things-comfyui"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "The official Draw Things extension for ComfyUI. Sends image-generation requests to Draw Things over gRPC. Supports Bridge Mode for DT+ cloud and local model execution."
|
||||
},
|
||||
{
|
||||
"author": "darrell-goh",
|
||||
"title": "ComfyUI-NanoBanana_node",
|
||||
"reference": "https://github.com/darrell-goh/ComfyUI-NanoBanana_node",
|
||||
"files": [
|
||||
"https://github.com/darrell-goh/ComfyUI-NanoBanana_node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for ComfyUI that allows you to interact with Nano Banana's Vertex API proxy, providing access to Gemini models with dynamic image inputs."
|
||||
},
|
||||
{
|
||||
"author": "This-is-Uncut",
|
||||
"title": "Custom-Node-ComfyUI-NBP-Uncut",
|
||||
"reference": "https://github.com/This-is-Uncut/Custom-Node-ComfyUI-NBP-Uncut",
|
||||
"files": [
|
||||
"https://github.com/This-is-Uncut/Custom-Node-ComfyUI-NBP-Uncut"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Node to use NBP with custom API key to improve data privacy control."
|
||||
},
|
||||
{
|
||||
"author": "princepainter",
|
||||
"title": "Comfyui-PainterAudioLength",
|
||||
"reference": "https://github.com/princepainter/Comfyui-PainterAudioLength",
|
||||
"files": [
|
||||
"https://github.com/princepainter/Comfyui-PainterAudioLength"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A tool for calculating audio duration that takes audio input and outputs the audio length as a floating-point number. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "akaugun",
|
||||
"title": "comfyui-lora-hook-trigger",
|
||||
"reference": "https://github.com/akaugun/comfyui-lora-hook-trigger",
|
||||
"files": [
|
||||
"https://github.com/akaugun/comfyui-lora-hook-trigger"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A clean and simple ComfyUI custom node that creates a LoRA Hook and automatically finds and loads trigger TXT files placed in a folder named after the LoRA file."
|
||||
},
|
||||
{
|
||||
"author": "tumbowungus",
|
||||
"title": "MultiMaskCouple",
|
||||
"reference": "https://github.com/tumbowungus/MultiMaskCouple",
|
||||
"files": [
|
||||
"https://github.com/tumbowungus/MultiMaskCouple"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for ComfyUI which simplifies the process of masking multiple prompts, making it easier to manage scenes with multiple distinct characters."
|
||||
},
|
||||
{
|
||||
"author": "fudosanit",
|
||||
"title": "ComfyUI-Random-Resolution",
|
||||
"reference": "https://github.com/fudosanit/ComfyUI-Random-Resolution",
|
||||
"files": [
|
||||
"https://github.com/fudosanit/ComfyUI-Random-Resolution"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A custom node for ComfyUI. Based on the specified resolution, it randomly selects and outputs one of three patterns: original orientation, swapped width/height, or a square format. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "SuLU-K",
|
||||
"title": "comfyui-easy-sam3-tools",
|
||||
"reference": "https://github.com/SuLU-K/comfyui-easy-sam3-tools",
|
||||
"files": [
|
||||
"https://github.com/SuLU-K/comfyui-easy-sam3-tools"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom nodes for building SAM3-centric editing pipelines inside ComfyUI, featuring mask merging, bounding box rendering, and DOM-based interactive editing. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "EMkrtchyan",
|
||||
"title": "ComfyUI-NormalsToDepth",
|
||||
"reference": "https://github.com/EMkrtchyan/ComfyUI-NormalsToDepth",
|
||||
"files": [
|
||||
"https://github.com/EMkrtchyan/ComfyUI-NormalsToDepth"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Converts normal maps to depth maps for use in ComfyUI. (Description by CC)"
|
||||
},
|
||||
|
||||
{
|
||||
"author": "jeankassio",
|
||||
"title": "JK AceStep Nodes",
|
||||
"id": "JK-AceStep-Nodes",
|
||||
"reference": "https://github.com/jeankassio/JK-AceStep-Nodes",
|
||||
"files": [
|
||||
"https://github.com/jeankassio/JK-AceStep-Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Advanced nodes optimized for ACE-Step audio generation in ComfyUI."
|
||||
},
|
||||
{
|
||||
"author": "a-und-b",
|
||||
"title": "ComfyUI_AB_Wildcard",
|
||||
"reference": "https://github.com/a-und-b/ComfyUI_AB_Wildcard",
|
||||
"files": [
|
||||
"https://github.com/a-und-b/ComfyUI_AB_Wildcard"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Simple node for advanced wildcard text processing. Supports variables, conditionals, tag aggregation, weighted selection, and deep nesting. Lightweight, fast, zero external dependencies."
|
||||
},
|
||||
{
|
||||
"author": "RamonGuthrie",
|
||||
"title": "ComfyUI-RBG-SmartSeedVariance",
|
||||
"reference": "https://github.com/RamonGuthrie/ComfyUI-RBG-SmartSeedVariance",
|
||||
"files": [
|
||||
"https://github.com/RamonGuthrie/ComfyUI-RBG-SmartSeedVariance"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Advanced seed diversity enhancement for ComfyUI with intelligent noise injection and directional biasing."
|
||||
},
|
||||
{
|
||||
"author": "theshubzworld",
|
||||
"title": "ComfyUI-NvidiaCaptioner",
|
||||
"reference": "https://github.com/theshubzworld/ComfyUI-NvidiaCaptioner",
|
||||
"files": [
|
||||
"https://github.com/theshubzworld/ComfyUI-NvidiaCaptioner"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI node for generating rich, detailed captions for images using NVIDIA's vision models. Supports batch processing, multiple captioning styles, and includes built-in caching for efficient workflows."
|
||||
},
|
||||
{
|
||||
"author": "theshubzworld",
|
||||
"title": "ComfyUI-Universal-Latent",
|
||||
"reference": "https://github.com/theshubzworld/ComfyUI-Universal-Latent",
|
||||
"files": [
|
||||
"https://github.com/theshubzworld/ComfyUI-Universal-Latent"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Enhanced empty latent node with extended aspect ratio support for ComfyUI"
|
||||
},
|
||||
{
|
||||
"author": "lrzjason",
|
||||
"title": "Comfyui-LatentUtils",
|
||||
"reference": "https://github.com/lrzjason/Comfyui-LatentUtils",
|
||||
"files": [
|
||||
"https://github.com/lrzjason/Comfyui-LatentUtils"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Custom ComfyUI node performing selective latent denoising and detail enhancement using Fourier Transform (FFT) to separate and enhance image frequencies while suppressing noise. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "aTanguay",
|
||||
"title": "ComfyUI_Detonate",
|
||||
"reference": "https://github.com/aTanguay/ComfyUI_Detonate",
|
||||
"files": [
|
||||
"https://github.com/aTanguay/ComfyUI_Detonate"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Professional compositing nodes for ComfyUI - bringing Nuke and Fusion workflows to AI-powered image generation"
|
||||
},
|
||||
{
|
||||
"author": "huihuihuiz",
|
||||
"title": "LoRA Downloader for ComfyUI",
|
||||
"id": "lora_downloader",
|
||||
"reference": "https://github.com/huihuihuiz/lora_downloader",
|
||||
"files": [
|
||||
"https://github.com/huihuihuiz/lora_downloader"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI custom node for downloading and managing LoRA models directly within the UI."
|
||||
},
|
||||
{
|
||||
"author": "lovelybbq",
|
||||
"title": "ComfyUI Custom Node Color",
|
||||
"reference": "https://github.com/lovelybbq/comfyui-custom-node-color",
|
||||
"files": [
|
||||
"https://github.com/lovelybbq/comfyui-custom-node-color"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A modern GUI-based color picker for ComfyUI nodes. Features visual spectrum, HEX/RGB inputs, eyedropper tool, and favorite colors support."
|
||||
},
|
||||
{
|
||||
"author": "Moeblack",
|
||||
"title": "ComfyUI-SimpleChat",
|
||||
"reference": "https://github.com/Moeblack/ComfyUI-SimpleChat",
|
||||
"files": [
|
||||
"https://github.com/Moeblack/ComfyUI-SimpleChat"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Simple, no-nonsense LLM chat nodes for ComfyUI. Support OpenAI, Claude, Gemini and NoASS Roleplay.",
|
||||
"tags": [
|
||||
"LLM",
|
||||
"chat",
|
||||
"openai",
|
||||
"claude",
|
||||
"gemini",
|
||||
"roleplay",
|
||||
"noass"
|
||||
]
|
||||
},
|
||||
{
|
||||
"author": "Lord Lethris",
|
||||
"title": "Dia2 TTS & Captions Generators for ComfyUI",
|
||||
"id": "dia2_tts_captions",
|
||||
"reference": "https://github.com/lord-lethris/ComfyUI-lethris-dia2",
|
||||
"files": [
|
||||
"https://github.com/lord-lethris/ComfyUI-lethris-dia2"
|
||||
],
|
||||
"install_type": "Git-Clone",
|
||||
"description": "This package provides two ComfyUI nodes: 🗣️ Dia2 TTS Generator for text-to-speech using Dia2-2B, and 💬 Dia2 Captions Generator to convert TTS timestamps into SRT/SSA/VTT subtitles. Includes example workflow and voice samples. GPU users require CUDA 12.8+."
|
||||
},
|
||||
{
|
||||
"author": "Braeden90000",
|
||||
"title": "ComfyUI Load Image URL",
|
||||
"id": "load-image-url",
|
||||
"reference": "https://github.com/Braeden90000/comfyui-load-image-url",
|
||||
"files": [
|
||||
"https://github.com/Braeden90000/comfyui-load-image-url"
|
||||
],
|
||||
"pip": ["requests"],
|
||||
"install_type": "git-clone",
|
||||
"description": "Load images from files or URLs with live preview and source switching."
|
||||
},
|
||||
{
|
||||
"author": "purzbeats",
|
||||
"title": "ComfyUI-Purz",
|
||||
"reference": "https://github.com/purzbeats/ComfyUI-Purz",
|
||||
"files": [
|
||||
"https://github.com/purzbeats/ComfyUI-Purz"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A comprehensive node pack for ComfyUI that provides powerful image effects, pattern generation, and animated pattern creation capabilities."
|
||||
},
|
||||
{
|
||||
"author": "TheArtOfficial",
|
||||
"title": "ComfyUI-MaskMorph",
|
||||
"reference": "https://github.com/TheArtOfficial/ComfyUI-MaskMorph",
|
||||
"files": [
|
||||
"https://github.com/TheArtOfficial/ComfyUI-MaskMorph"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Directional mask expansion node that extends masks along specified directions with pixel-precise control, plus separate pinch/widen morphology operations."
|
||||
},
|
||||
{
|
||||
"author": "brahianrosswill",
|
||||
"title": "ComfyUi-RandomNoiseCustom",
|
||||
"reference": "https://github.com/brahianrosswill/ComfyUi-RandomNoiseCustom",
|
||||
"files": [
|
||||
"https://github.com/brahianrosswill/ComfyUi-RandomNoiseCustom"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Provides custom noise generation capabilities for ComfyUI workflows with configurable parameters. (Description by CC)"
|
||||
},
|
||||
{
|
||||
"author": "amtarr",
|
||||
"title": "ComfyUI-TextureAlchemy",
|
||||
"reference": "https://github.com/amtarr/ComfyUI-TextureAlchemy",
|
||||
"files": [
|
||||
"https://github.com/amtarr/ComfyUI-TextureAlchemy"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Complete workflow suite for ComfyUI that transforms images into PBR material sets ready for game engines and 3D software."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
172
scanner.py
172
scanner.py
@ -20,7 +20,7 @@ from pathlib import Path
|
||||
from typing import Set, Dict, Optional
|
||||
|
||||
# Scanner version for cache invalidation
|
||||
SCANNER_VERSION = "2.0.11" # Multi-layer detection: class existence + display names
|
||||
SCANNER_VERSION = "2.0.12" # Add dict comprehension + export list detection
|
||||
|
||||
# Cache for extract_nodes and extract_nodes_enhanced results
|
||||
_extract_nodes_cache: Dict[str, Set[str]] = {}
|
||||
@ -552,12 +552,22 @@ def extract_nodes_enhanced(
|
||||
if exists:
|
||||
phase5_nodes.add(node_name)
|
||||
|
||||
# Union all results (FIX: Scanner 2.0.9 bug + Scanner 2.0.10 bug)
|
||||
# Phase 6: Dict comprehension pattern (NEW in 2.0.12)
|
||||
# Detects: NODE_CLASS_MAPPINGS = {cls.__name__: cls for cls in to_export}
|
||||
# Example: TobiasGlaubach/ComfyUI-TG_PyCode
|
||||
phase6_nodes = _fallback_dict_comprehension(code_text, file_path)
|
||||
|
||||
# Phase 7: Import-based class names for dict comprehension (NEW in 2.0.12)
|
||||
# Detects imported classes that are added to export lists
|
||||
phase7_nodes = _fallback_import_class_names(code_text, file_path)
|
||||
|
||||
# Union all results (FIX: Scanner 2.0.9 bug + Scanner 2.0.10 bug + Scanner 2.0.12 dict comp)
|
||||
# 2.0.9: Used early return which missed Phase 3 nodes
|
||||
# 2.0.10: Only checked registrations, missed classes referenced in display names
|
||||
all_nodes = phase1_nodes | phase2_nodes | phase3_nodes | phase4_nodes | phase5_nodes
|
||||
# 2.0.12: Added dict comprehension and import-based class detection
|
||||
all_nodes = phase1_nodes | phase2_nodes | phase3_nodes | phase4_nodes | phase5_nodes | phase6_nodes | phase7_nodes
|
||||
|
||||
# Phase 6: Empty dict detector (logging only, doesn't add nodes)
|
||||
# Phase 8: Empty dict detector (logging only, doesn't add nodes)
|
||||
if not all_nodes:
|
||||
_fallback_empty_dict_detector(code_text, file_path, verbose)
|
||||
|
||||
@ -616,7 +626,7 @@ def _fallback_classname_resolver(code_text: str, file_path: Optional[Path]) -> S
|
||||
def _fallback_item_assignment(code_text: str) -> Set[str]:
|
||||
"""
|
||||
Detect item assignment pattern.
|
||||
|
||||
|
||||
Pattern:
|
||||
NODE_CLASS_MAPPINGS = {}
|
||||
NODE_CLASS_MAPPINGS["MyNode"] = MyNode
|
||||
@ -627,9 +637,9 @@ def _fallback_item_assignment(code_text: str) -> Set[str]:
|
||||
parsed = ast.parse(code_text)
|
||||
except:
|
||||
return set()
|
||||
|
||||
|
||||
nodes = set()
|
||||
|
||||
|
||||
for node in ast.walk(parsed):
|
||||
if isinstance(node, ast.Assign):
|
||||
for target in node.targets:
|
||||
@ -640,10 +650,156 @@ def _fallback_item_assignment(code_text: str) -> Set[str]:
|
||||
if isinstance(target.slice, ast.Constant):
|
||||
if isinstance(target.slice.value, str):
|
||||
nodes.add(target.slice.value)
|
||||
|
||||
|
||||
return nodes
|
||||
|
||||
|
||||
def _fallback_dict_comprehension(code_text: str, file_path: Optional[Path] = None) -> Set[str]:
|
||||
"""
|
||||
Detect dict comprehension pattern with __name__ attribute access.
|
||||
|
||||
Pattern:
|
||||
NODE_CLASS_MAPPINGS = {cls.__name__: cls for cls in to_export}
|
||||
NODE_CLASS_MAPPINGS = {c.__name__: c for c in [ClassA, ClassB]}
|
||||
|
||||
This function detects dict comprehension assignments to NODE_CLASS_MAPPINGS
|
||||
and extracts class names from the iterable (list literal or variable reference).
|
||||
|
||||
Returns:
|
||||
Set of class names extracted from the dict comprehension
|
||||
"""
|
||||
try:
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings('ignore', category=SyntaxWarning)
|
||||
parsed = ast.parse(code_text)
|
||||
except:
|
||||
return set()
|
||||
|
||||
nodes = set()
|
||||
export_lists = {} # Track list variables and their contents
|
||||
|
||||
# First pass: collect list assignments (to_export = [...], exports = [...])
|
||||
for node in ast.walk(parsed):
|
||||
if isinstance(node, ast.Assign):
|
||||
for target in node.targets:
|
||||
if isinstance(target, ast.Name):
|
||||
var_name = target.id
|
||||
# Check for list literal
|
||||
if isinstance(node.value, ast.List):
|
||||
class_names = set()
|
||||
for elt in node.value.elts:
|
||||
if isinstance(elt, ast.Name):
|
||||
class_names.add(elt.id)
|
||||
export_lists[var_name] = class_names
|
||||
|
||||
# Handle augmented assignment: to_export += [...]
|
||||
elif isinstance(node, ast.AugAssign):
|
||||
if isinstance(node.target, ast.Name) and isinstance(node.op, ast.Add):
|
||||
var_name = node.target.id
|
||||
if isinstance(node.value, ast.List):
|
||||
class_names = set()
|
||||
for elt in node.value.elts:
|
||||
if isinstance(elt, ast.Name):
|
||||
class_names.add(elt.id)
|
||||
if var_name in export_lists:
|
||||
export_lists[var_name].update(class_names)
|
||||
else:
|
||||
export_lists[var_name] = class_names
|
||||
|
||||
# Second pass: find NODE_CLASS_MAPPINGS dict comprehension
|
||||
for node in ast.walk(parsed):
|
||||
if isinstance(node, ast.Assign):
|
||||
for target in node.targets:
|
||||
if isinstance(target, ast.Name) and target.id in ['NODE_CLASS_MAPPINGS', 'NODE_CONFIG']:
|
||||
# Check for dict comprehension
|
||||
if isinstance(node.value, ast.DictComp):
|
||||
dictcomp = node.value
|
||||
|
||||
# Check if key is cls.__name__ pattern
|
||||
key = dictcomp.key
|
||||
if isinstance(key, ast.Attribute) and key.attr == '__name__':
|
||||
# Get the iterable from the first generator
|
||||
for generator in dictcomp.generators:
|
||||
iter_node = generator.iter
|
||||
|
||||
# Case 1: Inline list [ClassA, ClassB, ...]
|
||||
if isinstance(iter_node, ast.List):
|
||||
for elt in iter_node.elts:
|
||||
if isinstance(elt, ast.Name):
|
||||
nodes.add(elt.id)
|
||||
|
||||
# Case 2: Variable reference (to_export, exports, etc.)
|
||||
elif isinstance(iter_node, ast.Name):
|
||||
var_name = iter_node.id
|
||||
if var_name in export_lists:
|
||||
nodes.update(export_lists[var_name])
|
||||
|
||||
return nodes
|
||||
|
||||
|
||||
def _fallback_import_class_names(code_text: str, file_path: Optional[Path] = None) -> Set[str]:
|
||||
"""
|
||||
Extract class names from imports that are added to export lists.
|
||||
|
||||
Pattern:
|
||||
from .module import ClassA, ClassB
|
||||
to_export = [ClassA, ClassB]
|
||||
NODE_CLASS_MAPPINGS = {cls.__name__: cls for cls in to_export}
|
||||
|
||||
This is a complementary fallback that works with _fallback_dict_comprehension
|
||||
to resolve import-based node registrations.
|
||||
|
||||
Returns:
|
||||
Set of imported class names that appear in export-like contexts
|
||||
"""
|
||||
try:
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings('ignore', category=SyntaxWarning)
|
||||
parsed = ast.parse(code_text)
|
||||
except:
|
||||
return set()
|
||||
|
||||
# Collect imported names
|
||||
imported_names = set()
|
||||
for node in ast.walk(parsed):
|
||||
if isinstance(node, ast.ImportFrom):
|
||||
for alias in node.names:
|
||||
name = alias.asname if alias.asname else alias.name
|
||||
imported_names.add(name)
|
||||
|
||||
# Check if these names appear in list assignments that feed into NODE_CLASS_MAPPINGS
|
||||
export_candidates = set()
|
||||
has_dict_comp_mapping = False
|
||||
|
||||
for node in ast.walk(parsed):
|
||||
# Check for dict comprehension NODE_CLASS_MAPPINGS
|
||||
if isinstance(node, ast.Assign):
|
||||
for target in node.targets:
|
||||
if isinstance(target, ast.Name) and target.id == 'NODE_CLASS_MAPPINGS':
|
||||
if isinstance(node.value, ast.DictComp):
|
||||
has_dict_comp_mapping = True
|
||||
|
||||
# Collect list contents
|
||||
if isinstance(node, ast.Assign):
|
||||
if isinstance(node.value, ast.List):
|
||||
for elt in node.value.elts:
|
||||
if isinstance(elt, ast.Name) and elt.id in imported_names:
|
||||
export_candidates.add(elt.id)
|
||||
|
||||
# Handle augmented assignment
|
||||
elif isinstance(node, ast.AugAssign):
|
||||
if isinstance(node.value, ast.List):
|
||||
for elt in node.value.elts:
|
||||
if isinstance(elt, ast.Name) and elt.id in imported_names:
|
||||
export_candidates.add(elt.id)
|
||||
|
||||
# Only return if there's a dict comprehension mapping
|
||||
if has_dict_comp_mapping:
|
||||
return export_candidates
|
||||
|
||||
return set()
|
||||
|
||||
|
||||
def _extract_repo_name(file_path: Path) -> str:
|
||||
"""
|
||||
Extract repository name from file path.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user