improve: pip fixer - support missing comfyui_frontend_package fixing

This commit is contained in:
Dr.Lt.Data
2025-03-05 12:55:39 +09:00
parent 22ecb5de95
commit 3de17b2fa6
5 changed files with 31 additions and 14 deletions

View File

@@ -42,7 +42,7 @@ import manager_downloader
from node_package import InstalledNodePackage
version_code = [3, 27, 11]
version_code = [3, 28]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@@ -828,7 +828,7 @@ class UnifiedManager:
else:
if os.path.exists(requirements_path) and not no_deps:
print("Install: pip packages")
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages())
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
res = True
lines = manager_util.robust_readlines(requirements_path)
for line in lines:
@@ -1883,7 +1883,7 @@ def execute_install_script(url, repo_path, lazy_mode=False, instant_execution=Fa
else:
if os.path.exists(requirements_path) and not no_deps:
print("Install: pip packages")
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages())
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path)
with open(requirements_path, "r") as requirements_file:
for line in requirements_file:
#handle comments

View File

@@ -276,8 +276,9 @@ torch_torchvision_torchaudio_version_map = {
class PIPFixer:
def __init__(self, prev_pip_versions):
def __init__(self, prev_pip_versions, comfyui_path):
self.prev_pip_versions = { **prev_pip_versions }
self.comfyui_path = comfyui_path
def torch_rollback(self):
spec = self.prev_pip_versions['torch'].split('+')
@@ -376,6 +377,22 @@ class PIPFixer:
logging.error("[ComfyUI-Manager] Failed to restore numpy")
logging.error(e)
# fix missing frontend
try:
front = new_pip_versions.get('comfyui_frontend_package')
if front is None:
requirements_path = os.path.join(self.comfyui_path, 'requirements.txt')
with open(requirements_path, 'r') as file:
lines = file.readlines()
front_line = next((line.strip() for line in lines if line.startswith('comfyui-frontend-package')), None)
cmd = make_pip_cmd(['install', front_line])
subprocess.check_output(cmd , universal_newlines=True)
except Exception as e:
logging.error("[ComfyUI-Manager] Failed to restore comfyui_frontend_package")
logging.error(e)
def sanitize(data):
return data.replace("<", "&lt;").replace(">", "&gt;")