Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c663907e37 | ||
|
|
830be27eb2 | ||
|
|
041f4e4bb5 | ||
|
|
d3fa87fd94 | ||
|
|
4dffb5d593 | ||
|
|
b114672e03 | ||
|
|
3c3713553e |
@@ -5474,7 +5474,7 @@
|
|||||||
"https://github.com/Limitex/ComfyUI-Diffusers"
|
"https://github.com/Limitex/ComfyUI-Diffusers"
|
||||||
],
|
],
|
||||||
"install_type": "git-clone",
|
"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",
|
"author": "aiXander",
|
||||||
@@ -7428,6 +7428,16 @@
|
|||||||
"install_type": "git-clone",
|
"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."
|
"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",
|
"author": "redhottensors",
|
||||||
"title": "ComfyUI-Prediction",
|
"title": "ComfyUI-Prediction",
|
||||||
@@ -11374,6 +11384,26 @@
|
|||||||
"install_type": "git-clone",
|
"install_type": "git-clone",
|
||||||
"description": "Image Manipulation and Prompt Generation Nodes"
|
"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",
|
"author": "royceschultz",
|
||||||
"title": "ComfyUI-Notifications",
|
"title": "ComfyUI-Notifications",
|
||||||
@@ -12668,17 +12698,6 @@
|
|||||||
"install_type": "git-clone",
|
"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, ..."
|
"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",
|
"author": "hwhaocool",
|
||||||
"title": "ComfyUI-Select-Any",
|
"title": "ComfyUI-Select-Any",
|
||||||
@@ -15542,17 +15561,6 @@
|
|||||||
"install_type": "git-clone",
|
"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."
|
"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",
|
"author": "revirevy",
|
||||||
"title": "Comfyui_saveimage_imgbb",
|
"title": "Comfyui_saveimage_imgbb",
|
||||||
@@ -17258,6 +17266,16 @@
|
|||||||
"install_type": "git-clone",
|
"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."
|
"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",
|
"author": "chenbaiyujason",
|
||||||
"title": "ComfyUI-SCStepFun",
|
"title": "ComfyUI-SCStepFun",
|
||||||
@@ -17482,6 +17500,16 @@
|
|||||||
"install_type": "git-clone",
|
"install_type": "git-clone",
|
||||||
"description": "StyleModelApply adds more controls"
|
"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",
|
"author": "Horizon Team",
|
||||||
"title": "ComfyUI_FluxMod",
|
"title": "ComfyUI_FluxMod",
|
||||||
@@ -18876,7 +18904,7 @@
|
|||||||
"https://github.com/cenzijing/ComfyUI-Markmap"
|
"https://github.com/cenzijing/ComfyUI-Markmap"
|
||||||
],
|
],
|
||||||
"install_type": "git-clone",
|
"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",
|
"author": "bongsang",
|
||||||
@@ -19009,6 +19037,16 @@
|
|||||||
"install_type": "git-clone",
|
"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."
|
"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",
|
"author": "FinetunersAI",
|
||||||
"title": "ComfyUI_Finetuners_Suite",
|
"title": "ComfyUI_Finetuners_Suite",
|
||||||
@@ -19092,6 +19130,102 @@
|
|||||||
"install_type": "git-clone",
|
"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."
|
"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)"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -402,6 +402,8 @@
|
|||||||
"https://github.com/807502278/ComfyUI-WJNodes": [
|
"https://github.com/807502278/ComfyUI-WJNodes": [
|
||||||
[
|
[
|
||||||
"AdvCrop",
|
"AdvCrop",
|
||||||
|
"ApplyEasyOCR_batch",
|
||||||
|
"BilateralFilter",
|
||||||
"ColorSegmentation",
|
"ColorSegmentation",
|
||||||
"ColorSegmentation_v2",
|
"ColorSegmentation_v2",
|
||||||
"ComfyUIPath",
|
"ComfyUIPath",
|
||||||
@@ -429,8 +431,10 @@
|
|||||||
"VideoFade",
|
"VideoFade",
|
||||||
"WAS_Mask_Fill_Region_batch",
|
"WAS_Mask_Fill_Region_batch",
|
||||||
"any_data",
|
"any_data",
|
||||||
"array_element_count",
|
"array_count",
|
||||||
"bbox_restore_mask",
|
"bbox_restore_mask",
|
||||||
|
"get_image_data",
|
||||||
|
"load_EasyOCR_model",
|
||||||
"load_model_value",
|
"load_model_value",
|
||||||
"show_type",
|
"show_type",
|
||||||
"sort_images_batch"
|
"sort_images_batch"
|
||||||
@@ -1455,7 +1459,7 @@
|
|||||||
"WAVE GEN (JOV) \ud83c\udf0a"
|
"WAVE GEN (JOV) \ud83c\udf0a"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"author": "amorano",
|
"author": "Alexander G. Morano",
|
||||||
"description": "Integrates Webcam, MIDI, Spout and GLSL shader support. Animation",
|
"description": "Integrates Webcam, MIDI, Spout and GLSL shader support. Animation",
|
||||||
"nodename_pattern": " \\(JOV\\)$",
|
"nodename_pattern": " \\(JOV\\)$",
|
||||||
"title": "Jovimetrix",
|
"title": "Jovimetrix",
|
||||||
@@ -2086,8 +2090,11 @@
|
|||||||
[
|
[
|
||||||
"BriaEraser",
|
"BriaEraser",
|
||||||
"BriaGenFill",
|
"BriaGenFill",
|
||||||
|
"BriaTailoredGen",
|
||||||
"ShotByImageNode",
|
"ShotByImageNode",
|
||||||
"ShotByTextNode"
|
"ShotByTextNode",
|
||||||
|
"TailoredModelInfoNode",
|
||||||
|
"Text2ImageBaseNode"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "BRIA AI API nodes"
|
"title_aux": "BRIA AI API nodes"
|
||||||
@@ -2348,6 +2355,7 @@
|
|||||||
"Sigmas2 Add",
|
"Sigmas2 Add",
|
||||||
"Sigmas2 Mult",
|
"Sigmas2 Mult",
|
||||||
"SigmasPreview",
|
"SigmasPreview",
|
||||||
|
"SigmasSchedulePreview",
|
||||||
"StableCascade_StageB_Conditioning64",
|
"StableCascade_StageB_Conditioning64",
|
||||||
"StableCascade_StageC_VAEEncode_Exact",
|
"StableCascade_StageC_VAEEncode_Exact",
|
||||||
"StyleModelApplyAdvanced",
|
"StyleModelApplyAdvanced",
|
||||||
@@ -3788,6 +3796,14 @@
|
|||||||
"title_aux": "GraftingRayman"
|
"title_aux": "GraftingRayman"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/GraftingRayman/ComfyUI_QueueTube": [
|
||||||
|
[
|
||||||
|
"GR QueueTube"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "ComfyUI QueueTube"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
|
"https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
|
||||||
[
|
[
|
||||||
"AuraSR.AuraSRUpscaler"
|
"AuraSR.AuraSRUpscaler"
|
||||||
@@ -5046,7 +5062,11 @@
|
|||||||
"Image Generator",
|
"Image Generator",
|
||||||
"Image2Video",
|
"Image2Video",
|
||||||
"KLingAI Preview Video",
|
"KLingAI Preview Video",
|
||||||
|
"Lip Sync",
|
||||||
|
"Lip Sync Audio Input",
|
||||||
|
"Lip Sync Text Input",
|
||||||
"Text2Video",
|
"Text2Video",
|
||||||
|
"Video Extend",
|
||||||
"Virtual Try On"
|
"Virtual Try On"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
@@ -5072,7 +5092,9 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/LAOGOU-666/Comfyui-LG_Relight": [
|
"https://github.com/LAOGOU-666/Comfyui-LG_Relight": [
|
||||||
[
|
[
|
||||||
"LG_Relight"
|
"LG_Relight",
|
||||||
|
"LG_Relight_Basic",
|
||||||
|
"LG_Relight_V2"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "Comfyui-LG_Relight"
|
"title_aux": "Comfyui-LG_Relight"
|
||||||
@@ -5354,6 +5376,16 @@
|
|||||||
"title_aux": "ComfyUI-Golden-Noise"
|
"title_aux": "ComfyUI-Golden-Noise"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/LucipherDev/ComfyUI-TangoFlux": [
|
||||||
|
[
|
||||||
|
"TangoFluxLoader",
|
||||||
|
"TangoFluxSampler",
|
||||||
|
"TangoFluxVAEDecodeAndPlay"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "ComfyUI-TangoFlux"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
|
"https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
|
||||||
[
|
[
|
||||||
"ScenarioPrompt"
|
"ScenarioPrompt"
|
||||||
@@ -5770,6 +5802,7 @@
|
|||||||
"CycleInteger",
|
"CycleInteger",
|
||||||
"DirSelector",
|
"DirSelector",
|
||||||
"DoubleClipTextEncode",
|
"DoubleClipTextEncode",
|
||||||
|
"DoubleConditioningMixer",
|
||||||
"EmbeddingLoader",
|
"EmbeddingLoader",
|
||||||
"FilmCharDir",
|
"FilmCharDir",
|
||||||
"FlexEmptyLatent",
|
"FlexEmptyLatent",
|
||||||
@@ -5806,6 +5839,7 @@
|
|||||||
"PresetRemove",
|
"PresetRemove",
|
||||||
"PresetSave",
|
"PresetSave",
|
||||||
"PromptSwitcher",
|
"PromptSwitcher",
|
||||||
|
"QuadClipTextEncode",
|
||||||
"RandomString",
|
"RandomString",
|
||||||
"SDXLEmptyLatent",
|
"SDXLEmptyLatent",
|
||||||
"SavePrompt",
|
"SavePrompt",
|
||||||
@@ -7446,6 +7480,17 @@
|
|||||||
"title_aux": "ComfyUI-Gemini_Flash_2.0_Exp"
|
"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": [
|
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": [
|
||||||
[
|
[
|
||||||
"HunyuanVideoStyler"
|
"HunyuanVideoStyler"
|
||||||
@@ -8446,6 +8491,7 @@
|
|||||||
"tri3d_H_Stack_Images",
|
"tri3d_H_Stack_Images",
|
||||||
"tri3d_SaveImage_absolute",
|
"tri3d_SaveImage_absolute",
|
||||||
"tri3d_SaveText_absolute",
|
"tri3d_SaveText_absolute",
|
||||||
|
"tri3d_SmartBox",
|
||||||
"tri3d_Wait_And_Read_File",
|
"tri3d_Wait_And_Read_File",
|
||||||
"tri3d_extract_facer_mask",
|
"tri3d_extract_facer_mask",
|
||||||
"tri3d_fill_mask",
|
"tri3d_fill_mask",
|
||||||
@@ -8507,7 +8553,8 @@
|
|||||||
"TTP_condsetarea_merge_test",
|
"TTP_condsetarea_merge_test",
|
||||||
"TTP_condtobatch",
|
"TTP_condtobatch",
|
||||||
"TTP_text_mix",
|
"TTP_text_mix",
|
||||||
"TTPlanet_Tile_Preprocessor_Simple"
|
"TTPlanet_Tile_Preprocessor_Simple",
|
||||||
|
"TeaCacheHunyuanVideoSampler"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "Comfyui_TTP_Toolset"
|
"title_aux": "Comfyui_TTP_Toolset"
|
||||||
@@ -10088,6 +10135,15 @@
|
|||||||
"title_aux": "ComfyUI-HigherBitDepthSaveImage"
|
"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": [
|
"https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": [
|
||||||
[
|
[
|
||||||
"ASVL"
|
"ASVL"
|
||||||
@@ -11297,6 +11353,24 @@
|
|||||||
"title_aux": "ComfyUI-Open-Sora-I2V"
|
"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": [
|
"https://github.com/bombless/comfyUI-RememberingUtils": [
|
||||||
[
|
[
|
||||||
"RememberLastSeed",
|
"RememberLastSeed",
|
||||||
@@ -11476,6 +11550,27 @@
|
|||||||
"title_aux": "ComfyUI Signal Processing"
|
"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": [
|
"https://github.com/caleboleary/ComfyUI-Arc2Face": [
|
||||||
[
|
[
|
||||||
"Arc2FaceEncoderLoader",
|
"Arc2FaceEncoderLoader",
|
||||||
@@ -14188,6 +14283,7 @@
|
|||||||
"DRMBT_LoadMedia",
|
"DRMBT_LoadMedia",
|
||||||
"DRMBT_MultiMinMax",
|
"DRMBT_MultiMinMax",
|
||||||
"DRMBT_String_Item_Menu",
|
"DRMBT_String_Item_Menu",
|
||||||
|
"DictToOutputs",
|
||||||
"DownloadAndLoadMiniCPMV",
|
"DownloadAndLoadMiniCPMV",
|
||||||
"DreambaitFolderOpener",
|
"DreambaitFolderOpener",
|
||||||
"DynamicDictionary",
|
"DynamicDictionary",
|
||||||
@@ -14202,6 +14298,7 @@
|
|||||||
"NumberPlusPlus",
|
"NumberPlusPlus",
|
||||||
"NumberRemap",
|
"NumberRemap",
|
||||||
"Qwen2AudioInstruct",
|
"Qwen2AudioInstruct",
|
||||||
|
"StringToDict",
|
||||||
"SwitchDuo",
|
"SwitchDuo",
|
||||||
"TextLineSelect",
|
"TextLineSelect",
|
||||||
"TextLinesToList",
|
"TextLinesToList",
|
||||||
@@ -14581,6 +14678,14 @@
|
|||||||
"title_aux": "ComfyUI-HunyuanVideoMultiLora"
|
"title_aux": "ComfyUI-HunyuanVideoMultiLora"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": [
|
||||||
|
[
|
||||||
|
"TeaCacheHunyuanVideoSampler_FOK"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "ComfyUI-TeaCacheHunyuanVideo"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/fairy-root/ComfyUI-GLHF": [
|
"https://github.com/fairy-root/ComfyUI-GLHF": [
|
||||||
[
|
[
|
||||||
"glhf_chat"
|
"glhf_chat"
|
||||||
@@ -15294,16 +15399,19 @@
|
|||||||
"AI Chooser",
|
"AI Chooser",
|
||||||
"Add Parameters",
|
"Add Parameters",
|
||||||
"AdvPromptEnhancer",
|
"AdvPromptEnhancer",
|
||||||
|
"Custom API Key",
|
||||||
"DalleImage",
|
"DalleImage",
|
||||||
"Enhancer",
|
"Enhancer",
|
||||||
"Image Mixer",
|
"Image Mixer",
|
||||||
"ImgTextSwitch",
|
"ImgTextSwitch",
|
||||||
|
"Load Remote Models",
|
||||||
"ParseJSON",
|
"ParseJSON",
|
||||||
"Plush-Exif Wrangler",
|
"Plush-Exif Wrangler",
|
||||||
"Random Image Output",
|
"Random Image Output",
|
||||||
"Random Mixer",
|
"Random Mixer",
|
||||||
"Random Output",
|
"Random Output",
|
||||||
"Tagger",
|
"Tagger",
|
||||||
|
"Text (Any)",
|
||||||
"Type Converter",
|
"Type Converter",
|
||||||
"mulTextSwitch"
|
"mulTextSwitch"
|
||||||
],
|
],
|
||||||
@@ -15495,6 +15603,38 @@
|
|||||||
"title_aux": "GFrbmg2"
|
"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": [
|
"https://github.com/griptape-ai/ComfyUI-Griptape": [
|
||||||
[
|
[
|
||||||
"Griptape Agent Config: Amazon Bedrock Drivers",
|
"Griptape Agent Config: Amazon Bedrock Drivers",
|
||||||
@@ -15840,7 +15980,7 @@
|
|||||||
"FolderCleaner",
|
"FolderCleaner",
|
||||||
"GGUFLoader",
|
"GGUFLoader",
|
||||||
"GeocodeTool",
|
"GeocodeTool",
|
||||||
"Image2Video",
|
"Image2Video_party",
|
||||||
"Images2Image",
|
"Images2Image",
|
||||||
"KG_csv_toolkit_developer",
|
"KG_csv_toolkit_developer",
|
||||||
"KG_csv_toolkit_user",
|
"KG_csv_toolkit_user",
|
||||||
@@ -17061,6 +17201,33 @@
|
|||||||
"title_aux": "Various ComfyUI Nodes by Type"
|
"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": [
|
"https://github.com/jax-explorer/comfyui-model-dynamic-loader": [
|
||||||
[
|
[
|
||||||
"ComfyOnlineSaveFile",
|
"ComfyOnlineSaveFile",
|
||||||
@@ -17114,6 +17281,15 @@
|
|||||||
"title_aux": "Faceless Node for ComfyUI"
|
"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": [
|
"https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [
|
||||||
[
|
[
|
||||||
"StreamDiffusion_Loader",
|
"StreamDiffusion_Loader",
|
||||||
@@ -18908,26 +19084,6 @@
|
|||||||
"title_aux": "ComfyUI-GG"
|
"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": [
|
"https://github.com/lenskikh/ComfyUI-Prompt-Worker": [
|
||||||
[
|
[
|
||||||
"Prompt Worker"
|
"Prompt Worker"
|
||||||
@@ -20637,6 +20793,15 @@
|
|||||||
"title_aux": "ComfyUI-MingNodes"
|
"title_aux": "ComfyUI-MingNodes"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/mira-6/comfyui-sasolver": [
|
||||||
|
[
|
||||||
|
"SamplerSASolver",
|
||||||
|
"SamplerSASolverExperimental"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "comfyui-sasolver"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/mirabarukaso/ComfyUI_Mira": [
|
"https://github.com/mirabarukaso/ComfyUI_Mira": [
|
||||||
[
|
[
|
||||||
"BooleanListInterpreter1",
|
"BooleanListInterpreter1",
|
||||||
@@ -21364,6 +21529,14 @@
|
|||||||
"title_aux": "ComfyUI-TextOnSegs"
|
"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": [
|
"https://github.com/noarche/sd-webui-color-enhance": [
|
||||||
[
|
[
|
||||||
"MMakerColorBlend",
|
"MMakerColorBlend",
|
||||||
@@ -21895,6 +22068,10 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/playbook3d/playbook3d-comfyui-nodes": [
|
"https://github.com/playbook3d/playbook3d-comfyui-nodes": [
|
||||||
[
|
[
|
||||||
|
"Beauty Pass Sequence",
|
||||||
|
"Depth Pass Sequence",
|
||||||
|
"Mask Pass Sequence",
|
||||||
|
"Outline Pass Sequence",
|
||||||
"Playbook Beauty",
|
"Playbook Beauty",
|
||||||
"Playbook Beauty Sequence",
|
"Playbook Beauty Sequence",
|
||||||
"Playbook Boolean",
|
"Playbook Boolean",
|
||||||
@@ -22692,6 +22869,7 @@
|
|||||||
"DTypeConverter",
|
"DTypeConverter",
|
||||||
"DeltaControl",
|
"DeltaControl",
|
||||||
"FPSMonitor",
|
"FPSMonitor",
|
||||||
|
"FastWebcamCapture",
|
||||||
"FloatControl",
|
"FloatControl",
|
||||||
"FloatSequence",
|
"FloatSequence",
|
||||||
"IntControl",
|
"IntControl",
|
||||||
@@ -24015,6 +24193,16 @@
|
|||||||
"title_aux": "Latent Mirror node for ComfyUI"
|
"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": [
|
"https://github.com/ssitu/ComfyUI_fabric": [
|
||||||
[
|
[
|
||||||
"FABRICPatchModel",
|
"FABRICPatchModel",
|
||||||
@@ -24150,11 +24338,13 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/sugarkwork/comfyui_tag_fillter": [
|
"https://github.com/sugarkwork/comfyui_tag_fillter": [
|
||||||
[
|
[
|
||||||
|
"TagComparator",
|
||||||
"TagFilter",
|
"TagFilter",
|
||||||
"TagIf",
|
"TagIf",
|
||||||
"TagMerger",
|
"TagMerger",
|
||||||
"TagRemover",
|
"TagRemover",
|
||||||
"TagReplace",
|
"TagReplace",
|
||||||
|
"TagSelector",
|
||||||
"TagSwitcher"
|
"TagSwitcher"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
@@ -25150,6 +25340,15 @@
|
|||||||
"title_aux": "WeiLin-ComfyUI-prompt-all-in-one"
|
"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": [
|
"https://github.com/wentao-uw/ComfyUI-template-matching": [
|
||||||
[
|
[
|
||||||
"IsMaskEmptyNode (template matching)",
|
"IsMaskEmptyNode (template matching)",
|
||||||
@@ -25258,6 +25457,7 @@
|
|||||||
"Prompt_Text",
|
"Prompt_Text",
|
||||||
"Save_Image",
|
"Save_Image",
|
||||||
"Text_Match",
|
"Text_Match",
|
||||||
|
"Whitening_Node",
|
||||||
"YOLOWorld_Match",
|
"YOLOWorld_Match",
|
||||||
"YOLO_Crop"
|
"YOLO_Crop"
|
||||||
],
|
],
|
||||||
@@ -25724,6 +25924,14 @@
|
|||||||
"title_aux": "Comfyui_Flux_Style_Adjust (Redux)"
|
"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": [
|
"https://github.com/yiwangsimple/ComfyUI_DW_Chat": [
|
||||||
[
|
[
|
||||||
"DeepSeekChatNode",
|
"DeepSeekChatNode",
|
||||||
|
|||||||
@@ -124,18 +124,47 @@ def gitcheck(path, do_fetch=False):
|
|||||||
print("CUSTOM NODE CHECK: Error")
|
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):
|
def switch_to_default_branch(repo):
|
||||||
|
remote_name = get_remote_name(repo)
|
||||||
|
|
||||||
try:
|
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)
|
repo.git.checkout(default_branch)
|
||||||
|
return True
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
repo.git.checkout(repo.heads.master)
|
repo.git.checkout(repo.heads.master)
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
repo.git.checkout('-b', 'master', 'origin/master')
|
if remote_name is not None:
|
||||||
|
repo.git.checkout('-b', 'master', f'{remote_name}/master')
|
||||||
except:
|
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):
|
def gitpull(path):
|
||||||
|
|||||||
4487
github-stats.json
4487
github-stats.json
File diff suppressed because it is too large
Load Diff
@@ -41,7 +41,7 @@ import manager_downloader
|
|||||||
from node_package import InstalledNodePackage
|
from node_package import InstalledNodePackage
|
||||||
|
|
||||||
|
|
||||||
version_code = [3, 5]
|
version_code = [3, 6, 2]
|
||||||
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
||||||
|
|
||||||
|
|
||||||
@@ -1227,16 +1227,21 @@ class UnifiedManager:
|
|||||||
repo = git.Repo(repo_path)
|
repo = git.Repo(repo_path)
|
||||||
|
|
||||||
if repo.head.is_detached:
|
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
|
current_branch = repo.active_branch
|
||||||
branch_name = current_branch.name
|
branch_name = current_branch.name
|
||||||
|
|
||||||
if current_branch.tracking_branch() is None:
|
if current_branch.tracking_branch() is None:
|
||||||
print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})")
|
print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})")
|
||||||
remote_name = 'origin'
|
remote_name = get_remote_name(repo)
|
||||||
else:
|
else:
|
||||||
remote_name = current_branch.tracking_branch().remote_name
|
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)
|
remote = repo.remote(name=remote_name)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -1316,7 +1321,10 @@ class UnifiedManager:
|
|||||||
custom_nodes = await self.get_custom_nodes(channel, mode)
|
custom_nodes = await self.get_custom_nodes(channel, mode)
|
||||||
the_node = custom_nodes.get(node_id)
|
the_node = custom_nodes.get(node_id)
|
||||||
if the_node is not None:
|
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:
|
else:
|
||||||
result = ManagedResult('install')
|
result = ManagedResult('install')
|
||||||
return result.fail(f"Node '{node_id}@{version_spec}' not found in [{channel}, {mode}]")
|
return result.fail(f"Node '{node_id}@{version_spec}' not found in [{channel}, {mode}]")
|
||||||
@@ -1341,6 +1349,8 @@ class UnifiedManager:
|
|||||||
elif version_spec == 'nightly':
|
elif version_spec == 'nightly':
|
||||||
cnr_utils.generate_cnr_id(to_path, node_id)
|
cnr_utils.generate_cnr_id(to_path, node_id)
|
||||||
self.active_nodes[node_id] = 'nightly', to_path
|
self.active_nodes[node_id] = 'nightly', to_path
|
||||||
|
else:
|
||||||
|
return res
|
||||||
|
|
||||||
return res.with_target(version_spec)
|
return res.with_target(version_spec)
|
||||||
|
|
||||||
@@ -1586,18 +1596,47 @@ def get_config():
|
|||||||
return cached_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):
|
def switch_to_default_branch(repo):
|
||||||
|
remote_name = get_remote_name(repo)
|
||||||
|
|
||||||
try:
|
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)
|
repo.git.checkout(default_branch)
|
||||||
|
return True
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
repo.git.checkout(repo.heads.master)
|
repo.git.checkout(repo.heads.master)
|
||||||
except:
|
except:
|
||||||
try:
|
try:
|
||||||
repo.git.checkout('-b', 'master', 'origin/master')
|
if remote_name is not None:
|
||||||
|
repo.git.checkout('-b', 'master', f'{remote_name}/master')
|
||||||
except:
|
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):
|
def try_install_script(url, repo_path, install_cmd, instant_execution=False):
|
||||||
@@ -1778,7 +1817,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
|
# Fetch the latest commits from the remote repository
|
||||||
repo = git.Repo(path)
|
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)
|
remote = repo.remote(name=remote_name)
|
||||||
|
|
||||||
if not do_update and repo.head.is_detached:
|
if not do_update and repo.head.is_detached:
|
||||||
@@ -1788,7 +1831,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
|
return True, True # detached branch is treated as updatable
|
||||||
|
|
||||||
if repo.head.is_detached:
|
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
|
current_branch = repo.active_branch
|
||||||
branch_name = current_branch.name
|
branch_name = current_branch.name
|
||||||
@@ -1805,7 +1849,9 @@ def git_repo_update_check_with(path, do_fetch=False, do_update=False, no_deps=Fa
|
|||||||
repo.git.stash()
|
repo.git.stash()
|
||||||
|
|
||||||
if f'{remote_name}/{branch_name}' not in repo.refs:
|
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
|
current_branch = repo.active_branch
|
||||||
branch_name = current_branch.name
|
branch_name = current_branch.name
|
||||||
|
|
||||||
@@ -1964,7 +2010,8 @@ def git_pull(path):
|
|||||||
repo.git.stash()
|
repo.git.stash()
|
||||||
|
|
||||||
if repo.head.is_detached:
|
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
|
current_branch = repo.active_branch
|
||||||
remote_name = current_branch.tracking_branch().remote_name
|
remote_name = current_branch.tracking_branch().remote_name
|
||||||
@@ -2228,14 +2275,15 @@ def update_path(repo_path, instant_execution=False, no_deps=False):
|
|||||||
repo = git.Repo(repo_path)
|
repo = git.Repo(repo_path)
|
||||||
|
|
||||||
if repo.head.is_detached:
|
if repo.head.is_detached:
|
||||||
switch_to_default_branch(repo)
|
if not switch_to_default_branch(repo):
|
||||||
|
return "fail"
|
||||||
|
|
||||||
current_branch = repo.active_branch
|
current_branch = repo.active_branch
|
||||||
branch_name = current_branch.name
|
branch_name = current_branch.name
|
||||||
|
|
||||||
if current_branch.tracking_branch() is None:
|
if current_branch.tracking_branch() is None:
|
||||||
print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})")
|
print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})")
|
||||||
remote_name = 'origin'
|
remote_name = get_remote_name(repo)
|
||||||
else:
|
else:
|
||||||
remote_name = current_branch.tracking_branch().remote_name
|
remote_name = current_branch.tracking_branch().remote_name
|
||||||
remote = repo.remote(name=remote_name)
|
remote = repo.remote(name=remote_name)
|
||||||
@@ -2254,6 +2302,7 @@ def update_path(repo_path, instant_execution=False, no_deps=False):
|
|||||||
f"-----------------------------------------------------------------------------------------\n"
|
f"-----------------------------------------------------------------------------------------\n"
|
||||||
f'git config --global --add safe.directory "{safedir_path}"\n'
|
f'git config --global --add safe.directory "{safedir_path}"\n'
|
||||||
f"-----------------------------------------------------------------------------------------\n")
|
f"-----------------------------------------------------------------------------------------\n")
|
||||||
|
return "fail"
|
||||||
|
|
||||||
commit_hash = repo.head.commit.hexsha
|
commit_hash = repo.head.commit.hexsha
|
||||||
remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha
|
remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha
|
||||||
@@ -2323,11 +2372,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 dir_path and os.path.exists(dir_path):
|
||||||
if do_update_check:
|
if do_update_check:
|
||||||
update_state, success = git_repo_update_check_with(dir_path, do_fetch, do_update)
|
try:
|
||||||
if (do_update_check or do_update) and update_state:
|
update_state, success = git_repo_update_check_with(dir_path, do_fetch, do_update)
|
||||||
item['update-state'] = 'true'
|
if (do_update_check or do_update) and update_state:
|
||||||
elif do_update and not success:
|
item['update-state'] = 'true'
|
||||||
item['update-state'] = 'fail'
|
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():
|
def get_installed_pip_packages():
|
||||||
|
|||||||
@@ -858,6 +858,8 @@ async def install_custom_node(request):
|
|||||||
cnr_id = json_data.get('id')
|
cnr_id = json_data.get('id')
|
||||||
skip_post_install = json_data.get('skip_post_install')
|
skip_post_install = json_data.get('skip_post_install')
|
||||||
|
|
||||||
|
git_url = None
|
||||||
|
|
||||||
if json_data['version'] != 'unknown':
|
if json_data['version'] != 'unknown':
|
||||||
selected_version = json_data.get('selected_version', 'latest')
|
selected_version = json_data.get('selected_version', 'latest')
|
||||||
if selected_version != 'nightly':
|
if selected_version != 'nightly':
|
||||||
@@ -865,14 +867,22 @@ async def install_custom_node(request):
|
|||||||
node_spec_str = f"{cnr_id}@{selected_version}"
|
node_spec_str = f"{cnr_id}@{selected_version}"
|
||||||
else:
|
else:
|
||||||
node_spec_str = f"{cnr_id}@nightly"
|
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:
|
else:
|
||||||
# unknown
|
# unknown
|
||||||
unknown_name = os.path.basename(json_data['files'][0])
|
unknown_name = os.path.basename(json_data['files'][0])
|
||||||
node_spec_str = f"{unknown_name}@unknown"
|
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)
|
# apply security policy if not cnr node (nightly isn't regarded as cnr node)
|
||||||
if risky_level is None:
|
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):
|
if not is_allowed_security_level(risky_level):
|
||||||
logging.error(SECURITY_MESSAGE_GENERAL)
|
logging.error(SECURITY_MESSAGE_GENERAL)
|
||||||
@@ -888,7 +898,11 @@ async def install_custom_node(request):
|
|||||||
# discard post install if skip_post_install mode
|
# discard post install if skip_post_install mode
|
||||||
|
|
||||||
if res.action not in ['skip', 'enable', 'install-git', 'install-cnr', 'switch-cnr']:
|
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.")
|
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)
|
res = core.unified_manager.unified_fix(node_name, node_ver)
|
||||||
|
|
||||||
if res.result:
|
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')
|
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}'.")
|
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)
|
res = await core.gitclone_install(url)
|
||||||
|
|
||||||
if res.action == 'skip':
|
if res.action == 'skip':
|
||||||
logging.info(f"Already installed: '{res.target}'")
|
logging.info(f"\nAlready installed: '{res.target}'")
|
||||||
return web.Response(status=200)
|
return web.Response(status=200)
|
||||||
elif res.result:
|
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)
|
return web.Response(status=200)
|
||||||
|
|
||||||
logging.error(res.msg)
|
logging.error(res.msg)
|
||||||
@@ -971,10 +985,10 @@ async def uninstall_custom_node(request):
|
|||||||
res = core.unified_manager.unified_uninstall(node_name, is_unknown)
|
res = core.unified_manager.unified_uninstall(node_name, is_unknown)
|
||||||
|
|
||||||
if res.result:
|
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')
|
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}'.")
|
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()
|
manager_util.clear_pip_cache()
|
||||||
|
|
||||||
if res.result:
|
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')
|
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}'.")
|
return web.Response(status=400, text=f"An error occurred while updating '{node_name}'.")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ async function tryInstallCustomNode(event) {
|
|||||||
show_message('This action is not allowed with this security level configuration.');
|
show_message('This action is not allowed with this security level configuration.');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else if(response.status == 400) {
|
||||||
|
let msg = await res.text();
|
||||||
|
show_message(msg);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let response = await api.fetchApi("/manager/reboot");
|
let response = await api.fetchApi("/manager/reboot");
|
||||||
|
|||||||
@@ -963,7 +963,7 @@ class ManagerMenuDialog extends ComfyDialog {
|
|||||||
this.datasrc_combo.className = "cm-menu-combo";
|
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: 'cache', text: 'DB: Channel (1day cache)' }, []));
|
||||||
this.datasrc_combo.appendChild($el('option', { value: 'local', text: 'DB: Local' }, []));
|
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
|
// preview method
|
||||||
let preview_combo = document.createElement("select");
|
let preview_combo = document.createElement("select");
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ function internalCustomConfirm(message, confirmMessage, cancelMessage) {
|
|||||||
|
|
||||||
export function show_message(msg) {
|
export function show_message(msg) {
|
||||||
app.ui.dialog.show(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) {
|
export async function sleep(ms) {
|
||||||
|
|||||||
@@ -1281,7 +1281,7 @@ export class CustomNodesManager {
|
|||||||
body: JSON.stringify(data)
|
body: JSON.stringify(data)
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res.error) {
|
if (res.status != 200) {
|
||||||
|
|
||||||
errorMsg = `${item.title} ${mode} failed: `;
|
errorMsg = `${item.title} ${mode} failed: `;
|
||||||
if(res.status == 403) {
|
if(res.status == 403) {
|
||||||
@@ -1289,7 +1289,7 @@ export class CustomNodesManager {
|
|||||||
} else if(res.status == 404) {
|
} else if(res.status == 404) {
|
||||||
errorMsg += `With the current security level configuration, only custom nodes from the <B>"default channel"</B> can be installed.`;
|
errorMsg += `With the current security level configuration, only custom nodes from the <B>"default channel"</B> can be installed.`;
|
||||||
} else {
|
} else {
|
||||||
errorMsg += res.error.message;
|
errorMsg += await res.text();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -1310,6 +1310,7 @@ export class CustomNodesManager {
|
|||||||
|
|
||||||
if (errorMsg) {
|
if (errorMsg) {
|
||||||
this.showError(errorMsg);
|
this.showError(errorMsg);
|
||||||
|
show_message("Installation Error:\n"+errorMsg);
|
||||||
} else {
|
} else {
|
||||||
this.showStatus(`${label} ${list.length} custom node(s) successfully`);
|
this.showStatus(`${label} ${list.length} custom node(s) successfully`);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,9 @@ class WorkflowMetadataExtension {
|
|||||||
const nodeInfo =
|
const nodeInfo =
|
||||||
this.installedNodes[nodePackageName] ??
|
this.installedNodes[nodePackageName] ??
|
||||||
this.installedNodes[nodePackageName.toLowerCase()];
|
this.installedNodes[nodePackageName.toLowerCase()];
|
||||||
nodeVersions[nodePackageName] = nodeInfo.ver;
|
if (nodeInfo) {
|
||||||
|
nodeVersions[nodePackageName] = nodeInfo.ver;
|
||||||
|
}
|
||||||
} else if (["nodes", "comfy_extras"].includes(modules[0])) {
|
} else if (["nodes", "comfy_extras"].includes(modules[0])) {
|
||||||
nodeVersions["comfy-core"] = this.comfyCoreVersion;
|
nodeVersions["comfy-core"] = this.comfyCoreVersion;
|
||||||
} else {
|
} else {
|
||||||
@@ -78,7 +80,11 @@ class WorkflowMetadataExtension {
|
|||||||
workflow.extra = {};
|
workflow.extra = {};
|
||||||
}
|
}
|
||||||
const graph = this;
|
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;
|
return workflow;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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",
|
"author": "zyd232",
|
||||||
"title": "ComfyUI-zyd232-Nodes",
|
"title": "ComfyUI-zyd232-Nodes",
|
||||||
@@ -60,16 +110,6 @@
|
|||||||
"install_type": "git-clone",
|
"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."
|
"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",
|
"author": "power88",
|
||||||
"title": "ComfyUI-PDiD-Nodes [WIP]",
|
"title": "ComfyUI-PDiD-Nodes [WIP]",
|
||||||
@@ -1035,7 +1075,7 @@
|
|||||||
"https://github.com/m-ai-studio/mai-prompt-progress"
|
"https://github.com/m-ai-studio/mai-prompt-progress"
|
||||||
],
|
],
|
||||||
"install_type": "git-clone",
|
"install_type": "git-clone",
|
||||||
"description": "mai-prompt-progress"
|
"description": "ComfyUI extensions for sending prompt progress to webhook"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"author": "neeltheninja",
|
"author": "neeltheninja",
|
||||||
|
|||||||
@@ -156,12 +156,36 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/5x00/ComfyUI-LLM-Concat": [
|
"https://github.com/5x00/ComfyUI-LLM-Concat": [
|
||||||
[
|
[
|
||||||
"LLMConcate"
|
"LoadAPI",
|
||||||
|
"LoadCustomModel",
|
||||||
|
"LoadFlorenceModel",
|
||||||
|
"Prompt",
|
||||||
|
"RunAPIVLM",
|
||||||
|
"RunCustomVLM",
|
||||||
|
"TriggerToPromptAPI",
|
||||||
|
"TriggerToPromptCustom",
|
||||||
|
"TriggerToPromptSimple"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "ComfyUI-LLM-Concat [WIP]"
|
"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": [
|
"https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma": [
|
||||||
[
|
[
|
||||||
"ManualSigma"
|
"ManualSigma"
|
||||||
@@ -1954,6 +1978,20 @@
|
|||||||
"title_aux": "ComfyUI_StepFun"
|
"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": [
|
"https://github.com/christian-byrne/infinite-zoom-parallax-nodes": [
|
||||||
[
|
[
|
||||||
"Create Parallax Video",
|
"Create Parallax Video",
|
||||||
@@ -2862,13 +2900,19 @@
|
|||||||
"ImageLatentCreator",
|
"ImageLatentCreator",
|
||||||
"ImageResolutionAdjuster",
|
"ImageResolutionAdjuster",
|
||||||
"ImageSizeCreator",
|
"ImageSizeCreator",
|
||||||
|
"ImageSwitch",
|
||||||
|
"ImageToBase64",
|
||||||
|
"LatentSwitch",
|
||||||
"MaskPreview",
|
"MaskPreview",
|
||||||
|
"MaskSwitch",
|
||||||
"MultilineTextInput",
|
"MultilineTextInput",
|
||||||
"RemoveEmptyLinesAndLeadingSpaces",
|
"RemoveEmptyLinesAndLeadingSpaces",
|
||||||
"RemoveEmptyLinesAndLeadingSpacesAdvance",
|
"RemoveEmptyLinesAndLeadingSpacesAdvance",
|
||||||
"ShowTextPlus",
|
"ShowTextPlus",
|
||||||
"SimpleTextInput",
|
"SimpleTextInput",
|
||||||
"TextCombiner"
|
"TextCombiner",
|
||||||
|
"TextSwitch",
|
||||||
|
"WebImageLoader"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "ComfyUI PaintingCoderUtils Nodes [WIP]"
|
"title_aux": "ComfyUI PaintingCoderUtils Nodes [WIP]"
|
||||||
@@ -3786,14 +3830,6 @@
|
|||||||
"title_aux": "ComfyUI-PromptUtilities"
|
"title_aux": "ComfyUI-PromptUtilities"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"https://github.com/nmlen/comfyui-mosaic-blur": [
|
|
||||||
[
|
|
||||||
"ImageMosaic"
|
|
||||||
],
|
|
||||||
{
|
|
||||||
"title_aux": "comfyui-mosaic-blur [WIP]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"https://github.com/nomcycle/ComfyUI_Cluster": [
|
"https://github.com/nomcycle/ComfyUI_Cluster": [
|
||||||
[
|
[
|
||||||
"FenceClusteredWorkflow"
|
"FenceClusteredWorkflow"
|
||||||
@@ -3879,6 +3915,18 @@
|
|||||||
"title_aux": "List Data Helper Nodes"
|
"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": [
|
"https://github.com/poisenbery/NudeNet-Detector-Provider": [
|
||||||
[
|
[
|
||||||
"NudeNetDetectorProvider"
|
"NudeNetDetectorProvider"
|
||||||
@@ -4457,17 +4505,18 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/yanhuifair/ComfyUI-FairLab": [
|
"https://github.com/yanhuifair/ComfyUI-FairLab": [
|
||||||
[
|
[
|
||||||
"CLIPTranslatedClass",
|
"CLIPTranslatedNode",
|
||||||
"DownloadImageClass",
|
"DownloadImageNode",
|
||||||
"FixUTF8StringClass",
|
"FixUTF8StringNode",
|
||||||
"ImageResizeClass",
|
"ImageResizeNode",
|
||||||
"LoadImageFromFolderClass",
|
"LoadImageFromFolderNode",
|
||||||
"SaveImageToFolderClass",
|
"SaveImageToFolderNode",
|
||||||
"SaveImagesToFolderClass",
|
"SaveImagesToFolderNode",
|
||||||
"SaveStringToFolderClass",
|
"SaveStringToFolderNode",
|
||||||
"StringCombineClass",
|
"SequenceStringListNode",
|
||||||
"StringFieldClass",
|
"StringCombineNode",
|
||||||
"TranslateStringClass"
|
"StringFieldNode",
|
||||||
|
"TranslateStringNode"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "ComfyUI-FairLab"
|
"title_aux": "ComfyUI-FairLab"
|
||||||
@@ -4513,7 +4562,7 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/zyd232/ComfyUI-zyd232-Nodes": [
|
"https://github.com/zyd232/ComfyUI-zyd232-Nodes": [
|
||||||
[
|
[
|
||||||
"ImageCompareNode"
|
"zyd232 ImagesPixelsCompare"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "ComfyUI-zyd232-Nodes"
|
"title_aux": "ComfyUI-zyd232-Nodes"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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",
|
"author": "ai-business-hql",
|
||||||
"title": "comfyUIAgent [REMOVED]",
|
"title": "comfyUIAgent [REMOVED]",
|
||||||
|
|||||||
@@ -60,6 +60,156 @@
|
|||||||
"install_type": "git-clone",
|
"install_type": "git-clone",
|
||||||
"description": "gguf node for comfyui"
|
"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",
|
"author": "sh570655308",
|
||||||
"title": "ComfyUI-GigapixelAI",
|
"title": "ComfyUI-GigapixelAI",
|
||||||
@@ -538,164 +688,6 @@
|
|||||||
],
|
],
|
||||||
"install_type": "git-clone",
|
"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."
|
"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."
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -402,6 +402,8 @@
|
|||||||
"https://github.com/807502278/ComfyUI-WJNodes": [
|
"https://github.com/807502278/ComfyUI-WJNodes": [
|
||||||
[
|
[
|
||||||
"AdvCrop",
|
"AdvCrop",
|
||||||
|
"ApplyEasyOCR_batch",
|
||||||
|
"BilateralFilter",
|
||||||
"ColorSegmentation",
|
"ColorSegmentation",
|
||||||
"ColorSegmentation_v2",
|
"ColorSegmentation_v2",
|
||||||
"ComfyUIPath",
|
"ComfyUIPath",
|
||||||
@@ -429,8 +431,10 @@
|
|||||||
"VideoFade",
|
"VideoFade",
|
||||||
"WAS_Mask_Fill_Region_batch",
|
"WAS_Mask_Fill_Region_batch",
|
||||||
"any_data",
|
"any_data",
|
||||||
"array_element_count",
|
"array_count",
|
||||||
"bbox_restore_mask",
|
"bbox_restore_mask",
|
||||||
|
"get_image_data",
|
||||||
|
"load_EasyOCR_model",
|
||||||
"load_model_value",
|
"load_model_value",
|
||||||
"show_type",
|
"show_type",
|
||||||
"sort_images_batch"
|
"sort_images_batch"
|
||||||
@@ -1455,7 +1459,7 @@
|
|||||||
"WAVE GEN (JOV) \ud83c\udf0a"
|
"WAVE GEN (JOV) \ud83c\udf0a"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"author": "amorano",
|
"author": "Alexander G. Morano",
|
||||||
"description": "Integrates Webcam, MIDI, Spout and GLSL shader support. Animation",
|
"description": "Integrates Webcam, MIDI, Spout and GLSL shader support. Animation",
|
||||||
"nodename_pattern": " \\(JOV\\)$",
|
"nodename_pattern": " \\(JOV\\)$",
|
||||||
"title": "Jovimetrix",
|
"title": "Jovimetrix",
|
||||||
@@ -2086,8 +2090,11 @@
|
|||||||
[
|
[
|
||||||
"BriaEraser",
|
"BriaEraser",
|
||||||
"BriaGenFill",
|
"BriaGenFill",
|
||||||
|
"BriaTailoredGen",
|
||||||
"ShotByImageNode",
|
"ShotByImageNode",
|
||||||
"ShotByTextNode"
|
"ShotByTextNode",
|
||||||
|
"TailoredModelInfoNode",
|
||||||
|
"Text2ImageBaseNode"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "BRIA AI API nodes"
|
"title_aux": "BRIA AI API nodes"
|
||||||
@@ -2348,6 +2355,7 @@
|
|||||||
"Sigmas2 Add",
|
"Sigmas2 Add",
|
||||||
"Sigmas2 Mult",
|
"Sigmas2 Mult",
|
||||||
"SigmasPreview",
|
"SigmasPreview",
|
||||||
|
"SigmasSchedulePreview",
|
||||||
"StableCascade_StageB_Conditioning64",
|
"StableCascade_StageB_Conditioning64",
|
||||||
"StableCascade_StageC_VAEEncode_Exact",
|
"StableCascade_StageC_VAEEncode_Exact",
|
||||||
"StyleModelApplyAdvanced",
|
"StyleModelApplyAdvanced",
|
||||||
@@ -3788,6 +3796,14 @@
|
|||||||
"title_aux": "GraftingRayman"
|
"title_aux": "GraftingRayman"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/GraftingRayman/ComfyUI_QueueTube": [
|
||||||
|
[
|
||||||
|
"GR QueueTube"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "ComfyUI QueueTube"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
|
"https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [
|
||||||
[
|
[
|
||||||
"AuraSR.AuraSRUpscaler"
|
"AuraSR.AuraSRUpscaler"
|
||||||
@@ -5046,7 +5062,11 @@
|
|||||||
"Image Generator",
|
"Image Generator",
|
||||||
"Image2Video",
|
"Image2Video",
|
||||||
"KLingAI Preview Video",
|
"KLingAI Preview Video",
|
||||||
|
"Lip Sync",
|
||||||
|
"Lip Sync Audio Input",
|
||||||
|
"Lip Sync Text Input",
|
||||||
"Text2Video",
|
"Text2Video",
|
||||||
|
"Video Extend",
|
||||||
"Virtual Try On"
|
"Virtual Try On"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
@@ -5072,7 +5092,9 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/LAOGOU-666/Comfyui-LG_Relight": [
|
"https://github.com/LAOGOU-666/Comfyui-LG_Relight": [
|
||||||
[
|
[
|
||||||
"LG_Relight"
|
"LG_Relight",
|
||||||
|
"LG_Relight_Basic",
|
||||||
|
"LG_Relight_V2"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "Comfyui-LG_Relight"
|
"title_aux": "Comfyui-LG_Relight"
|
||||||
@@ -5354,6 +5376,16 @@
|
|||||||
"title_aux": "ComfyUI-Golden-Noise"
|
"title_aux": "ComfyUI-Golden-Noise"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/LucipherDev/ComfyUI-TangoFlux": [
|
||||||
|
[
|
||||||
|
"TangoFluxLoader",
|
||||||
|
"TangoFluxSampler",
|
||||||
|
"TangoFluxVAEDecodeAndPlay"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "ComfyUI-TangoFlux"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
|
"https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [
|
||||||
[
|
[
|
||||||
"ScenarioPrompt"
|
"ScenarioPrompt"
|
||||||
@@ -5770,6 +5802,7 @@
|
|||||||
"CycleInteger",
|
"CycleInteger",
|
||||||
"DirSelector",
|
"DirSelector",
|
||||||
"DoubleClipTextEncode",
|
"DoubleClipTextEncode",
|
||||||
|
"DoubleConditioningMixer",
|
||||||
"EmbeddingLoader",
|
"EmbeddingLoader",
|
||||||
"FilmCharDir",
|
"FilmCharDir",
|
||||||
"FlexEmptyLatent",
|
"FlexEmptyLatent",
|
||||||
@@ -5806,6 +5839,7 @@
|
|||||||
"PresetRemove",
|
"PresetRemove",
|
||||||
"PresetSave",
|
"PresetSave",
|
||||||
"PromptSwitcher",
|
"PromptSwitcher",
|
||||||
|
"QuadClipTextEncode",
|
||||||
"RandomString",
|
"RandomString",
|
||||||
"SDXLEmptyLatent",
|
"SDXLEmptyLatent",
|
||||||
"SavePrompt",
|
"SavePrompt",
|
||||||
@@ -7446,6 +7480,17 @@
|
|||||||
"title_aux": "ComfyUI-Gemini_Flash_2.0_Exp"
|
"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": [
|
"https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": [
|
||||||
[
|
[
|
||||||
"HunyuanVideoStyler"
|
"HunyuanVideoStyler"
|
||||||
@@ -8446,6 +8491,7 @@
|
|||||||
"tri3d_H_Stack_Images",
|
"tri3d_H_Stack_Images",
|
||||||
"tri3d_SaveImage_absolute",
|
"tri3d_SaveImage_absolute",
|
||||||
"tri3d_SaveText_absolute",
|
"tri3d_SaveText_absolute",
|
||||||
|
"tri3d_SmartBox",
|
||||||
"tri3d_Wait_And_Read_File",
|
"tri3d_Wait_And_Read_File",
|
||||||
"tri3d_extract_facer_mask",
|
"tri3d_extract_facer_mask",
|
||||||
"tri3d_fill_mask",
|
"tri3d_fill_mask",
|
||||||
@@ -8507,7 +8553,8 @@
|
|||||||
"TTP_condsetarea_merge_test",
|
"TTP_condsetarea_merge_test",
|
||||||
"TTP_condtobatch",
|
"TTP_condtobatch",
|
||||||
"TTP_text_mix",
|
"TTP_text_mix",
|
||||||
"TTPlanet_Tile_Preprocessor_Simple"
|
"TTPlanet_Tile_Preprocessor_Simple",
|
||||||
|
"TeaCacheHunyuanVideoSampler"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
"title_aux": "Comfyui_TTP_Toolset"
|
"title_aux": "Comfyui_TTP_Toolset"
|
||||||
@@ -10088,6 +10135,15 @@
|
|||||||
"title_aux": "ComfyUI-HigherBitDepthSaveImage"
|
"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": [
|
"https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": [
|
||||||
[
|
[
|
||||||
"ASVL"
|
"ASVL"
|
||||||
@@ -11297,6 +11353,24 @@
|
|||||||
"title_aux": "ComfyUI-Open-Sora-I2V"
|
"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": [
|
"https://github.com/bombless/comfyUI-RememberingUtils": [
|
||||||
[
|
[
|
||||||
"RememberLastSeed",
|
"RememberLastSeed",
|
||||||
@@ -11476,6 +11550,27 @@
|
|||||||
"title_aux": "ComfyUI Signal Processing"
|
"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": [
|
"https://github.com/caleboleary/ComfyUI-Arc2Face": [
|
||||||
[
|
[
|
||||||
"Arc2FaceEncoderLoader",
|
"Arc2FaceEncoderLoader",
|
||||||
@@ -14188,6 +14283,7 @@
|
|||||||
"DRMBT_LoadMedia",
|
"DRMBT_LoadMedia",
|
||||||
"DRMBT_MultiMinMax",
|
"DRMBT_MultiMinMax",
|
||||||
"DRMBT_String_Item_Menu",
|
"DRMBT_String_Item_Menu",
|
||||||
|
"DictToOutputs",
|
||||||
"DownloadAndLoadMiniCPMV",
|
"DownloadAndLoadMiniCPMV",
|
||||||
"DreambaitFolderOpener",
|
"DreambaitFolderOpener",
|
||||||
"DynamicDictionary",
|
"DynamicDictionary",
|
||||||
@@ -14202,6 +14298,7 @@
|
|||||||
"NumberPlusPlus",
|
"NumberPlusPlus",
|
||||||
"NumberRemap",
|
"NumberRemap",
|
||||||
"Qwen2AudioInstruct",
|
"Qwen2AudioInstruct",
|
||||||
|
"StringToDict",
|
||||||
"SwitchDuo",
|
"SwitchDuo",
|
||||||
"TextLineSelect",
|
"TextLineSelect",
|
||||||
"TextLinesToList",
|
"TextLinesToList",
|
||||||
@@ -14581,6 +14678,14 @@
|
|||||||
"title_aux": "ComfyUI-HunyuanVideoMultiLora"
|
"title_aux": "ComfyUI-HunyuanVideoMultiLora"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": [
|
||||||
|
[
|
||||||
|
"TeaCacheHunyuanVideoSampler_FOK"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "ComfyUI-TeaCacheHunyuanVideo"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/fairy-root/ComfyUI-GLHF": [
|
"https://github.com/fairy-root/ComfyUI-GLHF": [
|
||||||
[
|
[
|
||||||
"glhf_chat"
|
"glhf_chat"
|
||||||
@@ -15294,16 +15399,19 @@
|
|||||||
"AI Chooser",
|
"AI Chooser",
|
||||||
"Add Parameters",
|
"Add Parameters",
|
||||||
"AdvPromptEnhancer",
|
"AdvPromptEnhancer",
|
||||||
|
"Custom API Key",
|
||||||
"DalleImage",
|
"DalleImage",
|
||||||
"Enhancer",
|
"Enhancer",
|
||||||
"Image Mixer",
|
"Image Mixer",
|
||||||
"ImgTextSwitch",
|
"ImgTextSwitch",
|
||||||
|
"Load Remote Models",
|
||||||
"ParseJSON",
|
"ParseJSON",
|
||||||
"Plush-Exif Wrangler",
|
"Plush-Exif Wrangler",
|
||||||
"Random Image Output",
|
"Random Image Output",
|
||||||
"Random Mixer",
|
"Random Mixer",
|
||||||
"Random Output",
|
"Random Output",
|
||||||
"Tagger",
|
"Tagger",
|
||||||
|
"Text (Any)",
|
||||||
"Type Converter",
|
"Type Converter",
|
||||||
"mulTextSwitch"
|
"mulTextSwitch"
|
||||||
],
|
],
|
||||||
@@ -15495,6 +15603,38 @@
|
|||||||
"title_aux": "GFrbmg2"
|
"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": [
|
"https://github.com/griptape-ai/ComfyUI-Griptape": [
|
||||||
[
|
[
|
||||||
"Griptape Agent Config: Amazon Bedrock Drivers",
|
"Griptape Agent Config: Amazon Bedrock Drivers",
|
||||||
@@ -15840,7 +15980,7 @@
|
|||||||
"FolderCleaner",
|
"FolderCleaner",
|
||||||
"GGUFLoader",
|
"GGUFLoader",
|
||||||
"GeocodeTool",
|
"GeocodeTool",
|
||||||
"Image2Video",
|
"Image2Video_party",
|
||||||
"Images2Image",
|
"Images2Image",
|
||||||
"KG_csv_toolkit_developer",
|
"KG_csv_toolkit_developer",
|
||||||
"KG_csv_toolkit_user",
|
"KG_csv_toolkit_user",
|
||||||
@@ -17061,6 +17201,33 @@
|
|||||||
"title_aux": "Various ComfyUI Nodes by Type"
|
"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": [
|
"https://github.com/jax-explorer/comfyui-model-dynamic-loader": [
|
||||||
[
|
[
|
||||||
"ComfyOnlineSaveFile",
|
"ComfyOnlineSaveFile",
|
||||||
@@ -17114,6 +17281,15 @@
|
|||||||
"title_aux": "Faceless Node for ComfyUI"
|
"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": [
|
"https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [
|
||||||
[
|
[
|
||||||
"StreamDiffusion_Loader",
|
"StreamDiffusion_Loader",
|
||||||
@@ -18908,26 +19084,6 @@
|
|||||||
"title_aux": "ComfyUI-GG"
|
"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": [
|
"https://github.com/lenskikh/ComfyUI-Prompt-Worker": [
|
||||||
[
|
[
|
||||||
"Prompt Worker"
|
"Prompt Worker"
|
||||||
@@ -20637,6 +20793,15 @@
|
|||||||
"title_aux": "ComfyUI-MingNodes"
|
"title_aux": "ComfyUI-MingNodes"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"https://github.com/mira-6/comfyui-sasolver": [
|
||||||
|
[
|
||||||
|
"SamplerSASolver",
|
||||||
|
"SamplerSASolverExperimental"
|
||||||
|
],
|
||||||
|
{
|
||||||
|
"title_aux": "comfyui-sasolver"
|
||||||
|
}
|
||||||
|
],
|
||||||
"https://github.com/mirabarukaso/ComfyUI_Mira": [
|
"https://github.com/mirabarukaso/ComfyUI_Mira": [
|
||||||
[
|
[
|
||||||
"BooleanListInterpreter1",
|
"BooleanListInterpreter1",
|
||||||
@@ -21364,6 +21529,14 @@
|
|||||||
"title_aux": "ComfyUI-TextOnSegs"
|
"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": [
|
"https://github.com/noarche/sd-webui-color-enhance": [
|
||||||
[
|
[
|
||||||
"MMakerColorBlend",
|
"MMakerColorBlend",
|
||||||
@@ -21895,6 +22068,10 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/playbook3d/playbook3d-comfyui-nodes": [
|
"https://github.com/playbook3d/playbook3d-comfyui-nodes": [
|
||||||
[
|
[
|
||||||
|
"Beauty Pass Sequence",
|
||||||
|
"Depth Pass Sequence",
|
||||||
|
"Mask Pass Sequence",
|
||||||
|
"Outline Pass Sequence",
|
||||||
"Playbook Beauty",
|
"Playbook Beauty",
|
||||||
"Playbook Beauty Sequence",
|
"Playbook Beauty Sequence",
|
||||||
"Playbook Boolean",
|
"Playbook Boolean",
|
||||||
@@ -22692,6 +22869,7 @@
|
|||||||
"DTypeConverter",
|
"DTypeConverter",
|
||||||
"DeltaControl",
|
"DeltaControl",
|
||||||
"FPSMonitor",
|
"FPSMonitor",
|
||||||
|
"FastWebcamCapture",
|
||||||
"FloatControl",
|
"FloatControl",
|
||||||
"FloatSequence",
|
"FloatSequence",
|
||||||
"IntControl",
|
"IntControl",
|
||||||
@@ -24015,6 +24193,16 @@
|
|||||||
"title_aux": "Latent Mirror node for ComfyUI"
|
"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": [
|
"https://github.com/ssitu/ComfyUI_fabric": [
|
||||||
[
|
[
|
||||||
"FABRICPatchModel",
|
"FABRICPatchModel",
|
||||||
@@ -24150,11 +24338,13 @@
|
|||||||
],
|
],
|
||||||
"https://github.com/sugarkwork/comfyui_tag_fillter": [
|
"https://github.com/sugarkwork/comfyui_tag_fillter": [
|
||||||
[
|
[
|
||||||
|
"TagComparator",
|
||||||
"TagFilter",
|
"TagFilter",
|
||||||
"TagIf",
|
"TagIf",
|
||||||
"TagMerger",
|
"TagMerger",
|
||||||
"TagRemover",
|
"TagRemover",
|
||||||
"TagReplace",
|
"TagReplace",
|
||||||
|
"TagSelector",
|
||||||
"TagSwitcher"
|
"TagSwitcher"
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
@@ -25150,6 +25340,15 @@
|
|||||||
"title_aux": "WeiLin-ComfyUI-prompt-all-in-one"
|
"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": [
|
"https://github.com/wentao-uw/ComfyUI-template-matching": [
|
||||||
[
|
[
|
||||||
"IsMaskEmptyNode (template matching)",
|
"IsMaskEmptyNode (template matching)",
|
||||||
@@ -25258,6 +25457,7 @@
|
|||||||
"Prompt_Text",
|
"Prompt_Text",
|
||||||
"Save_Image",
|
"Save_Image",
|
||||||
"Text_Match",
|
"Text_Match",
|
||||||
|
"Whitening_Node",
|
||||||
"YOLOWorld_Match",
|
"YOLOWorld_Match",
|
||||||
"YOLO_Crop"
|
"YOLO_Crop"
|
||||||
],
|
],
|
||||||
@@ -25724,6 +25924,14 @@
|
|||||||
"title_aux": "Comfyui_Flux_Style_Adjust (Redux)"
|
"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": [
|
"https://github.com/yiwangsimple/ComfyUI_DW_Chat": [
|
||||||
[
|
[
|
||||||
"DeepSeekChatNode",
|
"DeepSeekChatNode",
|
||||||
|
|||||||
@@ -270,6 +270,27 @@
|
|||||||
],
|
],
|
||||||
"install_type": "git-clone",
|
"install_type": "git-clone",
|
||||||
"description": "A node for demonstration."
|
"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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "comfyui-manager"
|
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."
|
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.2"
|
||||||
license = { file = "LICENSE.txt" }
|
license = { file = "LICENSE.txt" }
|
||||||
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
|
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user