mirror of
https://github.com/Comfy-Org/ComfyUI-Manager.git
synced 2025-12-16 18:02:58 +08:00
feature: skip_update_check
update DB
This commit is contained in:
parent
cd6677d82c
commit
1285aaafde
24
__init__.py
24
__init__.py
@ -33,7 +33,7 @@ sys.path.append('../..')
|
|||||||
from torchvision.datasets.utils import download_url
|
from torchvision.datasets.utils import download_url
|
||||||
|
|
||||||
# ensure .js
|
# ensure .js
|
||||||
print("### Loading: ComfyUI-Manager (V0.17.3)")
|
print("### Loading: ComfyUI-Manager (V0.18)")
|
||||||
|
|
||||||
comfy_ui_required_revision = 1240
|
comfy_ui_required_revision = 1240
|
||||||
comfy_ui_revision = "Unknown"
|
comfy_ui_revision = "Unknown"
|
||||||
@ -335,7 +335,7 @@ def get_model_path(data):
|
|||||||
return os.path.join(base_model, data['filename'])
|
return os.path.join(base_model, data['filename'])
|
||||||
|
|
||||||
|
|
||||||
def check_a_custom_node_installed(item, do_fetch=False):
|
def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True):
|
||||||
item['installed'] = 'None'
|
item['installed'] = 'None'
|
||||||
|
|
||||||
if item['install_type'] == 'git-clone' and len(item['files']) == 1:
|
if item['install_type'] == 'git-clone' and len(item['files']) == 1:
|
||||||
@ -343,7 +343,7 @@ def check_a_custom_node_installed(item, do_fetch=False):
|
|||||||
dir_path = os.path.join(custom_nodes_path, dir_name)
|
dir_path = os.path.join(custom_nodes_path, dir_name)
|
||||||
if os.path.exists(dir_path):
|
if os.path.exists(dir_path):
|
||||||
try:
|
try:
|
||||||
if git_repo_has_updates(dir_path, do_fetch):
|
if do_update_check and git_repo_has_updates(dir_path, do_fetch):
|
||||||
item['installed'] = 'Update'
|
item['installed'] = 'Update'
|
||||||
else:
|
else:
|
||||||
item['installed'] = 'True'
|
item['installed'] = 'True'
|
||||||
@ -375,9 +375,9 @@ def check_a_custom_node_installed(item, do_fetch=False):
|
|||||||
item['installed'] = 'False'
|
item['installed'] = 'False'
|
||||||
|
|
||||||
|
|
||||||
def check_custom_nodes_installed(json_obj, do_fetch=False):
|
def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True):
|
||||||
for item in json_obj['custom_nodes']:
|
for item in json_obj['custom_nodes']:
|
||||||
check_a_custom_node_installed(item, do_fetch)
|
check_a_custom_node_installed(item, do_fetch, do_update_check)
|
||||||
|
|
||||||
|
|
||||||
@server.PromptServer.instance.routes.get("/customnode/getmappings")
|
@server.PromptServer.instance.routes.get("/customnode/getmappings")
|
||||||
@ -416,19 +416,29 @@ async def fetch_updates(request):
|
|||||||
|
|
||||||
@server.PromptServer.instance.routes.get("/customnode/getlist")
|
@server.PromptServer.instance.routes.get("/customnode/getlist")
|
||||||
async def fetch_customnode_list(request):
|
async def fetch_customnode_list(request):
|
||||||
|
if "skip_update" in request.rel_url.query and request.rel_url.query["skip_update"] == "true":
|
||||||
|
skip_update = True
|
||||||
|
else:
|
||||||
|
skip_update = False
|
||||||
|
|
||||||
if request.rel_url.query["mode"] == "local":
|
if request.rel_url.query["mode"] == "local":
|
||||||
uri = local_db_custom_node_list
|
uri = local_db_custom_node_list
|
||||||
else:
|
else:
|
||||||
uri = 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json'
|
uri = 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json'
|
||||||
|
|
||||||
json_obj = await get_data(uri)
|
json_obj = await get_data(uri)
|
||||||
check_custom_nodes_installed(json_obj, False)
|
check_custom_nodes_installed(json_obj, False, not skip_update)
|
||||||
|
|
||||||
return web.json_response(json_obj, content_type='application/json')
|
return web.json_response(json_obj, content_type='application/json')
|
||||||
|
|
||||||
|
|
||||||
@server.PromptServer.instance.routes.get("/alternatives/getlist")
|
@server.PromptServer.instance.routes.get("/alternatives/getlist")
|
||||||
async def fetch_alternatives_list(request):
|
async def fetch_alternatives_list(request):
|
||||||
|
if "skip_update" in request.rel_url.query and request.rel_url.query["skip_update"] == "true":
|
||||||
|
skip_update = True
|
||||||
|
else:
|
||||||
|
skip_update = False
|
||||||
|
|
||||||
if request.rel_url.query["mode"] == "local":
|
if request.rel_url.query["mode"] == "local":
|
||||||
uri1 = local_db_alter
|
uri1 = local_db_alter
|
||||||
uri2 = local_db_custom_node_list
|
uri2 = local_db_custom_node_list
|
||||||
@ -448,7 +458,7 @@ async def fetch_alternatives_list(request):
|
|||||||
fileurl = item['id']
|
fileurl = item['id']
|
||||||
if fileurl in fileurl_to_custom_node:
|
if fileurl in fileurl_to_custom_node:
|
||||||
custom_node = fileurl_to_custom_node[fileurl]
|
custom_node = fileurl_to_custom_node[fileurl]
|
||||||
check_a_custom_node_installed(custom_node)
|
check_a_custom_node_installed(custom_node, not skip_update)
|
||||||
item['custom_node'] = custom_node
|
item['custom_node'] = custom_node
|
||||||
|
|
||||||
return web.json_response(alter_json, content_type='application/json')
|
return web.json_response(alter_json, content_type='application/json')
|
||||||
|
|||||||
@ -740,6 +740,7 @@
|
|||||||
"FilterSchedule",
|
"FilterSchedule",
|
||||||
"JinjaRender",
|
"JinjaRender",
|
||||||
"LoRAScheduler",
|
"LoRAScheduler",
|
||||||
|
"PromptControlSimple",
|
||||||
"PromptToSchedule",
|
"PromptToSchedule",
|
||||||
"ScheduleToCond",
|
"ScheduleToCond",
|
||||||
"ScheduleToModel",
|
"ScheduleToModel",
|
||||||
|
|||||||
@ -38,7 +38,11 @@ async function getCustomNodes() {
|
|||||||
if(ManagerMenuDialog.instance.local_mode_checkbox.checked)
|
if(ManagerMenuDialog.instance.local_mode_checkbox.checked)
|
||||||
mode = "local";
|
mode = "local";
|
||||||
|
|
||||||
const response = await api.fetchApi(`/customnode/getlist?mode=${mode}`);
|
var skip_update = "";
|
||||||
|
if(ManagerMenuDialog.instance.local_mode_checkbox.checked)
|
||||||
|
skip_update = "&skip_update=true";
|
||||||
|
|
||||||
|
const response = await api.fetchApi(`/customnode/getlist?mode=${mode}${skip_update}`);
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
return data;
|
return data;
|
||||||
@ -49,7 +53,11 @@ async function getAlterList() {
|
|||||||
if(ManagerMenuDialog.instance.local_mode_checkbox.checked)
|
if(ManagerMenuDialog.instance.local_mode_checkbox.checked)
|
||||||
mode = "local";
|
mode = "local";
|
||||||
|
|
||||||
const response = await api.fetchApi(`/alternatives/getlist?mode=${mode}`);
|
var skip_update = "";
|
||||||
|
if(ManagerMenuDialog.instance.local_mode_checkbox.checked)
|
||||||
|
skip_update = "&skip_update=true";
|
||||||
|
|
||||||
|
const response = await api.fetchApi(`/alternatives/getlist?mode=${mode}${skip_update}`);
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
return data;
|
return data;
|
||||||
@ -1321,7 +1329,12 @@ class ManagerMenuDialog extends ComfyDialog {
|
|||||||
createButtons() {
|
createButtons() {
|
||||||
this.local_mode_checkbox = $el("input",{type:'checkbox', id:"use_local_db"},[])
|
this.local_mode_checkbox = $el("input",{type:'checkbox', id:"use_local_db"},[])
|
||||||
const checkbox_text = $el("label",{},[" Use local DB"])
|
const checkbox_text = $el("label",{},[" Use local DB"])
|
||||||
checkbox_text.style.color = "var(--fg-color)"
|
checkbox_text.style.color = "var(--fg-color)";
|
||||||
|
checkbox_text.style.marginRight = "10px";
|
||||||
|
|
||||||
|
this.update_check_checkbox = $el("input",{type:'checkbox', id:"skip_update_check"},[])
|
||||||
|
const uc_checkbox_text = $el("label",{},[" Skip update check"])
|
||||||
|
uc_checkbox_text.style.color = "var(--fg-color)";
|
||||||
|
|
||||||
update_comfyui_button =
|
update_comfyui_button =
|
||||||
$el("button", {
|
$el("button", {
|
||||||
@ -1357,7 +1370,7 @@ class ManagerMenuDialog extends ComfyDialog {
|
|||||||
[
|
[
|
||||||
$el("tr.td", {width:"100%"}, [$el("font", {size:6, color:"white"}, [`ComfyUI Manager Menu`])]),
|
$el("tr.td", {width:"100%"}, [$el("font", {size:6, color:"white"}, [`ComfyUI Manager Menu`])]),
|
||||||
$el("br", {}, []),
|
$el("br", {}, []),
|
||||||
$el("div", {}, [this.local_mode_checkbox, checkbox_text]),
|
$el("div", {}, [this.local_mode_checkbox, checkbox_text, this.update_check_checkbox, uc_checkbox_text]),
|
||||||
$el("br", {}, []),
|
$el("br", {}, []),
|
||||||
$el("button", {
|
$el("button", {
|
||||||
type: "button",
|
type: "button",
|
||||||
|
|||||||
16
scanner.py
16
scanner.py
@ -22,12 +22,12 @@ def scan_in_file(filename):
|
|||||||
pattern2 = r'NODE_CLASS_MAPPINGS\["(.*?)"\]'
|
pattern2 = r'NODE_CLASS_MAPPINGS\["(.*?)"\]'
|
||||||
keys = re.findall(pattern2, code)
|
keys = re.findall(pattern2, code)
|
||||||
for key in keys:
|
for key in keys:
|
||||||
nodes.add(key)
|
nodes.add(key.strip())
|
||||||
|
|
||||||
pattern3 = r'NODE_CLASS_MAPPINGS\[\'(.*?)\'\]'
|
pattern3 = r'NODE_CLASS_MAPPINGS\[\'(.*?)\'\]'
|
||||||
keys = re.findall(pattern3, code)
|
keys = re.findall(pattern3, code)
|
||||||
for key in keys:
|
for key in keys:
|
||||||
nodes.add(key)
|
nodes.add(key.strip())
|
||||||
|
|
||||||
matches = regex.findall(code)
|
matches = regex.findall(code)
|
||||||
for match in matches:
|
for match in matches:
|
||||||
@ -35,14 +35,14 @@ def scan_in_file(filename):
|
|||||||
|
|
||||||
key_value_pairs = re.findall(r"\"([^\"]*)\"\s*:\s*([^,\n]*)", dict_text)
|
key_value_pairs = re.findall(r"\"([^\"]*)\"\s*:\s*([^,\n]*)", dict_text)
|
||||||
for key, value in key_value_pairs:
|
for key, value in key_value_pairs:
|
||||||
class_dict[key] = value.strip()
|
class_dict[key.strip()] = value.strip()
|
||||||
|
|
||||||
key_value_pairs = re.findall(r"'([^']*)'\s*:\s*([^,\n]*)", dict_text)
|
key_value_pairs = re.findall(r"'([^']*)'\s*:\s*([^,\n]*)", dict_text)
|
||||||
for key, value in key_value_pairs:
|
for key, value in key_value_pairs:
|
||||||
class_dict[key] = value.strip()
|
class_dict[key.strip()] = value.strip()
|
||||||
|
|
||||||
for key, value in class_dict.items():
|
for key, value in class_dict.items():
|
||||||
nodes.add(key)
|
nodes.add(key.strip())
|
||||||
|
|
||||||
update_pattern = r"NODE_CLASS_MAPPINGS.update\s*\({([^}]*)}\)"
|
update_pattern = r"NODE_CLASS_MAPPINGS.update\s*\({([^}]*)}\)"
|
||||||
update_match = re.search(update_pattern, code)
|
update_match = re.search(update_pattern, code)
|
||||||
@ -50,8 +50,8 @@ def scan_in_file(filename):
|
|||||||
update_dict_text = update_match.group(1)
|
update_dict_text = update_match.group(1)
|
||||||
update_key_value_pairs = re.findall(r"\"([^\"]*)\"\s*:\s*([^,\n]*)", update_dict_text)
|
update_key_value_pairs = re.findall(r"\"([^\"]*)\"\s*:\s*([^,\n]*)", update_dict_text)
|
||||||
for key, value in update_key_value_pairs:
|
for key, value in update_key_value_pairs:
|
||||||
class_dict[key] = value.strip()
|
class_dict[key.strip()] = value.strip()
|
||||||
nodes.add(key)
|
nodes.add(key.strip())
|
||||||
|
|
||||||
return nodes
|
return nodes
|
||||||
|
|
||||||
@ -227,7 +227,7 @@ def gen_json(node_info):
|
|||||||
nodes = set(data[git_url])
|
nodes = set(data[git_url])
|
||||||
|
|
||||||
for x, desc in node_list_json.items():
|
for x, desc in node_list_json.items():
|
||||||
nodes.add(x)
|
nodes.add(x.strip())
|
||||||
|
|
||||||
nodes = list(nodes)
|
nodes = list(nodes)
|
||||||
nodes.sort()
|
nodes.sort()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user