diff --git a/README.md b/README.md index 36c5b0dd..1aa3f843 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ You can execute ComfyUI by running either `./run_gpu.sh` or `./run_cpu.sh` depen # Changes +* **0.13** Support additional 'pip' section for install spec * **0.12** Better installation support for Windows. * **0.9** Support keyword search in installer menu. * **V0.7.1** Bug fix for the issue where updates were not being applied on Windows. @@ -107,10 +108,8 @@ NODE_CLASS_MAPPINGS.update({ # TODO: Unconventional form of custom node list -* https://github.com/hlky/AIT * https://github.com/bmad4ever/ComfyUI-Bmad-Custom-Nodes * https://github.com/diontimmer/Sample-Diffusion-ComfyUI-Extension -* https://github.com/shadownetdev1/comfyui-addons * https://github.com/laksjdjf/pfg-ComfyUI diff --git a/__init__.py b/__init__.py index bcdb1774..0099418a 100644 --- a/__init__.py +++ b/__init__.py @@ -32,7 +32,7 @@ sys.path.append('../..') from torchvision.datasets.utils import download_url # ensure .js -print("### Loading: ComfyUI-Manager (V0.12.2)") +print("### Loading: ComfyUI-Manager (V0.13)") comfy_ui_revision = "Unknown" @@ -695,6 +695,9 @@ async def install_custom_node(request): res = False + if len(json_data['files']) == 0: + return web.Response(status=400) + if install_type == "unzip": res = unzip_install(json_data['files']) @@ -705,6 +708,11 @@ async def install_custom_node(request): elif install_type == "git-clone": res = gitclone_install(json_data['files']) + if 'pip' in json_data: + for pname in json_data['pip']: + install_cmd = [sys.executable, "-m", "pip", "install", pname] + try_install_script(json_data['files'][0], ".", install_cmd) + if res: print(f"After restarting ComfyUI, please refresh the browser.") return web.json_response({}, content_type='application/json') diff --git a/custom-node-list.json b/custom-node-list.json index 97583d0d..1802c6b0 100644 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -607,6 +607,16 @@ "install_type": "git-clone", "description": "Custom animation and utility nodes for Comfyui." }, + { + "author": "FizzleDorf", + "title": "AIT", + "reference": "https://github.com/FizzleDorf/AIT", + "files": [ + "https://github.com/FizzleDorf/AIT" + ], + "install_type": "git-clone", + "description": "Nodes: Load AITemplate, Load AITemplate (ControlNet), VAE Decode (AITemplate), VAE Encode (AITemplate), VAE Encode (AITemplate, Inpaint). Experimental usage of AITemplate" + }, { "author": "filipemeneses", "title": "Pixelization", @@ -727,6 +737,17 @@ "install_type": "git-clone", "description": "Nodes: CivitAI_Loaders. Load Checkpoints, and LORA models directly from CivitAI API." }, + { + "author": "andersxa", + "title": "CLIP Directional Prompt Attention", + "reference": "https://github.com/andersxa/comfyui-PromptAttention", + "files": [ + "https://github.com/andersxa/comfyui-PromptAttention" + ], + "pip": ["scikit-learn", "matplotlib"], + "install_type": "git-clone", + "description": "Nodes: CLIP Directional Prompt Attention Encode. Direction prompt attention tries to solve the problem of contextual words (or parts of the prompt) having an effect on much later or irrelevant parts of the prompt." + }, { "author": "taabata", "title": "Syrian Falcon Nodes", diff --git a/extension-node-map.json b/extension-node-map.json index 48758abd..51ea9e20 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -188,6 +188,15 @@ "Simple Frame Folder To Video", "Video Frame Extractor" ], + "https://github.com/FizzleDorf/AIT": [ + "AITemplateControlNetLoader", + "AITemplateEmptyLatentImage", + "AITemplateLatentUpscale", + "AITemplateLoader", + "AITemplateVAEDecode", + "AITemplateVAEEncode", + "AITemplateVAEEncodeForInpaint" + ], "https://github.com/FizzleDorf/ComfyUI_FizzNodes": [ "AbsCosWave", "AbsSinWave", @@ -633,6 +642,9 @@ "https://github.com/alpertunga-bile/prompt-generator-comfyui/raw/master/prompt_generator.py": [ "Prompt Generator" ], + "https://github.com/andersxa/comfyui-PromptAttention": [ + "CLIPAttentionMaskEncode" + ], "https://github.com/biegert/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py": [ "CLIPSeg", "CombineSegMasks" @@ -829,7 +841,9 @@ "FaceDetailer", "FaceDetailerPipe", "FromBasicPipe", + "FromBasicPipe_v2", "FromDetailerPipe", + "FromDetailerPipe_v2", "ImageMaskSwitch", "ImageReceiver", "ImageSender",