Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
faf1209eba | ||
|
|
4dee009d51 | ||
|
|
9ad54bb86c | ||
|
|
2710d72e07 | ||
|
|
c3a1401960 |
14
cm-cli.py
14
cm-cli.py
@@ -12,6 +12,7 @@ from rich import print
|
||||
from typing_extensions import List, Annotated
|
||||
import re
|
||||
import git
|
||||
import importlib
|
||||
|
||||
|
||||
sys.path.append(os.path.dirname(__file__))
|
||||
@@ -88,12 +89,20 @@ read_downgrade_blacklist() # This is a preparation step for manager_core
|
||||
|
||||
|
||||
class Ctx:
|
||||
folder_paths = None
|
||||
|
||||
def __init__(self):
|
||||
self.channel = 'default'
|
||||
self.no_deps = False
|
||||
self.mode = 'cache'
|
||||
self.user_directory = None
|
||||
self.custom_nodes_paths = [os.path.join(core.comfy_path, 'custom_nodes')]
|
||||
|
||||
if Ctx.folder_paths is None:
|
||||
try:
|
||||
Ctx.folder_paths = importlib.import_module('folder_paths')
|
||||
except ImportError:
|
||||
print("Warning: Unable to import folder_paths module")
|
||||
|
||||
def set_channel_mode(self, channel, mode):
|
||||
if mode is not None:
|
||||
@@ -145,7 +154,10 @@ class Ctx:
|
||||
|
||||
@staticmethod
|
||||
def get_custom_nodes_paths():
|
||||
return folder_paths.get_folder_paths('custom_nodes')
|
||||
if Ctx.folder_paths is None:
|
||||
print("Error: folder_paths module is not available")
|
||||
return []
|
||||
return Ctx.folder_paths.get_folder_paths('custom_nodes')
|
||||
|
||||
|
||||
cmd_ctx = Ctx()
|
||||
|
||||
@@ -4004,6 +4004,17 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Integrates GLSL shader support."
|
||||
},
|
||||
{
|
||||
"author": "amorano",
|
||||
"title": "Jovi_Spout",
|
||||
"id": "jovi_spout",
|
||||
"reference": "https://github.com/Amorano/Jovi_Spout",
|
||||
"files": [
|
||||
"https://github.com/Amorano/Jovi_Spout"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI Nodes for using Spout streams."
|
||||
},
|
||||
{
|
||||
"author": "Umikaze-job",
|
||||
"title": "select_folder_path_easy",
|
||||
@@ -18797,6 +18808,27 @@
|
||||
"install_type": "git-clone",
|
||||
"description": "Run DDUF in ComfyUI - powered by Diffusers."
|
||||
},
|
||||
{
|
||||
"author": "AconexOfficial",
|
||||
"title": "ComfyUI GOAT Nodes",
|
||||
"reference": "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes",
|
||||
"files": [
|
||||
"https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes to level up your workflows performance and streamline specific functions."
|
||||
},
|
||||
{
|
||||
"author": "Jaminanim",
|
||||
"title": "ComfyUI-Random-Int-Divisor-Node",
|
||||
"reference": "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node",
|
||||
"files": [
|
||||
"https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of custom ComfyUI nodes for generating random integers within a range, adjusted to the nearest multiple of a user-defined divisor. Needlessly includes both an efficient and simple list implementation. Updates with each generation."
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1226,6 +1226,27 @@
|
||||
"title_aux": "ComfyUI Nodes for External Tooling"
|
||||
}
|
||||
],
|
||||
"https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes": [
|
||||
[
|
||||
"Advanced_Upscale_Image_Using_Model",
|
||||
"Capped_Float_Positive",
|
||||
"Capped_Int_Positive",
|
||||
"Embedding_Selector",
|
||||
"Fast_Color_Match",
|
||||
"Fast_Film_Grain",
|
||||
"Get_Side_Length_Of_Image",
|
||||
"Image_Dimensions",
|
||||
"Image_Tiler",
|
||||
"Image_Untiler",
|
||||
"Int_Divide_Rounded",
|
||||
"Sampler_Settings",
|
||||
"Smart_Seed",
|
||||
"Triple_Prompt"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI GOAT Nodes"
|
||||
}
|
||||
],
|
||||
"https://github.com/Aerse/ComfyUI-Seed-Nodes": [
|
||||
[
|
||||
"Seed-Nodes: ImagePixelator",
|
||||
@@ -1349,6 +1370,15 @@
|
||||
"title_aux": "Jovi_GLSL"
|
||||
}
|
||||
],
|
||||
"https://github.com/Amorano/Jovi_Spout": [
|
||||
[
|
||||
"SPOUT READER (JOV_SP) \ud83d\udcfa",
|
||||
"SPOUT WRITER (JOV_SP) \ud83c\udfa5"
|
||||
],
|
||||
{
|
||||
"title_aux": "Jovi_Spout"
|
||||
}
|
||||
],
|
||||
"https://github.com/Amorano/Jovimetrix": [
|
||||
[
|
||||
"ADJUST (JOV) \ud83d\udd78\ufe0f",
|
||||
@@ -4337,6 +4367,15 @@
|
||||
"title_aux": "ComfyUI-AI-Assistant"
|
||||
}
|
||||
],
|
||||
"https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node": [
|
||||
[
|
||||
"RandomIntegerNodeEfficient",
|
||||
"RandomIntegerNodeList"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Random-Int-Divisor-Node"
|
||||
}
|
||||
],
|
||||
"https://github.com/Jannchie/ComfyUI-J": [
|
||||
[
|
||||
"DiffusersCompelPromptEmbedding",
|
||||
@@ -9160,7 +9199,9 @@
|
||||
"InstaCText",
|
||||
"InstaCTextML",
|
||||
"InstaPromptMultipleStyleSelector",
|
||||
"InstaPromptStyleSelector"
|
||||
"InstaPromptStyleSelector",
|
||||
"LoadVideo",
|
||||
"PreViewVideo"
|
||||
],
|
||||
{
|
||||
"title_aux": "InstaSD nodes for ComfyUI"
|
||||
@@ -15407,6 +15448,7 @@
|
||||
"Griptape Util: Create Agent Modelfile",
|
||||
"Griptape Util: Create Model from Modelfile",
|
||||
"Griptape Util: Remove Ollama Model",
|
||||
"Griptape Util: Switch Node",
|
||||
"Griptape Vector Store Driver: Amazon OpenSearch",
|
||||
"Griptape Vector Store Driver: Azure MongoDB",
|
||||
"Griptape Vector Store Driver: Griptape Cloud",
|
||||
|
||||
@@ -127,8 +127,17 @@ def gitcheck(path, do_fetch=False):
|
||||
|
||||
|
||||
def switch_to_default_branch(repo):
|
||||
default_branch = repo.git.symbolic_ref('refs/remotes/origin/HEAD').replace('refs/remotes/origin/', '')
|
||||
repo.git.checkout(default_branch)
|
||||
try:
|
||||
default_branch = repo.git.symbolic_ref('refs/remotes/origin/HEAD').replace('refs/remotes/origin/', '')
|
||||
repo.git.checkout(default_branch)
|
||||
except:
|
||||
try:
|
||||
repo.git.checkout(repo.heads.master)
|
||||
except:
|
||||
try:
|
||||
repo.git.checkout(repo.heads.main)
|
||||
except:
|
||||
print("[ComfyUI Manager] Failed to switch to the default branch (master or main)")
|
||||
|
||||
|
||||
def gitpull(path):
|
||||
|
||||
@@ -484,6 +484,11 @@
|
||||
"last_update": "2024-12-09 18:53:55",
|
||||
"author_account_age_days": 3997
|
||||
},
|
||||
"https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes": {
|
||||
"stars": 3,
|
||||
"last_update": "2025-01-03 17:02:12",
|
||||
"author_account_age_days": 1674
|
||||
},
|
||||
"https://github.com/Aerse/ComfyUI-Seed-Nodes": {
|
||||
"stars": 3,
|
||||
"last_update": "2024-12-17 05:40:40",
|
||||
@@ -524,6 +529,11 @@
|
||||
"last_update": "2024-12-28 08:52:32",
|
||||
"author_account_age_days": 5405
|
||||
},
|
||||
"https://github.com/Amorano/Jovi_Spout": {
|
||||
"stars": 0,
|
||||
"last_update": "2025-01-03 22:41:31",
|
||||
"author_account_age_days": 5405
|
||||
},
|
||||
"https://github.com/Amorano/Jovimetrix": {
|
||||
"stars": 289,
|
||||
"last_update": "2024-12-30 06:20:41",
|
||||
@@ -1549,6 +1559,11 @@
|
||||
"last_update": "2024-09-05 03:42:14",
|
||||
"author_account_age_days": 764
|
||||
},
|
||||
"https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node": {
|
||||
"stars": 0,
|
||||
"last_update": "2025-01-03 20:59:40",
|
||||
"author_account_age_days": 1755
|
||||
},
|
||||
"https://github.com/Jannchie/ComfyUI-J": {
|
||||
"stars": 84,
|
||||
"last_update": "2024-09-14 15:22:29",
|
||||
|
||||
@@ -92,7 +92,7 @@ def install_node(node_id, version=None):
|
||||
|
||||
|
||||
def all_versions_of_node(node_id):
|
||||
url = f"https://api.comfy.org/nodes/{node_id}/versions"
|
||||
url = f"https://api.comfy.org/nodes/{node_id}/versions?statuses=NodeVersionStatusActive&statuses=NodeVersionStatusPending"
|
||||
|
||||
response = requests.get(url)
|
||||
if response.status_code == 200:
|
||||
|
||||
@@ -36,7 +36,7 @@ import manager_downloader
|
||||
from node_package import InstalledNodePackage
|
||||
|
||||
|
||||
version_code = [3, 3, 7]
|
||||
version_code = [3, 3, 9]
|
||||
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
||||
|
||||
|
||||
@@ -1510,8 +1510,17 @@ def get_config():
|
||||
|
||||
|
||||
def switch_to_default_branch(repo):
|
||||
default_branch = repo.git.symbolic_ref('refs/remotes/origin/HEAD').replace('refs/remotes/origin/', '')
|
||||
repo.git.checkout(default_branch)
|
||||
try:
|
||||
default_branch = repo.git.symbolic_ref('refs/remotes/origin/HEAD').replace('refs/remotes/origin/', '')
|
||||
repo.git.checkout(default_branch)
|
||||
except:
|
||||
try:
|
||||
repo.git.checkout(repo.heads.master)
|
||||
except:
|
||||
try:
|
||||
repo.git.checkout(repo.heads.main)
|
||||
except:
|
||||
print("[ComfyUI Manager] Failed to switch to the default branch (master or main)")
|
||||
|
||||
|
||||
def try_install_script(url, repo_path, install_cmd, instant_execution=False):
|
||||
|
||||
@@ -563,8 +563,10 @@
|
||||
"DevToolsNodeWithOnlyOptionalInput",
|
||||
"DevToolsNodeWithOptionalInput",
|
||||
"DevToolsNodeWithOutputList",
|
||||
"DevToolsNodeWithSeedInput",
|
||||
"DevToolsNodeWithStringInput",
|
||||
"DevToolsNodeWithUnionInput",
|
||||
"DevToolsObjectPatchNode",
|
||||
"DevToolsSimpleSlider"
|
||||
],
|
||||
{
|
||||
|
||||
@@ -9,6 +9,37 @@
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"author": "amorano",
|
||||
"title": "Jovi_Spout",
|
||||
"id": "jovi_spout",
|
||||
"reference": "https://github.com/Amorano/Jovi_Spout",
|
||||
"files": [
|
||||
"https://github.com/Amorano/Jovi_Spout"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "ComfyUI Nodes for using Spout streams."
|
||||
},
|
||||
{
|
||||
"author": "AconexOfficial",
|
||||
"title": "ComfyUI GOAT Nodes",
|
||||
"reference": "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes",
|
||||
"files": [
|
||||
"https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "Nodes to level up your workflows performance and streamline specific functions."
|
||||
},
|
||||
{
|
||||
"author": "Jaminanim",
|
||||
"title": "ComfyUI-Random-Int-Divisor-Node",
|
||||
"reference": "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node",
|
||||
"files": [
|
||||
"https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A set of custom ComfyUI nodes for generating random integers within a range, adjusted to the nearest multiple of a user-defined divisor. Needlessly includes both an efficient and simple list implementation. Updates with each generation."
|
||||
},
|
||||
{
|
||||
"author": "LucipherDev",
|
||||
"title": "ComfyUI-AniDoc",
|
||||
@@ -664,37 +695,6 @@
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A collection of specialized image processing nodes for ComfyUI, focused on dataset preparation and pixel art manipulation."
|
||||
},
|
||||
{
|
||||
"author": "BIMer-99",
|
||||
"title": "ComfyUI_FishSpeech_EX",
|
||||
"reference": "https://github.com/BIMer-99/ComfyUI_FishSpeech_EX",
|
||||
"files": [
|
||||
"https://github.com/BIMer-99/ComfyUI_FishSpeech_EX"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "This plugin is optimized for Fish-Speech-1.5 version and is only applicable to version 1.5"
|
||||
},
|
||||
{
|
||||
"author": "CyanAutumn",
|
||||
"title": "ComfyUi Random Manage Cyan",
|
||||
"id": "CyanAutumn",
|
||||
"reference": "https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan",
|
||||
"files": [
|
||||
"https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A random prompt node"
|
||||
},
|
||||
{
|
||||
"author": "kazeyori",
|
||||
"title": "Quick Image Sequence Process",
|
||||
"reference": "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess",
|
||||
"files": [
|
||||
"https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess"
|
||||
],
|
||||
"install_type": "git-clone",
|
||||
"description": "A ComfyUI plugin for quick image sequence processing. This plugin allows users to manipulate frame sequences with various operations including frame insertion, deletion, and duplication."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1226,6 +1226,27 @@
|
||||
"title_aux": "ComfyUI Nodes for External Tooling"
|
||||
}
|
||||
],
|
||||
"https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes": [
|
||||
[
|
||||
"Advanced_Upscale_Image_Using_Model",
|
||||
"Capped_Float_Positive",
|
||||
"Capped_Int_Positive",
|
||||
"Embedding_Selector",
|
||||
"Fast_Color_Match",
|
||||
"Fast_Film_Grain",
|
||||
"Get_Side_Length_Of_Image",
|
||||
"Image_Dimensions",
|
||||
"Image_Tiler",
|
||||
"Image_Untiler",
|
||||
"Int_Divide_Rounded",
|
||||
"Sampler_Settings",
|
||||
"Smart_Seed",
|
||||
"Triple_Prompt"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI GOAT Nodes"
|
||||
}
|
||||
],
|
||||
"https://github.com/Aerse/ComfyUI-Seed-Nodes": [
|
||||
[
|
||||
"Seed-Nodes: ImagePixelator",
|
||||
@@ -1349,6 +1370,15 @@
|
||||
"title_aux": "Jovi_GLSL"
|
||||
}
|
||||
],
|
||||
"https://github.com/Amorano/Jovi_Spout": [
|
||||
[
|
||||
"SPOUT READER (JOV_SP) \ud83d\udcfa",
|
||||
"SPOUT WRITER (JOV_SP) \ud83c\udfa5"
|
||||
],
|
||||
{
|
||||
"title_aux": "Jovi_Spout"
|
||||
}
|
||||
],
|
||||
"https://github.com/Amorano/Jovimetrix": [
|
||||
[
|
||||
"ADJUST (JOV) \ud83d\udd78\ufe0f",
|
||||
@@ -4337,6 +4367,15 @@
|
||||
"title_aux": "ComfyUI-AI-Assistant"
|
||||
}
|
||||
],
|
||||
"https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node": [
|
||||
[
|
||||
"RandomIntegerNodeEfficient",
|
||||
"RandomIntegerNodeList"
|
||||
],
|
||||
{
|
||||
"title_aux": "ComfyUI-Random-Int-Divisor-Node"
|
||||
}
|
||||
],
|
||||
"https://github.com/Jannchie/ComfyUI-J": [
|
||||
[
|
||||
"DiffusersCompelPromptEmbedding",
|
||||
@@ -9160,7 +9199,9 @@
|
||||
"InstaCText",
|
||||
"InstaCTextML",
|
||||
"InstaPromptMultipleStyleSelector",
|
||||
"InstaPromptStyleSelector"
|
||||
"InstaPromptStyleSelector",
|
||||
"LoadVideo",
|
||||
"PreViewVideo"
|
||||
],
|
||||
{
|
||||
"title_aux": "InstaSD nodes for ComfyUI"
|
||||
@@ -15407,6 +15448,7 @@
|
||||
"Griptape Util: Create Agent Modelfile",
|
||||
"Griptape Util: Create Model from Modelfile",
|
||||
"Griptape Util: Remove Ollama Model",
|
||||
"Griptape Util: Switch Node",
|
||||
"Griptape Vector Store Driver: Amazon OpenSearch",
|
||||
"Griptape Vector Store Driver: Azure MongoDB",
|
||||
"Griptape Vector Store Driver: Griptape Cloud",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[project]
|
||||
name = "comfyui-manager"
|
||||
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
|
||||
version = "3.3.7"
|
||||
version = "3.3.9"
|
||||
license = { file = "LICENSE.txt" }
|
||||
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user