Merge 262790d63d2cc39cd0837a8051a36848385b8b10 into 4977f203fa8e9e3ab22884c8ace8f9b540d48952

This commit is contained in:
42lux 2025-08-19 19:11:24 +02:00 committed by GitHub
commit 82da5b317d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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("--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("--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("--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("--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("--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. All other devices will not be visible.") parser.add_argument("--cuda-device", type=int, default=None, metavar="DEVICE_ID", help="Set the id of the cuda device this instance will use. All other devices will not be visible.")

View File

@ -20,6 +20,8 @@ else:
base_path = os.path.dirname(os.path.realpath(__file__)) base_path = os.path.dirname(os.path.realpath(__file__))
models_dir = os.path.join(base_path, "models") 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["checkpoints"] = ([os.path.join(models_dir, "checkpoints")], supported_pt_extensions)
folder_names_and_paths["configs"] = ([os.path.join(models_dir, "configs")], [".yaml"]) 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 global user_directory
user_directory = user_dir 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 #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: 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() return get_temp_directory()
if type_name == "input": if type_name == "input":
return get_input_directory() return get_input_directory()
if type_name == "models":
return get_models_directory()
return None return None
def filter_files_content_types(files: list[str], content_types: List[Literal["image", "video", "audio", "model"]]) -> list[str]: def filter_files_content_types(files: list[str], content_types: List[Literal["image", "video", "audio", "model"]]) -> list[str]:
@ -179,6 +191,9 @@ def annotated_filepath(name: str) -> tuple[str, str | None]:
elif name.endswith("[temp]"): elif name.endswith("[temp]"):
base_dir = get_temp_directory() base_dir = get_temp_directory()
name = name[:-7] name = name[:-7]
elif name.endswith("[models]"):
base_dir = get_models_directory()
name = name[:-9]
else: else:
return name, None return name, None

View File

@ -56,6 +56,11 @@ def apply_custom_paths():
logging.info(f"Setting user directory to: {user_dir}") logging.info(f"Setting user directory to: {user_dir}")
folder_paths.set_user_directory(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_prestartup_script():
if args.disable_all_custom_nodes and len(args.whitelist_custom_nodes) == 0: if args.disable_all_custom_nodes and len(args.whitelist_custom_nodes) == 0: