Browse Source

improve: don't show fetch message when startup caching.

fix: date based version compare instead of revision
https://github.com/ltdrdata/ComfyUI-Manager/issues/363#issuecomment-1907200900

fix: copy&paste bug
https://github.com/ltdrdata/ComfyUI-Manager/issues/357#issuecomment-1909284450
pull/365/head
dr.lt.data 10 months ago
parent
commit
2646e84d3a
  1. 62
      __init__.py
  2. 2
      prestartup_script.py

62
__init__.py

@ -7,7 +7,6 @@ import folder_paths
import os import os
import sys import sys
import threading import threading
import datetime
import locale import locale
import subprocess # don't remove this import subprocess # don't remove this
from tqdm.auto import tqdm from tqdm.auto import tqdm
@ -17,6 +16,8 @@ import http.client
import re import re
import nodes import nodes
import hashlib import hashlib
from datetime import datetime
try: try:
import cm_global import cm_global
@ -102,9 +103,11 @@ sys.path.append('../..')
from torchvision.datasets.utils import download_url from torchvision.datasets.utils import download_url
comfy_ui_required_revision = 1917 comfy_ui_required_revision = 1930
comfy_ui_required_commit_datetime = datetime(2024, 1, 24, 0, 0, 0)
comfy_ui_revision = "Unknown" comfy_ui_revision = "Unknown"
comfy_ui_commit_date = "" comfy_ui_commit_datetime = datetime(1900, 1, 1, 0, 0, 0)
comfy_path = os.path.dirname(folder_paths.__file__) comfy_path = os.path.dirname(folder_paths.__file__)
custom_nodes_path = os.path.join(comfy_path, 'custom_nodes') custom_nodes_path = os.path.join(comfy_path, 'custom_nodes')
@ -259,14 +262,7 @@ def set_component_policy(mode):
def try_install_script(url, repo_path, install_cmd): def try_install_script(url, repo_path, install_cmd):
int_comfyui_revision = 0 if platform.system() == "Windows" and comfy_ui_commit_datetime.date() >= comfy_ui_required_commit_datetime.date():
if type(comfy_ui_revision) == int:
int_comfyui_revision = comfy_ui_revision
elif comfy_ui_revision.isdigit():
int_comfyui_revision = int(comfy_ui_revision)
if platform.system() == "Windows" and int_comfyui_revision >= comfy_ui_required_revision:
if not os.path.exists(startup_script_path): if not os.path.exists(startup_script_path):
os.makedirs(startup_script_path) os.makedirs(startup_script_path)
@ -282,9 +278,9 @@ def try_install_script(url, repo_path, install_cmd):
if platform.system() == "Windows": if platform.system() == "Windows":
try: try:
if int(comfy_ui_revision) < comfy_ui_required_revision: if comfy_ui_commit_datetime.date() < comfy_ui_required_commit_datetime.date():
print("\n\n###################################################################") print("\n\n###################################################################")
print(f"[WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision}) is too old. Please update to the latest version.") print(f"[WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision})[{comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version.")
print(f"[WARN] The extension installation feature may not work properly in the current installed ComfyUI version on Windows environment.") print(f"[WARN] The extension installation feature may not work properly in the current installed ComfyUI version on Windows environment.")
print("###################################################################\n\n") print("###################################################################\n\n")
except: except:
@ -298,7 +294,7 @@ def try_install_script(url, repo_path, install_cmd):
def print_comfyui_version(): def print_comfyui_version():
global comfy_ui_revision global comfy_ui_revision
global comfy_ui_commit_date global comfy_ui_commit_datetime
global comfy_ui_hash global comfy_ui_hash
try: try:
@ -310,14 +306,14 @@ def print_comfyui_version():
cm_global.variables['comfyui.revision'] = comfy_ui_revision cm_global.variables['comfyui.revision'] = comfy_ui_revision
comfy_ui_commit_datetime = repo.head.commit.committed_datetime
try: try:
if int(comfy_ui_revision) < comfy_ui_required_revision: if comfy_ui_commit_datetime.date() < comfy_ui_required_commit_datetime.date():
print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision}) is too old. Please update to the latest version. ##\n\n") print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision})[{comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n")
except: except:
pass pass
comfy_ui_commit_date = repo.head.commit.committed_datetime.date()
# process on_revision_detected --> # process on_revision_detected -->
if 'cm.on_revision_detected_handler' in cm_global.variables: if 'cm.on_revision_detected_handler' in cm_global.variables:
for k, f in cm_global.variables['cm.on_revision_detected_handler']: for k, f in cm_global.variables['cm.on_revision_detected_handler']:
@ -333,9 +329,9 @@ def print_comfyui_version():
# <-- # <--
if current_branch == "master": if current_branch == "master":
print(f"### ComfyUI Revision: {comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_date}'") print(f"### ComfyUI Revision: {comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_datetime.date()}'")
else: else:
print(f"### ComfyUI Revision: {comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_date}'") print(f"### ComfyUI Revision: {comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{comfy_ui_commit_datetime.date()}'")
except: except:
print("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)") print("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)")
@ -526,8 +522,10 @@ def git_pull(path):
return True return True
async def get_data(uri): async def get_data(uri, silent=False):
print(f"FETCH DATA from: {uri}") if not silent:
print(f"FETCH DATA from: {uri}")
if uri.startswith("http"): if uri.startswith("http"):
async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
async with session.get(uri) as resp: async with session.get(uri) as resp:
@ -595,7 +593,7 @@ def is_file_created_within_one_day(file_path):
return False return False
file_creation_time = os.path.getctime(file_path) file_creation_time = os.path.getctime(file_path)
current_time = datetime.datetime.now().timestamp() current_time = datetime.now().timestamp()
time_difference = current_time - file_creation_time time_difference = current_time - file_creation_time
return time_difference <= 86400 return time_difference <= 86400
@ -1077,14 +1075,14 @@ def get_current_snapshot():
def save_snapshot_with_postfix(postfix): def save_snapshot_with_postfix(postfix):
now = datetime.datetime.now() now = datetime.now()
date_time_format = now.strftime("%Y-%m-%d_%H-%M-%S") date_time_format = now.strftime("%Y-%m-%d_%H-%M-%S")
file_name = f"{date_time_format}_{postfix}" file_name = f"{date_time_format}_{postfix}"
path = os.path.join(os.path.dirname(__file__), 'snapshots', f"{file_name}.json") path = os.path.join(os.path.dirname(__file__), 'snapshots', f"{file_name}.json")
with open(path, "w") as json_file: with open(path, "w") as json_file:
json.dump(get_current_snapshot(), json_file, indent=4) json.dump(get_current_snapshot(), json_file, indent=4)
@server.PromptServer.instance.routes.get("/snapshot/get_current") @server.PromptServer.instance.routes.get("/snapshot/get_current")
@ -1831,12 +1829,12 @@ async def get_notice(request):
if match: if match:
markdown_content = match.group(1) markdown_content = match.group(1)
markdown_content += f"<HR>ComfyUI: {comfy_ui_revision}[{comfy_ui_hash[:6]}]({comfy_ui_commit_date})" markdown_content += f"<HR>ComfyUI: {comfy_ui_revision}[{comfy_ui_hash[:6]}]({comfy_ui_commit_datetime.date()})"
# markdown_content += f"<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;()" # markdown_content += f"<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;()"
markdown_content += f"<BR>Manager: {version_str}" markdown_content += f"<BR>Manager: {version_str}"
try: try:
if comfy_ui_required_revision > int(comfy_ui_revision): if comfy_ui_required_commit_datetime.date() > comfy_ui_commit_datetime.date():
markdown_content = f'<P style="text-align: center; color:red; background-color:white; font-weight:bold">Your ComfyUI is too OUTDATED!!!</P>' + markdown_content markdown_content = f'<P style="text-align: center; color:red; background-color:white; font-weight:bold">Your ComfyUI is too OUTDATED!!!</P>' + markdown_content
except: except:
pass pass
@ -2321,7 +2319,7 @@ async def default_cache_update():
cache_uri = str(simple_hash(uri)) + '_' + filename cache_uri = str(simple_hash(uri)) + '_' + filename
cache_uri = os.path.join(cache_dir, cache_uri) cache_uri = os.path.join(cache_dir, cache_uri)
json_obj = await get_data(uri) json_obj = await get_data(uri, True)
with cache_lock: with cache_lock:
with open(cache_uri, "w", encoding='utf-8') as file: with open(cache_uri, "w", encoding='utf-8') as file:

2
prestartup_script.py

@ -467,7 +467,7 @@ def check_windows_event_loop_policy():
config.read(config_path) config.read(config_path)
default_conf = config['default'] default_conf = config['default']
if 'bypass_ssl' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true': if 'windows_selector_event_loop_policy' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true':
try: try:
import asyncio import asyncio
import asyncio.windows_events import asyncio.windows_events

Loading…
Cancel
Save