From df2f8eeb6ee04f1646021686d288a4b24eea79c1 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 14 Sep 2023 17:40:41 +0900 Subject: [PATCH 01/56] update DB --- custom-node-list.json | 20 ++++++++++---------- extension-node-map.json | 18 +++++++++++++++--- node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 18 +++++++++++++++--- 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index ecfbc625..8e7204a0 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1772,6 +1772,16 @@ "install_type": "git-clone", "description": "Node for generating almost seamless textures, based on similar setting from A1111." }, + { + "author": "chrisgoringe", + "title": "Variation seeds", + "reference": "https://github.com/chrisgoringe/cg-noise", + "files": [ + "https://github.com/chrisgoringe/cg-noise" + ], + "install_type": "git-clone", + "description": "Adds KSampler custom nodes with variation seed and variation strength." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", @@ -2033,16 +2043,6 @@ ], "install_type": "unzip", "description": "This is a node to convert an image into a CMYK Halftone dot image." - }, - { - "author": "chrisgoringe", - "title": "Variation seeds", - "reference": "https://github.com/chrisgoringe/cg-noise", - "files": [ - "https://github.com/chrisgoringe/cg-noise" - ], - "install_type": "git-clone", - "description": "Adds KSampler custom nodes with variation seed and variation strength." } ] } diff --git a/extension-node-map.json b/extension-node-map.json index b3785e8d..8b88e903 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1728,6 +1728,17 @@ "title_aux": "sc-node-comfyui" } ], + "https://github.com/chrisgoringe/cg-noise": [ + [ + "Hijack", + "KSampler Advanced with Variations", + "KSampler with Variations", + "UnHijack" + ], + { + "title_aux": "Variation seeds" + } + ], "https://github.com/city96/ComfyUI_DiT": [ [ "DiTCheckpointLoader", @@ -2558,9 +2569,7 @@ [ "AdaptiveCannyDetector_PoP", "AnyAspectRatio", - "ConditioningMultiplierPoP", "ConditioningMultiplier_PoP", - "ConditioningNormalizerPoP", "ConditioningNormalizer_PoP", "LoadImageResizer_PoP", "LoraStackLoader10_PoP", @@ -2744,6 +2753,7 @@ ], "https://github.com/spinagon/ComfyUI-seamless-tiling": [ [ + "CircularVAEDecode", "SeamlessTile" ], { @@ -3055,7 +3065,9 @@ "TdxhImageToSizeAdvanced", "TdxhIntInput", "TdxhLoraLoader", - "TdxhStringInput" + "TdxhOnOrOff", + "TdxhStringInput", + "TdxhStringInputTranslator" ], { "title_aux": "tdxh_node_comfyui" diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index b554206b..8f94eab7 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "chrisgoringe", + "title": "Variation seeds", + "reference": "https://github.com/chrisgoringe/cg-noise", + "files": [ + "https://github.com/chrisgoringe/cg-noise" + ], + "install_type": "git-clone", + "description": "Adds KSampler custom nodes with variation seed and variation strength." + }, { "author": "spinagon", "title": "Seamless tiling Node for ComfyUI", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index b3785e8d..8b88e903 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1728,6 +1728,17 @@ "title_aux": "sc-node-comfyui" } ], + "https://github.com/chrisgoringe/cg-noise": [ + [ + "Hijack", + "KSampler Advanced with Variations", + "KSampler with Variations", + "UnHijack" + ], + { + "title_aux": "Variation seeds" + } + ], "https://github.com/city96/ComfyUI_DiT": [ [ "DiTCheckpointLoader", @@ -2558,9 +2569,7 @@ [ "AdaptiveCannyDetector_PoP", "AnyAspectRatio", - "ConditioningMultiplierPoP", "ConditioningMultiplier_PoP", - "ConditioningNormalizerPoP", "ConditioningNormalizer_PoP", "LoadImageResizer_PoP", "LoraStackLoader10_PoP", @@ -2744,6 +2753,7 @@ ], "https://github.com/spinagon/ComfyUI-seamless-tiling": [ [ + "CircularVAEDecode", "SeamlessTile" ], { @@ -3055,7 +3065,9 @@ "TdxhImageToSizeAdvanced", "TdxhIntInput", "TdxhLoraLoader", - "TdxhStringInput" + "TdxhOnOrOff", + "TdxhStringInput", + "TdxhStringInputTranslator" ], { "title_aux": "tdxh_node_comfyui" From 1edce4353a9feb291e89d048776c0277c1ae70a9 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Fri, 15 Sep 2023 00:29:24 +0900 Subject: [PATCH 02/56] update DB --- extension-node-map.json | 3 +++ node_db/new/extension-node-map.json | 3 +++ 2 files changed, 6 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index 8b88e903..64c1ca79 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2327,6 +2327,7 @@ [ "Canny_Preprocessor_Provider_for_SEGS //Inspire", "DWPreprocessor_Provider_for_SEGS //Inspire", + "GlobalSeed //Inspire", "KSampler //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", @@ -2754,6 +2755,8 @@ "https://github.com/spinagon/ComfyUI-seamless-tiling": [ [ "CircularVAEDecode", + "MakeCircularVAE", + "OffsetImage", "SeamlessTile" ], { diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 8b88e903..64c1ca79 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2327,6 +2327,7 @@ [ "Canny_Preprocessor_Provider_for_SEGS //Inspire", "DWPreprocessor_Provider_for_SEGS //Inspire", + "GlobalSeed //Inspire", "KSampler //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", @@ -2754,6 +2755,8 @@ "https://github.com/spinagon/ComfyUI-seamless-tiling": [ [ "CircularVAEDecode", + "MakeCircularVAE", + "OffsetImage", "SeamlessTile" ], { From 0eff1e90756161c28a64853580abd3d4eb938400 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 15 Sep 2023 12:45:06 +0900 Subject: [PATCH 03/56] update DB --- extension-node-map.json | 12 +++++++++++- node_db/new/extension-node-map.json | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index 64c1ca79..6bb957f1 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1579,6 +1579,8 @@ "ChameleonMask", "CheckpointLoader (dirty)", "CheckpointLoaderSimple (dirty)", + "Color (RGB)", + "Color (hexadecimal)", "Color Clip", "Color Clip ADE20k", "CondList", @@ -1591,10 +1593,12 @@ "Contours", "ControlNetHadamard", "ControlNetHadamard (manual)", + "ConvertImg", "CreateRequestMetadata", "Draw Contour(s)", "EqualizeHistogram", "Filter Contour", + "FindThreshold", "FlatLatentsIntoSingleGrid", "Framed Mask Grab Cut", "Framed Mask Grab Cut 2", @@ -1609,6 +1613,8 @@ "MaskGrid N KSamplers Advanced", "Merge Latent Batch Gridwise", "MonoMerge", + "MorphologicOperation", + "MorphologicSkeletoning", "OtsuThreshold", "Rect Grab Cut", "Repeat Into Grid (image)", @@ -2849,7 +2855,11 @@ ], "https://github.com/szhublox/ambw_comfyui": [ [ - "Auto Merge Block Weighted" + "Auto Merge Block Weighted", + "CLIPMergeSimple", + "CheckpointSave", + "ModelMergeBlocks", + "ModelMergeSimple" ], { "title_aux": "Auto-MBW" diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 64c1ca79..6bb957f1 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1579,6 +1579,8 @@ "ChameleonMask", "CheckpointLoader (dirty)", "CheckpointLoaderSimple (dirty)", + "Color (RGB)", + "Color (hexadecimal)", "Color Clip", "Color Clip ADE20k", "CondList", @@ -1591,10 +1593,12 @@ "Contours", "ControlNetHadamard", "ControlNetHadamard (manual)", + "ConvertImg", "CreateRequestMetadata", "Draw Contour(s)", "EqualizeHistogram", "Filter Contour", + "FindThreshold", "FlatLatentsIntoSingleGrid", "Framed Mask Grab Cut", "Framed Mask Grab Cut 2", @@ -1609,6 +1613,8 @@ "MaskGrid N KSamplers Advanced", "Merge Latent Batch Gridwise", "MonoMerge", + "MorphologicOperation", + "MorphologicSkeletoning", "OtsuThreshold", "Rect Grab Cut", "Repeat Into Grid (image)", @@ -2849,7 +2855,11 @@ ], "https://github.com/szhublox/ambw_comfyui": [ [ - "Auto Merge Block Weighted" + "Auto Merge Block Weighted", + "CLIPMergeSimple", + "CheckpointSave", + "ModelMergeBlocks", + "ModelMergeSimple" ], { "title_aux": "Auto-MBW" From deb327d910e49ab78c3889575523ad2d333f8f79 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 08:43:32 +0900 Subject: [PATCH 04/56] update DB --- extension-node-map.json | 10 ++++++---- node_db/new/extension-node-map.json | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index 6bb957f1..4c39c290 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -42,9 +42,8 @@ "https://github.com/ArtVentureX/comfyui-animatediff": [ [ "AnimateDiffCombine", - "AnimateDiffLoader", - "AnimateDiffLoader_v2", - "AnimateDiffUnload" + "AnimateDiffModuleLoader", + "AnimateDiffSampler" ], { "title_aux": "AnimateDiff" @@ -1582,7 +1581,9 @@ "Color (RGB)", "Color (hexadecimal)", "Color Clip", + "Color Clip (advanced)", "Color Clip ADE20k", + "ColorDictionary", "CondList", "Conditioning (combine multiple)", "Conditioning (combine selective)", @@ -1594,10 +1595,12 @@ "ControlNetHadamard", "ControlNetHadamard (manual)", "ConvertImg", + "CopyMakeBorder", "CreateRequestMetadata", "Draw Contour(s)", "EqualizeHistogram", "Filter Contour", + "FindComplementaryColor", "FindThreshold", "FlatLatentsIntoSingleGrid", "Framed Mask Grab Cut", @@ -1838,7 +1841,6 @@ "https://github.com/cubiq/ComfyUI_IPAdapter_plus": [ [ "IPAdapterApply", - "IPAdapterCLIPVisionEncode", "IPAdapterModelLoader" ], { diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 6bb957f1..4c39c290 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -42,9 +42,8 @@ "https://github.com/ArtVentureX/comfyui-animatediff": [ [ "AnimateDiffCombine", - "AnimateDiffLoader", - "AnimateDiffLoader_v2", - "AnimateDiffUnload" + "AnimateDiffModuleLoader", + "AnimateDiffSampler" ], { "title_aux": "AnimateDiff" @@ -1582,7 +1581,9 @@ "Color (RGB)", "Color (hexadecimal)", "Color Clip", + "Color Clip (advanced)", "Color Clip ADE20k", + "ColorDictionary", "CondList", "Conditioning (combine multiple)", "Conditioning (combine selective)", @@ -1594,10 +1595,12 @@ "ControlNetHadamard", "ControlNetHadamard (manual)", "ConvertImg", + "CopyMakeBorder", "CreateRequestMetadata", "Draw Contour(s)", "EqualizeHistogram", "Filter Contour", + "FindComplementaryColor", "FindThreshold", "FlatLatentsIntoSingleGrid", "Framed Mask Grab Cut", @@ -1838,7 +1841,6 @@ "https://github.com/cubiq/ComfyUI_IPAdapter_plus": [ [ "IPAdapterApply", - "IPAdapterCLIPVisionEncode", "IPAdapterModelLoader" ], { From fca70213ffc6cbde29abaf8214de3cef6fd076aa Mon Sep 17 00:00:00 2001 From: tusharbhutt Date: Fri, 15 Sep 2023 20:08:24 -0600 Subject: [PATCH 05/56] Update custom-node-list.json Added Endless Nodes --- node_db/new/custom-node-list.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 8f94eab7..7c9e8848 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -912,5 +912,15 @@ "install_type": "git-clone", "description": "Nodes: EagleImageNode" } + { + "author": "tudharbhutt", + "title": "Endless Nodes", + "reference": "https://github.com/tusharbhutt/Endless-Nodes", + "files": [ + "https://github.com/tusharbhutt/Endless-Nodes" + ], + "install_type": "git-clone", + "description": "A small set of nodes I created for various numerical and text inputs and outputs." + } ] } From 2105615284c17674544a300dd1cf9543fa30cc49 Mon Sep 17 00:00:00 2001 From: tusharbhutt Date: Fri, 15 Sep 2023 20:10:04 -0600 Subject: [PATCH 06/56] Update custom-node-list.json --- node_db/new/custom-node-list.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 7c9e8848..1dc4b031 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -913,7 +913,7 @@ "description": "Nodes: EagleImageNode" } { - "author": "tudharbhutt", + "author": "tusharbhutt", "title": "Endless Nodes", "reference": "https://github.com/tusharbhutt/Endless-Nodes", "files": [ @@ -921,6 +921,6 @@ ], "install_type": "git-clone", "description": "A small set of nodes I created for various numerical and text inputs and outputs." - } + } ] } From 003a11cda13758aa40c60913817add9cab0234fa Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 14:10:56 +0900 Subject: [PATCH 07/56] update DB --- custom-node-list.json | 10 ++++++++++ node_db/new/custom-node-list.json | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 8e7204a0..2c49bfc7 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1782,6 +1782,16 @@ "install_type": "git-clone", "description": "Adds KSampler custom nodes with variation seed and variation strength." }, + { + "author": "tusharbhutt", + "title": "Endless Nodes", + "reference": "https://github.com/tusharbhutt/Endless-Nodes", + "files": [ + "https://github.com/tusharbhutt/Endless-Nodes" + ], + "install_type": "git-clone", + "description": "A small set of nodes I created for various numerical and text inputs and outputs." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 1dc4b031..4250b246 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "tusharbhutt", + "title": "Endless Nodes", + "reference": "https://github.com/tusharbhutt/Endless-Nodes", + "files": [ + "https://github.com/tusharbhutt/Endless-Nodes" + ], + "install_type": "git-clone", + "description": "A small set of nodes I created for various numerical and text inputs and outputs." + }, { "author": "chrisgoringe", "title": "Variation seeds", @@ -912,15 +922,5 @@ "install_type": "git-clone", "description": "Nodes: EagleImageNode" } - { - "author": "tusharbhutt", - "title": "Endless Nodes", - "reference": "https://github.com/tusharbhutt/Endless-Nodes", - "files": [ - "https://github.com/tusharbhutt/Endless-Nodes" - ], - "install_type": "git-clone", - "description": "A small set of nodes I created for various numerical and text inputs and outputs." - } ] } From 095ebdd9cc68e1e5d0142d0e8bb743fea4e91b95 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 14:26:47 +0900 Subject: [PATCH 08/56] update DB --- extension-node-map.json | 26 ++++++++++++++++++-------- node_db/new/extension-node-map.json | 26 ++++++++++++++++++-------- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index 4c39c290..c92cbfda 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -166,14 +166,6 @@ "title_aux": "ComfyUI_Ib_CustomNodes" } ], - "https://github.com/Clybius/ComfyUI-Latent-Modifiers/raw/main/sampler_mega_modifier.py": [ - [ - "Latent Diffusion Mega Modifier" - ], - { - "title_aux": "ComfyUI-Latent-Modifiers" - } - ], "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": [ [ "ABGRemover", @@ -1436,6 +1428,7 @@ "CSV Generator [Dream]", "Calculation [Dream]", "Common Frame Dimensions [Dream]", + "Compare Palettes [Dream]", "FFMPEG Video Encoder [Dream]", "File Count [Dream]", "Finalize Prompt [Dream]", @@ -1445,6 +1438,9 @@ "Frame Counter (Simple) [Dream]", "Frame Counter Info [Dream]", "Frame Counter Offset [Dream]", + "Image Brightness Adjustment [Dream]", + "Image Color Shift [Dream]", + "Image Contrast Adjustment [Dream]", "Image Motion [Dream]", "Image Sequence Blend [Dream]", "Image Sequence Loader [Dream]", @@ -2935,6 +2931,20 @@ "title_aux": "Hakkun-ComfyUI-nodes" } ], + "https://github.com/tusharbhutt/Endless-Nodes": [ + [ + "Endless Nodes Six Input Text Switch", + "Endless Nodes Six Integer IO Switch", + "Endless Nodes Six Integer IO Widget" + ], + { + "author": "Endless Sea of Stars", + "description": "A small set of nodes I created for various numerical and text inputs.", + "nickname": "Endless Nodes", + "title": "Endless Nodes", + "title_aux": "Endless Nodes" + } + ], "https://github.com/twri/sdxl_prompt_styler": [ [ "SDXLPromptStyler", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 4c39c290..c92cbfda 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -166,14 +166,6 @@ "title_aux": "ComfyUI_Ib_CustomNodes" } ], - "https://github.com/Clybius/ComfyUI-Latent-Modifiers/raw/main/sampler_mega_modifier.py": [ - [ - "Latent Diffusion Mega Modifier" - ], - { - "title_aux": "ComfyUI-Latent-Modifiers" - } - ], "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": [ [ "ABGRemover", @@ -1436,6 +1428,7 @@ "CSV Generator [Dream]", "Calculation [Dream]", "Common Frame Dimensions [Dream]", + "Compare Palettes [Dream]", "FFMPEG Video Encoder [Dream]", "File Count [Dream]", "Finalize Prompt [Dream]", @@ -1445,6 +1438,9 @@ "Frame Counter (Simple) [Dream]", "Frame Counter Info [Dream]", "Frame Counter Offset [Dream]", + "Image Brightness Adjustment [Dream]", + "Image Color Shift [Dream]", + "Image Contrast Adjustment [Dream]", "Image Motion [Dream]", "Image Sequence Blend [Dream]", "Image Sequence Loader [Dream]", @@ -2935,6 +2931,20 @@ "title_aux": "Hakkun-ComfyUI-nodes" } ], + "https://github.com/tusharbhutt/Endless-Nodes": [ + [ + "Endless Nodes Six Input Text Switch", + "Endless Nodes Six Integer IO Switch", + "Endless Nodes Six Integer IO Widget" + ], + { + "author": "Endless Sea of Stars", + "description": "A small set of nodes I created for various numerical and text inputs.", + "nickname": "Endless Nodes", + "title": "Endless Nodes", + "title_aux": "Endless Nodes" + } + ], "https://github.com/twri/sdxl_prompt_styler": [ [ "SDXLPromptStyler", From ea35626a88c9caef38ba86cb757c86c44c69f99d Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 14:30:15 +0900 Subject: [PATCH 09/56] update DB --- node_db/dev/custom-node-list.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index e341c19a..0170554f 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -10,6 +10,16 @@ ], "install_type": "git-clone", "description": "A LaMa prerocessor for ComfyUi. You can find the processor in image/processors.

NOTE: BEWARE THIS EXTENSION IS NOT FINISHED YET. At the moment it returns a preprocessed image that still needs to be injected with a custom controlnet implementation(missing)

" + }, + { + "author": "Dr.Lt.Data", + "title": "ComfyUI-Workflow-Component [WIP]", + "reference": "https://github.com/ltdrdata/ComfyUI-Workflow-Component", + "files": [ + "https://github.com/ltdrdata/ComfyUI-Workflow-Component" + ], + "install_type": "git-clone", + "description": "This extension provides the capability to use ComfyUI Workflow as a component and the ability to use the Image Refiner functionality based on components. NOTE: This is an experimental extension feature with no consideration for backward compatibility and can be highly unstable." } ] } \ No newline at end of file From 79f9626338665f63aa0ed1ddc6782c13d71952b9 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 14:31:47 +0900 Subject: [PATCH 10/56] update DB --- channels.list | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/channels.list b/channels.list index 86360a21..b00b66ca 100644 --- a/channels.list +++ b/channels.list @@ -1,4 +1,5 @@ default::https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main recent::https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/node_db/new legacy::https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/node_db/legacy -forked::https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/node_db/forked \ No newline at end of file +forked::https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/node_db/forked +dev::https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/node_db/dev \ No newline at end of file From f4b7bd24641cf44dcbbaed19d058c1229a1ddef1 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 16:29:00 +0900 Subject: [PATCH 11/56] update DB --- extension-node-map.json | 2 ++ node_db/new/extension-node-map.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index c92cbfda..8e16216e 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2331,7 +2331,9 @@ [ "Canny_Preprocessor_Provider_for_SEGS //Inspire", "DWPreprocessor_Provider_for_SEGS //Inspire", + "FakeScribblePreprocessor_Provider_for_SEGS //Inspire", "GlobalSeed //Inspire", + "HEDPreprocessor_Provider_for_SEGS //Inspire", "KSampler //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index c92cbfda..8e16216e 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2331,7 +2331,9 @@ [ "Canny_Preprocessor_Provider_for_SEGS //Inspire", "DWPreprocessor_Provider_for_SEGS //Inspire", + "FakeScribblePreprocessor_Provider_for_SEGS //Inspire", "GlobalSeed //Inspire", + "HEDPreprocessor_Provider_for_SEGS //Inspire", "KSampler //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", From e0f8a4c0d9ae9001f6aa2205b11a13767e391778 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 16 Sep 2023 23:07:48 +0900 Subject: [PATCH 12/56] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 8 ++++++++ node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 8 ++++++++ 4 files changed, 36 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 2c49bfc7..d41f2fe5 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1404,6 +1404,16 @@ "install_type": "git-clone", "description": "Pause image generation when GPU temperature exceeds threshold." }, + { + "author": "meap158", + "title": "ComfyUI-Prompt-Expansion", + "reference": "https://github.com/meap158/ComfyUI-Prompt-Expansion", + "files": [ + "https://github.com/meap158/ComfyUI-Prompt-Expansion" + ], + "install_type": "git-clone", + "description": "Dynamic prompt expansion, powered by GPT-2 locally on your device." + }, { "author": "TeaCrab", "title": "ComfyUI-TeaNodes", diff --git a/extension-node-map.json b/extension-node-map.json index 8e16216e..e9927a6e 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2403,6 +2403,14 @@ "title_aux": "GPU temperature protection" } ], + "https://github.com/meap158/ComfyUI-Prompt-Expansion": [ + [ + "PromptExpansion" + ], + { + "title_aux": "ComfyUI-Prompt-Expansion" + } + ], "https://github.com/melMass/comfy_mtb": [ [ "Animation Builder (mtb)", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 4250b246..900983c0 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "meap158", + "title": "ComfyUI-Prompt-Expansion", + "reference": "https://github.com/meap158/ComfyUI-Prompt-Expansion", + "files": [ + "https://github.com/meap158/ComfyUI-Prompt-Expansion" + ], + "install_type": "git-clone", + "description": "Dynamic prompt expansion, powered by GPT-2 locally on your device." + }, { "author": "tusharbhutt", "title": "Endless Nodes", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 8e16216e..e9927a6e 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2403,6 +2403,14 @@ "title_aux": "GPU temperature protection" } ], + "https://github.com/meap158/ComfyUI-Prompt-Expansion": [ + [ + "PromptExpansion" + ], + { + "title_aux": "ComfyUI-Prompt-Expansion" + } + ], "https://github.com/melMass/comfy_mtb": [ [ "Animation Builder (mtb)", From 322227f6dd8cc0f7bd4fc60aa1e4f86ad8f8b417 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 17 Sep 2023 11:02:03 +0900 Subject: [PATCH 13/56] fix: proper display for tqdm --- __init__.py | 2 +- extension-node-map.json | 4 +++- node_db/new/extension-node-map.json | 4 +++- prestartup_script.py | 14 ++++++++++++-- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index 88853417..b2e081eb 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.26.2)") +print("### Loading: ComfyUI-Manager (V0.27)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/extension-node-map.json b/extension-node-map.json index e9927a6e..a656b9e9 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1384,7 +1384,8 @@ "https://github.com/Zuellni/ComfyUI-ExLlama": [ [ "ZuellniExLlamaGenerator", - "ZuellniExLlamaLoader" + "ZuellniExLlamaLoader", + "ZuellniExLlamaPreviewer" ], { "title_aux": "ComfyUI-ExLlama" @@ -3014,6 +3015,7 @@ ], "https://github.com/wolfden/ComfyUi_PromptStylers": [ [ + "SDXLPromptStylerAll", "SDXLPromptStylerHorror", "SDXLPromptStylerMisc", "SDXLPromptStylerbyArtist", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index e9927a6e..a656b9e9 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1384,7 +1384,8 @@ "https://github.com/Zuellni/ComfyUI-ExLlama": [ [ "ZuellniExLlamaGenerator", - "ZuellniExLlamaLoader" + "ZuellniExLlamaLoader", + "ZuellniExLlamaPreviewer" ], { "title_aux": "ComfyUI-ExLlama" @@ -3014,6 +3015,7 @@ ], "https://github.com/wolfden/ComfyUi_PromptStylers": [ [ + "SDXLPromptStylerAll", "SDXLPromptStylerHorror", "SDXLPromptStylerMisc", "SDXLPromptStylerbyArtist", diff --git a/prestartup_script.py b/prestartup_script.py index 6c4afe02..11eb2e4d 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -4,6 +4,7 @@ import subprocess import sys import atexit import threading +import re # Logger setup if os.path.exists("comfyui.log"): @@ -14,6 +15,7 @@ if os.path.exists("comfyui.log"): original_stdout = sys.stdout original_stderr = sys.stderr +tqdm = r'\d+%.*\[(.*?)\]' class Logger: def __init__(self, filename): @@ -22,8 +24,16 @@ class Logger: def write(self, message): self.file.write(message) self.file.flush() - original_stdout.write(message) - original_stdout.flush() + + match = re.search(tqdm, message) + if match: + message = re.sub(r'([#|])\d', r'\1▌', message) + message = re.sub('#', '█', message) + original_stderr.write(message) + original_stderr.flush() + else: + original_stdout.write(message) + original_stdout.flush() def flush(self): self.file.flush() From 7bb05055ccb73b8df384c7afec3019201c179b1a Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 17 Sep 2023 11:18:58 +0900 Subject: [PATCH 14/56] update DB --- extension-node-map.json | 1 - node_db/new/extension-node-map.json | 1 - scanner.py | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index a656b9e9..2ea5bafc 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2866,7 +2866,6 @@ [ "Auto Merge Block Weighted", "CLIPMergeSimple", - "CheckpointSave", "ModelMergeBlocks", "ModelMergeSimple" ], diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index a656b9e9..2ea5bafc 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2866,7 +2866,6 @@ [ "Auto Merge Block Weighted", "CLIPMergeSimple", - "CheckpointSave", "ModelMergeBlocks", "ModelMergeSimple" ], diff --git a/scanner.py b/scanner.py index 1f774b2d..147aa11a 100644 --- a/scanner.py +++ b/scanner.py @@ -4,7 +4,7 @@ import json from git import Repo from torchvision.datasets.utils import download_url -builtin_nodes = ["KSampler"] +builtin_nodes = ["KSampler", "CheckpointSave"] def scan_in_file(filename): try: From 67881a41473a24e3a3ee67b4d8afa5fae570393d Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 17 Sep 2023 19:37:06 +0900 Subject: [PATCH 15/56] update DB --- extension-node-map.json | 9 +++++++++ node_db/new/extension-node-map.json | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index 2ea5bafc..238a8a1c 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1434,6 +1434,7 @@ "File Count [Dream]", "Finalize Prompt [Dream]", "Float Input [Dream]", + "Float to Log Entry [Dream]", "Frame Count Calculator [Dream]", "Frame Counter (Directory) [Dream]", "Frame Counter (Simple) [Dream]", @@ -1448,7 +1449,11 @@ "Image Sequence Saver [Dream]", "Image Sequence Tweening [Dream]", "Int Input [Dream]", + "Int to Log Entry [Dream]", + "Laboratory [Dream]", "Linear Curve [Dream]", + "Log Entry Joiner [Dream]", + "Log File [Dream]", "Noise from Area Palettes [Dream]", "Noise from Palette [Dream]", "Palette Color Align [Dream]", @@ -1459,6 +1464,7 @@ "Sine Curve [Dream]", "Smooth Event Curve [Dream]", "String Input [Dream]", + "String to Log Entry [Dream]", "Text Input [Dream]", "Triangle Curve [Dream]", "Triangle Event Curve [Dream]", @@ -3040,11 +3046,14 @@ "SDXLPromptStylerbyTimeofDay", "SDXLPromptStylerbyWyvern", "SDXLPromptbyCelticArt", + "SDXLPromptbyContemporaryNordicArt", "SDXLPromptbyFashionArt", "SDXLPromptbyGothicRevival", "SDXLPromptbyIrishFolkArt", + "SDXLPromptbyRomanticNationalismArt", "SDXLPromptbySportsArt", "SDXLPromptbyStreetArt", + "SDXLPromptbyVikingArt", "SDXLPromptbyWildlifeArt" ], { diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 2ea5bafc..238a8a1c 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1434,6 +1434,7 @@ "File Count [Dream]", "Finalize Prompt [Dream]", "Float Input [Dream]", + "Float to Log Entry [Dream]", "Frame Count Calculator [Dream]", "Frame Counter (Directory) [Dream]", "Frame Counter (Simple) [Dream]", @@ -1448,7 +1449,11 @@ "Image Sequence Saver [Dream]", "Image Sequence Tweening [Dream]", "Int Input [Dream]", + "Int to Log Entry [Dream]", + "Laboratory [Dream]", "Linear Curve [Dream]", + "Log Entry Joiner [Dream]", + "Log File [Dream]", "Noise from Area Palettes [Dream]", "Noise from Palette [Dream]", "Palette Color Align [Dream]", @@ -1459,6 +1464,7 @@ "Sine Curve [Dream]", "Smooth Event Curve [Dream]", "String Input [Dream]", + "String to Log Entry [Dream]", "Text Input [Dream]", "Triangle Curve [Dream]", "Triangle Event Curve [Dream]", @@ -3040,11 +3046,14 @@ "SDXLPromptStylerbyTimeofDay", "SDXLPromptStylerbyWyvern", "SDXLPromptbyCelticArt", + "SDXLPromptbyContemporaryNordicArt", "SDXLPromptbyFashionArt", "SDXLPromptbyGothicRevival", "SDXLPromptbyIrishFolkArt", + "SDXLPromptbyRomanticNationalismArt", "SDXLPromptbySportsArt", "SDXLPromptbyStreetArt", + "SDXLPromptbyVikingArt", "SDXLPromptbyWildlifeArt" ], { From 4caa5362b104a15caa34ad1370e1518a4ffe6a36 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 17 Sep 2023 19:43:07 +0900 Subject: [PATCH 16/56] update DB --- custom-node-list.json | 12 +----------- node_db/new/custom-node-list.json | 10 ---------- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index d41f2fe5..519d8340 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1622,7 +1622,7 @@ "https://github.com/Tropfchen/ComfyUI-Embedding_Picker" ], "install_type": "git-clone", - "description": "Nodes: Embedding Picker. Tired of forgetting and misspelling often weird names of embeddings you use? Or perhaps you use only one, cause you forgot you have tens of them installed? Try this." + "description": "Tired of forgetting and misspelling often weird names of embeddings you use? Or perhaps you use only one, cause you forgot you have tens of them installed?" }, { "author": "Acly", @@ -1722,16 +1722,6 @@ "install_type": "git-clone", "description": "Manage models: browsing, donwload and delete." }, - { - "author": "Tropfchen", - "title": "Embedding Picker", - "reference": "https://github.com/Tropfchen/ComfyUI-Embedding_Picker", - "files": [ - "https://github.com/Tropfchen/ComfyUI-Embedding_Picker" - ], - "install_type": "git-clone", - "description": "Tired of forgetting and misspelling often weird names of embeddings you use? Or perhaps you use only one, cause you forgot you have tens of them installed?" - }, { "author": "ali1234", "title": "comfyui-job-iterator", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 900983c0..bd34f2a8 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -391,16 +391,6 @@ "install_type": "git-clone", "description": "Nodes:Attention couple. This is a custom node that manipulates region-specific prompts. While vanilla ComfyUI employs an area specification method based on latent couples, this node divides regions using attention layers within UNet." }, - { - "author": "Tropfchen", - "title": "Embedding Picker", - "reference": "https://github.com/Tropfchen/ComfyUI-Embedding_Picker", - "files": [ - "https://github.com/Tropfchen/ComfyUI-Embedding_Picker" - ], - "install_type": "git-clone", - "description": "Nodes: Embedding Picker. Tired of forgetting and misspelling often weird names of embeddings you use? Or perhaps you use only one, cause you forgot you have tens of them installed? Try this." - }, { "author": "Vrahn", "title": "ComfyUI-MasaCtrl-Node", From 9109fbce1c34c22a0f7ca553c35ef1c4075071bc Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 17 Sep 2023 22:26:24 +0900 Subject: [PATCH 17/56] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 9 +++++++++ node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 9 +++++++++ 4 files changed, 38 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 519d8340..98f73c28 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1792,6 +1792,16 @@ "install_type": "git-clone", "description": "A small set of nodes I created for various numerical and text inputs and outputs." }, + { + "author": "spacepxl", + "title": "ComfyUI-HQ-Image-Save", + "reference": "https://github.com/spacepxl/ComfyUI-HQ-Image-Save", + "files": [ + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save" + ], + "install_type": "git-clone", + "description": "Add Image Save nodes for TIFF 16 bit and EXR 32 bit formats. Probably only useful if you're applying a LUT or other color corrections, and care about preserving as much color accuracy as possible." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index 238a8a1c..fb5646ca 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2773,6 +2773,15 @@ "title_aux": "nui suite" } ], + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [ + [ + "SaveEXR", + "SaveTiff" + ], + { + "title_aux": "ComfyUI-HQ-Image-Save" + } + ], "https://github.com/spinagon/ComfyUI-seamless-tiling": [ [ "CircularVAEDecode", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index bd34f2a8..49f045a5 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "spacepxl", + "title": "ComfyUI-HQ-Image-Save", + "reference": "https://github.com/spacepxl/ComfyUI-HQ-Image-Save", + "files": [ + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save" + ], + "install_type": "git-clone", + "description": "Add Image Save nodes for TIFF 16 bit and EXR 32 bit formats. Probably only useful if you're applying a LUT or other color corrections, and care about preserving as much color accuracy as possible." + }, { "author": "meap158", "title": "ComfyUI-Prompt-Expansion", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 238a8a1c..fb5646ca 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2773,6 +2773,15 @@ "title_aux": "nui suite" } ], + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [ + [ + "SaveEXR", + "SaveTiff" + ], + { + "title_aux": "ComfyUI-HQ-Image-Save" + } + ], "https://github.com/spinagon/ComfyUI-seamless-tiling": [ [ "CircularVAEDecode", From 75463957033a0f34c214f24191c05b9bbef5336d Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 17 Sep 2023 22:46:48 +0900 Subject: [PATCH 18/56] update DB --- extension-node-map.json | 6 ++++++ node_db/new/extension-node-map.json | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index fb5646ca..d571c217 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -3114,12 +3114,18 @@ ], "https://github.com/youyegit/tdxh_node_comfyui": [ [ + "TdxhBoolNumber", + "TdxhClipVison", + "TdxhControlNetApply", + "TdxhControlNetProcessor", "TdxhFloatInput", "TdxhImageToSize", "TdxhImageToSizeAdvanced", + "TdxhImg2ImgLatent", "TdxhIntInput", "TdxhLoraLoader", "TdxhOnOrOff", + "TdxhReference", "TdxhStringInput", "TdxhStringInputTranslator" ], diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index fb5646ca..d571c217 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -3114,12 +3114,18 @@ ], "https://github.com/youyegit/tdxh_node_comfyui": [ [ + "TdxhBoolNumber", + "TdxhClipVison", + "TdxhControlNetApply", + "TdxhControlNetProcessor", "TdxhFloatInput", "TdxhImageToSize", "TdxhImageToSizeAdvanced", + "TdxhImg2ImgLatent", "TdxhIntInput", "TdxhLoraLoader", "TdxhOnOrOff", + "TdxhReference", "TdxhStringInput", "TdxhStringInputTranslator" ], From 6f34fffc18fcaf47293cd0656be22592d4641825 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 18 Sep 2023 11:26:42 +0900 Subject: [PATCH 19/56] update DB --- extension-node-map.json | 23 +++++-- node_db/new/custom-node-list.json | 100 ---------------------------- node_db/new/extension-node-map.json | 23 +++++-- 3 files changed, 36 insertions(+), 110 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index d571c217..6b35371c 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -345,6 +345,9 @@ "DWPreprocessor", "FakeScribblePreprocessor", "HEDPreprocessor", + "HintImageEnchance", + "ImageGenResolutionFromImage", + "ImageGenResolutionFromLatent", "InpaintPreprocessor", "LeReS-DepthMapPreprocessor", "LineArtPreprocessor", @@ -357,6 +360,8 @@ "OneFormer-COCO-SemSegPreprocessor", "OpenposePreprocessor", "PiDiNetPreprocessor", + "PixelPerfectResolution", + "RaftOpticalFlowPreprocessor", "SAMPreprocessor", "ScribblePreprocessor", "Scribble_XDoG_Preprocessor", @@ -791,6 +796,7 @@ "https://github.com/RockOfFire/CR_Animation_Nodes": [ [ "CR Central Schedule", + "CR Combine Schedules", "CR Current Frame", "CR Cycle Images", "CR Cycle Images Simple", @@ -813,15 +819,17 @@ "CR Keyframe List", "CR LoRA List", "CR Load Animation Frames", + "CR Load Schedule From File", + "CR Load Scheduled ControlNets", "CR Load Scheduled LoRAs", "CR Load Scheduled Models", "CR Model List", - "CR Output Schedule List", "CR Output Schedule To File", "CR Prompt List", "CR Prompt List Keyframes", "CR Prompt Text", "CR Schedule Input Switch", + "CR Schedule To ScheduleList", "CR Simple Prompt List", "CR Simple Prompt List Keyframes", "CR Simple Schedule", @@ -1034,7 +1042,8 @@ ], "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [ [ - "tri3d-extract-hand" + "tri3d-extract-hand", + "tri3d-fuzzification" ], { "title_aux": "tri3d-comfyui-nodes" @@ -1602,6 +1611,7 @@ "CreateRequestMetadata", "Draw Contour(s)", "EqualizeHistogram", + "EstimateColorInterval (hsv)", "Filter Contour", "FindComplementaryColor", "FindThreshold", @@ -1612,8 +1622,10 @@ "Get Models", "Get Prompt", "HypernetworkLoader (dirty)", + "InRange (hsv)", "Inpaint", "Input/String to Int Array", + "KMeansColor", "Load 64 Encoded Image", "LoraLoader (dirty)", "MaskGrid N KSamplers Advanced", @@ -1622,6 +1634,7 @@ "MorphologicOperation", "MorphologicSkeletoning", "OtsuThreshold", + "RGB to HSV", "Rect Grab Cut", "Repeat Into Grid (image)", "Repeat Into Grid (latent)", @@ -2964,9 +2977,9 @@ ], { "author": "Endless Sea of Stars", - "description": "A small set of nodes I created for various numerical and text inputs.", - "nickname": "Endless Nodes", - "title": "Endless Nodes", + "description": "Six Int Inputs and Output", + "nickname": "Endless", + "title": "Endless-SixIntIO", "title_aux": "Endless Nodes" } ], diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 49f045a5..27b1bd2d 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -831,106 +831,6 @@ ], "install_type": "git-clone", "description": "Nodes: ModelMergeByPreset. Merge checkpoint models by preset" - }, - { - "author": "jamesWalker55", - "title": "Various ComfyUI Nodes by Type", - "reference": "https://github.com/jamesWalker55/comfyui-various", - "files": [ - "https://github.com/jamesWalker55/comfyui-various" - ], - "install_type": "git-clone", - "description": "Nodes: JWInteger, JWFloat, JWString, JWImageLoadRGB, JWImageResize, ..." - }, - { - "author": "NicholasMcCarthy", - "title": "ComfyUI_TravelSuite", - "reference": "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite", - "files": [ - "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite" - ], - "install_type": "git-clone", - "description": "ComfyUI custom nodes to apply various latent travel techniques." - }, - { - "author": "ManglerFTW", - "title": "ComfyI2I", - "reference": "https://github.com/ManglerFTW/ComfyI2I", - "files": [ - "https://github.com/ManglerFTW/ComfyI2I" - ], - "install_type": "git-clone", - "description": "A set of custom nodes to perform image 2 image functions in ComfyUI." - }, - { - "author": "city96", - "title": "Latent-Interposer", - "reference": "https://github.com/city96/SD-Latent-Interposer", - "files": [ - "https://github.com/city96/SD-Latent-Interposer" - ], - "install_type": "git-clone", - "description": "Custom node to convert the lantents between SDXL and SD v1.5 directly without the VAE decoding/encoding step." - }, - { - "author": "coreyryanhanson", - "title": "ComfyQR", - "reference": "https://github.com/coreyryanhanson/ComfyQR", - "files": [ - "https://github.com/coreyryanhanson/ComfyQR" - ], - "install_type": "git-clone", - "description": "QR generation within ComfyUI. Contains nodes suitable for workflows from generating basic QR images to techniques with advanced QR masking." - }, - { - "author": "uarefans", - "title": "ComfyUI-Fans", - "reference": "https://github.com/uarefans/ComfyUI-Fans", - "files": [ - "https://github.com/uarefans/ComfyUI-Fans" - ], - "install_type": "git-clone", - "description": "Nodes: Fans Styler (Max 10 Style), Fans Text Concat (Until 10 text)." - }, - { - "author": "theUpsider", - "title": "Styles CSV Loader Extension for ComfyUI", - "reference": "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader", - "files": [ - "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader" - ], - "install_type": "git-clone", - "description": "This extension allows users to load styles from a CSV file, primarily for migration purposes from the automatic1111 Stable Diffusion web UI." - }, - { - "author": "M1kep", - "title": "ComfyLiterals", - "reference": "https://github.com/M1kep/ComfyLiterals", - "files": [ - "https://github.com/M1kep/ComfyLiterals" - ], - "install_type": "git-clone", - "description": "Nodes: Int, Float, String, Operation, Checkpoint" - }, - { - "author": "dimtoneff", - "title": "ComfyUI PixelArt Detector", - "reference": "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector", - "files": [ - "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector" - ], - "install_type": "git-clone", - "description": "This node manipulates the pixel art image in ways that it should look pixel perfect (downscales, changes palette, upscales etc.)." - }, - { - "author": "dimtoneff", - "title": "Eagle PNGInfo", - "reference": "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo", - "files": [ - "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo" - ], - "install_type": "git-clone", - "description": "Nodes: EagleImageNode" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index d571c217..6b35371c 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -345,6 +345,9 @@ "DWPreprocessor", "FakeScribblePreprocessor", "HEDPreprocessor", + "HintImageEnchance", + "ImageGenResolutionFromImage", + "ImageGenResolutionFromLatent", "InpaintPreprocessor", "LeReS-DepthMapPreprocessor", "LineArtPreprocessor", @@ -357,6 +360,8 @@ "OneFormer-COCO-SemSegPreprocessor", "OpenposePreprocessor", "PiDiNetPreprocessor", + "PixelPerfectResolution", + "RaftOpticalFlowPreprocessor", "SAMPreprocessor", "ScribblePreprocessor", "Scribble_XDoG_Preprocessor", @@ -791,6 +796,7 @@ "https://github.com/RockOfFire/CR_Animation_Nodes": [ [ "CR Central Schedule", + "CR Combine Schedules", "CR Current Frame", "CR Cycle Images", "CR Cycle Images Simple", @@ -813,15 +819,17 @@ "CR Keyframe List", "CR LoRA List", "CR Load Animation Frames", + "CR Load Schedule From File", + "CR Load Scheduled ControlNets", "CR Load Scheduled LoRAs", "CR Load Scheduled Models", "CR Model List", - "CR Output Schedule List", "CR Output Schedule To File", "CR Prompt List", "CR Prompt List Keyframes", "CR Prompt Text", "CR Schedule Input Switch", + "CR Schedule To ScheduleList", "CR Simple Prompt List", "CR Simple Prompt List Keyframes", "CR Simple Schedule", @@ -1034,7 +1042,8 @@ ], "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [ [ - "tri3d-extract-hand" + "tri3d-extract-hand", + "tri3d-fuzzification" ], { "title_aux": "tri3d-comfyui-nodes" @@ -1602,6 +1611,7 @@ "CreateRequestMetadata", "Draw Contour(s)", "EqualizeHistogram", + "EstimateColorInterval (hsv)", "Filter Contour", "FindComplementaryColor", "FindThreshold", @@ -1612,8 +1622,10 @@ "Get Models", "Get Prompt", "HypernetworkLoader (dirty)", + "InRange (hsv)", "Inpaint", "Input/String to Int Array", + "KMeansColor", "Load 64 Encoded Image", "LoraLoader (dirty)", "MaskGrid N KSamplers Advanced", @@ -1622,6 +1634,7 @@ "MorphologicOperation", "MorphologicSkeletoning", "OtsuThreshold", + "RGB to HSV", "Rect Grab Cut", "Repeat Into Grid (image)", "Repeat Into Grid (latent)", @@ -2964,9 +2977,9 @@ ], { "author": "Endless Sea of Stars", - "description": "A small set of nodes I created for various numerical and text inputs.", - "nickname": "Endless Nodes", - "title": "Endless Nodes", + "description": "Six Int Inputs and Output", + "nickname": "Endless", + "title": "Endless-SixIntIO", "title_aux": "Endless Nodes" } ], From e19f1433ea4a71dd7a983ad293cd7608a225c8b2 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 18 Sep 2023 11:41:34 +0900 Subject: [PATCH 20/56] colab-dependencies patch --- scripts/colab-dependencies.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/scripts/colab-dependencies.py b/scripts/colab-dependencies.py index 76d25153..48ad218b 100644 --- a/scripts/colab-dependencies.py +++ b/scripts/colab-dependencies.py @@ -5,14 +5,17 @@ import subprocess def get_enabled_subdirectories_with_files(base_directory): subdirs_with_files = [] for subdir in os.listdir(base_directory): - full_path = os.path.join(base_directory, subdir) - if os.path.isdir(full_path) and not subdir.endswith(".disabled") and not subdir.startswith('.') and subdir != '__pycache__': - print(f"## Install dependencies for '{subdir}'") - requirements_file = os.path.join(full_path, "requirements.txt") - install_script = os.path.join(full_path, "install.py") + try: + full_path = os.path.join(base_directory, subdir) + if os.path.isdir(full_path) and not subdir.endswith(".disabled") and not subdir.startswith('.') and subdir != '__pycache__': + print(f"## Install dependencies for '{subdir}'") + requirements_file = os.path.join(full_path, "requirements.txt") + install_script = os.path.join(full_path, "install.py") - if os.path.isfile(requirements_file) and os.path.isfile(install_script): - subdirs_with_files.append((full_path, requirements_file, install_script)) + if os.path.isfile(requirements_file) and os.path.isfile(install_script): + subdirs_with_files.append((full_path, requirements_file, install_script)) + except Exception as e: + print(f"EXCEPTION During Dependencies INSTALL on '{subdir}':\n{e}") return subdirs_with_files From 59f2f9b6928f1df9e12698110ca9015600070fb9 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 18 Sep 2023 12:45:36 +0900 Subject: [PATCH 21/56] colab-dependencies.py script patch --- scripts/colab-dependencies.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/colab-dependencies.py b/scripts/colab-dependencies.py index 48ad218b..d5a70ed6 100644 --- a/scripts/colab-dependencies.py +++ b/scripts/colab-dependencies.py @@ -12,7 +12,7 @@ def get_enabled_subdirectories_with_files(base_directory): requirements_file = os.path.join(full_path, "requirements.txt") install_script = os.path.join(full_path, "install.py") - if os.path.isfile(requirements_file) and os.path.isfile(install_script): + if os.path.exists(requirements_file) or os.path.exists(install_script): subdirs_with_files.append((full_path, requirements_file, install_script)) except Exception as e: print(f"EXCEPTION During Dependencies INSTALL on '{subdir}':\n{e}") @@ -21,11 +21,13 @@ def get_enabled_subdirectories_with_files(base_directory): def install_requirements(requirements_file_path): - subprocess.run(["pip", "install", "-r", requirements_file_path]) + if os.path.exists(requirements_file_path): + subprocess.run(["pip", "install", "-r", requirements_file_path]) def run_install_script(install_script_path): - subprocess.run(["python", install_script_path]) + if os.path.exists(install_script_path): + subprocess.run(["python", install_script_path]) custom_nodes_directory = "custom_nodes" From fd5c4054d24b3465cb2e75888ceea9bd90e5f5c3 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Mon, 18 Sep 2023 13:00:45 +0900 Subject: [PATCH 22/56] update NOTEBOOK --- notebooks/comfyui_colab_with_manager.ipynb | 349 ++++++++++++++++++++- 1 file changed, 348 insertions(+), 1 deletion(-) diff --git a/notebooks/comfyui_colab_with_manager.ipynb b/notebooks/comfyui_colab_with_manager.ipynb index c191a11a..2dacd00b 100644 --- a/notebooks/comfyui_colab_with_manager.ipynb +++ b/notebooks/comfyui_colab_with_manager.ipynb @@ -1 +1,348 @@ -{"cells":[{"cell_type":"markdown","metadata":{"id":"aaaaaaaaaa"},"source":["Git clone the repo and install the requirements. (ignore the pip errors about protobuf)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"bbbbbbbbbb"},"outputs":[],"source":["#@title Environment Setup\n","\n","from pathlib import Path\n","\n","OPTIONS = {}\n","\n","USE_GOOGLE_DRIVE = False #@param {type:\"boolean\"}\n","UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n","USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n","INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n","OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n","OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n","OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n","OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n","\n","current_dir = !pwd\n","WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n","\n","if OPTIONS['USE_GOOGLE_DRIVE']:\n"," !echo \"Mounting Google Drive...\"\n"," %cd /\n","\n"," from google.colab import drive\n"," drive.mount('/content/drive')\n","\n"," WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n"," %cd /content/drive/MyDrive\n","\n","![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n","%cd $WORKSPACE\n","\n","if OPTIONS['UPDATE_COMFY_UI']:\n"," !echo -= Updating ComfyUI =-\n"," !git pull\n","\n","!echo -= Install dependencies =-\n","!pip install xformers!=0.0.18 -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://download.pytorch.org/whl/cu117\n","\n","if OPTIONS['USE_COMFYUI_MANAGER']:\n"," %cd custom_nodes\n"," ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n"," %cd ComfyUI-Manager\n"," !git pull\n","\n","%cd $WORKSPACE\n","\n","if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n"," !echo -= Install custom nodes dependencies =-\n"," ![ -f \"custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py\" ] && python \"custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py\"\n","\n","\n","\n"]},{"cell_type":"markdown","metadata":{"id":"cccccccccc"},"source":["Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"dddddddddd"},"outputs":[],"source":["# Checkpoints\n","\n","### SDXL\n","### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n","\n","#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n","#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n","\n","\n","# SD1.5\n","!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n","\n","# SD2\n","#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n","#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n","\n","# Some SD1.5 anime style\n","#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n","#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n","#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n","#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n","\n","# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n","#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n","\n","\n","# unCLIP models\n","#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n","#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n","\n","\n","# VAE\n","!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n","#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n","#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n","\n","\n","# Loras\n","#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n","#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n","#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n","\n","\n","# T2I-Adapter\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n","\n","# T2I Styles Model\n","#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n","\n","# CLIPVision model (needed for styles model)\n","#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n","\n","\n","# ControlNet\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n","#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n","\n","\n","# Controlnet Preprocessor nodes by Fannovel16\n","#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n","\n","\n","# GLIGEN\n","#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n","\n","\n","# ESRGAN upscale model\n","#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n","#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n","#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n","\n","\n"]},{"cell_type":"markdown","metadata":{"id":"kkkkkkkkkkkkkk"},"source":["### Run ComfyUI with localtunnel (Recommended Way)\n","\n","\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"jjjjjjjjjjjjj"},"outputs":[],"source":["!npm install -g localtunnel\n","\n","import subprocess\n","import threading\n","import time\n","import socket\n","import urllib.request\n","\n","def iframe_thread(port):\n"," while True:\n"," time.sleep(0.5)\n"," sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n"," result = sock.connect_ex(('127.0.0.1', port))\n"," if result == 0:\n"," break\n"," sock.close()\n"," print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n","\n"," print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n"," p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n"," for line in p.stdout:\n"," print(line.decode(), end='')\n","\n","\n","threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n","\n","!python main.py --dont-print-server"]},{"cell_type":"markdown","metadata":{"id":"gggggggggg"},"source":["### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n","\n","You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n","\n","If you want to open it in another window use the link.\n","\n","Note that some UI features like live image previews won't work because the colab iframe blocks websockets."]},{"cell_type":"code","execution_count":null,"metadata":{"id":"hhhhhhhhhh"},"outputs":[],"source":["import threading\n","import time\n","import socket\n","def iframe_thread(port):\n"," while True:\n"," time.sleep(0.5)\n"," sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n"," result = sock.connect_ex(('127.0.0.1', port))\n"," if result == 0:\n"," break\n"," sock.close()\n"," from google.colab import output\n"," output.serve_kernel_port_as_iframe(port, height=1024)\n"," print(\"to open it in a window you can open this link here:\")\n"," output.serve_kernel_port_as_window(port)\n","\n","threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n","\n","!python main.py --dont-print-server"]}],"metadata":{"accelerator":"GPU","colab":{"provenance":[{"file_id":"1HnIQphOu1EScR7P5m5aptRHGahn42dtP","timestamp":1690352987368},{"file_id":"1thcWyDbx3i__qJm5gHhErolK9UNO5uSd","timestamp":1690352936536},{"file_id":"1a5iNqa6a0kU3fcktIDoRAcdR_muaG5it","timestamp":1690260043089}]},"gpuClass":"standard","kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0} +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "aaaaaaaaaa" + }, + "source": [ + "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bbbbbbbbbb" + }, + "outputs": [], + "source": [ + "# #@title Environment Setup\n", + "\n", + "from pathlib import Path\n", + "\n", + "OPTIONS = {}\n", + "\n", + "USE_GOOGLE_DRIVE = True #@param {type:\"boolean\"}\n", + "UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n", + "USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n", + "INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n", + "OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n", + "OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n", + "OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n", + "OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n", + "\n", + "current_dir = !pwd\n", + "WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n", + "\n", + "if OPTIONS['USE_GOOGLE_DRIVE']:\n", + " !echo \"Mounting Google Drive...\"\n", + " %cd /\n", + "\n", + " from google.colab import drive\n", + " drive.mount('/content/drive')\n", + "\n", + " WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n", + " %cd /content/drive/MyDrive\n", + "\n", + "![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n", + "%cd $WORKSPACE\n", + "\n", + "if OPTIONS['UPDATE_COMFY_UI']:\n", + " !echo -= Updating ComfyUI =-\n", + " !git pull\n", + "\n", + "!echo -= Install dependencies =-\n", + "!pip install xformers!=0.0.18 -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://download.pytorch.org/whl/cu117\n", + "\n", + "if OPTIONS['USE_COMFYUI_MANAGER']:\n", + " %cd custom_nodes\n", + " ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n", + " %cd ComfyUI-Manager\n", + " !git pull\n", + "\n", + "%cd $WORKSPACE\n", + "\n", + "if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n", + " !pwd\n", + " !echo -= Install custom nodes dependencies =-\n", + " ![ -f \"custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py\" ] && python \"custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cccccccccc" + }, + "source": [ + "Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "dddddddddd" + }, + "outputs": [], + "source": [ + "# Checkpoints\n", + "\n", + "### SDXL\n", + "### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n", + "\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n", + "\n", + "# SDXL ReVision\n", + "#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n", + "\n", + "# SD1.5\n", + "!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n", + "\n", + "# SD2\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n", + "\n", + "# Some SD1.5 anime style\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n", + "\n", + "# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n", + "#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "\n", + "# unCLIP models\n", + "#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "\n", + "# VAE\n", + "!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n", + "#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n", + "\n", + "\n", + "# Loras\n", + "#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n", + "#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n", + "\n", + "\n", + "# T2I-Adapter\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n", + "\n", + "# T2I Styles Model\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n", + "\n", + "# CLIPVision model (needed for styles model)\n", + "#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n", + "\n", + "\n", + "# ControlNet\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n", + "\n", + "# ControlNet SDXL\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n", + "\n", + "# Controlnet Preprocessor nodes by Fannovel16\n", + "#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n", + "\n", + "\n", + "# GLIGEN\n", + "#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n", + "\n", + "\n", + "# ESRGAN upscale model\n", + "#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n", + "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n", + "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkkkkkkkkkkkkkk" + }, + "source": [ + "### Run ComfyUI with cloudflared (Recommended Way)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jjjjjjjjjjjjjj" + }, + "outputs": [], + "source": [ + "!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n", + "!dpkg -i cloudflared-linux-amd64.deb\n", + "\n", + "import subprocess\n", + "import threading\n", + "import time\n", + "import socket\n", + "import urllib.request\n", + "\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n", + "\n", + " p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", + " for line in p.stderr:\n", + " l = line.decode()\n", + " if \"trycloudflare.com \" in l:\n", + " print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n", + " #print(l, end='')\n", + "\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkkkkkkkkkkkkk" + }, + "source": [ + "### Run ComfyUI with localtunnel\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jjjjjjjjjjjjj" + }, + "outputs": [], + "source": [ + "!npm install -g localtunnel\n", + "\n", + "import subprocess\n", + "import threading\n", + "import time\n", + "import socket\n", + "import urllib.request\n", + "\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n", + "\n", + " print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n", + " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", + " for line in p.stdout:\n", + " print(line.decode(), end='')\n", + "\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gggggggggg" + }, + "source": [ + "### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n", + "\n", + "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n", + "\n", + "If you want to open it in another window use the link.\n", + "\n", + "Note that some UI features like live image previews won't work because the colab iframe blocks websockets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "hhhhhhhhhh" + }, + "outputs": [], + "source": [ + "import threading\n", + "import time\n", + "import socket\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " from google.colab import output\n", + " output.serve_kernel_port_as_iframe(port, height=1024)\n", + " print(\"to open it in a window you can open this link here:\")\n", + " output.serve_kernel_port_as_window(port)\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [] + }, + "gpuClass": "standard", + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file From f4aa0b6bc75191efb9fe516dc95b4d0a69a9ff7a Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Mon, 18 Sep 2023 23:07:34 +0900 Subject: [PATCH 23/56] add win venv script --- scripts/install-comfyui-venv-win.bat | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 scripts/install-comfyui-venv-win.bat diff --git a/scripts/install-comfyui-venv-win.bat b/scripts/install-comfyui-venv-win.bat new file mode 100755 index 00000000..6bb0e836 --- /dev/null +++ b/scripts/install-comfyui-venv-win.bat @@ -0,0 +1,20 @@ +git clone https://github.com/comfyanonymous/ComfyUI +cd ComfyUI/custom_nodes +git clone https://github.com/ltdrdata/ComfyUI-Manager +cd .. +python -m venv venv +call venv/Scripts/activate +python -m pip install -r requirements.txt +python -m pip install -r custom_nodes/ComfyUI-Manager/requirements.txt +python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 xformers +cd .. +echo "cd ComfyUI" >> run_gpu.sh +echo "call venv/Scripts/activate" >> run_gpu.sh +echo "python main.py" >> run_gpu.sh +chmod +x run_gpu.sh + +echo "#!/bin/bash" > run_cpu.sh +echo "cd ComfyUI" >> run_cpu.sh +echo "call venv/Scripts/activate" >> run_cpu.sh +echo "python main.py --cpu" >> run_cpu.sh +chmod +x run_cpu.sh From 141435ffabebe92cee588b8fe31b30cbc6234324 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 02:06:48 +0900 Subject: [PATCH 24/56] update DB --- custom-node-list.json | 4 ++-- extension-node-map.json | 17 ++++++++++++----- node_db/new/extension-node-map.json | 17 ++++++++++++----- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 98f73c28..6bc938a9 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1783,14 +1783,14 @@ "description": "Adds KSampler custom nodes with variation seed and variation strength." }, { - "author": "tusharbhutt", + "author": "Endless Sea of Stars", "title": "Endless Nodes", "reference": "https://github.com/tusharbhutt/Endless-Nodes", "files": [ "https://github.com/tusharbhutt/Endless-Nodes" ], "install_type": "git-clone", - "description": "A small set of nodes I created for various numerical and text inputs and outputs." + "description": "A small set of nodes I created for various numerical and text inputs." }, { "author": "spacepxl", diff --git a/extension-node-map.json b/extension-node-map.json index 6b35371c..61b05717 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -43,7 +43,9 @@ [ "AnimateDiffCombine", "AnimateDiffModuleLoader", - "AnimateDiffSampler" + "AnimateDiffSampler", + "ImageSizeAndBatchSize", + "LoadVideo" ], { "title_aux": "AnimateDiff" @@ -511,12 +513,12 @@ ], "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": [ [ - "ControlNetApplyPartialBatch", "ControlNetLoaderAdvanced", "CustomControlNetWeights", "CustomT2IAdapterWeights", "DiffControlNetLoaderAdvanced", "LatentKeyframe", + "LatentKeyframeGroup", "LoadImagesFromDirectory", "ScaledSoftControlNetWeights", "SoftControlNetWeights", @@ -1473,6 +1475,7 @@ "Sine Curve [Dream]", "Smooth Event Curve [Dream]", "String Input [Dream]", + "String Tokenizer [Dream]", "String to Log Entry [Dream]", "Text Input [Dream]", "Triangle Curve [Dream]", @@ -2788,7 +2791,9 @@ ], "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [ [ + "LoadLatentEXR", "SaveEXR", + "SaveLatentEXR", "SaveTiff" ], { @@ -2971,15 +2976,17 @@ ], "https://github.com/tusharbhutt/Endless-Nodes": [ [ + "Endless Nodes Parameteriizer", + "Endless Nodes Parameterizer & Prompts", "Endless Nodes Six Input Text Switch", "Endless Nodes Six Integer IO Switch", "Endless Nodes Six Integer IO Widget" ], { "author": "Endless Sea of Stars", - "description": "Six Int Inputs and Output", - "nickname": "Endless", - "title": "Endless-SixIntIO", + "description": "A small set of nodes I created for various numerical and text inputs.", + "nickname": "Endless Nodes", + "title": "Endless Nodes", "title_aux": "Endless Nodes" } ], diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 6b35371c..61b05717 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -43,7 +43,9 @@ [ "AnimateDiffCombine", "AnimateDiffModuleLoader", - "AnimateDiffSampler" + "AnimateDiffSampler", + "ImageSizeAndBatchSize", + "LoadVideo" ], { "title_aux": "AnimateDiff" @@ -511,12 +513,12 @@ ], "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": [ [ - "ControlNetApplyPartialBatch", "ControlNetLoaderAdvanced", "CustomControlNetWeights", "CustomT2IAdapterWeights", "DiffControlNetLoaderAdvanced", "LatentKeyframe", + "LatentKeyframeGroup", "LoadImagesFromDirectory", "ScaledSoftControlNetWeights", "SoftControlNetWeights", @@ -1473,6 +1475,7 @@ "Sine Curve [Dream]", "Smooth Event Curve [Dream]", "String Input [Dream]", + "String Tokenizer [Dream]", "String to Log Entry [Dream]", "Text Input [Dream]", "Triangle Curve [Dream]", @@ -2788,7 +2791,9 @@ ], "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [ [ + "LoadLatentEXR", "SaveEXR", + "SaveLatentEXR", "SaveTiff" ], { @@ -2971,15 +2976,17 @@ ], "https://github.com/tusharbhutt/Endless-Nodes": [ [ + "Endless Nodes Parameteriizer", + "Endless Nodes Parameterizer & Prompts", "Endless Nodes Six Input Text Switch", "Endless Nodes Six Integer IO Switch", "Endless Nodes Six Integer IO Widget" ], { "author": "Endless Sea of Stars", - "description": "Six Int Inputs and Output", - "nickname": "Endless", - "title": "Endless-SixIntIO", + "description": "A small set of nodes I created for various numerical and text inputs.", + "nickname": "Endless Nodes", + "title": "Endless Nodes", "title_aux": "Endless Nodes" } ], From 9671402da38ddbb6e2ebaa24d1ebdf9016551360 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 07:58:23 +0900 Subject: [PATCH 25/56] feat: update all --- __init__.py | 59 +++++++++++++++++++++++++++++++++++++------ js/comfyui-manager.js | 50 +++++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 9 deletions(-) diff --git a/__init__.py b/__init__.py index b2e081eb..689259c7 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.27)") +print("### Loading: ComfyUI-Manager (V0.28)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -236,9 +236,11 @@ print_comfyui_version() # use subprocess to avoid file system lock by git (Windows) -def __win_check_git_update(path, do_fetch=False): +def __win_check_git_update(path, do_fetch=False, do_update=False): if do_fetch: command = [sys.executable, git_script_path, "--fetch", path] + elif do_update: + command = [sys.executable, git_script_path, "--pull", path] else: command = [sys.executable, git_script_path, "--check", path] @@ -260,13 +262,18 @@ def __win_check_git_pull(path): process.wait() -def git_repo_has_updates(path, do_fetch=False): +def git_repo_has_updates(path, do_fetch=False, do_update=False): + if do_fetch: + print(f"\rFetching: {path}", end='') + elif do_update: + print(f"\rUpdating: {path}", end='') + # Check if the path is a git repository if not os.path.exists(os.path.join(path, '.git')): raise ValueError('Not a git repository') if platform.system() == "Windows": - return __win_check_git_update(path, do_fetch) + return __win_check_git_update(path, do_fetch, do_update) else: # Fetch the latest commits from the remote repository repo = git.Repo(path) @@ -279,6 +286,12 @@ def git_repo_has_updates(path, do_fetch=False): if do_fetch: remote.fetch() + elif do_update: + try: + remote.pull(rebase=True) + repo.git.submodule('update', '--init', '--recursive') + except Exception as e: + print(f"Updating failed: '{path}'\n{e}") # Get the current commit hash and the commit hash of the remote branch commit_hash = repo.head.commit.hexsha @@ -408,7 +421,7 @@ def get_model_path(data): return os.path.join(base_model, data['filename']) -def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True): +def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do_update=False): item['installed'] = 'None' if item['install_type'] == 'git-clone' and len(item['files']) == 1: @@ -416,7 +429,7 @@ def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True): dir_path = os.path.join(custom_nodes_path, dir_name) if os.path.exists(dir_path): try: - if do_update_check and git_repo_has_updates(dir_path, do_fetch): + if do_update_check and git_repo_has_updates(dir_path, do_fetch, do_update): item['installed'] = 'Update' else: item['installed'] = 'True' @@ -448,9 +461,23 @@ def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True): item['installed'] = 'False' -def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True): +def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True, do_update=False): + if do_fetch: + print("Start fetching...") + elif do_update: + print("Start updating...") + elif do_update_check: + print("Start update check...") + for item in json_obj['custom_nodes']: - check_a_custom_node_installed(item, do_fetch, do_update_check) + check_a_custom_node_installed(item, do_fetch, do_update_check, do_update) + + if do_fetch: + print("\nFetch done.") + elif do_update: + print("\nUpdate done.") + elif do_update_check: + print("Update check done...") @server.PromptServer.instance.routes.get("/customnode/getmappings") @@ -487,6 +514,22 @@ async def fetch_updates(request): return web.Response(status=400) +@server.PromptServer.instance.routes.get("/customnode/update_all") +async def update_all(request): + try: + if request.rel_url.query["mode"] == "local": + uri = local_db_custom_node_list + else: + uri = get_config()['channel_url'] + '/custom-node-list.json' + + json_obj = await get_data(uri) + check_custom_nodes_installed(json_obj, do_update=True) + + return web.Response(status=200) + except: + return web.Response(status=400) + + @server.PromptServer.instance.routes.get("/customnode/getlist") async def fetch_customnode_list(request): if "skip_update" in request.rel_url.query and request.rel_url.query["skip_update"] == "true": diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index b9501072..50bae9af 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -5,6 +5,7 @@ import {ComfyWidgets} from "../../scripts/widgets.js"; var update_comfyui_button = null; var fetch_updates_button = null; +var update_all_button = null; var badge_mode = "none"; async function init_badge_mode() { @@ -214,7 +215,7 @@ async function fetchUpdates(update_check_checkbox) { const response = await api.fetchApi(`/customnode/fetch_updates?mode=${mode}`); - if(response.status == 400) { + if(response.status != 200) { app.ui.dialog.show('Failed to fetch updates.'); app.ui.dialog.element.style.zIndex = 9999; return false; @@ -244,6 +245,44 @@ async function fetchUpdates(update_check_checkbox) { } } +async function updateAll(update_check_checkbox) { + let prev_text = update_all_button.innerText; + update_all_button.innerText = "Updating all...(ComfyUI)"; + update_all_button.disabled = true; + update_all_button.style.backgroundColor = "gray"; + + try { + var mode = "url"; + if(ManagerMenuDialog.instance.local_mode_checkbox.checked) + mode = "local"; + + update_all_button.innerText = "Updating all..."; + const response1 = await api.fetchApi('/comfyui_manager/update_comfyui'); + const response2 = await api.fetchApi(`/customnode/update_all?mode=${mode}`); + + if(response1.status != 200 || response2.status != 200) { + app.ui.dialog.show('Failed to update ComfyUI or several extensions.

See terminal log.
'); + app.ui.dialog.element.style.zIndex = 9999; + return false; + } + + app.ui.dialog.show('ComfyUI and all extensions are already up-to-date with the latest versions.'); + app.ui.dialog.element.style.zIndex = 9999; + + return true; + } + catch(exception) { + app.ui.dialog.show(`Failed to update ComfyUI or several extensions / ${exception}`); + app.ui.dialog.element.style.zIndex = 9999; + return false; + } + finally { + update_all_button.disabled = false; + update_all_button.innerText = prev_text; + update_all_button.style.backgroundColor = ""; + } +} + async function install_model(target) { if(ModelInstaller.instance) { ModelInstaller.instance.startInstall(target); @@ -1768,6 +1807,14 @@ class ManagerMenuDialog extends ComfyDialog { () => fetchUpdates(this.update_check_checkbox) }); + update_all_button = + $el("button", { + type: "button", + textContent: "Update All", + onclick: + () => updateAll(this.update_check_checkbox) + }); + // preview method let preview_combo = document.createElement("select"); preview_combo.appendChild($el('option', {value:'auto', text:'Preview method: Auto'}, [])); @@ -1864,6 +1911,7 @@ class ManagerMenuDialog extends ComfyDialog { }), $el("br", {}, []), + update_all_button, update_comfyui_button, fetch_updates_button, From f10cb735e521d2c3517b70439b76871894f00f90 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 09:22:18 +0900 Subject: [PATCH 26/56] fix: update all error message on win --- __init__.py | 18 +++++++++++++----- git_helper.py | 10 +++++++--- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/__init__.py b/__init__.py index 689259c7..a4fd10fe 100644 --- a/__init__.py +++ b/__init__.py @@ -248,12 +248,20 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): output, _ = process.communicate() output = output.decode('utf-8').strip() - if "CUSTOM NODE CHECK: True" in output: - process.wait() - return True + if do_update: + if "CUSTOM NODE PULL: True" in output: + process.wait() + return True + else: + process.wait() + return False else: - process.wait() - return False + if "CUSTOM NODE CHECK: True" in output: + process.wait() + return True + else: + process.wait() + return False def __win_check_git_pull(path): diff --git a/git_helper.py b/git_helper.py index 4df83e07..48f6e9c4 100644 --- a/git_helper.py +++ b/git_helper.py @@ -50,9 +50,13 @@ def gitpull(path): if repo.is_dirty(): repo.git.stash() - origin = repo.remote(name='origin') - origin.pull(rebase=True) - repo.git.submodule('update', '--init', '--recursive') + try: + origin = repo.remote(name='origin') + origin.pull(rebase=True) + repo.git.submodule('update', '--init', '--recursive') + print("CUSTOM NODE PULL: True") + except Exception as e: + print("CUSTOM NODE PULL: False") repo.close() From 30ee2ceb0fb07b9f40b1cfbfdeca48553e5bf216 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 09:28:30 +0900 Subject: [PATCH 27/56] better error message in win --- __init__.py | 4 +++- git_helper.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index a4fd10fe..8e1f8bd8 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28)") +print("### Loading: ComfyUI-Manager (V0.28.1)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -253,6 +253,7 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): process.wait() return True else: + print(f"{output}") process.wait() return False else: @@ -260,6 +261,7 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): process.wait() return True else: + print(f"{output}") process.wait() return False diff --git a/git_helper.py b/git_helper.py index 48f6e9c4..5189028e 100644 --- a/git_helper.py +++ b/git_helper.py @@ -56,6 +56,7 @@ def gitpull(path): repo.git.submodule('update', '--init', '--recursive') print("CUSTOM NODE PULL: True") except Exception as e: + print(e) print("CUSTOM NODE PULL: False") repo.close() From 7688c0800060fc2002d4522c3bff05c8ceae0458 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 09:47:59 +0900 Subject: [PATCH 28/56] improve: print log for updated extension --- __init__.py | 22 +++++++++++++++++----- git_helper.py | 8 +++++++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/__init__.py b/__init__.py index 8e1f8bd8..ae172bb7 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.1)") +print("### Loading: ComfyUI-Manager (V0.28.2)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -250,6 +250,10 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): if do_update: if "CUSTOM NODE PULL: True" in output: + process.wait() + print(f"\rUpdated: '{path}'") + return True + elif "CUSTOM NODE PULL: None" in output: process.wait() return True else: @@ -294,17 +298,25 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): remote_name = 'origin' remote = repo.remote(name=remote_name) - if do_fetch: + # Get the current commit hash + commit_hash = repo.head.commit.hexsha + + if do_fetch or do_update: remote.fetch() - elif do_update: + + if do_update: try: remote.pull(rebase=True) repo.git.submodule('update', '--init', '--recursive') + new_commit_hash = repo.head.commit.hexsha + + if commit_hash != new_commit_hash: + print(f"\rUpdated: '{path}'") + except Exception as e: print(f"Updating failed: '{path}'\n{e}") - # Get the current commit hash and the commit hash of the remote branch - commit_hash = repo.head.commit.hexsha + # Get commit hash of the remote branch remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha # Compare the commit hashes to determine if the local repository is behind the remote repository diff --git a/git_helper.py b/git_helper.py index 5189028e..25acf7b2 100644 --- a/git_helper.py +++ b/git_helper.py @@ -50,11 +50,17 @@ def gitpull(path): if repo.is_dirty(): repo.git.stash() + commit_hash = repo.head.commit.hexsha try: origin = repo.remote(name='origin') origin.pull(rebase=True) repo.git.submodule('update', '--init', '--recursive') - print("CUSTOM NODE PULL: True") + new_commit_hash = repo.head.commit.hexsha + + if commit_hash != new_commit_hash: + print("CUSTOM NODE PULL: True") + else: + print("CUSTOM NODE PULL: None") except Exception as e: print(e) print("CUSTOM NODE PULL: False") From 0977ef97f3a5d3267073c1444febd94800997df3 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 10:14:14 +0900 Subject: [PATCH 29/56] fix: messages --- __init__.py | 17 ++++++++++------- git_helper.py | 47 ++++++++++++++++++++++++++--------------------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/__init__.py b/__init__.py index ae172bb7..8bb2cc13 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.2)") +print("### Loading: ComfyUI-Manager (V0.28.3)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -251,21 +251,24 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): if do_update: if "CUSTOM NODE PULL: True" in output: process.wait() - print(f"\rUpdated: '{path}'") + print(f"\rUpdated: {path}") return True elif "CUSTOM NODE PULL: None" in output: process.wait() return True else: - print(f"{output}") + print(f"\rUpdate error: {path}") process.wait() return False else: if "CUSTOM NODE CHECK: True" in output: process.wait() return True + elif "CUSTOM NODE CHECK: False" in output: + process.wait() + return False else: - print(f"{output}") + print(f"\rFetch error: {path}") process.wait() return False @@ -278,9 +281,9 @@ def __win_check_git_pull(path): def git_repo_has_updates(path, do_fetch=False, do_update=False): if do_fetch: - print(f"\rFetching: {path}", end='') + print(f"\x1b[2K\rFetching: {path}", end='') elif do_update: - print(f"\rUpdating: {path}", end='') + print(f"\x1b[2K\rUpdating: {path}", end='') # Check if the path is a git repository if not os.path.exists(os.path.join(path, '.git')): @@ -311,7 +314,7 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): new_commit_hash = repo.head.commit.hexsha if commit_hash != new_commit_hash: - print(f"\rUpdated: '{path}'") + print(f"\x1b[2K\rUpdated: '{path}'") except Exception as e: print(f"Updating failed: '{path}'\n{e}") diff --git a/git_helper.py b/git_helper.py index 25acf7b2..f5333f87 100644 --- a/git_helper.py +++ b/git_helper.py @@ -12,33 +12,38 @@ def gitclone(custom_nodes_path, url): repo.close() def gitcheck(path, do_fetch=False): - # Fetch the latest commits from the remote repository - repo = git.Repo(path) + try: + # Fetch the latest commits from the remote repository + repo = git.Repo(path) - current_branch = repo.active_branch - branch_name = current_branch.name + current_branch = repo.active_branch + branch_name = current_branch.name - remote_name = 'origin' - remote = repo.remote(name=remote_name) + remote_name = 'origin' + remote = repo.remote(name=remote_name) - if do_fetch: - remote.fetch() + if do_fetch: + remote.fetch() - # Get the current commit hash and the commit hash of the remote branch - commit_hash = repo.head.commit.hexsha - remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + # Get the current commit hash and the commit hash of the remote branch + commit_hash = repo.head.commit.hexsha + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha - # Compare the commit hashes to determine if the local repository is behind the remote repository - if commit_hash != remote_commit_hash: - # Get the commit dates - commit_date = repo.head.commit.committed_datetime - remote_commit_date = repo.refs[f'{remote_name}/{branch_name}'].object.committed_datetime + # Compare the commit hashes to determine if the local repository is behind the remote repository + if commit_hash != remote_commit_hash: + # Get the commit dates + commit_date = repo.head.commit.committed_datetime + remote_commit_date = repo.refs[f'{remote_name}/{branch_name}'].object.committed_datetime + + # Compare the commit dates to determine if the local repository is behind the remote repository + if commit_date < remote_commit_date: + print("CUSTOM NODE CHECK: True") + else: + print("CUSTOM NODE CHECK: False") + except Exception as e: + print(e) + print("CUSTOM NODE CHECK: Error") - # Compare the commit dates to determine if the local repository is behind the remote repository - if commit_date < remote_commit_date: - print("CUSTOM NODE CHECK: True") - else: - print("CUSTOM NODE CHECK: False") def gitpull(path): # Check if the path is a git repository From 263ccec4766c64dcd436cf5297d5980dde35adec Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 10:34:10 +0900 Subject: [PATCH 30/56] fix: inproper fetch error message --- __init__.py | 2 +- js/comfyui-manager.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 8bb2cc13..26e23b60 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.3)") +print("### Loading: ComfyUI-Manager (V0.28.4)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 50bae9af..70b6c904 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -215,7 +215,7 @@ async function fetchUpdates(update_check_checkbox) { const response = await api.fetchApi(`/customnode/fetch_updates?mode=${mode}`); - if(response.status != 200) { + if(response.status != 200 || response.status != 201) { app.ui.dialog.show('Failed to fetch updates.'); app.ui.dialog.element.style.zIndex = 9999; return false; From ef4e7a0ef023ae8a5046845b4f98b5b7f3d56c62 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 10:35:38 +0900 Subject: [PATCH 31/56] fix: message bug again.. --- __init__.py | 2 +- js/comfyui-manager.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 26e23b60..6f260ee5 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.4)") +print("### Loading: ComfyUI-Manager (V0.28.5)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 70b6c904..fdc9a5fe 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -215,7 +215,7 @@ async function fetchUpdates(update_check_checkbox) { const response = await api.fetchApi(`/customnode/fetch_updates?mode=${mode}`); - if(response.status != 200 || response.status != 201) { + if(response.status != 200 && response.status != 201) { app.ui.dialog.show('Failed to fetch updates.'); app.ui.dialog.element.style.zIndex = 9999; return false; From b69138a389acaf2562fb00cab5ede941e3151441 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 10:50:01 +0900 Subject: [PATCH 32/56] update DB --- __init__.py | 4 ++-- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 15 ++++++++++++++- node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 15 ++++++++++++++- 5 files changed, 50 insertions(+), 4 deletions(-) diff --git a/__init__.py b/__init__.py index 6f260ee5..41a3d2d4 100644 --- a/__init__.py +++ b/__init__.py @@ -314,10 +314,10 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): new_commit_hash = repo.head.commit.hexsha if commit_hash != new_commit_hash: - print(f"\x1b[2K\rUpdated: '{path}'") + print(f"\x1b[2K\rUpdated: {path}") except Exception as e: - print(f"Updating failed: '{path}'\n{e}") + print(f"Updating failed: {path}\n{e}") # Get commit hash of the remote branch remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha diff --git a/custom-node-list.json b/custom-node-list.json index 6bc938a9..af131add 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1802,6 +1802,16 @@ "install_type": "git-clone", "description": "Add Image Save nodes for TIFF 16 bit and EXR 32 bit formats. Probably only useful if you're applying a LUT or other color corrections, and care about preserving as much color accuracy as possible." }, + { + "author": "receyuki", + "title": "comfyui-prompt-reader-node", + "reference": "https://github.com/receyuki/comfyui-prompt-reader-node", + "files": [ + "https://github.com/receyuki/comfyui-prompt-reader-node" + ], + "install_type": "git-clone", + "description": "Nodes: SDPromptReader" + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index 61b05717..851de7c1 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -532,8 +532,9 @@ "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": [ [ "ADE_AnimateDiffCombine", - "ADE_AnimateDiffLoaderLegacy", + "ADE_AnimateDiffLoaderV1Advanced", "ADE_AnimateDiffUnload", + "ADE_EmptyLatentImageLarge", "AnimateDiffLoaderV1", "CheckpointLoaderSimpleWithNoiseSelect" ], @@ -2655,6 +2656,18 @@ "title_aux": "A8R8 ComfyUI Nodes" } ], + "https://github.com/receyuki/comfyui-prompt-reader-node": [ + [ + "SDPromptReader" + ], + { + "author": "receyuki", + "description": "ComfyUI node version of SD Prompt Reader", + "nickname": "SD Prompt Reader", + "title": "SD Prompt Reader", + "title_aux": "comfyui-prompt-reader-node" + } + ], "https://github.com/richinsley/Comfy-LFO": [ [ "LFO_Pulse", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 27b1bd2d..1b5cf86e 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "receyuki", + "title": "comfyui-prompt-reader-node", + "reference": "https://github.com/receyuki/comfyui-prompt-reader-node", + "files": [ + "https://github.com/receyuki/comfyui-prompt-reader-node" + ], + "install_type": "git-clone", + "description": "Nodes: SDPromptReader" + }, { "author": "spacepxl", "title": "ComfyUI-HQ-Image-Save", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 61b05717..851de7c1 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -532,8 +532,9 @@ "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": [ [ "ADE_AnimateDiffCombine", - "ADE_AnimateDiffLoaderLegacy", + "ADE_AnimateDiffLoaderV1Advanced", "ADE_AnimateDiffUnload", + "ADE_EmptyLatentImageLarge", "AnimateDiffLoaderV1", "CheckpointLoaderSimpleWithNoiseSelect" ], @@ -2655,6 +2656,18 @@ "title_aux": "A8R8 ComfyUI Nodes" } ], + "https://github.com/receyuki/comfyui-prompt-reader-node": [ + [ + "SDPromptReader" + ], + { + "author": "receyuki", + "description": "ComfyUI node version of SD Prompt Reader", + "nickname": "SD Prompt Reader", + "title": "SD Prompt Reader", + "title_aux": "comfyui-prompt-reader-node" + } + ], "https://github.com/richinsley/Comfy-LFO": [ [ "LFO_Pulse", From e387dfdc68e5d0ef9ded42eda127e3f1ae6c412f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 12:43:25 +0900 Subject: [PATCH 33/56] fix: message --- __init__.py | 2 +- js/comfyui-manager.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 41a3d2d4..d3a6c30e 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.5)") +print("### Loading: ComfyUI-Manager (V0.28.6)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index fdc9a5fe..f58b9745 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -266,7 +266,7 @@ async function updateAll(update_check_checkbox) { return false; } - app.ui.dialog.show('ComfyUI and all extensions are already up-to-date with the latest versions.'); + app.ui.dialog.show('ComfyUI and all extensions have been updated to the latest version.'); app.ui.dialog.element.style.zIndex = 9999; return true; From fc528e8be20dec80edf6ae0db9904fdfb3f7dcdd Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 13:16:20 +0900 Subject: [PATCH 34/56] improve: better message. --- __init__.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index d3a6c30e..1194c4e1 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.6)") +print("### Loading: ComfyUI-Manager (V0.28.7)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -498,12 +498,11 @@ def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True, check_a_custom_node_installed(item, do_fetch, do_update_check, do_update) if do_fetch: - print("\nFetch done.") + print(f"\x1b[2K\rFetching done.") elif do_update: - print("\nUpdate done.") + print(f"\x1b[2K\rUpdate done.") elif do_update_check: - print("Update check done...") - + print(f"\x1b[2K\rUpdate check done.") @server.PromptServer.instance.routes.get("/customnode/getmappings") async def fetch_customnode_mappings(request): From ca2a9b894f9c1a3661f7687ec49524765b47ff9d Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 13:27:41 +0900 Subject: [PATCH 35/56] improve: better message. --- __init__.py | 14 ++++++++++++-- js/comfyui-manager.js | 12 +++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index 1194c4e1..2090218c 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.7)") +print("### Loading: ComfyUI-Manager (V0.28.8)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -500,10 +500,15 @@ def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True, if do_fetch: print(f"\x1b[2K\rFetching done.") elif do_update: - print(f"\x1b[2K\rUpdate done.") + update_exists = any(item['installed'] == 'Update' for item in json_obj['custom_nodes']) + if update_exists: + print(f"\x1b[2K\rUpdate done.") + else: + print(f"\x1b[2K\rAll extensions are already up-to-date.") elif do_update_check: print(f"\x1b[2K\rUpdate check done.") + @server.PromptServer.instance.routes.get("/customnode/getmappings") async def fetch_customnode_mappings(request): if request.rel_url.query["mode"] == "local": @@ -549,6 +554,11 @@ async def update_all(request): json_obj = await get_data(uri) check_custom_nodes_installed(json_obj, do_update=True) + update_exists = any(item['installed'] == 'Update' for item in json_obj['custom_nodes']) + + if update_exists: + return web.Response(status=201) + return web.Response(status=200) except: return web.Response(status=400) diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index f58b9745..88e78580 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -265,9 +265,15 @@ async function updateAll(update_check_checkbox) { app.ui.dialog.element.style.zIndex = 9999; return false; } - - app.ui.dialog.show('ComfyUI and all extensions have been updated to the latest version.'); - app.ui.dialog.element.style.zIndex = 9999; + if(response1.status == 201 || response2.status == 201) { + app.ui.dialog.show('ComfyUI and all extensions have been updated to the latest version.'); + app.ui.dialog.element.style.zIndex = 9999; + update_check_checkbox.checked = false; + } + else { + app.ui.dialog.show('ComfyUI and all extensions are already up-to-date with the latest versions.'); + app.ui.dialog.element.style.zIndex = 9999; + } return true; } From b31931333ee6882b39a61915ef361eccec958ea2 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Tue, 19 Sep 2023 15:44:05 +0900 Subject: [PATCH 36/56] fix: message fix. --- __init__.py | 5 ++++- js/comfyui-manager.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index 2090218c..b641f319 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.8)") +print("### Loading: ComfyUI-Manager (V0.28.9)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -315,6 +315,9 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): if commit_hash != new_commit_hash: print(f"\x1b[2K\rUpdated: {path}") + return True + else: + return False except Exception as e: print(f"Updating failed: {path}\n{e}") diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 88e78580..5f704bf8 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -260,7 +260,7 @@ async function updateAll(update_check_checkbox) { const response1 = await api.fetchApi('/comfyui_manager/update_comfyui'); const response2 = await api.fetchApi(`/customnode/update_all?mode=${mode}`); - if(response1.status != 200 || response2.status != 200) { + if(response1.status != 200 || response2.status != 201) { app.ui.dialog.show('Failed to update ComfyUI or several extensions.

See terminal log.
'); app.ui.dialog.element.style.zIndex = 9999; return false; From 604a5d75749ddfb3ad91c26b7e99bc17e9805481 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 20:15:32 +0900 Subject: [PATCH 37/56] improve: better logging --- __init__.py | 32 +++++++-------- prestartup_script.py | 95 ++++++++++++++++++++++++++++---------------- 2 files changed, 77 insertions(+), 50 deletions(-) diff --git a/__init__.py b/__init__.py index b641f319..0668f033 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.28.9)") +print("### Loading: ComfyUI-Manager (V0.29)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -320,7 +320,7 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): return False except Exception as e: - print(f"Updating failed: {path}\n{e}") + print(f"\nUpdating failed: {path}\n{e}", file=sys.stderr) # Get commit hash of the remote branch remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha @@ -491,11 +491,11 @@ def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True, do_update=False): if do_fetch: - print("Start fetching...") + print("Start fetching...", end="") elif do_update: - print("Start updating...") + print("Start updating...", end="") elif do_update_check: - print("Start update check...") + print("Start update check...", end="") for item in json_obj['custom_nodes']: check_a_custom_node_installed(item, do_fetch, do_update_check, do_update) @@ -662,7 +662,7 @@ def unzip_install(files): os.remove(temp_filename) except Exception as e: - print(f"Install(unzip) error: {url} / {e}") + print(f"Install(unzip) error: {url} / {e}", file=sys.stderr) return False print("Installation was successful.") @@ -685,7 +685,7 @@ def download_url_with_agent(url, save_path): f.write(data) except Exception as e: - print(f"Download error: {url} / {e}") + print(f"Download error: {url} / {e}", file=sys.stderr) return False print("Installation was successful.") @@ -704,7 +704,7 @@ def copy_install(files, js_path_name=None): download_url(url, path) except Exception as e: - print(f"Install(copy) error: {url} / {e}") + print(f"Install(copy) error: {url} / {e}", file=sys.stderr) return False print("Installation was successful.") @@ -723,7 +723,7 @@ def copy_uninstall(files, js_path_name='.'): elif os.path.exists(file_path + ".disabled"): os.remove(file_path + ".disabled") except Exception as e: - print(f"Uninstall(copy) error: {url} / {e}") + print(f"Uninstall(copy) error: {url} / {e}", file=sys.stderr) return False print("Uninstallation was successful.") @@ -752,7 +752,7 @@ def copy_set_active(files, is_disable, js_path_name='.'): os.rename(current_name, new_name) except Exception as e: - print(f"{action_name}(copy) error: {url} / {e}") + print(f"{action_name}(copy) error: {url} / {e}", file=sys.stderr) return False @@ -802,7 +802,7 @@ def gitclone_install(files): return False except Exception as e: - print(f"Install(git-clone) error: {url} / {e}") + print(f"Install(git-clone) error: {url} / {e}", file=sys.stderr) return False print("Installation was successful.") @@ -871,7 +871,7 @@ def gitclone_uninstall(files): elif os.path.exists(dir_path + ".disabled"): rmtree(dir_path + ".disabled") except Exception as e: - print(f"Uninstall(git-clone) error: {url} / {e}") + print(f"Uninstall(git-clone) error: {url} / {e}", file=sys.stderr) return False print("Uninstallation was successful.") @@ -916,7 +916,7 @@ def gitclone_set_active(files, is_disable): try_install_script(url, new_path, enable_script) except Exception as e: - print(f"{action_name}(git-clone) error: {url} / {e}") + print(f"{action_name}(git-clone) error: {url} / {e}", file=sys.stderr) return False print(f"{action_name} was successful.") @@ -937,7 +937,7 @@ def gitclone_update(files): return False except Exception as e: - print(f"Update(git-clone) error: {url} / {e}") + print(f"Update(git-clone) error: {url} / {e}", file=sys.stderr) return False print("Update was successful.") @@ -1054,7 +1054,7 @@ async def install_custom_node(request): else: return web.Response(status=200) except Exception as e: - print(f"ComfyUI update fail: {e}") + print(f"ComfyUI update fail: {e}", file=sys.stderr) pass return web.Response(status=400) @@ -1106,7 +1106,7 @@ async def install_model(request): if res: return web.json_response({}, content_type='application/json') except Exception as e: - print(f"[ERROR] {e}") + print(f"[ERROR] {e}", file=sys.stderr) pass return web.Response(status=400) diff --git a/prestartup_script.py b/prestartup_script.py index 11eb2e4d..2098add9 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -6,52 +6,79 @@ import atexit import threading import re -# Logger setup -if os.path.exists("comfyui.log"): - if os.path.exists("comfyui.prev.log"): - os.remove("comfyui.prev.log") - os.rename("comfyui.log", "comfyui.prev.log") +try: + # Logger setup + if os.path.exists("comfyui.log"): + if os.path.exists("comfyui.prev.log"): + if os.path.exists("comfyui.prev2.log"): + os.remove("comfyui.prev2.log") + os.rename("comfyui.prev.log", "comfyui.prev2.log") + os.rename("comfyui.log", "comfyui.prev.log") -original_stdout = sys.stdout -original_stderr = sys.stderr + original_stdout = sys.stdout + original_stderr = sys.stderr -tqdm = r'\d+%.*\[(.*?)\]' + tqdm = r'\d+%.*\[(.*?)\]' -class Logger: - def __init__(self, filename): - self.file = open(filename, "w", encoding="utf-8") + log_file = open("comfyui.log", "w", encoding="utf-8") + log_lock = threading.Lock() - def write(self, message): - self.file.write(message) - self.file.flush() + class Logger: + def __init__(self, is_stdout): + self.is_stdout = is_stdout - match = re.search(tqdm, message) - if match: - message = re.sub(r'([#|])\d', r'\1▌', message) - message = re.sub('#', '█', message) - original_stderr.write(message) - original_stderr.flush() - else: - original_stdout.write(message) - original_stdout.flush() + def write(self, message): + if not self.is_stdout: + match = re.search(tqdm, message) + if match: + message = re.sub(r'([#|])\d', r'\1▌', message) + message = re.sub('#', '█', message) + if '100%' in message: + self.sync_write(message) + else: + original_stderr.write(message) + original_stderr.flush() + else: + self.sync_write(message) + else: + self.sync_write(message) - def flush(self): - self.file.flush() - original_stdout.flush() + def sync_write(self, message): + with log_lock: + log_file.write(message) + log_file.flush() - def close_file(self): - self.file.close() + if self.is_stdout: + original_stdout.write(message) + original_stdout.flush() + else: + original_stderr.write(message) + original_stderr.flush() + + def flush(self): + log_file.flush() + if self.is_stdout: + original_stdout.flush() + else: + original_stderr.flush() -def handle_stream(stream, prefix): - for line in stream: - print(prefix, line, end="") + def handle_stream(stream, prefix): + for line in stream: + print(prefix, line, end="") -sys.stdout = Logger("comfyui.log") -sys.stderr = sys.stdout + def close_log(): + log_file.close() + + + sys.stdout = Logger(True) + sys.stderr = Logger(False) + + atexit.register(close_log) +except Exception as e: + print(f"[ComfyUI-Manager] Logging failed: {e}") -atexit.register(sys.stdout.close_file) print("** ComfyUI start up time:", datetime.datetime.now()) From 1c1139a4305d3185b9b70071ed43f42ca9904090 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Tue, 19 Sep 2023 21:31:46 +0900 Subject: [PATCH 38/56] bugfix: missing badges for some small nodes - now use NO_TITLE instead of height. --- __init__.py | 2 +- extension-node-map.json | 7 ++++++- js/comfyui-manager.js | 2 +- node_db/new/extension-node-map.json | 7 ++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/__init__.py b/__init__.py index 0668f033..c32f1f0b 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.29)") +print("### Loading: ComfyUI-Manager (V0.29.1)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/extension-node-map.json b/extension-node-map.json index 851de7c1..2fa50de7 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1550,6 +1550,8 @@ "Prompt With Style", "Prompt With Style V2", "Prompt With Style V3", + "Range Float", + "Range Integer", "Ratio Advanced", "Resize Image for SDXL", "Save Image If True", @@ -2735,6 +2737,7 @@ [ "AV_CheckpointModelsToParametersPipe", "AV_ControlNetEfficientLoader", + "AV_ControlNetEfficientLoaderAdvanced", "AV_ControlNetEfficientStacker", "AV_ControlNetLoader", "AV_ControlNetPreprocessor", @@ -2989,7 +2992,9 @@ ], "https://github.com/tusharbhutt/Endless-Nodes": [ [ - "Endless Nodes Parameteriizer", + "Endless Nodes Combo Parameterizer", + "Endless Nodes Combo Parameterizer & Prompts", + "Endless Nodes Parameterizer", "Endless Nodes Parameterizer & Prompts", "Endless Nodes Six Input Text Switch", "Endless Nodes Six Integer IO Switch", diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 5f704bf8..3afeabf8 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -2002,7 +2002,7 @@ app.registerExtension({ nodeType.prototype.onDrawForeground = function (ctx) { const r = onDrawForeground?.apply?.(this, arguments); - if(!this.flags.collapsed && badge_mode != 'none' && this.size[1] > LiteGraph.NODE_TITLE_HEIGHT) { + if(!this.flags.collapsed && badge_mode != 'none' && nodeType.title_mode != LiteGraph.NO_TITLE) { let text = ""; if(badge_mode == 'id_nick') text = `#${this.id} `; diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 851de7c1..2fa50de7 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1550,6 +1550,8 @@ "Prompt With Style", "Prompt With Style V2", "Prompt With Style V3", + "Range Float", + "Range Integer", "Ratio Advanced", "Resize Image for SDXL", "Save Image If True", @@ -2735,6 +2737,7 @@ [ "AV_CheckpointModelsToParametersPipe", "AV_ControlNetEfficientLoader", + "AV_ControlNetEfficientLoaderAdvanced", "AV_ControlNetEfficientStacker", "AV_ControlNetLoader", "AV_ControlNetPreprocessor", @@ -2989,7 +2992,9 @@ ], "https://github.com/tusharbhutt/Endless-Nodes": [ [ - "Endless Nodes Parameteriizer", + "Endless Nodes Combo Parameterizer", + "Endless Nodes Combo Parameterizer & Prompts", + "Endless Nodes Parameterizer", "Endless Nodes Parameterizer & Prompts", "Endless Nodes Six Input Text Switch", "Endless Nodes Six Integer IO Switch", From 3edb3586b7077f9d6d495d48caa79b20d1572ece Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Wed, 20 Sep 2023 17:40:08 +0900 Subject: [PATCH 39/56] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 15 ++++++++++++++- node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 15 ++++++++++++++- 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index af131add..5effd28e 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1812,6 +1812,16 @@ "install_type": "git-clone", "description": "Nodes: SDPromptReader" }, + { + "author": "rklaffehn", + "title": "rk-comfy-nodes", + "reference": "https://github.com/rklaffehn/rk-comfy-nodes", + "files": [ + "https://github.com/rklaffehn/rk-comfy-nodes" + ], + "install_type": "git-clone", + "description": "Nodes: RK_CivitAIMetaChecker, RK_CivitAIAddHashes." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index 2fa50de7..3c4b8e62 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -519,6 +519,7 @@ "DiffControlNetLoaderAdvanced", "LatentKeyframe", "LatentKeyframeGroup", + "LatentKeyframeTiming", "LoadImagesFromDirectory", "ScaledSoftControlNetWeights", "SoftControlNetWeights", @@ -1452,6 +1453,7 @@ "Frame Counter (Simple) [Dream]", "Frame Counter Info [Dream]", "Frame Counter Offset [Dream]", + "Frame Counter Time Offset [Dream]", "Image Brightness Adjustment [Dream]", "Image Color Shift [Dream]", "Image Contrast Adjustment [Dream]", @@ -1481,7 +1483,8 @@ "Text Input [Dream]", "Triangle Curve [Dream]", "Triangle Event Curve [Dream]", - "Video Encoder (mpegCoder) [Dream]" + "Video Encoder (mpegCoder) [Dream]", + "WAV Curve [Dream]" ], { "title_aux": "Dream Project Animation Nodes" @@ -2682,6 +2685,15 @@ "title_aux": "Comfy-LFO" } ], + "https://github.com/rklaffehn/rk-comfy-nodes": [ + [ + "RK_CivitAIAddHashes", + "RK_CivitAIMetaChecker" + ], + { + "title_aux": "rk-comfy-nodes" + } + ], "https://github.com/s1dlx/comfy_meh/raw/main/meh.py": [ [ "MergingExecutionHelper" @@ -2751,6 +2763,7 @@ "BLIPCaption", "ColorBlend", "ColorCorrect", + "DeepDanbooruCaption", "DependenciesEdit", "Fooocus_KSampler", "Fooocus_KSamplerAdvanced", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 1b5cf86e..fabe4a7b 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "rklaffehn", + "title": "rk-comfy-nodes", + "reference": "https://github.com/rklaffehn/rk-comfy-nodes", + "files": [ + "https://github.com/rklaffehn/rk-comfy-nodes" + ], + "install_type": "git-clone", + "description": "Nodes: RK_CivitAIMetaChecker, RK_CivitAIAddHashes." + }, { "author": "receyuki", "title": "comfyui-prompt-reader-node", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 2fa50de7..3c4b8e62 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -519,6 +519,7 @@ "DiffControlNetLoaderAdvanced", "LatentKeyframe", "LatentKeyframeGroup", + "LatentKeyframeTiming", "LoadImagesFromDirectory", "ScaledSoftControlNetWeights", "SoftControlNetWeights", @@ -1452,6 +1453,7 @@ "Frame Counter (Simple) [Dream]", "Frame Counter Info [Dream]", "Frame Counter Offset [Dream]", + "Frame Counter Time Offset [Dream]", "Image Brightness Adjustment [Dream]", "Image Color Shift [Dream]", "Image Contrast Adjustment [Dream]", @@ -1481,7 +1483,8 @@ "Text Input [Dream]", "Triangle Curve [Dream]", "Triangle Event Curve [Dream]", - "Video Encoder (mpegCoder) [Dream]" + "Video Encoder (mpegCoder) [Dream]", + "WAV Curve [Dream]" ], { "title_aux": "Dream Project Animation Nodes" @@ -2682,6 +2685,15 @@ "title_aux": "Comfy-LFO" } ], + "https://github.com/rklaffehn/rk-comfy-nodes": [ + [ + "RK_CivitAIAddHashes", + "RK_CivitAIMetaChecker" + ], + { + "title_aux": "rk-comfy-nodes" + } + ], "https://github.com/s1dlx/comfy_meh/raw/main/meh.py": [ [ "MergingExecutionHelper" @@ -2751,6 +2763,7 @@ "BLIPCaption", "ColorBlend", "ColorCorrect", + "DeepDanbooruCaption", "DependenciesEdit", "Fooocus_KSampler", "Fooocus_KSamplerAdvanced", From c2ae252e414975664dff8ff3ded2d1950f3f7c90 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 20 Sep 2023 21:39:04 +0900 Subject: [PATCH 40/56] feat: git_exe settings --- README.md | 6 +++--- __init__.py | 20 +++++++++++++++++--- custom-node-list.json | 10 ++++++++++ git_helper.py | 14 ++++++++++++++ node_db/new/custom-node-list.json | 10 ++++++++++ 5 files changed, 54 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1a5b55bb..d367b8db 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ This repository provides Colab notebooks that allow you to install and use Comfy * Support for automatically installing dependencies of custom nodes upon restarting Colab notebooks. ## Changes +* **0.29** Add `Update all` feature * **0.25** support db channel * You can directly modify the db channel settings in the `config.ini` file. * If you want to maintain a new DB channel, please modify the `channels.list` and submit a PR. @@ -155,17 +156,16 @@ NODE_CLASS_MAPPINGS.update({ ## Troubleshooting +* If your `git.exe` is installed in a specific location other than system git, please install ComfyUI-Manager and run ComfyUI. Then, specify the path including the file name in `git_exe = ` in the ComfyUI-Manager/config.ini file that is generated. * If updating ComfyUI-Manager itself fails, please go to the **ComfyUI-Manager** directory and execute the command `git update-ref refs/remotes/origin/main a361cc1 && git fetch --all && git pull`. * Alternatively, download the update-fix.py script from [update-fix.py](https://github.com/ltdrdata/ComfyUI-Manager/raw/main/scripts/update-fix.py) and place it in the ComfyUI-Manager directory. Then, run it using your Python command. For the portable version, use `..\..\..\python_embeded\python.exe update-fix.py`. -* If Controlnet is set to skip_v1 true, nodes like `CannyEdgePreprocessor` will appear as extensions of missing nodes, but simply installing them is not enough, and direct modification of the user's config.yaml is required. * For cases where nodes like `PreviewTextNode` from `ComfyUI_Custom_Nodes_AlekPet` are only supported as front-end nodes, we currently do not provide missing nodes for them. * Currently, `vid2vid` is not being updated, causing compatibility issues. ## TODO: Unconventional form of custom node list -* https://github.com/bmad4ever/ComfyUI-Bmad-Custom-Nodes * https://github.com/diontimmer/Sample-Diffusion-ComfyUI-Extension * https://github.com/senshilabs/NINJA-plugin @@ -175,8 +175,8 @@ NODE_CLASS_MAPPINGS.update({ - [x] category/keyword filter - [x] Automatic recognition of missing custom nodes - [x] Automatic installation suggestion of missing custom nodes +- [x] 3rd party repository - [ ] installation from git url -- [ ] 3rd party repository - [ ] Specification of custom nodes - [ ] Specification scanner - [ ] Search extension by node name diff --git a/__init__.py b/__init__.py index c32f1f0b..dce05dc3 100644 --- a/__init__.py +++ b/__init__.py @@ -1,8 +1,8 @@ import configparser import shutil import folder_paths -import os, sys -import subprocess +import os +import sys import threading @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.29.1)") +print("### Loading: ComfyUI-Manager (V0.30)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" @@ -91,6 +91,7 @@ def write_config(): config['default'] = { 'preview_method': get_current_preview_method(), 'badge_mode': get_config()['badge_mode'], + 'git_exe': get_config()['git_exe'], 'channel_url': get_config()['channel_url'], 'channel_url_list': get_config()['channel_url_list'] } @@ -120,6 +121,7 @@ def read_config(): return { 'preview_method': default_conf['preview_method'] if 'preview_method' in default_conf else get_current_preview_method(), 'badge_mode': default_conf['badge_mode'] if 'badge_mode' in default_conf else 'none', + 'git_exe': default_conf['git_exe'] if 'git_exe' in default_conf else '', 'channel_url': default_conf['channel_url'] if 'channel_url' in default_conf else 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', 'channel_url_list': ch_url_list } @@ -128,6 +130,7 @@ def read_config(): return { 'preview_method': get_current_preview_method(), 'badge_mode': 'none', + 'git_exe': '', 'channel_url': 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', 'channel_url_list': '' } @@ -391,9 +394,20 @@ def setup_js(): print(f"### ComfyUI-Manager: Copy .js from '{js_src_path}' to '{js_dest_path}'") shutil.copy(js_src_path, js_dest_path) + setup_js() +def setup_environment(): + git_exe = get_config()['git_exe'] + + if git_exe != '': + git.Git().update_environment(GIT_PYTHON_GIT_EXECUTABLE=git_exe) + + +setup_environment() + + # Expand Server api import server diff --git a/custom-node-list.json b/custom-node-list.json index 5effd28e..5d63f2b5 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1802,6 +1802,16 @@ "install_type": "git-clone", "description": "Add Image Save nodes for TIFF 16 bit and EXR 32 bit formats. Probably only useful if you're applying a LUT or other color corrections, and care about preserving as much color accuracy as possible." }, + { + "author": "phineas-pta", + "title": "ComfyUI auto nodes layout", + "reference": "https://github.com/phineas-pta/comfyui-auto-nodes-layout", + "files": [ + "https://github.com/phineas-pta/comfyui-auto-nodes-layout" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension to apply better nodes layout algorithm to ComfyUI workflow (mostly for visualization purpose)" + }, { "author": "receyuki", "title": "comfyui-prompt-reader-node", diff --git a/git_helper.py b/git_helper.py index f5333f87..752aa0ea 100644 --- a/git_helper.py +++ b/git_helper.py @@ -1,6 +1,9 @@ import sys import os import git +import configparser + +config_path = os.path.join(os.path.dirname(__file__), "config.ini") def gitclone(custom_nodes_path, url): repo_name = os.path.splitext(os.path.basename(url))[0] @@ -72,6 +75,17 @@ def gitpull(path): repo.close() + +def setup_environment(): + config = configparser.ConfigParser() + config.read(config_path) + if 'git_exe' in config['default'] and config['default']['git_exe'] != '': + git.Git().update_environment(GIT_PYTHON_GIT_EXECUTABLE=config['default']['git_exe']) + + +setup_environment() + + try: if sys.argv[1] == "--clone": gitclone(sys.argv[2], sys.argv[3]) diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index fabe4a7b..624455e7 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "phineas-pta", + "title": "ComfyUI auto nodes layout", + "reference": "https://github.com/phineas-pta/comfyui-auto-nodes-layout", + "files": [ + "https://github.com/phineas-pta/comfyui-auto-nodes-layout" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension to apply better nodes layout algorithm to ComfyUI workflow (mostly for visualization purpose)" + }, { "author": "rklaffehn", "title": "rk-comfy-nodes", From 16d3ccbf9826ddb01e68091527b6431bc792148f Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 20 Sep 2023 21:49:52 +0900 Subject: [PATCH 41/56] fix: prevent skip update uncheck for `Update All` --- __init__.py | 2 +- js/comfyui-manager.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index dce05dc3..dc47da64 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.30)") +print("### Loading: ComfyUI-Manager (V0.30.1)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 3afeabf8..ceca4969 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -268,7 +268,6 @@ async function updateAll(update_check_checkbox) { if(response1.status == 201 || response2.status == 201) { app.ui.dialog.show('ComfyUI and all extensions have been updated to the latest version.'); app.ui.dialog.element.style.zIndex = 9999; - update_check_checkbox.checked = false; } else { app.ui.dialog.show('ComfyUI and all extensions are already up-to-date with the latest versions.'); From 5031f8ed63ee934115c13fc78c3a02e411c6604d Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Wed, 20 Sep 2023 23:32:08 +0900 Subject: [PATCH 42/56] update DB --- extension-node-map.json | 1 + node_db/new/extension-node-map.json | 1 + 2 files changed, 2 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index 3c4b8e62..96c6294c 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -3007,6 +3007,7 @@ [ "Endless Nodes Combo Parameterizer", "Endless Nodes Combo Parameterizer & Prompts", + "Endless Nodes Eight Input Text Switch", "Endless Nodes Parameterizer", "Endless Nodes Parameterizer & Prompts", "Endless Nodes Six Input Text Switch", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 3c4b8e62..96c6294c 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -3007,6 +3007,7 @@ [ "Endless Nodes Combo Parameterizer", "Endless Nodes Combo Parameterizer & Prompts", + "Endless Nodes Eight Input Text Switch", "Endless Nodes Parameterizer", "Endless Nodes Parameterizer & Prompts", "Endless Nodes Six Input Text Switch", From 7f6b01d0264ee70621684b9e0f2a0495a7bbccde Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" <128333288+ltdrdata@users.noreply.github.com> Date: Thu, 21 Sep 2023 08:24:48 +0900 Subject: [PATCH 43/56] fix: missing import of subprocess --- __init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index dc47da64..fc0f674b 100644 --- a/__init__.py +++ b/__init__.py @@ -4,6 +4,7 @@ import folder_paths import os import sys import threading +import subprocess def handle_stream(stream, prefix): @@ -55,7 +56,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.30.1)") +print("### Loading: ComfyUI-Manager (V0.30.2)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" From 91a0a1f0a6f155a3d4d71e185f50b7c31bcc9e81 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 21 Sep 2023 09:34:48 +0900 Subject: [PATCH 44/56] update DB --- alter-list.json | 5 +++++ custom-node-list.json | 18 ++++++++++++++---- extension-node-map.json | 19 +++++++++++++++++++ node_db/new/custom-node-list.json | 18 ++++++++++++++---- node_db/new/extension-node-map.json | 19 +++++++++++++++++++ 5 files changed, 71 insertions(+), 8 deletions(-) diff --git a/alter-list.json b/alter-list.json index 49283e43..2ca4bd96 100644 --- a/alter-list.json +++ b/alter-list.json @@ -159,6 +159,11 @@ "id":"https://github.com/spinagon/ComfyUI-seamless-tiling", "tags":"tiling", "description": "ComfyUI node for generating seamless textures Replicates 'Tiling' option from A1111" + }, + { + "id":"https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", + "tags":"cd-tuner, negpip", + "description": "This extension is a port of the sd-webui-cd-tuner(a.k.a. CD(color/Detail) Tuner )and sd-webui-negpip(a.k.a. NegPiP) extensions of A1111 to ComfyUI." } ] } \ No newline at end of file diff --git a/custom-node-list.json b/custom-node-list.json index 5d63f2b5..97ef6427 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1384,6 +1384,16 @@ "install_type": "git-clone", "description": "Nodes:Attention couple. This is a custom node that manipulates region-specific prompts. While vanilla ComfyUI employs an area specification method based on latent couples, this node divides regions using attention layers within UNet." }, + { + "author": "laksjdjf", + "title": "attention-couple-ComfyUI", + "reference": "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", + "files": [ + "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI" + ], + "install_type": "git-clone", + "description": "Nodes:Apply CDTuner, Apply Negapip. This extension provides the CD(Color/Detail) Tuner and the Negative Prompt in the Promptfeatures." + }, { "author": "alsritter", "title": "asymmetric-tiling-comfyui", @@ -1803,8 +1813,8 @@ "description": "Add Image Save nodes for TIFF 16 bit and EXR 32 bit formats. Probably only useful if you're applying a LUT or other color corrections, and care about preserving as much color accuracy as possible." }, { - "author": "phineas-pta", - "title": "ComfyUI auto nodes layout", + "author": "PTA", + "title": "auto nodes layout", "reference": "https://github.com/phineas-pta/comfyui-auto-nodes-layout", "files": [ "https://github.com/phineas-pta/comfyui-auto-nodes-layout" @@ -2045,9 +2055,9 @@ "title": "ComfyUI-Latent-Modifiers", "reference": "https://github.com/Clybius/ComfyUI-Latent-Modifiers", "files": [ - "https://github.com/Clybius/ComfyUI-Latent-Modifiers/raw/main/sampler_mega_modifier.py" + "https://github.com/Clybius/ComfyUI-Latent-Modifiers" ], - "install_type": "copy", + "install_type": "git-clone", "description": "Nodes: Latent Diffusion Mega Modifier. ComfyUI nodes which modify the latent during the diffusion process. (Sharpness, Tonemap, Rescale, Extra Noise)" }, { diff --git a/extension-node-map.json b/extension-node-map.json index 96c6294c..1629bf16 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -44,6 +44,7 @@ "AnimateDiffCombine", "AnimateDiffModuleLoader", "AnimateDiffSampler", + "AnimateDiffSlidingWindowOptions", "ImageSizeAndBatchSize", "LoadVideo" ], @@ -168,6 +169,14 @@ "title_aux": "ComfyUI_Ib_CustomNodes" } ], + "https://github.com/Clybius/ComfyUI-Latent-Modifiers": [ + [ + "Latent Diffusion Mega Modifier" + ], + { + "title_aux": "ComfyUI-Latent-Modifiers" + } + ], "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": [ [ "ABGRemover", @@ -2180,6 +2189,16 @@ "title_aux": "attention-couple-ComfyUI" } ], + "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": [ + [ + "CDTuner", + "Negapip", + "Negpip" + ], + { + "title_aux": "attention-couple-ComfyUI" + } + ], "https://github.com/laksjdjf/pfg-ComfyUI": [ [ "PFG" diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 624455e7..7842948d 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,8 +1,18 @@ { "custom_nodes": [ { - "author": "phineas-pta", - "title": "ComfyUI auto nodes layout", + "author": "laksjdjf", + "title": "attention-couple-ComfyUI", + "reference": "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", + "files": [ + "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI" + ], + "install_type": "git-clone", + "description": "Nodes:Apply CDTuner, Apply Negapip. This extension provides the CD(Color/Detail) Tuner and the Negative Prompt in the Promptfeatures." + }, + { + "author": "PTA", + "title": "auto nodes layout", "reference": "https://github.com/phineas-pta/comfyui-auto-nodes-layout", "files": [ "https://github.com/phineas-pta/comfyui-auto-nodes-layout" @@ -176,9 +186,9 @@ "title": "ComfyUI-Latent-Modifiers", "reference": "https://github.com/Clybius/ComfyUI-Latent-Modifiers", "files": [ - "https://github.com/Clybius/ComfyUI-Latent-Modifiers/raw/main/sampler_mega_modifier.py" + "https://github.com/Clybius/ComfyUI-Latent-Modifiers" ], - "install_type": "copy", + "install_type": "git-clone", "description": "Nodes: Latent Diffusion Mega Modifier. ComfyUI nodes which modify the latent during the diffusion process. (Sharpness, Tonemap, Rescale, Extra Noise)" }, { diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 96c6294c..1629bf16 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -44,6 +44,7 @@ "AnimateDiffCombine", "AnimateDiffModuleLoader", "AnimateDiffSampler", + "AnimateDiffSlidingWindowOptions", "ImageSizeAndBatchSize", "LoadVideo" ], @@ -168,6 +169,14 @@ "title_aux": "ComfyUI_Ib_CustomNodes" } ], + "https://github.com/Clybius/ComfyUI-Latent-Modifiers": [ + [ + "Latent Diffusion Mega Modifier" + ], + { + "title_aux": "ComfyUI-Latent-Modifiers" + } + ], "https://github.com/Davemane42/ComfyUI_Dave_CustomNode": [ [ "ABGRemover", @@ -2180,6 +2189,16 @@ "title_aux": "attention-couple-ComfyUI" } ], + "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": [ + [ + "CDTuner", + "Negapip", + "Negpip" + ], + { + "title_aux": "attention-couple-ComfyUI" + } + ], "https://github.com/laksjdjf/pfg-ComfyUI": [ [ "PFG" From 2d7a60689b980171cf6550e0e5bb283c2df9514f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Thu, 21 Sep 2023 10:17:48 +0900 Subject: [PATCH 45/56] fix: crash on windows --- __init__.py | 2 +- git_helper.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index fc0f674b..b544c59e 100644 --- a/__init__.py +++ b/__init__.py @@ -56,7 +56,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.30.2)") +print("### Loading: ComfyUI-Manager (V0.30.3)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/git_helper.py b/git_helper.py index 752aa0ea..5603fad1 100644 --- a/git_helper.py +++ b/git_helper.py @@ -79,7 +79,7 @@ def gitpull(path): def setup_environment(): config = configparser.ConfigParser() config.read(config_path) - if 'git_exe' in config['default'] and config['default']['git_exe'] != '': + if 'default' in config and 'git_exe' in config['default'] and config['default']['git_exe'] != '': git.Git().update_environment(GIT_PYTHON_GIT_EXECUTABLE=config['default']['git_exe']) From ead8d78b15430cb7eecef24f39f082a57da4f5bf Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Thu, 21 Sep 2023 22:05:38 +0900 Subject: [PATCH 46/56] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 23 +++++++++++++++++++++++ node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 23 +++++++++++++++++++++++ 4 files changed, 66 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index 97ef6427..712fe469 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1842,6 +1842,16 @@ "install_type": "git-clone", "description": "Nodes: RK_CivitAIMetaChecker, RK_CivitAIAddHashes." }, + { + "author": "cubiq", + "title": "ComfyUI Essentials", + "reference": "https://github.com/cubiq/ComfyUI_essentials", + "files": [ + "https://github.com/cubiq/ComfyUI_essentials" + ], + "install_type": "git-clone", + "description": "Essential nodes that are weirdly missing from ComfyUI core. With few exceptions they are new features and not commodities. I hope this will be just a temporary repository until the nodes get included into ComfyUI." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index 1629bf16..fd116121 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1407,6 +1407,7 @@ [ "ZuellniExLlamaGenerator", "ZuellniExLlamaLoader", + "ZuellniExLlamaLoraLoader", "ZuellniExLlamaPreviewer" ], { @@ -1890,6 +1891,25 @@ "title_aux": "Simple Math" } ], + "https://github.com/cubiq/ComfyUI_essentials": [ + [ + "ConsoleDebug+", + "GetImageSize+", + "GrowShrinkMask+", + "ImageCrop+", + "ImageDesaturate+", + "ImageFlip+", + "ImagePosterize+", + "ImageResize+", + "MaskBlur+", + "MaskFlip+", + "MaskPreview+", + "SimpleMath+" + ], + { + "title_aux": "ComfyUI Essentials" + } + ], "https://github.com/dagthomas/comfyui_dagthomas": [ [ "CSL", @@ -2385,6 +2405,7 @@ "KSampler //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", + "LoadPromptsFromFile //Inspire", "LoraBlockInfo //Inspire", "LoraLoaderBlockWeight //Inspire", "MediaPipeFaceMeshDetectorProvider //Inspire", @@ -3070,6 +3091,7 @@ "CLIP Positive-Negative XL w/Text (WLSH)", "CLIP Positive-Negative w/Text (WLSH)", "Checkpoint Loader w/Name (WLSH)", + "Empty Latent by Pixels (WLSH)", "Empty Latent by Ratio (WLSH)", "Generate Edge Mask (WLSH)", "Generate Face Mask (WLSH)", @@ -3083,6 +3105,7 @@ "Resolutions by Ratio (WLSH)", "SDXL Quick Empty Latent (WLSH)", "SDXL Quick Image Scale (WLSH)", + "SDXL Resolution Multiplier (WLSH)", "SDXL Resolutions (WLSH)", "SDXL Steps (WLSH)", "Save Positive Prompt File (WLSH)", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 7842948d..30360210 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "cubiq", + "title": "ComfyUI Essentials", + "reference": "https://github.com/cubiq/ComfyUI_essentials", + "files": [ + "https://github.com/cubiq/ComfyUI_essentials" + ], + "install_type": "git-clone", + "description": "Essential nodes that are weirdly missing from ComfyUI core. With few exceptions they are new features and not commodities. I hope this will be just a temporary repository until the nodes get included into ComfyUI." + }, { "author": "laksjdjf", "title": "attention-couple-ComfyUI", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 1629bf16..fd116121 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1407,6 +1407,7 @@ [ "ZuellniExLlamaGenerator", "ZuellniExLlamaLoader", + "ZuellniExLlamaLoraLoader", "ZuellniExLlamaPreviewer" ], { @@ -1890,6 +1891,25 @@ "title_aux": "Simple Math" } ], + "https://github.com/cubiq/ComfyUI_essentials": [ + [ + "ConsoleDebug+", + "GetImageSize+", + "GrowShrinkMask+", + "ImageCrop+", + "ImageDesaturate+", + "ImageFlip+", + "ImagePosterize+", + "ImageResize+", + "MaskBlur+", + "MaskFlip+", + "MaskPreview+", + "SimpleMath+" + ], + { + "title_aux": "ComfyUI Essentials" + } + ], "https://github.com/dagthomas/comfyui_dagthomas": [ [ "CSL", @@ -2385,6 +2405,7 @@ "KSampler //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", + "LoadPromptsFromFile //Inspire", "LoraBlockInfo //Inspire", "LoraLoaderBlockWeight //Inspire", "MediaPipeFaceMeshDetectorProvider //Inspire", @@ -3070,6 +3091,7 @@ "CLIP Positive-Negative XL w/Text (WLSH)", "CLIP Positive-Negative w/Text (WLSH)", "Checkpoint Loader w/Name (WLSH)", + "Empty Latent by Pixels (WLSH)", "Empty Latent by Ratio (WLSH)", "Generate Edge Mask (WLSH)", "Generate Face Mask (WLSH)", @@ -3083,6 +3105,7 @@ "Resolutions by Ratio (WLSH)", "SDXL Quick Empty Latent (WLSH)", "SDXL Quick Image Scale (WLSH)", + "SDXL Resolution Multiplier (WLSH)", "SDXL Resolutions (WLSH)", "SDXL Steps (WLSH)", "Save Positive Prompt File (WLSH)", From 18f84e017c2f9dd97c7dda6d2f7f1f4ebcc55279 Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 22 Sep 2023 09:21:18 +0900 Subject: [PATCH 47/56] update DB --- README.md | 6 ++++++ alter-list.json | 5 +++++ custom-node-list.json | 30 +++++++++++++++++++---------- extension-node-map.json | 18 +++++++++++++++-- node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 18 +++++++++++++++-- 6 files changed, 73 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d367b8db..383557a8 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,11 @@ This repository provides Colab notebooks that allow you to install and use Comfy ![model-install-dialog](misc/nickname.jpg) +## How to register your custom node into ComfyUI-Manager + +* Add an entry to `custom-node-list.json` located in the root of ComfyUI-Manager and submit a Pull Request. +* NOTE: Before submitting the PR after making changes, please check `Use local DB` and ensure that the extension list loads without any issues in the `Install custom nodes` dialog. Occasionally, missing or extra commas can lead to JSON syntax errors. +* The remaining JSON will be updated through scripts in the future, so you don't need to worry about it. ## Custom node support guide @@ -132,6 +137,7 @@ NODE_CLASS_MAPPINGS.update({ """ ``` + * **Special purpose files** (optional) * `node_list.js` - When your custom nodes pattern of NODE_CLASS_MAPPINGS is not conventional, it is used to manually provide a list of nodes for reference. ([example](https://github.com/melMass/comfy_mtb/raw/main/node_list.json)) * `requirements.txt` - When installing, this pip requirements will be installed automatically diff --git a/alter-list.json b/alter-list.json index 2ca4bd96..bcbd0920 100644 --- a/alter-list.json +++ b/alter-list.json @@ -164,6 +164,11 @@ "id":"https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", "tags":"cd-tuner, negpip", "description": "This extension is a port of the sd-webui-cd-tuner(a.k.a. CD(color/Detail) Tuner )and sd-webui-negpip(a.k.a. NegPiP) extensions of A1111 to ComfyUI." + }, + { + "id":"https://github.com/mcmonkeyprojects/sd-dynamic-thresholding", + "tags":"dynamic thresholding", + "description": "This custom node is a port of the Dynamic Thresholding extension from A1111 to make it available for use in ComfyUI." } ] } \ No newline at end of file diff --git a/custom-node-list.json b/custom-node-list.json index 712fe469..5fbc5126 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1852,6 +1852,26 @@ "install_type": "git-clone", "description": "Essential nodes that are weirdly missing from ComfyUI core. With few exceptions they are new features and not commodities. I hope this will be just a temporary repository until the nodes get included into ComfyUI." }, + { + "author": "Clybius", + "title": "ComfyUI-Latent-Modifiers", + "reference": "https://github.com/Clybius/ComfyUI-Latent-Modifiers", + "files": [ + "https://github.com/Clybius/ComfyUI-Latent-Modifiers" + ], + "install_type": "git-clone", + "description": "Nodes: Latent Diffusion Mega Modifier. ComfyUI nodes which modify the latent during the diffusion process. (Sharpness, Tonemap, Rescale, Extra Noise)" + }, + { + "author": "mcmonkeyprojects", + "title": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)", + "reference": "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding", + "files": [ + "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding" + ], + "install_type": "git-clone", + "description": "Extension for StableSwarmUI, ComfyUI, and AUTOMATIC1111 Stable Diffusion WebUI that enables a way to use higher CFG Scales without color issues. This works by clamping latents between steps." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", @@ -2060,16 +2080,6 @@ "install_type": "copy", "description": "Nodes:LatentGarbageCollector. This ComfyUI custom node flushes the GPU cache and empty cuda interprocess memory. It's helpfull for low memory environment such as the free Google Colab, especially when the workflow VAE decode latents of the size above 1500x1500." }, - { - "author": "Clybius", - "title": "ComfyUI-Latent-Modifiers", - "reference": "https://github.com/Clybius/ComfyUI-Latent-Modifiers", - "files": [ - "https://github.com/Clybius/ComfyUI-Latent-Modifiers" - ], - "install_type": "git-clone", - "description": "Nodes: Latent Diffusion Mega Modifier. ComfyUI nodes which modify the latent during the diffusion process. (Sharpness, Tonemap, Rescale, Extra Noise)" - }, { "author": "theally", "title": "TheAlly's Custom Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index fd116121..dcc6cd65 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -864,6 +864,7 @@ "CR Apply ControlNet", "CR Apply LoRA Stack", "CR Apply Model Merge", + "CR Apply Multi Upscale", "CR Apply Multi-ControlNet", "CR Aspect Ratio", "CR Aspect Ratio SDXL", @@ -895,6 +896,7 @@ "CR Module Input", "CR Module Output", "CR Module Pipe Loader", + "CR Multi Upscale Stack", "CR Multi-ControlNet Stack", "CR Pipe Switch", "CR Process Switch", @@ -908,7 +910,8 @@ "CR Seed to Int", "CR Switch Model and CLIP", "CR Text Input Switch", - "CR Text Input Switch (4 way)" + "CR Text Input Switch (4 way)", + "CR Upscale Image" ], { "title_aux": "ComfyUI_Comfyroll_CustomNodes" @@ -2464,6 +2467,15 @@ "title_aux": "Facerestore CF (Code Former)" } ], + "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": [ + [ + "DynamicThresholdingFull", + "DynamicThresholdingSimple" + ], + { + "title_aux": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)" + } + ], "https://github.com/meap158/ComfyUI-GPU-temperature-protection": [ [ "GPUTemperatureProtection" @@ -2703,7 +2715,9 @@ ], "https://github.com/receyuki/comfyui-prompt-reader-node": [ [ - "SDPromptReader" + "SDParameterGenerator", + "SDPromptReader", + "SDPromptSaver" ], { "author": "receyuki", diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 30360210..8276a580 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "mcmonkeyprojects", + "title": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)", + "reference": "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding", + "files": [ + "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding" + ], + "install_type": "git-clone", + "description": "Extension for StableSwarmUI, ComfyUI, and AUTOMATIC1111 Stable Diffusion WebUI that enables a way to use higher CFG Scales without color issues. This works by clamping latents between steps." + }, { "author": "cubiq", "title": "ComfyUI Essentials", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index fd116121..dcc6cd65 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -864,6 +864,7 @@ "CR Apply ControlNet", "CR Apply LoRA Stack", "CR Apply Model Merge", + "CR Apply Multi Upscale", "CR Apply Multi-ControlNet", "CR Aspect Ratio", "CR Aspect Ratio SDXL", @@ -895,6 +896,7 @@ "CR Module Input", "CR Module Output", "CR Module Pipe Loader", + "CR Multi Upscale Stack", "CR Multi-ControlNet Stack", "CR Pipe Switch", "CR Process Switch", @@ -908,7 +910,8 @@ "CR Seed to Int", "CR Switch Model and CLIP", "CR Text Input Switch", - "CR Text Input Switch (4 way)" + "CR Text Input Switch (4 way)", + "CR Upscale Image" ], { "title_aux": "ComfyUI_Comfyroll_CustomNodes" @@ -2464,6 +2467,15 @@ "title_aux": "Facerestore CF (Code Former)" } ], + "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": [ + [ + "DynamicThresholdingFull", + "DynamicThresholdingSimple" + ], + { + "title_aux": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)" + } + ], "https://github.com/meap158/ComfyUI-GPU-temperature-protection": [ [ "GPUTemperatureProtection" @@ -2703,7 +2715,9 @@ ], "https://github.com/receyuki/comfyui-prompt-reader-node": [ [ - "SDPromptReader" + "SDParameterGenerator", + "SDPromptReader", + "SDPromptSaver" ], { "author": "receyuki", From 2202de087240e6c5840350c4c3376f82a7f2e32f Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 22 Sep 2023 09:27:54 +0900 Subject: [PATCH 48/56] update DB --- alter-list.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alter-list.json b/alter-list.json index bcbd0920..6d407929 100644 --- a/alter-list.json +++ b/alter-list.json @@ -167,7 +167,7 @@ }, { "id":"https://github.com/mcmonkeyprojects/sd-dynamic-thresholding", - "tags":"dynamic thresholding", + "tags":"DT, dynamic thresholding", "description": "This custom node is a port of the Dynamic Thresholding extension from A1111 to make it available for use in ComfyUI." } ] From 92783b5c9f639920754214130e25e23450b7a11e Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 22 Sep 2023 10:40:44 +0900 Subject: [PATCH 49/56] update DB --- custom-node-list.json | 2 +- extension-node-map.json | 2 +- node_db/new/custom-node-list.json | 2 +- node_db/new/extension-node-map.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 5fbc5126..141fd85d 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1386,7 +1386,7 @@ }, { "author": "laksjdjf", - "title": "attention-couple-ComfyUI", + "title": "cd-tuner_negpip-ComfyUI", "reference": "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", "files": [ "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI" diff --git a/extension-node-map.json b/extension-node-map.json index dcc6cd65..d3f61d8e 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2219,7 +2219,7 @@ "Negpip" ], { - "title_aux": "attention-couple-ComfyUI" + "title_aux": "cd-tuner_negpip-ComfyUI" } ], "https://github.com/laksjdjf/pfg-ComfyUI": [ diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 8276a580..1c61c4ce 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -22,7 +22,7 @@ }, { "author": "laksjdjf", - "title": "attention-couple-ComfyUI", + "title": "cd-tuner_negpip-ComfyUI", "reference": "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", "files": [ "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI" diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index dcc6cd65..d3f61d8e 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2219,7 +2219,7 @@ "Negpip" ], { - "title_aux": "attention-couple-ComfyUI" + "title_aux": "cd-tuner_negpip-ComfyUI" } ], "https://github.com/laksjdjf/pfg-ComfyUI": [ From e45903e8977595a253bbbd644adf4ed4408b528d Mon Sep 17 00:00:00 2001 From: "dr.lt.data" Date: Fri, 22 Sep 2023 12:33:16 +0900 Subject: [PATCH 50/56] fix: invalid error message on Update All --- __init__.py | 2 +- js/comfyui-manager.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__init__.py b/__init__.py index b544c59e..b1217667 100644 --- a/__init__.py +++ b/__init__.py @@ -56,7 +56,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.30.3)") +print("### Loading: ComfyUI-Manager (V0.30.4)") comfy_ui_required_revision = 1240 comfy_ui_revision = "Unknown" diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index ceca4969..a9de0f0a 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -260,7 +260,7 @@ async function updateAll(update_check_checkbox) { const response1 = await api.fetchApi('/comfyui_manager/update_comfyui'); const response2 = await api.fetchApi(`/customnode/update_all?mode=${mode}`); - if(response1.status != 200 || response2.status != 201) { + if(response1.status != 200 && response2.status != 201) { app.ui.dialog.show('Failed to update ComfyUI or several extensions.

See terminal log.
'); app.ui.dialog.element.style.zIndex = 9999; return false; From c3b4b797be4f61ae06669898eba592dd1bace080 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Fri, 22 Sep 2023 23:23:05 +0900 Subject: [PATCH 51/56] update DB --- extension-node-map.json | 4 +++- node_db/new/extension-node-map.json | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/extension-node-map.json b/extension-node-map.json index d3f61d8e..26c322b9 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1058,8 +1058,10 @@ ], "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [ [ + "tri3d-atr-parse", "tri3d-extract-hand", - "tri3d-fuzzification" + "tri3d-fuzzification", + "tri3d-position-hands" ], { "title_aux": "tri3d-comfyui-nodes" diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index d3f61d8e..26c322b9 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1058,8 +1058,10 @@ ], "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [ [ + "tri3d-atr-parse", "tri3d-extract-hand", - "tri3d-fuzzification" + "tri3d-fuzzification", + "tri3d-position-hands" ], { "title_aux": "tri3d-comfyui-nodes" From c927bee74767a4df53c0a7618ceb085d19be53c1 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 23 Sep 2023 09:03:28 +0900 Subject: [PATCH 52/56] update DB --- custom-node-list.json | 10 +++ extension-node-map.json | 11 +++ node_db/new/custom-node-list.json | 111 +++------------------------- node_db/new/extension-node-map.json | 11 +++ 4 files changed, 42 insertions(+), 101 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 141fd85d..b2dc0949 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1872,6 +1872,16 @@ "install_type": "git-clone", "description": "Extension for StableSwarmUI, ComfyUI, and AUTOMATIC1111 Stable Diffusion WebUI that enables a way to use higher CFG Scales without color issues. This works by clamping latents between steps." }, + { + "author": "Tropfchen", + "title": "YARS: Yet Another Resolution Selector", + "reference": "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector", + "files": [ + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector" + ], + "install_type": "git-clone", + "description": "A slightly different Resolution Selector node, allowing to freely change base resolution and aspect ratio, with options to maintain the pixel count or use the base resolution as the highest or lowest dimension." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index 26c322b9..6e9264ff 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -543,6 +543,8 @@ [ "ADE_AnimateDiffCombine", "ADE_AnimateDiffLoaderV1Advanced", + "ADE_AnimateDiffLoaderWithContext", + "ADE_AnimateDiffUniformContextOptions", "ADE_AnimateDiffUnload", "ADE_EmptyLatentImageLarge", "AnimateDiffLoaderV1", @@ -1122,6 +1124,15 @@ "title_aux": "Embedding Picker" } ], + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": [ + [ + "YARS", + "YARSAdv" + ], + { + "title_aux": "YARS: Yet Another Resolution Selector" + } + ], "https://github.com/Ttl/ComfyUi_NNLatentUpscale": [ [ "NNLatentUpscale" diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 1c61c4ce..6174987b 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "Tropfchen", + "title": "YARS: Yet Another Resolution Selector", + "reference": "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector", + "files": [ + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector" + ], + "install_type": "git-clone", + "description": "A slightly different Resolution Selector node, allowing to freely change base resolution and aspect ratio, with options to maintain the pixel count or use the base resolution as the highest or lowest dimension." + }, { "author": "mcmonkeyprojects", "title": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)", @@ -790,107 +800,6 @@ ], "install_type": "git-clone", "description": "Nodes: KSampler With Refiner (Fooocus). The KSampler from Fooocus as a ComfyUI node

NOTE: This patches basic ComfyUI behaviour - don't use together with other samplers. Or perhaps do? Other samplers might profit from those changes ... ymmv.

" - }, - { - "author": "city96", - "title": "SD-Latent-Upscaler", - "reference": "https://github.com/city96/SD-Latent-Upscaler", - "files": [ - "https://github.com/city96/SD-Latent-Upscaler" - ], - "pip": ["huggingface-hub"], - "install_type": "git-clone", - "description": "Upscaling stable diffusion latents using a small neural network." - }, - { - "author": "JPS-GER", - "title": "JPS Custom Nodes for ComfyUI", - "reference": "https://github.com/JPS-GER/ComfyUI_JPS-Nodes", - "files": [ - "https://github.com/JPS-GER/ComfyUI_JPS-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes: SDXL - Resolutions, SDXL - Basic Settings, SDXL - Additional Settings, Math - Resolution Multiply, Math - Largest Integer, Switch - Generation Mode, ..." - }, - { - "author": "hustille", - "title": "hus' utils for ComfyUI", - "reference": "https://github.com/hustille/ComfyUI_hus_utils", - "files": [ - "https://github.com/hustille/ComfyUI_hus_utils" - ], - "install_type": "git-clone", - "description": "ComfyUI nodes primarily for seed and filename generation" - }, - { - "author": "m-sokes", - "title": "ComfyUI Sokes Nodes", - "reference": "https://github.com/m-sokes/ComfyUI-Sokes-Nodes", - "files": [ - "https://github.com/m-sokes/ComfyUI-Sokes-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes: Empty Latent Randomizer (9 Inputs)" - }, - { - "author": "Extraltodeus", - "title": "noise latent perlinpinpin", - "reference": "https://github.com/Extraltodeus/noise_latent_perlinpinpin", - "files": [ - "https://github.com/Extraltodeus/noise_latent_perlinpinpin" - ], - "install_type": "git-clone", - "description": "Nodes: NoisyLatentPerlin. This allows to create latent spaces filled with perlin-based noise that can actually be used by the samplers." - }, - { - "author": "theUpsider", - "title": "ComfyUI-Logic", - "reference": "https://github.com/theUpsider/ComfyUI-Logic", - "files": [ - "https://github.com/theUpsider/ComfyUI-Logic" - ], - "install_type": "git-clone", - "description": "An extension to ComfyUI that introduces logic nodes and conditional rendering capabilities." - }, - { - "author": "tkoenig89", - "title": "Load Image with metadata", - "reference": "https://github.com/tkoenig89/ComfyUI_Load_Image_With_Metadata", - "files": [ - "https://github.com/tkoenig89/ComfyUI_Load_Image_With_Metadata" - ], - "install_type": "git-clone", - "description": "A custom node for comfy ui to read generation data from images (prompt, seed, size...). This could be used when upscaling generated images to use the original prompt and seed." - }, - { - "author": "mpiquero7164", - "title": "SaveImgPrompt", - "reference": "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt", - "files": [ - "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt" - ], - "install_type": "git-clone", - "description": "Save a png or jpeg and option to save prompt/workflow in a text or json file for each image in Comfy + Workflow loading." - }, - { - "author": "city96", - "title": "SD-Advanced-Noise", - "reference": "https://github.com/city96/SD-Advanced-Noise", - "files": [ - "https://github.com/city96/SD-Advanced-Noise" - ], - "install_type": "git-clone", - "description": "Nodes: LatentGaussianNoise, MathEncode. An experimental custom node that generates latent noise directly by utilizing the linear characteristics of the latent space." - }, - { - "author": "WASasquatch", - "title": "ComfyUI Preset Merger", - "reference": "https://github.com/WASasquatch/ComfyUI_Preset_Merger", - "files": [ - "https://github.com/WASasquatch/ComfyUI_Preset_Merger" - ], - "install_type": "git-clone", - "description": "Nodes: ModelMergeByPreset. Merge checkpoint models by preset" } ] } diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 26c322b9..6e9264ff 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -543,6 +543,8 @@ [ "ADE_AnimateDiffCombine", "ADE_AnimateDiffLoaderV1Advanced", + "ADE_AnimateDiffLoaderWithContext", + "ADE_AnimateDiffUniformContextOptions", "ADE_AnimateDiffUnload", "ADE_EmptyLatentImageLarge", "AnimateDiffLoaderV1", @@ -1122,6 +1124,15 @@ "title_aux": "Embedding Picker" } ], + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": [ + [ + "YARS", + "YARSAdv" + ], + { + "title_aux": "YARS: Yet Another Resolution Selector" + } + ], "https://github.com/Ttl/ComfyUi_NNLatentUpscale": [ [ "NNLatentUpscale" From 9c913feeeebac3ca23b31847aa6a60cfc06646eb Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 23 Sep 2023 12:15:15 +0900 Subject: [PATCH 53/56] update DB --- extension-node-map.json | 1 + node_db/new/extension-node-map.json | 1 + 2 files changed, 2 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index 6e9264ff..20a48181 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2372,6 +2372,7 @@ "ReencodeLatentPipe", "RegionalPrompt", "RegionalSampler", + "RegionalSamplerAdvanced", "RemoveNoiseMask", "SAMDetectorCombined", "SAMDetectorSegmented", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 6e9264ff..20a48181 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2372,6 +2372,7 @@ "ReencodeLatentPipe", "RegionalPrompt", "RegionalSampler", + "RegionalSamplerAdvanced", "RemoveNoiseMask", "SAMDetectorCombined", "SAMDetectorSegmented", From e8e51a6cf82596cae7849418fb53bcff96300e6f Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 24 Sep 2023 08:52:31 +0900 Subject: [PATCH 54/56] update DB --- custom-node-list.json | 10 ++++++++++ extension-node-map.json | 10 ++++++++++ node_db/new/custom-node-list.json | 10 ++++++++++ node_db/new/extension-node-map.json | 10 ++++++++++ 4 files changed, 40 insertions(+) diff --git a/custom-node-list.json b/custom-node-list.json index b2dc0949..466951d9 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -225,6 +225,16 @@ "install_type": "git-clone", "description": "Power Noise Suite contains nodes centered around latent noise input, and diffusion, as well as latent adjustments." }, + { + "author": "WASasquatch", + "title": "FreeU_Advanced", + "reference": "https://github.com/WASasquatch/FreeU_Advanced", + "files": [ + "https://github.com/WASasquatch/FreeU_Advanced" + ], + "install_type": "git-clone", + "description": "This custom node provides advanced settings for FreeU." + }, { "author": "omar92", "title": "Quality of life Suit:V2", diff --git a/extension-node-map.json b/extension-node-map.json index 20a48181..fdb68ab7 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1157,6 +1157,14 @@ "title_aux": "ComfyUI Preset Merger" } ], + "https://github.com/WASasquatch/FreeU_Advanced": [ + [ + "FreeU (Advanced)" + ], + { + "title_aux": "FreeU_Advanced" + } + ], "https://github.com/WASasquatch/PPF_Noise_ComfyUI": [ [ "Blend Latents (PPF Noise)", @@ -1912,6 +1920,7 @@ "ConsoleDebug+", "GetImageSize+", "GrowShrinkMask+", + "ImageCASharpening+", "ImageCrop+", "ImageDesaturate+", "ImageFlip+", @@ -2730,6 +2739,7 @@ "https://github.com/receyuki/comfyui-prompt-reader-node": [ [ "SDParameterGenerator", + "SDPromptMerger", "SDPromptReader", "SDPromptSaver" ], diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 6174987b..221ef20d 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "WASasquatch", + "title": "FreeU_Advanced", + "reference": "https://github.com/WASasquatch/FreeU_Advanced", + "files": [ + "https://github.com/WASasquatch/FreeU_Advanced" + ], + "install_type": "git-clone", + "description": "This custom node provides advanced settings for FreeU." + }, { "author": "Tropfchen", "title": "YARS: Yet Another Resolution Selector", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 20a48181..fdb68ab7 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1157,6 +1157,14 @@ "title_aux": "ComfyUI Preset Merger" } ], + "https://github.com/WASasquatch/FreeU_Advanced": [ + [ + "FreeU (Advanced)" + ], + { + "title_aux": "FreeU_Advanced" + } + ], "https://github.com/WASasquatch/PPF_Noise_ComfyUI": [ [ "Blend Latents (PPF Noise)", @@ -1912,6 +1920,7 @@ "ConsoleDebug+", "GetImageSize+", "GrowShrinkMask+", + "ImageCASharpening+", "ImageCrop+", "ImageDesaturate+", "ImageFlip+", @@ -2730,6 +2739,7 @@ "https://github.com/receyuki/comfyui-prompt-reader-node": [ [ "SDParameterGenerator", + "SDPromptMerger", "SDPromptReader", "SDPromptSaver" ], From 559b692302f430f053fb0c3b34111174565b1bce Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 24 Sep 2023 17:14:38 +0900 Subject: [PATCH 55/56] update DB --- custom-node-list.json | 10 ---------- extension-node-map.json | 10 +--------- node_db/new/custom-node-list.json | 10 ---------- node_db/new/extension-node-map.json | 10 +--------- 4 files changed, 2 insertions(+), 38 deletions(-) diff --git a/custom-node-list.json b/custom-node-list.json index 466951d9..9cbd1909 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1624,16 +1624,6 @@ "install_type": "git-clone", "description": "Nodes: Latent Mirror. Node to mirror a latent along the Y (vertical / left to right) or X (horizontal / top to bottom) axis." }, - { - "author": "Vrahn", - "title": "ComfyUI-MasaCtrl-Node", - "reference": "https://github.com/Vrahn/ComfyUI-MasaCtrl-Node", - "files": [ - "https://github.com/Vrahn/ComfyUI-MasaCtrl-Node" - ], - "install_type": "git-clone", - "description": "Nodes: MasaCtrl." - }, { "author": "Tropfchen", "title": "Embedding Picker", diff --git a/extension-node-map.json b/extension-node-map.json index fdb68ab7..2ed1ca99 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1141,14 +1141,6 @@ "title_aux": "ComfyUI Neural network latent upscale custom node" } ], - "https://github.com/Vrahn/ComfyUI-MasaCtrl-Node": [ - [ - "MasaCtrl" - ], - { - "title_aux": "ComfyUI-MasaCtrl-Node" - } - ], "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [ [ "Preset_Model_Merge" @@ -1431,7 +1423,7 @@ [ "ZuellniExLlamaGenerator", "ZuellniExLlamaLoader", - "ZuellniExLlamaLoraLoader", + "ZuellniExLlamaLora", "ZuellniExLlamaPreviewer" ], { diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 221ef20d..39630deb 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -481,16 +481,6 @@ "install_type": "git-clone", "description": "Nodes:Attention couple. This is a custom node that manipulates region-specific prompts. While vanilla ComfyUI employs an area specification method based on latent couples, this node divides regions using attention layers within UNet." }, - { - "author": "Vrahn", - "title": "ComfyUI-MasaCtrl-Node", - "reference": "https://github.com/Vrahn/ComfyUI-MasaCtrl-Node", - "files": [ - "https://github.com/Vrahn/ComfyUI-MasaCtrl-Node" - ], - "install_type": "git-clone", - "description": "Nodes: MasaCtrl." - }, { "author": "spro", "title": "Latent Mirror node for ComfyUI", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index fdb68ab7..2ed1ca99 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1141,14 +1141,6 @@ "title_aux": "ComfyUI Neural network latent upscale custom node" } ], - "https://github.com/Vrahn/ComfyUI-MasaCtrl-Node": [ - [ - "MasaCtrl" - ], - { - "title_aux": "ComfyUI-MasaCtrl-Node" - } - ], "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [ [ "Preset_Model_Merge" @@ -1431,7 +1423,7 @@ [ "ZuellniExLlamaGenerator", "ZuellniExLlamaLoader", - "ZuellniExLlamaLoraLoader", + "ZuellniExLlamaLora", "ZuellniExLlamaPreviewer" ], { From b0ecb89c7d52efdc9c6df81c7068ed0d2316e8cb Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sun, 24 Sep 2023 23:59:08 +0900 Subject: [PATCH 56/56] update DB --- extension-node-map.json | 1 + node_db/new/extension-node-map.json | 1 + 2 files changed, 2 insertions(+) diff --git a/extension-node-map.json b/extension-node-map.json index 2ed1ca99..73649082 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -2421,6 +2421,7 @@ "GlobalSeed //Inspire", "HEDPreprocessor_Provider_for_SEGS //Inspire", "KSampler //Inspire", + "KSamplerAdvanced //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", "LoadPromptsFromFile //Inspire", diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 2ed1ca99..73649082 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -2421,6 +2421,7 @@ "GlobalSeed //Inspire", "HEDPreprocessor_Provider_for_SEGS //Inspire", "KSampler //Inspire", + "KSamplerAdvanced //Inspire", "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LoadPromptsFromDir //Inspire", "LoadPromptsFromFile //Inspire",