| import os
|
| import sys
|
| import shutil
|
|
|
| from core.settings import *
|
|
|
| def move_and_overwrite(src, dst):
|
| if os.path.isdir(src):
|
| if os.path.exists(dst):
|
| shutil.rmtree(dst)
|
| shutil.move(src, dst)
|
| elif os.path.isfile(src):
|
| if os.path.exists(dst):
|
| os.remove(dst)
|
| shutil.move(src, dst)
|
|
|
| def initialize_comfyui():
|
| APP_DIR = sys.path[0]
|
| COMFYUI_TEMP_DIR = "ComfyUI_temp"
|
|
|
| print("--- Cloning ComfyUI Repository ---")
|
| if not os.path.exists(COMFYUI_TEMP_DIR):
|
| os.system(f"git clone https://github.com/comfy-Org/ComfyUI {COMFYUI_TEMP_DIR}")
|
| print("β
ComfyUI repository cloned.")
|
| else:
|
| print("β
ComfyUI repository already exists.")
|
|
|
| print(f"--- Merging ComfyUI from '{COMFYUI_TEMP_DIR}' to '{APP_DIR}' ---")
|
| for item in os.listdir(COMFYUI_TEMP_DIR):
|
| src_path = os.path.join(COMFYUI_TEMP_DIR, item)
|
| dst_path = os.path.join(APP_DIR, item)
|
| if item == '.git':
|
| continue
|
| move_and_overwrite(src_path, dst_path)
|
|
|
| try:
|
| shutil.rmtree(COMFYUI_TEMP_DIR)
|
| print("β
ComfyUI merged and temporary directory removed.")
|
| except OSError as e:
|
| print(f"β οΈ Could not remove temporary directory '{COMFYUI_TEMP_DIR}': {e}")
|
|
|
|
|
| print("--- Cloning third-party extensions for ComfyUI ---")
|
|
|
|
|
| ipadapter_plus_path = os.path.join(APP_DIR, "custom_nodes", "ComfyUI_IPAdapter_plus")
|
| if not os.path.exists(ipadapter_plus_path):
|
| os.system(f"git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git {ipadapter_plus_path}")
|
| print("β
ComfyUI_IPAdapter_plus extension cloned.")
|
| else:
|
| print("β
ComfyUI_IPAdapter_plus extension already exists.")
|
|
|
|
|
| ipadapter_plus_path = os.path.join(APP_DIR, "custom_nodes", "ComfyUI-InstantX-IPAdapter-SD3")
|
| if not os.path.exists(ipadapter_plus_path):
|
| os.system(f"git clone https://github.com/Slickytail/ComfyUI-InstantX-IPAdapter-SD3.git {ipadapter_plus_path}")
|
| print("β
ComfyUI-InstantX-IPAdapter-SD3 extension cloned.")
|
| else:
|
| print("β
ComfyUI-InstantX-IPAdapter-SD3 extension already exists.")
|
|
|
|
|
| ipadapter_flux_path = os.path.join(APP_DIR, "custom_nodes", "ComfyUI-IPAdapter-Flux")
|
| if not os.path.exists(ipadapter_flux_path):
|
| os.system(f"git clone https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux.git {ipadapter_flux_path}")
|
| print("β
ComfyUI-IPAdapter-Flux extension cloned.")
|
| else:
|
| print("β
ComfyUI-IPAdapter-Flux extension already exists.")
|
|
|
|
|
| newbie_nodes_path = os.path.join(APP_DIR, "custom_nodes", "ComfyUI-Newbie-Nodes")
|
| if not os.path.exists(newbie_nodes_path):
|
| os.system(f"git clone https://github.com/NewBieAI-Lab/ComfyUI-Newbie-Nodes.git {newbie_nodes_path}")
|
| print("β
ComfyUI-Newbie-Nodes extension cloned.")
|
| else:
|
| print("β
ComfyUI-Newbie-Nodes extension already exists.")
|
|
|
| print(f"β
Current working directory is: {os.getcwd()}")
|
|
|
| import comfy.model_management
|
| print("--- Environment Ready ---")
|
|
|
| print("β
ComfyUI initialized with default attention mechanism.")
|
|
|
| for dir_path in CATEGORY_TO_DIR_MAP.values():
|
| os.makedirs(os.path.join(APP_DIR, dir_path), exist_ok=True)
|
|
|
| os.makedirs(os.path.join(APP_DIR, INPUT_DIR), exist_ok=True)
|
| os.makedirs(os.path.join(APP_DIR, OUTPUT_DIR), exist_ok=True)
|
|
|
| print("β
All required model directories are present.") |