Compare commits

..

9 Commits
3.5 ... 3.6.4

20 changed files with 3810 additions and 2922 deletions

View File

@@ -5474,7 +5474,7 @@
"https://github.com/Limitex/ComfyUI-Diffusers"
],
"install_type": "git-clone",
"description": "This extension enables the use of the diffuser pipeline in ComfyUI."
"description": "This extension enables the use of the diffuser pipeline in ComfyUI. It also includes nodes related to Stream Diffusion."
},
{
"author": "aiXander",
@@ -7428,6 +7428,16 @@
"install_type": "git-clone",
"description": "This node provides lip-sync capabilities in ComfyUI using ByteDance's LatentSync model. It allows you to synchronize video lips with audio input."
},
{
"author": "ShmuelRonen",
"title": "ComfyUI-HunyuanVideoSamplerSave",
"reference": "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave",
"files": [
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node implementation for optimized video generation and motion effects, designed to work with Hunyuan text-to-video models."
},
{
"author": "redhottensors",
"title": "ComfyUI-Prediction",
@@ -11374,6 +11384,26 @@
"install_type": "git-clone",
"description": "Image Manipulation and Prompt Generation Nodes"
},
{
"author": "GraftingRayman",
"title": "ComfyUI QueueTube",
"reference": "https://github.com/GraftingRayman/ComfyUI_QueueTube",
"files": [
"https://github.com/GraftingRayman/ComfyUI_QueueTube"
],
"install_type": "git-clone",
"description": "These nodes allow your YouTube LiveStream viewers to create on your local ComfyUI, you can make this a members only feature with a screen behind you displaying your members creations"
},
{
"author": "GraftingRayman",
"title": "ComfyUI-PuLID-Flux-GR",
"reference": "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR",
"files": [
"https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR"
],
"install_type": "git-clone",
"description": "This is a PuLID node that has been extended with new features."
},
{
"author": "royceschultz",
"title": "ComfyUI-Notifications",
@@ -12668,17 +12698,6 @@
"install_type": "git-clone",
"description": "Nodes:Image Dimension Resizer, Image Sizer, Random Ratio, Show Text, Random Title Character, Random Wildcard Tag Picker, Random Show Atm Loc Outfit, Contains Word, Elements Concatenator, ..."
},
{
"author": "leiweiqiang",
"title": "ComfyUI-TRA",
"id": "tra",
"reference": "https://github.com/leiweiqiang/ComfyUI-TRA",
"files": [
"https://github.com/leiweiqiang/ComfyUI-TRA"
],
"install_type": "git-clone",
"description": "Nodes:TCL EbSynth, TCL Extract Frames (From File), TCL Extract Frames (From Video), TCL Combine Frames, TCL Save Video (From Frames)"
},
{
"author": "hwhaocool",
"title": "ComfyUI-Select-Any",
@@ -15542,17 +15561,6 @@
"install_type": "git-clone",
"description": "This repository contains a custom node for ComfyUI that pads an image to be square, filling the new pixels black."
},
{
"author": "amorano",
"title": "Cozy Link Toggle",
"id": "cozyLinkToggle",
"reference": "https://github.com/cozy-comfyui/cozy_link_toggle",
"files": [
"https://github.com/cozy-comfyui/cozy_link_toggle"
],
"install_type": "git-clone",
"description": "Toggle ComfyUI Graph Links On/Off from the Menu Bar. Provides an easy example on how to register and use the ComfyUI menubar extensions."
},
{
"author": "revirevy",
"title": "Comfyui_saveimage_imgbb",
@@ -17258,6 +17266,16 @@
"install_type": "git-clone",
"description": "Another comfy implementation for the short video generation project hpcaitech/Open-Sora, supporting latest V2 and V3 models as well as image to video functions, etc."
},
{
"author": "bombax-xiaoice",
"title": "ComfyUI-OpenSoraPlan",
"reference": "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan",
"files": [
"https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan"
],
"install_type": "git-clone",
"description": "Another comfy implementation for the short video generation project PKU-YuanGroup/Open-Sora-Plan, supporting latest 1.3.0 and 1.2.0 and image to video feature, etc."
},
{
"author": "chenbaiyujason",
"title": "ComfyUI-SCStepFun",
@@ -17482,6 +17500,16 @@
"install_type": "git-clone",
"description": "StyleModelApply adds more controls"
},
{
"author": "yichengup",
"title": "Comfyui_Redux_Advanced",
"reference": "https://github.com/yichengup/Comfyui_Redux_Advanced",
"files": [
"https://github.com/yichengup/Comfyui_Redux_Advanced"
],
"install_type": "git-clone",
"description": "Redux style adds more controls"
},
{
"author": "Horizon Team",
"title": "ComfyUI_FluxMod",
@@ -18876,7 +18904,7 @@
"https://github.com/cenzijing/ComfyUI-Markmap"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for creating mindmaps from markdown"
"description": "A ComfyUI custom node for creating mindmaps from markdown"
},
{
"author": "bongsang",
@@ -19009,6 +19037,16 @@
"install_type": "git-clone",
"description": "A custom LoRA-loading node designed to prevent issues such as blurriness and other artifacts when loading multiple LoRAs in HunYuan Video.\nUsage Instructions: The connection method remains unchanged from the original. The only difference is the additional blocks_type option. Please select double_blocks."
},
{
"author": "facok",
"title": "ComfyUI-TeaCacheHunyuanVideo",
"reference": "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo",
"files": [
"https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo"
],
"install_type": "git-clone",
"description": "This is a TeaCache acceleration node for HunYuan Video, supporting the native node workflow for seamless upgrades. Simply choose the acceleration multiplier you want—currently, three levels are available."
},
{
"author": "FinetunersAI",
"title": "ComfyUI_Finetuners_Suite",
@@ -19092,6 +19130,102 @@
"install_type": "git-clone",
"description": "ComfyUI Custom Nodes for 'TangoFlux: Super Fast and Faithful Text to Audio Generation with Flow Matching'. This generates high-quality 44.1kHz audio up to 30 seconds using just a text prompt."
},
{
"author": "ainewsto",
"title": "comfyui-labs-google",
"reference": "https://github.com/ainewsto/comfyui-labs-google",
"files": [
"https://github.com/ainewsto/comfyui-labs-google"
],
"install_type": "git-clone",
"description": "NODES: ComfyUI-ImageFx, ComfyUI-Whisk"
},
{
"author": "gremlation",
"title": "ComfyUI-ViewData",
"reference": "https://github.com/gremlation/ComfyUI-ViewData",
"files": [
"https://github.com/gremlation/ComfyUI-ViewData"
],
"install_type": "git-clone",
"description": "A ComfyUI node that displays the type and contents of whatever is connected to the input. In the case of a Tensor object, it shows the shape instead of its value."
},
{
"author": "gremlation",
"title": "ComfyUI-JMESPath",
"reference": "https://github.com/gremlation/ComfyUI-JMESPath",
"files": [
"https://github.com/gremlation/ComfyUI-JMESPath"
],
"install_type": "git-clone",
"description": "A ComfyUI node that runs a [a/JMESPath](https://jmespath.org/) query against input JSON and outputs the result."
},
{
"author": "gremlation",
"title": "ComfyUI-jq",
"reference": "https://github.com/gremlation/ComfyUI-jq",
"files": [
"https://github.com/gremlation/ComfyUI-jq"
],
"install_type": "git-clone",
"description": "A ComfyUI node that runs a [a/jq](https://jqlang.github.io/jq/) query against input JSON and outputs the result."
},
{
"author": "gremlation",
"title": "ComfyUI-ImageLabel",
"reference": "https://github.com/gremlation/ComfyUI-ImageLabel",
"files": [
"https://github.com/gremlation/ComfyUI-ImageLabel"
],
"install_type": "git-clone",
"description": "A ComfyUI node that extends an image vertically to add a label either above or below it."
},
{
"author": "gremlation",
"title": "ComfyUI-TrackAndWheel",
"reference": "https://github.com/gremlation/ComfyUI-TrackAndWheel",
"files": [
"https://github.com/gremlation/ComfyUI-TrackAndWheel"
],
"install_type": "git-clone",
"description": "A ComfyUI extension that improves panning and zooming on trackpads and with the mouse wheel."
},
{
"author": "nmlen",
"title": "comfyui-mosaic-blur",
"reference": "https://github.com/nmlen/comfyui-mosaic-blur",
"files": [
"https://github.com/nmlen/comfyui-mosaic-blur"
],
"install_type": "git-clone",
"description": "A simple mosaic blur node for ComfyUI that uses CV2 or Pillow"
},
{
"author": "jerrylongyan",
"title": "ComfyUI-My-Mask",
"reference": "https://github.com/jerrylongyan/ComfyUI-My-Mask",
"files": [
"https://github.com/jerrylongyan/ComfyUI-My-Mask"
],
"install_type": "git-clone",
"description": "Some nodes for processing masks, currently including nodes that fill in the concave parts of existing masks with convex hulls."
},
{
"author": "mira-6",
"title": "comfyui-sasolver",
"reference": "https://github.com/mira-6/comfyui-sasolver",
"files": [
"https://github.com/mira-6/comfyui-sasolver"
],
"install_type": "git-clone",
"description": "SASolver for Comfyui. Adapted from [a/comfyanonymous/ComfyUI#4454](https://github.com/comfyanonymous/ComfyUI/pull/4454) and [a/https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler](https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler)"
},

View File

@@ -402,6 +402,8 @@
"https://github.com/807502278/ComfyUI-WJNodes": [
[
"AdvCrop",
"ApplyEasyOCR_batch",
"BilateralFilter",
"ColorSegmentation",
"ColorSegmentation_v2",
"ComfyUIPath",
@@ -429,8 +431,10 @@
"VideoFade",
"WAS_Mask_Fill_Region_batch",
"any_data",
"array_element_count",
"array_count",
"bbox_restore_mask",
"get_image_data",
"load_EasyOCR_model",
"load_model_value",
"show_type",
"sort_images_batch"
@@ -1455,7 +1459,7 @@
"WAVE GEN (JOV) \ud83c\udf0a"
],
{
"author": "amorano",
"author": "Alexander G. Morano",
"description": "Integrates Webcam, MIDI, Spout and GLSL shader support. Animation",
"nodename_pattern": " \\(JOV\\)$",
"title": "Jovimetrix",
@@ -2086,8 +2090,11 @@
[
"BriaEraser",
"BriaGenFill",
"BriaTailoredGen",
"ShotByImageNode",
"ShotByTextNode"
"ShotByTextNode",
"TailoredModelInfoNode",
"Text2ImageBaseNode"
],
{
"title_aux": "BRIA AI API nodes"
@@ -2348,6 +2355,7 @@
"Sigmas2 Add",
"Sigmas2 Mult",
"SigmasPreview",
"SigmasSchedulePreview",
"StableCascade_StageB_Conditioning64",
"StableCascade_StageC_VAEEncode_Exact",
"StyleModelApplyAdvanced",
@@ -3788,6 +3796,14 @@
"title_aux": "GraftingRayman"
}
],
"https://github.com/GraftingRayman/ComfyUI_QueueTube": [
[
"GR QueueTube"
],
{
"title_aux": "ComfyUI QueueTube"
}
],
"https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
[
"AuraSR.AuraSRUpscaler"
@@ -5046,7 +5062,11 @@
"Image Generator",
"Image2Video",
"KLingAI Preview Video",
"Lip Sync",
"Lip Sync Audio Input",
"Lip Sync Text Input",
"Text2Video",
"Video Extend",
"Virtual Try On"
],
{
@@ -5072,7 +5092,9 @@
],
"https://github.com/LAOGOU-666/Comfyui-LG_Relight": [
[
"LG_Relight"
"LG_Relight",
"LG_Relight_Basic",
"LG_Relight_V2"
],
{
"title_aux": "Comfyui-LG_Relight"
@@ -5354,6 +5376,16 @@
"title_aux": "ComfyUI-Golden-Noise"
}
],
"https://github.com/LucipherDev/ComfyUI-TangoFlux": [
[
"TangoFluxLoader",
"TangoFluxSampler",
"TangoFluxVAEDecodeAndPlay"
],
{
"title_aux": "ComfyUI-TangoFlux"
}
],
"https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
[
"ScenarioPrompt"
@@ -5770,6 +5802,7 @@
"CycleInteger",
"DirSelector",
"DoubleClipTextEncode",
"DoubleConditioningMixer",
"EmbeddingLoader",
"FilmCharDir",
"FlexEmptyLatent",
@@ -5806,6 +5839,7 @@
"PresetRemove",
"PresetSave",
"PromptSwitcher",
"QuadClipTextEncode",
"RandomString",
"SDXLEmptyLatent",
"SavePrompt",
@@ -7446,6 +7480,17 @@
"title_aux": "ComfyUI-Gemini_Flash_2.0_Exp"
}
],
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave": [
[
"EmptyVideoLatentForHunyuan",
"HunyuanVideoSamplerSave",
"ImageMotionInfluance",
"ResizeImageForHunyuan"
],
{
"title_aux": "ComfyUI-HunyuanVideoSamplerSave"
}
],
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": [
[
"HunyuanVideoStyler"
@@ -8446,6 +8491,7 @@
"tri3d_H_Stack_Images",
"tri3d_SaveImage_absolute",
"tri3d_SaveText_absolute",
"tri3d_SmartBox",
"tri3d_Wait_And_Read_File",
"tri3d_extract_facer_mask",
"tri3d_fill_mask",
@@ -8507,7 +8553,8 @@
"TTP_condsetarea_merge_test",
"TTP_condtobatch",
"TTP_text_mix",
"TTPlanet_Tile_Preprocessor_Simple"
"TTPlanet_Tile_Preprocessor_Simple",
"TeaCacheHunyuanVideoSampler"
],
{
"title_aux": "Comfyui_TTP_Toolset"
@@ -10088,6 +10135,15 @@
"title_aux": "ComfyUI-HigherBitDepthSaveImage"
}
],
"https://github.com/ainewsto/comfyui-labs-google": [
[
"ComfyUI-ImageFx",
"ComfyUI-Whisk"
],
{
"title_aux": "comfyui-labs-google"
}
],
"https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": [
[
"ASVL"
@@ -11297,6 +11353,24 @@
"title_aux": "ComfyUI-Open-Sora-I2V"
}
],
"https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan": [
[
"OpenSoraPlan0LoaderT2V",
"OpenSoraPlan1LoaderT2V",
"OpenSoraPlan2LoaderI2V",
"OpenSoraPlan2LoaderT2V",
"OpenSoraPlan2SamplerI2V",
"OpenSoraPlan3LoaderI2V",
"OpenSoraPlan3LoaderT2V",
"OpenSoraPlan3SamplerI2V",
"OpenSoraPlanDecoder",
"OpenSoraPlanPromptRefiner",
"OpenSoraPlanSamplerT2V"
],
{
"title_aux": "ComfyUI-OpenSoraPlan"
}
],
"https://github.com/bombless/comfyUI-RememberingUtils": [
[
"RememberLastSeed",
@@ -11476,6 +11550,27 @@
"title_aux": "ComfyUI Signal Processing"
}
],
"https://github.com/calcuis/gguf": [
[
"ClipLoaderGGUF",
"DualClipLoaderGGUF",
"GGUFSave",
"LoaderGGUF",
"LoaderGGUFAdvanced",
"TripleClipLoaderGGUF"
],
{
"preemptions": [
"LoaderGGUF",
"ClipLoaderGGUF",
"DualClipLoaderGGUF",
"TripleClipLoaderGGUF",
"LoaderGGUFAdvanced",
"GGUFSave"
],
"title_aux": "gguf"
}
],
"https://github.com/caleboleary/ComfyUI-Arc2Face": [
[
"Arc2FaceEncoderLoader",
@@ -14188,6 +14283,7 @@
"DRMBT_LoadMedia",
"DRMBT_MultiMinMax",
"DRMBT_String_Item_Menu",
"DictToOutputs",
"DownloadAndLoadMiniCPMV",
"DreambaitFolderOpener",
"DynamicDictionary",
@@ -14202,6 +14298,7 @@
"NumberPlusPlus",
"NumberRemap",
"Qwen2AudioInstruct",
"StringToDict",
"SwitchDuo",
"TextLineSelect",
"TextLinesToList",
@@ -14581,6 +14678,14 @@
"title_aux": "ComfyUI-HunyuanVideoMultiLora"
}
],
"https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": [
[
"TeaCacheHunyuanVideoSampler_FOK"
],
{
"title_aux": "ComfyUI-TeaCacheHunyuanVideo"
}
],
"https://github.com/fairy-root/ComfyUI-GLHF": [
[
"glhf_chat"
@@ -15294,16 +15399,19 @@
"AI Chooser",
"Add Parameters",
"AdvPromptEnhancer",
"Custom API Key",
"DalleImage",
"Enhancer",
"Image Mixer",
"ImgTextSwitch",
"Load Remote Models",
"ParseJSON",
"Plush-Exif Wrangler",
"Random Image Output",
"Random Mixer",
"Random Output",
"Tagger",
"Text (Any)",
"Type Converter",
"mulTextSwitch"
],
@@ -15495,6 +15603,38 @@
"title_aux": "GFrbmg2"
}
],
"https://github.com/gremlation/ComfyUI-ImageLabel": [
[
"gremlation:ComfyUI-ImageLabel:ImageLabel"
],
{
"title_aux": "ComfyUI-ImageLabel"
}
],
"https://github.com/gremlation/ComfyUI-JMESPath": [
[
"gremlation:ComfyUI-JMESPath"
],
{
"title_aux": "ComfyUI-JMESPath"
}
],
"https://github.com/gremlation/ComfyUI-ViewData": [
[
"gremlation:ComfyUI-ViewData:ViewData"
],
{
"title_aux": "ComfyUI-ViewData"
}
],
"https://github.com/gremlation/ComfyUI-jq": [
[
"gremlation:ComfyUI-jq"
],
{
"title_aux": "ComfyUI-jq"
}
],
"https://github.com/griptape-ai/ComfyUI-Griptape": [
[
"Griptape Agent Config: Amazon Bedrock Drivers",
@@ -15840,7 +15980,7 @@
"FolderCleaner",
"GGUFLoader",
"GeocodeTool",
"Image2Video",
"Image2Video_party",
"Images2Image",
"KG_csv_toolkit_developer",
"KG_csv_toolkit_user",
@@ -17061,6 +17201,33 @@
"title_aux": "Various ComfyUI Nodes by Type"
}
],
"https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [
[
"ClickPopup",
"ColorPicker",
"DynamicImageCombiner",
"DynamicMaskCombiner",
"ImageLatentCreator",
"ImageResolutionAdjuster",
"ImageSizeCreator",
"ImageSwitch",
"ImageToBase64",
"LatentSwitch",
"MaskPreview",
"MaskSwitch",
"MultilineTextInput",
"RemoveEmptyLinesAndLeadingSpaces",
"RemoveEmptyLinesAndLeadingSpacesAdvance",
"ShowTextPlus",
"SimpleTextInput",
"TextCombiner",
"TextSwitch",
"WebImageLoader"
],
{
"title_aux": "Painting Coder Utils"
}
],
"https://github.com/jax-explorer/comfyui-model-dynamic-loader": [
[
"ComfyOnlineSaveFile",
@@ -17114,6 +17281,15 @@
"title_aux": "Faceless Node for ComfyUI"
}
],
"https://github.com/jerrylongyan/ComfyUI-My-Mask": [
[
"MaskToBottonHalfConvexMask",
"MaskToConvexMask"
],
{
"title_aux": "ComfyUI-My-Mask"
}
],
"https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [
[
"StreamDiffusion_Loader",
@@ -18908,26 +19084,6 @@
"title_aux": "ComfyUI-GG"
}
],
"https://github.com/leiweiqiang/ComfyUI-TRA": [
[
"TclEbSynth",
"TclEbSynthBatch",
"TclExr2png",
"TclExtractFramesFromVideo",
"TclExtractFramesFromVideoFile",
"TclFrames2Video",
"TclFresco",
"TclLoraGenDatasets",
"TclLoraSaveImages",
"TclLoraTraining",
"TclSaveVideoFromFrames",
"TclYoloV8Segmentation",
"TclYoloV9Segmentation"
],
{
"title_aux": "ComfyUI-TRA"
}
],
"https://github.com/lenskikh/ComfyUI-Prompt-Worker": [
[
"Prompt Worker"
@@ -20637,6 +20793,15 @@
"title_aux": "ComfyUI-MingNodes"
}
],
"https://github.com/mira-6/comfyui-sasolver": [
[
"SamplerSASolver",
"SamplerSASolverExperimental"
],
{
"title_aux": "comfyui-sasolver"
}
],
"https://github.com/mirabarukaso/ComfyUI_Mira": [
[
"BooleanListInterpreter1",
@@ -21364,6 +21529,14 @@
"title_aux": "ComfyUI-TextOnSegs"
}
],
"https://github.com/nmlen/comfyui-mosaic-blur": [
[
"ImageMosaic"
],
{
"title_aux": "comfyui-mosaic-blur"
}
],
"https://github.com/noarche/sd-webui-color-enhance": [
[
"MMakerColorBlend",
@@ -21895,6 +22068,10 @@
],
"https://github.com/playbook3d/playbook3d-comfyui-nodes": [
[
"Beauty Pass Sequence",
"Depth Pass Sequence",
"Mask Pass Sequence",
"Outline Pass Sequence",
"Playbook Beauty",
"Playbook Beauty Sequence",
"Playbook Boolean",
@@ -22692,6 +22869,7 @@
"DTypeConverter",
"DeltaControl",
"FPSMonitor",
"FastWebcamCapture",
"FloatControl",
"FloatSequence",
"IntControl",
@@ -24015,6 +24193,16 @@
"title_aux": "Latent Mirror node for ComfyUI"
}
],
"https://github.com/ssitu/ComfyUI_UltimateSDUpscale": [
[
"UltimateSDUpscale",
"UltimateSDUpscaleCustomSample",
"UltimateSDUpscaleNoUpscale"
],
{
"title_aux": "UltimateSDUpscale"
}
],
"https://github.com/ssitu/ComfyUI_fabric": [
[
"FABRICPatchModel",
@@ -24150,11 +24338,13 @@
],
"https://github.com/sugarkwork/comfyui_tag_fillter": [
[
"TagComparator",
"TagFilter",
"TagIf",
"TagMerger",
"TagRemover",
"TagReplace",
"TagSelector",
"TagSwitcher"
],
{
@@ -25150,6 +25340,15 @@
"title_aux": "WeiLin-ComfyUI-prompt-all-in-one"
}
],
"https://github.com/welltop-cn/ComfyUI-TeaCache": [
[
"TeaCacheForImgGen",
"TeaCacheForVidGen"
],
{
"title_aux": "ComfyUI-TeaCache"
}
],
"https://github.com/wentao-uw/ComfyUI-template-matching": [
[
"IsMaskEmptyNode (template matching)",
@@ -25258,6 +25457,7 @@
"Prompt_Text",
"Save_Image",
"Text_Match",
"Whitening_Node",
"YOLOWorld_Match",
"YOLO_Crop"
],
@@ -25724,6 +25924,14 @@
"title_aux": "Comfyui_Flux_Style_Adjust (Redux)"
}
],
"https://github.com/yichengup/Comfyui_Redux_Advanced": [
[
"StyleAdvancedApply"
],
{
"title_aux": "Comfyui_Redux_Advanced"
}
],
"https://github.com/yiwangsimple/ComfyUI_DW_Chat": [
[
"DeepSeekChatNode",

View File

@@ -124,18 +124,47 @@ def gitcheck(path, do_fetch=False):
print("CUSTOM NODE CHECK: Error")
def get_remote_name(repo):
available_remotes = [remote.name for remote in repo.remotes]
if 'origin' in available_remotes:
return 'origin'
elif 'upstream' in available_remotes:
return 'upstream'
elif len(available_remotes) > 0:
return available_remotes[0]
if not available_remotes:
print(f"[ComfyUI-Manager] No remotes are configured for this repository: {repo.working_dir}")
else:
print(f"[ComfyUI-Manager] Available remotes in '{repo.working_dir}': ")
for remote in available_remotes:
print(f"- {remote}")
return None
def switch_to_default_branch(repo):
remote_name = get_remote_name(repo)
try:
default_branch = repo.git.symbolic_ref('refs/remotes/origin/HEAD').replace('refs/remotes/origin/', '')
if remote_name is None:
return False
default_branch = repo.git.symbolic_ref(f'refs/remotes/{remote_name}/HEAD').replace(f'refs/remotes/{remote_name}/', '')
repo.git.checkout(default_branch)
return True
except:
try:
repo.git.checkout(repo.heads.master)
except:
try:
repo.git.checkout('-b', 'master', 'origin/master')
if remote_name is not None:
repo.git.checkout('-b', 'master', f'{remote_name}/master')
except:
print("[ComfyUI Manager] Failed to switch to the default branch")
pass
print("[ComfyUI Manager] Failed to switch to the default branch")
return False
def gitpull(path):

View File

File diff suppressed because it is too large Load Diff

View File

@@ -41,7 +41,7 @@ import manager_downloader
from node_package import InstalledNodePackage
version_code = [3, 5]
version_code = [3, 6, 4]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@@ -277,7 +277,7 @@ def is_installed(name):
if match is None:
if name in pips:
return True
elif match.group(2) in ['<=', '==', '<']:
elif match.group(2) in ['<=', '==', '<', '~=']:
if name in pips:
if manager_util.StrictVersion(pips[name]) >= manager_util.StrictVersion(match.group(3)):
print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'")
@@ -723,8 +723,12 @@ class UnifiedManager:
return res
async def get_custom_nodes(self, channel, mode):
default_channel = normalize_channel('default')
cache = self.custom_node_map_cache.get((default_channel, mode)) # CNR/nightly should always be based on the default channel.
# default_channel = normalize_channel('default')
# cache = self.custom_node_map_cache.get((default_channel, mode)) # CNR/nightly should always be based on the default channel.
channel = normalize_channel(channel)
cache = self.custom_node_map_cache.get((channel, mode)) # CNR/nightly should always be based on the default channel.
if cache is not None:
return cache
@@ -1227,16 +1231,21 @@ class UnifiedManager:
repo = git.Repo(repo_path)
if repo.head.is_detached:
switch_to_default_branch(repo)
if not switch_to_default_branch(repo):
return result.fail(f"Failed to switch to default branch: {repo_path}")
current_branch = repo.active_branch
branch_name = current_branch.name
if current_branch.tracking_branch() is None:
print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})")
remote_name = 'origin'
remote_name = get_remote_name(repo)
else:
remote_name = current_branch.tracking_branch().remote_name
if remote_name is None:
return result.fail(f"Failed to get remote when installing: {repo_path}")
remote = repo.remote(name=remote_name)
try:
@@ -1316,7 +1325,10 @@ class UnifiedManager:
custom_nodes = await self.get_custom_nodes(channel, mode)
the_node = custom_nodes.get(node_id)
if the_node is not None:
repo_url = the_node['files'][0]
if version_spec == 'unknown':
repo_url = the_node['files'][0]
else: # nightly
repo_url = the_node['reference']
else:
result = ManagedResult('install')
return result.fail(f"Node '{node_id}@{version_spec}' not found in [{channel}, {mode}]")
@@ -1341,6 +1353,8 @@ class UnifiedManager:
elif version_spec == 'nightly':
cnr_utils.generate_cnr_id(to_path, node_id)
self.active_nodes[node_id] = 'nightly', to_path
else:
return res
return res.with_target(version_spec)
@@ -1586,18 +1600,47 @@ def get_config():
return cached_config
def get_remote_name(repo):
available_remotes = [remote.name for remote in repo.remotes]
if 'origin' in available_remotes:
return 'origin'
elif 'upstream' in available_remotes:
return 'upstream'
elif len(available_remotes) > 0:
return available_remotes[0]
if not available_remotes:
print(f"[ComfyUI-Manager] No remotes are configured for this repository: {repo.working_dir}")
else:
print(f"[ComfyUI-Manager] Available remotes in '{repo.working_dir}': ")
for remote in available_remotes:
print(f"- {remote}")
return None
def switch_to_default_branch(repo):
remote_name = get_remote_name(repo)
try:
default_branch = repo.git.symbolic_ref('refs/remotes/origin/HEAD').replace('refs/remotes/origin/', '')
if remote_name is None:
return False
default_branch = repo.git.symbolic_ref(f'refs/remotes/{remote_name}/HEAD').replace(f'refs/remotes/{remote_name}/', '')
repo.git.checkout(default_branch)
return True
except:
try:
repo.git.checkout(repo.heads.master)
except:
try:
repo.git.checkout('-b', 'master', 'origin/master')
if remote_name is not None:
repo.git.checkout('-b', 'master', f'{remote_name}/master')
except:
print("[ComfyUI Manager] Failed to switch to the default branch")
pass
print("[ComfyUI Manager] Failed to switch to the default branch")
return False
def try_install_script(url, repo_path, install_cmd, instant_execution=False):
@@ -1778,7 +1821,11 @@ def git_repo_update_check_with(path, do_fetch=False, do_update=False, no_deps=Fa
# Fetch the latest commits from the remote repository
repo = git.Repo(path)
remote_name = 'origin'
remote_name = get_remote_name(repo)
if remote_name is None:
raise ValueError(f"No remotes are configured for this repository: {path}")
remote = repo.remote(name=remote_name)
if not do_update and repo.head.is_detached:
@@ -1788,7 +1835,8 @@ def git_repo_update_check_with(path, do_fetch=False, do_update=False, no_deps=Fa
return True, True # detached branch is treated as updatable
if repo.head.is_detached:
switch_to_default_branch(repo)
if not switch_to_default_branch(repo):
raise ValueError(f"Failed to switch detached branch to default branch: {path}")
current_branch = repo.active_branch
branch_name = current_branch.name
@@ -1805,7 +1853,9 @@ def git_repo_update_check_with(path, do_fetch=False, do_update=False, no_deps=Fa
repo.git.stash()
if f'{remote_name}/{branch_name}' not in repo.refs:
switch_to_default_branch(repo)
if not switch_to_default_branch(repo):
raise ValueError(f"Failed to switch to default branch while updating: {path}")
current_branch = repo.active_branch
branch_name = current_branch.name
@@ -1964,7 +2014,8 @@ def git_pull(path):
repo.git.stash()
if repo.head.is_detached:
switch_to_default_branch(repo)
if not switch_to_default_branch(repo):
raise ValueError(f"Failed to switch to default branch while pulling: {path}")
current_branch = repo.active_branch
remote_name = current_branch.tracking_branch().remote_name
@@ -2228,14 +2279,15 @@ def update_path(repo_path, instant_execution=False, no_deps=False):
repo = git.Repo(repo_path)
if repo.head.is_detached:
switch_to_default_branch(repo)
if not switch_to_default_branch(repo):
return "fail"
current_branch = repo.active_branch
branch_name = current_branch.name
if current_branch.tracking_branch() is None:
print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})")
remote_name = 'origin'
remote_name = get_remote_name(repo)
else:
remote_name = current_branch.tracking_branch().remote_name
remote = repo.remote(name=remote_name)
@@ -2254,6 +2306,7 @@ def update_path(repo_path, instant_execution=False, no_deps=False):
f"-----------------------------------------------------------------------------------------\n"
f'git config --global --add safe.directory "{safedir_path}"\n'
f"-----------------------------------------------------------------------------------------\n")
return "fail"
commit_hash = repo.head.commit.hexsha
remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha
@@ -2323,11 +2376,14 @@ def check_state_of_git_node_pack_single(item, do_fetch=False, do_update_check=Tr
if dir_path and os.path.exists(dir_path):
if do_update_check:
update_state, success = git_repo_update_check_with(dir_path, do_fetch, do_update)
if (do_update_check or do_update) and update_state:
item['update-state'] = 'true'
elif do_update and not success:
item['update-state'] = 'fail'
try:
update_state, success = git_repo_update_check_with(dir_path, do_fetch, do_update)
if (do_update_check or do_update) and update_state:
item['update-state'] = 'true'
elif do_update and not success:
item['update-state'] = 'fail'
except Exception:
print(f"[ComfyUI-Manager] Failed to check state of the git node pack: {dir_path}")
def get_installed_pip_packages():

View File

@@ -858,6 +858,8 @@ async def install_custom_node(request):
cnr_id = json_data.get('id')
skip_post_install = json_data.get('skip_post_install')
git_url = None
if json_data['version'] != 'unknown':
selected_version = json_data.get('selected_version', 'latest')
if selected_version != 'nightly':
@@ -865,14 +867,22 @@ async def install_custom_node(request):
node_spec_str = f"{cnr_id}@{selected_version}"
else:
node_spec_str = f"{cnr_id}@nightly"
git_url = [json_data.get('reference')]
if git_url is None:
logging.error(f"[ComfyUI-Manager] Following node pack doesn't provide `nightly` version: ${git_url}")
return web.Response(status=404, text=f"Following node pack doesn't provide `nightly` version: ${git_url}")
else:
# unknown
unknown_name = os.path.basename(json_data['files'][0])
node_spec_str = f"{unknown_name}@unknown"
git_url = json_data.get('files')
# apply security policy if not cnr node (nightly isn't regarded as cnr node)
if risky_level is None:
risky_level = await get_risky_level(json_data['files'], json_data.get('pip', []))
if git_url is not None:
risky_level = await get_risky_level(git_url, json_data.get('pip', []))
else:
return web.Response(status=404, text=f"Following node pack doesn't provide `nightly` version: ${git_url}")
if not is_allowed_security_level(risky_level):
logging.error(SECURITY_MESSAGE_GENERAL)
@@ -888,7 +898,11 @@ async def install_custom_node(request):
# discard post install if skip_post_install mode
if res.action not in ['skip', 'enable', 'install-git', 'install-cnr', 'switch-cnr']:
return web.Response(status=400, text=f"Installation failed: {res}")
logging.error(f"[ComfyUI-Manager] Installation failed:\n{res.msg}")
return web.Response(status=400, text=res.msg)
elif not res.result:
logging.error(f"[ComfyUI-Manager] Installation failed:\n{res.msg}")
return web.Response(status=400, text=res.msg)
return web.Response(status=200, text="Installation success.")
@@ -912,10 +926,10 @@ async def fix_custom_node(request):
res = core.unified_manager.unified_fix(node_name, node_ver)
if res.result:
logging.info("After restarting ComfyUI, please refresh the browser.")
logging.info("\nAfter restarting ComfyUI, please refresh the browser.")
return web.json_response({}, content_type='application/json')
logging.error(f"ERROR: An error occurred while fixing '{node_name}@{node_ver}'.")
logging.error(f"\nERROR: An error occurred while fixing '{node_name}@{node_ver}'.")
return web.Response(status=400, text=f"An error occurred while fixing '{node_name}@{node_ver}'.")
@@ -929,10 +943,10 @@ async def install_custom_node_git_url(request):
res = await core.gitclone_install(url)
if res.action == 'skip':
logging.info(f"Already installed: '{res.target}'")
logging.info(f"\nAlready installed: '{res.target}'")
return web.Response(status=200)
elif res.result:
logging.info("After restarting ComfyUI, please refresh the browser.")
logging.info("\nAfter restarting ComfyUI, please refresh the browser.")
return web.Response(status=200)
logging.error(res.msg)
@@ -971,10 +985,10 @@ async def uninstall_custom_node(request):
res = core.unified_manager.unified_uninstall(node_name, is_unknown)
if res.result:
logging.info("After restarting ComfyUI, please refresh the browser.")
logging.info("\nAfter restarting ComfyUI, please refresh the browser.")
return web.json_response({}, content_type='application/json')
logging.error(f"ERROR: An error occurred while uninstalling '{node_name}'.")
logging.error(f"\nERROR: An error occurred while uninstalling '{node_name}'.")
return web.Response(status=400, text=f"An error occurred while uninstalling '{node_name}'.")
@@ -998,10 +1012,10 @@ async def update_custom_node(request):
manager_util.clear_pip_cache()
if res.result:
logging.info("After restarting ComfyUI, please refresh the browser.")
logging.info("\nAfter restarting ComfyUI, please refresh the browser.")
return web.json_response({}, content_type='application/json')
logging.error(f"ERROR: An error occurred while updating '{node_name}'.")
logging.error(f"\nERROR: An error occurred while updating '{node_name}'.")
return web.Response(status=400, text=f"An error occurred while updating '{node_name}'.")
@@ -1400,6 +1414,10 @@ async def default_cache_update():
await asyncio.gather(a, b, c, d, e)
# load at least once
await core.unified_manager.reload('cache')
await core.unified_manager.get_custom_nodes('default', 'cache')
# NOTE: hide migration button temporarily.
# if not core.get_config()['skip_migration_check']:
# await core.check_need_to_migrate()

View File

@@ -45,6 +45,11 @@ async function tryInstallCustomNode(event) {
show_message('This action is not allowed with this security level configuration.');
return false;
}
else if(response.status == 400) {
let msg = await res.text();
show_message(msg);
return false;
}
}
let response = await api.fetchApi("/manager/reboot");

View File

@@ -963,7 +963,7 @@ class ManagerMenuDialog extends ComfyDialog {
this.datasrc_combo.className = "cm-menu-combo";
this.datasrc_combo.appendChild($el('option', { value: 'cache', text: 'DB: Channel (1day cache)' }, []));
this.datasrc_combo.appendChild($el('option', { value: 'local', text: 'DB: Local' }, []));
this.datasrc_combo.appendChild($el('option', { value: 'url', text: 'DB: Channel (remote)' }, []));
this.datasrc_combo.appendChild($el('option', { value: 'remote', text: 'DB: Channel (remote)' }, []));
// preview method
let preview_combo = document.createElement("select");

View File

@@ -96,7 +96,7 @@ function internalCustomConfirm(message, confirmMessage, cancelMessage) {
export function show_message(msg) {
app.ui.dialog.show(msg);
app.ui.dialog.element.style.zIndex = 1099;
app.ui.dialog.element.style.zIndex = 1100;
}
export async function sleep(ms) {

View File

@@ -1281,7 +1281,7 @@ export class CustomNodesManager {
body: JSON.stringify(data)
});
if (res.error) {
if (res.status != 200) {
errorMsg = `${item.title} ${mode} failed: `;
if(res.status == 403) {
@@ -1289,7 +1289,7 @@ export class CustomNodesManager {
} else if(res.status == 404) {
errorMsg += `With the current security level configuration, only custom nodes from the <B>"default channel"</B> can be installed.`;
} else {
errorMsg += res.error.message;
errorMsg += await res.text();
}
break;
@@ -1310,6 +1310,7 @@ export class CustomNodesManager {
if (errorMsg) {
this.showError(errorMsg);
show_message("Installation Error:\n"+errorMsg);
} else {
this.showStatus(`${label} ${list.length} custom node(s) successfully`);
}

View File

@@ -53,7 +53,9 @@ class WorkflowMetadataExtension {
const nodeInfo =
this.installedNodes[nodePackageName] ??
this.installedNodes[nodePackageName.toLowerCase()];
nodeVersions[nodePackageName] = nodeInfo.ver;
if (nodeInfo) {
nodeVersions[nodePackageName] = nodeInfo.ver;
}
} else if (["nodes", "comfy_extras"].includes(modules[0])) {
nodeVersions["comfy-core"] = this.comfyCoreVersion;
} else {
@@ -78,7 +80,11 @@ class WorkflowMetadataExtension {
workflow.extra = {};
}
const graph = this;
workflow.extra["node_versions"] = extension.getGraphNodeVersions(graph);
try {
workflow.extra["node_versions"] = extension.getGraphNodeVersions(graph);
} catch (e) {
console.error(e);
}
return workflow;
};

View File

@@ -10,6 +10,56 @@
},
{
"author": "phamngoctukts",
"title": "ComyUI-Tupham",
"reference": "https://github.com/phamngoctukts/ComyUI-Tupham",
"files": [
"https://github.com/phamngoctukts/ComyUI-Tupham"
],
"install_type": "git-clone",
"description": "NODES: Ghép Ảnh, Multi Prompt v2.0, Condition Upscale, Multi sampler, Run node selected"
},
{
"author": "5x00",
"title": "ComfyUI-Prompt-Plus [WIP]",
"reference": "https://github.com/5x00/ComfyUI-Prompt-Plus",
"files": [
"https://github.com/5x00/ComfyUI-Prompt-Plus"
],
"install_type": "git-clone",
"description": "Prompt Plus is a collection of LLM and VLM nodes that make prompting easier for image and video generation.\nNOTE: The files in the repo are not organized."
},
{
"author": "aria1th",
"title": "ComfyUI-CairoSVG",
"reference": "https://github.com/aria1th/ComfyUI-CairoSVG",
"files": [
"https://github.com/aria1th/ComfyUI-CairoSVG"
],
"install_type": "git-clone",
"description": "NODES: VectorizedUpscaleScaling, VectorizedUpscaleSize"
},
{
"author": "gitmylo",
"title": "FlowNodes [WIP]",
"reference": "https://github.com/gitmylo/FlowNodes",
"files": [
"https://github.com/gitmylo/FlowNodes"
],
"install_type": "git-clone",
"description": "A ComfyUI node pack containing nodes for basic programming logic."
},
{
"author": "chengzeyi",
"title": "Comfy-WaveSpeed [WIP]",
"reference": "https://github.com/chengzeyi/Comfy-WaveSpeed",
"files": [
"https://github.com/chengzeyi/Comfy-WaveSpeed"
],
"install_type": "git-clone",
"description": "The all in one inference optimization solution for ComfyUI, universal, flexible, and fast."
},
{
"author": "zyd232",
"title": "ComfyUI-zyd232-Nodes",
@@ -60,16 +110,6 @@
"install_type": "git-clone",
"description": "Analyze the image to find the x and y coordinates of the brightest point.\nNOTE: The files in the repo are not organized."
},
{
"author": "nmlen",
"title": "comfyui-mosaic-blur [WIP]",
"reference": "https://github.com/nmlen/comfyui-mosaic-blur",
"files": [
"https://github.com/nmlen/comfyui-mosaic-blur"
],
"install_type": "git-clone",
"description": "A simple mosaic blur node for ComfyUI that uses CV2 or Pillow\nNOTE: The files in the repo are not organized."
},
{
"author": "power88",
"title": "ComfyUI-PDiD-Nodes [WIP]",
@@ -1035,7 +1075,7 @@
"https://github.com/m-ai-studio/mai-prompt-progress"
],
"install_type": "git-clone",
"description": "mai-prompt-progress"
"description": "ComfyUI extensions for sending prompt progress to webhook"
},
{
"author": "neeltheninja",

View File

@@ -156,12 +156,36 @@
],
"https://github.com/5x00/ComfyUI-LLM-Concat": [
[
"LLMConcate"
"LoadAPI",
"LoadCustomModel",
"LoadFlorenceModel",
"Prompt",
"RunAPIVLM",
"RunCustomVLM",
"TriggerToPromptAPI",
"TriggerToPromptCustom",
"TriggerToPromptSimple"
],
{
"title_aux": "ComfyUI-LLM-Concat [WIP]"
}
],
"https://github.com/5x00/ComfyUI-Prompt-Plus": [
[
"LoadAPI",
"LoadCustomModel",
"LoadFlorenceModel",
"Prompt",
"RunAPIVLM",
"RunCustomVLM",
"TriggerToPromptAPI",
"TriggerToPromptCustom",
"TriggerToPromptSimple"
],
{
"title_aux": "ComfyUI-Prompt-Plus [WIP]"
}
],
"https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma": [
[
"ManualSigma"
@@ -1954,6 +1978,20 @@
"title_aux": "ComfyUI_StepFun"
}
],
"https://github.com/chengzeyi/Comfy-WaveSpeed": [
[
"ApplyFBCacheOnModel",
"EnhancedCompileModel",
"EnhancedLoadDiffusionModel",
"VelocatorCompileModel",
"VelocatorLoadAndQuantizeClip",
"VelocatorLoadAndQuantizeDiffusionModel",
"VelocatorQuantizeModel"
],
{
"title_aux": "Comfy-WaveSpeed [WIP]"
}
],
"https://github.com/christian-byrne/infinite-zoom-parallax-nodes": [
[
"Create Parallax Video",
@@ -2862,13 +2900,19 @@
"ImageLatentCreator",
"ImageResolutionAdjuster",
"ImageSizeCreator",
"ImageSwitch",
"ImageToBase64",
"LatentSwitch",
"MaskPreview",
"MaskSwitch",
"MultilineTextInput",
"RemoveEmptyLinesAndLeadingSpaces",
"RemoveEmptyLinesAndLeadingSpacesAdvance",
"ShowTextPlus",
"SimpleTextInput",
"TextCombiner"
"TextCombiner",
"TextSwitch",
"WebImageLoader"
],
{
"title_aux": "ComfyUI PaintingCoderUtils Nodes [WIP]"
@@ -3786,14 +3830,6 @@
"title_aux": "ComfyUI-PromptUtilities"
}
],
"https://github.com/nmlen/comfyui-mosaic-blur": [
[
"ImageMosaic"
],
{
"title_aux": "comfyui-mosaic-blur [WIP]"
}
],
"https://github.com/nomcycle/ComfyUI_Cluster": [
[
"FenceClusteredWorkflow"
@@ -3879,6 +3915,18 @@
"title_aux": "List Data Helper Nodes"
}
],
"https://github.com/phamngoctukts/ComyUI-Tupham": [
[
"AreaCondition_v2",
"ConditionUpscale",
"MultiLatent",
"Runnodeselected",
"ghepanh"
],
{
"title_aux": "ComyUI-Tupham"
}
],
"https://github.com/poisenbery/NudeNet-Detector-Provider": [
[
"NudeNetDetectorProvider"
@@ -4457,17 +4505,18 @@
],
"https://github.com/yanhuifair/ComfyUI-FairLab": [
[
"CLIPTranslatedClass",
"DownloadImageClass",
"FixUTF8StringClass",
"ImageResizeClass",
"LoadImageFromFolderClass",
"SaveImageToFolderClass",
"SaveImagesToFolderClass",
"SaveStringToFolderClass",
"StringCombineClass",
"StringFieldClass",
"TranslateStringClass"
"CLIPTranslatedNode",
"DownloadImageNode",
"FixUTF8StringNode",
"ImageResizeNode",
"LoadImageFromFolderNode",
"SaveImageToFolderNode",
"SaveImagesToFolderNode",
"SaveStringToFolderNode",
"SequenceStringListNode",
"StringCombineNode",
"StringFieldNode",
"TranslateStringNode"
],
{
"title_aux": "ComfyUI-FairLab"
@@ -4513,7 +4562,7 @@
],
"https://github.com/zyd232/ComfyUI-zyd232-Nodes": [
[
"ImageCompareNode"
"zyd232 ImagesPixelsCompare"
],
{
"title_aux": "ComfyUI-zyd232-Nodes"

View File

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,17 @@
{
"author": "leiweiqiang",
"title": "ComfyUI-TRA",
"id": "tra",
"reference": "https://github.com/leiweiqiang/ComfyUI-TRA",
"files": [
"https://github.com/leiweiqiang/ComfyUI-TRA"
],
"install_type": "git-clone",
"description": "Nodes:TCL EbSynth, TCL Extract Frames (From File), TCL Extract Frames (From Video), TCL Combine Frames, TCL Save Video (From Frames)"
},
{
"author": "ai-business-hql",
"title": "comfyUIAgent [REMOVED]",

View File

@@ -60,6 +60,156 @@
"install_type": "git-clone",
"description": "gguf node for comfyui"
},
{
"author": "bombax-xiaoice",
"title": "ComfyUI-OpenSoraPlan",
"reference": "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan",
"files": [
"https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan"
],
"install_type": "git-clone",
"description": "Another comfy implementation for the short video generation project PKU-YuanGroup/Open-Sora-Plan, supporting latest 1.3.0 and 1.2.0 and image to video feature, etc."
},
{
"author": "ShmuelRonen",
"title": "ComfyUI-HunyuanVideoSamplerSave",
"reference": "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave",
"files": [
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node implementation for optimized video generation and motion effects, designed to work with Hunyuan text-to-video models."
},
{
"author": "GraftingRayman",
"title": "ComfyUI-PuLID-Flux-GR",
"reference": "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR",
"files": [
"https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR"
],
"install_type": "git-clone",
"description": "This is a PuLID node that has been extended with new features."
},
{
"author": "ainewsto",
"title": "comfyui-labs-google",
"reference": "https://github.com/ainewsto/comfyui-labs-google",
"files": [
"https://github.com/ainewsto/comfyui-labs-google"
],
"install_type": "git-clone",
"description": "NODES: ComfyUI-ImageFx, ComfyUI-Whisk"
},
{
"author": "facok",
"title": "ComfyUI-TeaCacheHunyuanVideo",
"reference": "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo",
"files": [
"https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo"
],
"install_type": "git-clone",
"description": "This is a TeaCache acceleration node for HunYuan Video, supporting the native node workflow for seamless upgrades. Simply choose the acceleration multiplier you want—currently, three levels are available."
},
{
"author": "gremlation",
"title": "ComfyUI-ViewData",
"reference": "https://github.com/gremlation/ComfyUI-ViewData",
"files": [
"https://github.com/gremlation/ComfyUI-ViewData"
],
"install_type": "git-clone",
"description": "A ComfyUI node that displays the type and contents of whatever is connected to the input. In the case of a Tensor object, it shows the shape instead of its value."
},
{
"author": "yichengup",
"title": "Comfyui_Redux_Advanced",
"reference": "https://github.com/yichengup/Comfyui_Redux_Advanced",
"files": [
"https://github.com/yichengup/Comfyui_Redux_Advanced"
],
"install_type": "git-clone",
"description": "Redux style adds more controls"
},
{
"author": "GraftingRayman",
"title": "ComfyUI QueueTube",
"reference": "https://github.com/GraftingRayman/ComfyUI_QueueTube",
"files": [
"https://github.com/GraftingRayman/ComfyUI_QueueTube"
],
"install_type": "git-clone",
"description": "These nodes allow your YouTube LiveStream viewers to create on your local ComfyUI, you can make this a members only feature with a screen behind you displaying your members creations"
},
{
"author": "mira-6",
"title": "comfyui-sasolver",
"reference": "https://github.com/mira-6/comfyui-sasolver",
"files": [
"https://github.com/mira-6/comfyui-sasolver"
],
"install_type": "git-clone",
"description": "SASolver for Comfyui. Adapted from [a/comfyanonymous/ComfyUI#4454](https://github.com/comfyanonymous/ComfyUI/pull/4454) and [a/https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler](https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler)"
},
{
"author": "gremlation",
"title": "ComfyUI-JMESPath",
"reference": "https://github.com/gremlation/ComfyUI-JMESPath",
"files": [
"https://github.com/gremlation/ComfyUI-JMESPath"
],
"install_type": "git-clone",
"description": "A ComfyUI node that runs a [a/JMESPath](https://jmespath.org/) query against input JSON and outputs the result."
},
{
"author": "gremlation",
"title": "ComfyUI-jq",
"reference": "https://github.com/gremlation/ComfyUI-jq",
"files": [
"https://github.com/gremlation/ComfyUI-jq"
],
"install_type": "git-clone",
"description": "A ComfyUI node that runs a [a/jq](https://jqlang.github.io/jq/) query against input JSON and outputs the result."
},
{
"author": "gremlation",
"title": "ComfyUI-ImageLabel",
"reference": "https://github.com/gremlation/ComfyUI-ImageLabel",
"files": [
"https://github.com/gremlation/ComfyUI-ImageLabel"
],
"install_type": "git-clone",
"description": "A ComfyUI node that extends an image vertically to add a label either above or below it."
},
{
"author": "gremlation",
"title": "ComfyUI-TrackAndWheel",
"reference": "https://github.com/gremlation/ComfyUI-TrackAndWheel",
"files": [
"https://github.com/gremlation/ComfyUI-TrackAndWheel"
],
"install_type": "git-clone",
"description": "A ComfyUI extension that improves panning and zooming on trackpads and with the mouse wheel."
},
{
"author": "nmlen",
"title": "comfyui-mosaic-blur",
"reference": "https://github.com/nmlen/comfyui-mosaic-blur",
"files": [
"https://github.com/nmlen/comfyui-mosaic-blur"
],
"install_type": "git-clone",
"description": "A simple mosaic blur node for ComfyUI that uses CV2 or Pillow"
},
{
"author": "jerrylongyan",
"title": "ComfyUI-My-Mask",
"reference": "https://github.com/jerrylongyan/ComfyUI-My-Mask",
"files": [
"https://github.com/jerrylongyan/ComfyUI-My-Mask"
],
"install_type": "git-clone",
"description": "Some nodes for processing masks, currently including nodes that fill in the concave parts of existing masks with convex hulls."
},
{
"author": "sh570655308",
"title": "ComfyUI-GigapixelAI",
@@ -538,164 +688,6 @@
],
"install_type": "git-clone",
"description": "Custom node that allows storing and accessing strings, meant to be parts of a prompt, in a simplified manner. Partially supports dynamic prompt syntax."
},
{
"author": "fairy-root",
"title": "ComfyUI-GLHF",
"id": "comfyui-glhf",
"reference": "https://github.com/fairy-root/ComfyUI-GLHF",
"files": [
"https://github.com/fairy-root/ComfyUI-GLHF"
],
"install_type": "git-clone",
"description": "GLHF is a ComfyUI node that facilitates seamless interaction with the GLHF chat API. Designed to enhance user experience, it supports multiple language models, web search integration, and customizable instructions, making it a powerful extension for AI-driven workflows."
},
{
"author": "Jurdn",
"title": "Jurdns Groq API Node",
"id": "jurdnsgroqapinode",
"reference": "https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node",
"files": [
"https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node"
],
"pip": ["groq"],
"install_type": "git-clone",
"description": "This node utilizes the Groq.com API to enhance prompts. (Place API key and main system prompt in the groq_config.json)"
},
{
"author": "randomnoner11",
"title": "ComfyUI-MistralAI-API",
"reference": "https://github.com/randomnoner11/ComfyUI-MistralAI-API",
"files": [
"https://github.com/randomnoner11/ComfyUI-MistralAI-API"
],
"install_type": "git-clone",
"description": "Mistral AI API's chat completion endpoint in ComfyUI"
},
{
"author": "jefferyharrell",
"title": "JH Misc. Nodes",
"reference": "https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes",
"files": [
"https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes"
],
"install_type": "git-clone",
"description": "NODES: Daisy-Chainable String Constant, Two-Way Switch, Three-Way Switch, Preview Imag\nMiscellaneous custom nodes for ComfyUI"
},
{
"author": "ShmuelRonen",
"title": "ComfyUI-EmptyHunyuanLatent",
"reference": "https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent",
"files": [
"https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent"
],
"install_type": "git-clone",
"description": "Custom nodes for ComfyUI to generate empty latent space compatible with Hunyuan models for both image and video generation."
},
{
"author": "yondonfu",
"title": "ComfyUI-Torch-Compile",
"id": "comfyui-torch-compile",
"reference": "https://github.com/yondonfu/ComfyUI-Torch-Compile",
"files": [
"https://github.com/yondonfu/ComfyUI-Torch-Compile"
],
"install_type": "git-clone",
"description": "ComfyUI nodes for torch.compile."
},
{
"author": "ShmuelRonen",
"title": "ComfyUI-ImageMotionGuider",
"reference": "https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider",
"files": [
"https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider"
],
"install_type": "git-clone",
"description": "A custom ComfyUI node designed to create seamless motion effects from single images by integrating with Hunyuan Video through latent space manipulation."
},
{
"author": "hzane",
"title": "OmniGen-ComfyUI",
"reference": "https://github.com/hzane/OmniGen-ComfyUI",
"files": [
"https://github.com/hzane/OmniGen-ComfyUI"
],
"install_type": "git-clone",
"description": "A custom node for [a/OmniGen](https://github.com/VectorSpaceLab/OmniGen)."
},
{
"author": "bombax-xiaoice",
"title": "ComfyUI-Open-Sora-I2V",
"reference": "https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V",
"files": [
"https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V"
],
"install_type": "git-clone",
"description": "Another comfy implementation for the short video generation project hpcaitech/Open-Sora, supporting latest V2 and V3 models as well as image to video functions, etc."
},
{
"author": "taabata",
"title": "SANA_LOWVRAM",
"reference": "https://github.com/taabata/SANA_LOWVRAM",
"files": [
"https://github.com/taabata/SANA_LOWVRAM"
],
"install_type": "git-clone",
"description": "ComfyUI Diffusers wrapper nodes to run SANA models on low vram devices. Works on 2GB VRAM 12GB RAM laptop."
},
{
"author": "SongGuo11",
"title": "ComfyUI SaveAnything Node (SG11)",
"reference": "https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11",
"files": [
"https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for saving images in various formats"
},
{
"author": "licyk",
"title": "ComfyUI-TCD-Sampler",
"id": "TCD-Sampler",
"reference": "https://github.com/licyk/ComfyUI-TCD-Sampler",
"files": [
"https://github.com/licyk/ComfyUI-TCD-Sampler"
],
"install_type": "git-clone",
"description": "Adding TCD sampling"
},
{
"author": "Koishi-Star",
"title": "Pyramid_Noise_For_Inference",
"id": "Pyramid_Noise_For_Inference",
"reference": "https://github.com/Koishi-Star/Pyramid_Noise_For_Inference",
"files": [
"https://github.com/Koishi-Star/Pyramid_Noise_For_Inference"
],
"install_type": "git-clone",
"description": "Using pyramid_noise instead of original noise in inference"
},
{
"author": "Light-x02",
"title": "Flux Settings Node",
"id": "flux_settings_node",
"reference": "https://github.com/Light-x02/ComfyUI-FluxSettingsNode",
"files": [
"https://github.com/Light-x02/ComfyUI-FluxSettingsNode"
],
"install_type": "git-clone",
"description": "A combined node for ComfyUI with six configurable tabs for managing multiple parameter configurations, including guidance, sampler, scheduler, steps, and denoise."
},
{
"author": "pharmapsychotic",
"title": "comfy-cliption",
"id": "comfy-cliption",
"reference": "https://github.com/pharmapsychotic/comfy-cliption",
"files": [
"https://github.com/pharmapsychotic/comfy-cliption"
],
"install_type": "git-clone",
"description": "Image to caption with CLIP ViT-L/14. Small and fast addition to the CLIP-L model you already have loaded to generate captions for images within your workflow."
}
]
}

View File

@@ -402,6 +402,8 @@
"https://github.com/807502278/ComfyUI-WJNodes": [
[
"AdvCrop",
"ApplyEasyOCR_batch",
"BilateralFilter",
"ColorSegmentation",
"ColorSegmentation_v2",
"ComfyUIPath",
@@ -429,8 +431,10 @@
"VideoFade",
"WAS_Mask_Fill_Region_batch",
"any_data",
"array_element_count",
"array_count",
"bbox_restore_mask",
"get_image_data",
"load_EasyOCR_model",
"load_model_value",
"show_type",
"sort_images_batch"
@@ -1455,7 +1459,7 @@
"WAVE GEN (JOV) \ud83c\udf0a"
],
{
"author": "amorano",
"author": "Alexander G. Morano",
"description": "Integrates Webcam, MIDI, Spout and GLSL shader support. Animation",
"nodename_pattern": " \\(JOV\\)$",
"title": "Jovimetrix",
@@ -2086,8 +2090,11 @@
[
"BriaEraser",
"BriaGenFill",
"BriaTailoredGen",
"ShotByImageNode",
"ShotByTextNode"
"ShotByTextNode",
"TailoredModelInfoNode",
"Text2ImageBaseNode"
],
{
"title_aux": "BRIA AI API nodes"
@@ -2348,6 +2355,7 @@
"Sigmas2 Add",
"Sigmas2 Mult",
"SigmasPreview",
"SigmasSchedulePreview",
"StableCascade_StageB_Conditioning64",
"StableCascade_StageC_VAEEncode_Exact",
"StyleModelApplyAdvanced",
@@ -3788,6 +3796,14 @@
"title_aux": "GraftingRayman"
}
],
"https://github.com/GraftingRayman/ComfyUI_QueueTube": [
[
"GR QueueTube"
],
{
"title_aux": "ComfyUI QueueTube"
}
],
"https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
[
"AuraSR.AuraSRUpscaler"
@@ -5046,7 +5062,11 @@
"Image Generator",
"Image2Video",
"KLingAI Preview Video",
"Lip Sync",
"Lip Sync Audio Input",
"Lip Sync Text Input",
"Text2Video",
"Video Extend",
"Virtual Try On"
],
{
@@ -5072,7 +5092,9 @@
],
"https://github.com/LAOGOU-666/Comfyui-LG_Relight": [
[
"LG_Relight"
"LG_Relight",
"LG_Relight_Basic",
"LG_Relight_V2"
],
{
"title_aux": "Comfyui-LG_Relight"
@@ -5354,6 +5376,16 @@
"title_aux": "ComfyUI-Golden-Noise"
}
],
"https://github.com/LucipherDev/ComfyUI-TangoFlux": [
[
"TangoFluxLoader",
"TangoFluxSampler",
"TangoFluxVAEDecodeAndPlay"
],
{
"title_aux": "ComfyUI-TangoFlux"
}
],
"https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
[
"ScenarioPrompt"
@@ -5770,6 +5802,7 @@
"CycleInteger",
"DirSelector",
"DoubleClipTextEncode",
"DoubleConditioningMixer",
"EmbeddingLoader",
"FilmCharDir",
"FlexEmptyLatent",
@@ -5806,6 +5839,7 @@
"PresetRemove",
"PresetSave",
"PromptSwitcher",
"QuadClipTextEncode",
"RandomString",
"SDXLEmptyLatent",
"SavePrompt",
@@ -7446,6 +7480,17 @@
"title_aux": "ComfyUI-Gemini_Flash_2.0_Exp"
}
],
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave": [
[
"EmptyVideoLatentForHunyuan",
"HunyuanVideoSamplerSave",
"ImageMotionInfluance",
"ResizeImageForHunyuan"
],
{
"title_aux": "ComfyUI-HunyuanVideoSamplerSave"
}
],
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": [
[
"HunyuanVideoStyler"
@@ -8446,6 +8491,7 @@
"tri3d_H_Stack_Images",
"tri3d_SaveImage_absolute",
"tri3d_SaveText_absolute",
"tri3d_SmartBox",
"tri3d_Wait_And_Read_File",
"tri3d_extract_facer_mask",
"tri3d_fill_mask",
@@ -8507,7 +8553,8 @@
"TTP_condsetarea_merge_test",
"TTP_condtobatch",
"TTP_text_mix",
"TTPlanet_Tile_Preprocessor_Simple"
"TTPlanet_Tile_Preprocessor_Simple",
"TeaCacheHunyuanVideoSampler"
],
{
"title_aux": "Comfyui_TTP_Toolset"
@@ -10088,6 +10135,15 @@
"title_aux": "ComfyUI-HigherBitDepthSaveImage"
}
],
"https://github.com/ainewsto/comfyui-labs-google": [
[
"ComfyUI-ImageFx",
"ComfyUI-Whisk"
],
{
"title_aux": "comfyui-labs-google"
}
],
"https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": [
[
"ASVL"
@@ -11297,6 +11353,24 @@
"title_aux": "ComfyUI-Open-Sora-I2V"
}
],
"https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan": [
[
"OpenSoraPlan0LoaderT2V",
"OpenSoraPlan1LoaderT2V",
"OpenSoraPlan2LoaderI2V",
"OpenSoraPlan2LoaderT2V",
"OpenSoraPlan2SamplerI2V",
"OpenSoraPlan3LoaderI2V",
"OpenSoraPlan3LoaderT2V",
"OpenSoraPlan3SamplerI2V",
"OpenSoraPlanDecoder",
"OpenSoraPlanPromptRefiner",
"OpenSoraPlanSamplerT2V"
],
{
"title_aux": "ComfyUI-OpenSoraPlan"
}
],
"https://github.com/bombless/comfyUI-RememberingUtils": [
[
"RememberLastSeed",
@@ -11476,6 +11550,27 @@
"title_aux": "ComfyUI Signal Processing"
}
],
"https://github.com/calcuis/gguf": [
[
"ClipLoaderGGUF",
"DualClipLoaderGGUF",
"GGUFSave",
"LoaderGGUF",
"LoaderGGUFAdvanced",
"TripleClipLoaderGGUF"
],
{
"preemptions": [
"LoaderGGUF",
"ClipLoaderGGUF",
"DualClipLoaderGGUF",
"TripleClipLoaderGGUF",
"LoaderGGUFAdvanced",
"GGUFSave"
],
"title_aux": "gguf"
}
],
"https://github.com/caleboleary/ComfyUI-Arc2Face": [
[
"Arc2FaceEncoderLoader",
@@ -14188,6 +14283,7 @@
"DRMBT_LoadMedia",
"DRMBT_MultiMinMax",
"DRMBT_String_Item_Menu",
"DictToOutputs",
"DownloadAndLoadMiniCPMV",
"DreambaitFolderOpener",
"DynamicDictionary",
@@ -14202,6 +14298,7 @@
"NumberPlusPlus",
"NumberRemap",
"Qwen2AudioInstruct",
"StringToDict",
"SwitchDuo",
"TextLineSelect",
"TextLinesToList",
@@ -14581,6 +14678,14 @@
"title_aux": "ComfyUI-HunyuanVideoMultiLora"
}
],
"https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": [
[
"TeaCacheHunyuanVideoSampler_FOK"
],
{
"title_aux": "ComfyUI-TeaCacheHunyuanVideo"
}
],
"https://github.com/fairy-root/ComfyUI-GLHF": [
[
"glhf_chat"
@@ -15294,16 +15399,19 @@
"AI Chooser",
"Add Parameters",
"AdvPromptEnhancer",
"Custom API Key",
"DalleImage",
"Enhancer",
"Image Mixer",
"ImgTextSwitch",
"Load Remote Models",
"ParseJSON",
"Plush-Exif Wrangler",
"Random Image Output",
"Random Mixer",
"Random Output",
"Tagger",
"Text (Any)",
"Type Converter",
"mulTextSwitch"
],
@@ -15495,6 +15603,38 @@
"title_aux": "GFrbmg2"
}
],
"https://github.com/gremlation/ComfyUI-ImageLabel": [
[
"gremlation:ComfyUI-ImageLabel:ImageLabel"
],
{
"title_aux": "ComfyUI-ImageLabel"
}
],
"https://github.com/gremlation/ComfyUI-JMESPath": [
[
"gremlation:ComfyUI-JMESPath"
],
{
"title_aux": "ComfyUI-JMESPath"
}
],
"https://github.com/gremlation/ComfyUI-ViewData": [
[
"gremlation:ComfyUI-ViewData:ViewData"
],
{
"title_aux": "ComfyUI-ViewData"
}
],
"https://github.com/gremlation/ComfyUI-jq": [
[
"gremlation:ComfyUI-jq"
],
{
"title_aux": "ComfyUI-jq"
}
],
"https://github.com/griptape-ai/ComfyUI-Griptape": [
[
"Griptape Agent Config: Amazon Bedrock Drivers",
@@ -15840,7 +15980,7 @@
"FolderCleaner",
"GGUFLoader",
"GeocodeTool",
"Image2Video",
"Image2Video_party",
"Images2Image",
"KG_csv_toolkit_developer",
"KG_csv_toolkit_user",
@@ -17061,6 +17201,33 @@
"title_aux": "Various ComfyUI Nodes by Type"
}
],
"https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [
[
"ClickPopup",
"ColorPicker",
"DynamicImageCombiner",
"DynamicMaskCombiner",
"ImageLatentCreator",
"ImageResolutionAdjuster",
"ImageSizeCreator",
"ImageSwitch",
"ImageToBase64",
"LatentSwitch",
"MaskPreview",
"MaskSwitch",
"MultilineTextInput",
"RemoveEmptyLinesAndLeadingSpaces",
"RemoveEmptyLinesAndLeadingSpacesAdvance",
"ShowTextPlus",
"SimpleTextInput",
"TextCombiner",
"TextSwitch",
"WebImageLoader"
],
{
"title_aux": "Painting Coder Utils"
}
],
"https://github.com/jax-explorer/comfyui-model-dynamic-loader": [
[
"ComfyOnlineSaveFile",
@@ -17114,6 +17281,15 @@
"title_aux": "Faceless Node for ComfyUI"
}
],
"https://github.com/jerrylongyan/ComfyUI-My-Mask": [
[
"MaskToBottonHalfConvexMask",
"MaskToConvexMask"
],
{
"title_aux": "ComfyUI-My-Mask"
}
],
"https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [
[
"StreamDiffusion_Loader",
@@ -18908,26 +19084,6 @@
"title_aux": "ComfyUI-GG"
}
],
"https://github.com/leiweiqiang/ComfyUI-TRA": [
[
"TclEbSynth",
"TclEbSynthBatch",
"TclExr2png",
"TclExtractFramesFromVideo",
"TclExtractFramesFromVideoFile",
"TclFrames2Video",
"TclFresco",
"TclLoraGenDatasets",
"TclLoraSaveImages",
"TclLoraTraining",
"TclSaveVideoFromFrames",
"TclYoloV8Segmentation",
"TclYoloV9Segmentation"
],
{
"title_aux": "ComfyUI-TRA"
}
],
"https://github.com/lenskikh/ComfyUI-Prompt-Worker": [
[
"Prompt Worker"
@@ -20637,6 +20793,15 @@
"title_aux": "ComfyUI-MingNodes"
}
],
"https://github.com/mira-6/comfyui-sasolver": [
[
"SamplerSASolver",
"SamplerSASolverExperimental"
],
{
"title_aux": "comfyui-sasolver"
}
],
"https://github.com/mirabarukaso/ComfyUI_Mira": [
[
"BooleanListInterpreter1",
@@ -21364,6 +21529,14 @@
"title_aux": "ComfyUI-TextOnSegs"
}
],
"https://github.com/nmlen/comfyui-mosaic-blur": [
[
"ImageMosaic"
],
{
"title_aux": "comfyui-mosaic-blur"
}
],
"https://github.com/noarche/sd-webui-color-enhance": [
[
"MMakerColorBlend",
@@ -21895,6 +22068,10 @@
],
"https://github.com/playbook3d/playbook3d-comfyui-nodes": [
[
"Beauty Pass Sequence",
"Depth Pass Sequence",
"Mask Pass Sequence",
"Outline Pass Sequence",
"Playbook Beauty",
"Playbook Beauty Sequence",
"Playbook Boolean",
@@ -22692,6 +22869,7 @@
"DTypeConverter",
"DeltaControl",
"FPSMonitor",
"FastWebcamCapture",
"FloatControl",
"FloatSequence",
"IntControl",
@@ -24015,6 +24193,16 @@
"title_aux": "Latent Mirror node for ComfyUI"
}
],
"https://github.com/ssitu/ComfyUI_UltimateSDUpscale": [
[
"UltimateSDUpscale",
"UltimateSDUpscaleCustomSample",
"UltimateSDUpscaleNoUpscale"
],
{
"title_aux": "UltimateSDUpscale"
}
],
"https://github.com/ssitu/ComfyUI_fabric": [
[
"FABRICPatchModel",
@@ -24150,11 +24338,13 @@
],
"https://github.com/sugarkwork/comfyui_tag_fillter": [
[
"TagComparator",
"TagFilter",
"TagIf",
"TagMerger",
"TagRemover",
"TagReplace",
"TagSelector",
"TagSwitcher"
],
{
@@ -25150,6 +25340,15 @@
"title_aux": "WeiLin-ComfyUI-prompt-all-in-one"
}
],
"https://github.com/welltop-cn/ComfyUI-TeaCache": [
[
"TeaCacheForImgGen",
"TeaCacheForVidGen"
],
{
"title_aux": "ComfyUI-TeaCache"
}
],
"https://github.com/wentao-uw/ComfyUI-template-matching": [
[
"IsMaskEmptyNode (template matching)",
@@ -25258,6 +25457,7 @@
"Prompt_Text",
"Save_Image",
"Text_Match",
"Whitening_Node",
"YOLOWorld_Match",
"YOLO_Crop"
],
@@ -25724,6 +25924,14 @@
"title_aux": "Comfyui_Flux_Style_Adjust (Redux)"
}
],
"https://github.com/yichengup/Comfyui_Redux_Advanced": [
[
"StyleAdvancedApply"
],
{
"title_aux": "Comfyui_Redux_Advanced"
}
],
"https://github.com/yiwangsimple/ComfyUI_DW_Chat": [
[
"DeepSeekChatNode",

View File

@@ -270,6 +270,27 @@
],
"install_type": "git-clone",
"description": "A node for demonstration."
},
{
"author": "amorano",
"title": "cozy_spoke",
"reference": "https://github.com/cozy-comfyui/cozy_spoke",
"files": [
"https://github.com/cozy-comfyui/cozy_spoke"
],
"install_type": "git-clone",
"description": "Example node communicating between ComfyUI Javascript and Python."
},
{
"author": "amorano",
"title": "Cozy Link Toggle",
"id": "cozyLinkToggle",
"reference": "https://github.com/cozy-comfyui/cozy_link_toggle",
"files": [
"https://github.com/cozy-comfyui/cozy_link_toggle"
],
"install_type": "git-clone",
"description": "Example of using ComfyUI Toolbar to Toggle ComfyUI links on/off"
}
]
}

View File

@@ -418,7 +418,7 @@ def is_installed(name):
if match is None:
if name in pips:
return True
elif match.group(2) in ['<=', '==', '<']:
elif match.group(2) in ['<=', '==', '<', '~=']:
if name in pips:
if manager_util.StrictVersion(pips[name]) >= manager_util.StrictVersion(match.group(3)):
print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'")

View File

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