Add custom nodes, Civitai loras (LFS), and vast.ai setup script
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Includes 30 custom nodes committed directly, 7 Civitai-exclusive loras stored via Git LFS, and a setup script that installs all dependencies and downloads HuggingFace-hosted models on vast.ai. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
77
custom_nodes/comfyui_ultimatesdupscale/__init__.py
Normal file
77
custom_nodes/comfyui_ultimatesdupscale/__init__.py
Normal file
@@ -0,0 +1,77 @@
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Check for original USDU script
|
||||
current_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
repos_dir = os.path.join(current_dir, "repositories")
|
||||
usdu_dir = os.path.join(repos_dir, "ultimate_sd_upscale")
|
||||
if not len(os.listdir(usdu_dir)):
|
||||
print("[USDU] Original USDU script not found, downloading it from https://github.com/Coyote-A/ultimate-upscale-for-automatic1111")
|
||||
import urllib.request
|
||||
import zipfile
|
||||
import shutil
|
||||
|
||||
url = "https://github.com/Coyote-A/ultimate-upscale-for-automatic1111/archive/master.zip"
|
||||
zip_path = os.path.join(current_dir, "usdu_temp.zip")
|
||||
|
||||
urllib.request.urlretrieve(url, zip_path)
|
||||
|
||||
with zipfile.ZipFile(zip_path, "r") as zip_ref:
|
||||
top_folder = zip_ref.namelist()[0].split('/')[0] + '/'
|
||||
for member in zip_ref.namelist():
|
||||
if member.startswith(top_folder) and not member.endswith('/'):
|
||||
target_path = os.path.join(usdu_dir, member[len(top_folder):])
|
||||
os.makedirs(os.path.dirname(target := os.path.join(usdu_dir, member[len(top_folder):])), exist_ok=True)
|
||||
with zip_ref.open(member) as source, open(target, 'wb') as target_file:
|
||||
shutil.copyfileobj(fsrc=zip_ref.open(member), fdst=target_file)
|
||||
|
||||
os.remove(zip_path)
|
||||
print("[USDU] Original USDU script downloaded successfully")
|
||||
|
||||
# Remove other custom_node paths from sys.path to avoid conflicts
|
||||
custom_node_paths = [path for path in sys.path if "custom_node" in path]
|
||||
original_sys_path = sys.path.copy()
|
||||
for path in custom_node_paths:
|
||||
sys.path.remove(path)
|
||||
|
||||
# Add this repository's path to sys.path for third-party imports
|
||||
repo_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.insert(0, repo_dir)
|
||||
original_modules = sys.modules.copy()
|
||||
|
||||
# Place aside potentially conflicting modules
|
||||
modules_used = [
|
||||
"modules",
|
||||
"modules.devices",
|
||||
"modules.images",
|
||||
"modules.processing",
|
||||
"modules.scripts",
|
||||
"modules.shared",
|
||||
"modules.upscaler",
|
||||
"utils",
|
||||
]
|
||||
original_imported_modules = {}
|
||||
for module in modules_used:
|
||||
if module in sys.modules:
|
||||
original_imported_modules[module] = sys.modules.pop(module)
|
||||
|
||||
# Proceed with node setup
|
||||
from .usdu_nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
||||
|
||||
WEB_DIRECTORY = "./js"
|
||||
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|
||||
|
||||
# Clean up imports
|
||||
# Remove any new modules
|
||||
modules_to_remove = []
|
||||
for module in sys.modules:
|
||||
if module not in original_modules:
|
||||
modules_to_remove.append(module)
|
||||
for module in modules_to_remove:
|
||||
del sys.modules[module]
|
||||
|
||||
# Restore original modules
|
||||
sys.modules.update(original_imported_modules)
|
||||
|
||||
# Restore original sys.path
|
||||
sys.path = original_sys_path
|
||||
Reference in New Issue
Block a user