Added --models-dir cli arg.

This commit is contained in:
42lux 2025-04-21 01:53:24 +02:00
parent 2c735c13b4
commit 262790d63d
3 changed files with 21 additions and 0 deletions

View File

@ -47,6 +47,7 @@ parser.add_argument("--extra-model-paths-config", type=str, default=None, metava
parser.add_argument("--output-directory", type=str, default=None, help="Set the ComfyUI output directory. Overrides --base-directory.")
parser.add_argument("--temp-directory", type=str, default=None, help="Set the ComfyUI temp directory (default is in the ComfyUI directory). Overrides --base-directory.")
parser.add_argument("--input-directory", type=str, default=None, help="Set the ComfyUI input directory. Overrides --base-directory.")
parser.add_argument("--models-directory", type=str, default=None, help="Set the ComfyUI models directory. Overrides --base-directory.")
parser.add_argument("--auto-launch", action="store_true", help="Automatically launch ComfyUI in the default browser.")
parser.add_argument("--disable-auto-launch", action="store_true", help="Disable auto launching the browser.")
parser.add_argument("--cuda-device", type=int, default=None, metavar="DEVICE_ID", help="Set the id of the cuda device this instance will use.")

View File

@ -20,6 +20,8 @@ else:
base_path = os.path.dirname(os.path.realpath(__file__))
models_dir = os.path.join(base_path, "models")
if args.models_directory:
models_dir = args.models_directory
folder_names_and_paths["checkpoints"] = ([os.path.join(models_dir, "checkpoints")], supported_pt_extensions)
folder_names_and_paths["configs"] = ([os.path.join(models_dir, "configs")], [".yaml"])
@ -130,6 +132,14 @@ def set_user_directory(user_dir: str) -> None:
global user_directory
user_directory = user_dir
def set_models_directory(models_dir_path: str) -> None:
global models_dir
models_dir = models_dir_path
def get_models_directory() -> str:
global models_dir
return models_dir
#NOTE: used in http server so don't put folders that should not be accessed remotely
def get_directory_by_type(type_name: str) -> str | None:
@ -139,6 +149,8 @@ def get_directory_by_type(type_name: str) -> str | None:
return get_temp_directory()
if type_name == "input":
return get_input_directory()
if type_name == "models":
return get_models_directory()
return None
def filter_files_content_types(files: list[str], content_types: Literal["image", "video", "audio", "model"]) -> list[str]:
@ -179,6 +191,9 @@ def annotated_filepath(name: str) -> tuple[str, str | None]:
elif name.endswith("[temp]"):
base_dir = get_temp_directory()
name = name[:-7]
elif name.endswith("[models]"):
base_dir = get_models_directory()
name = name[:-9]
else:
return name, None

View File

@ -54,6 +54,11 @@ def apply_custom_paths():
logging.info(f"Setting user directory to: {user_dir}")
folder_paths.set_user_directory(user_dir)
if args.models_directory:
models_dir = os.path.abspath(args.models_directory)
logging.info(f"Setting models directory to: {models_dir}")
folder_paths.set_models_directory(models_dir)
def execute_prestartup_script():
def execute_script(script_path):