Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f9618b7
Add QOL feature for changing the custom nodes folder location through…
Sasbom Nov 5, 2025
90b6ed7
bugfix: fix typo in apply_directory for custom_nodes_directory
Sasbom Nov 5, 2025
764d6c4
allow for PATH style ';' delimited custom_node directories.
Sasbom Nov 5, 2025
4a010ca
change delimiter type for seperate folders per platform.
Sasbom Nov 5, 2025
f051129
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 5, 2025
8efc430
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 6, 2025
60163d5
Remove environment variable.
Sasbom Nov 6, 2025
41b875c
Update documentation for custom nodes directory
Sasbom Nov 6, 2025
13dbabe
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 6, 2025
a603035
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 7, 2025
4425247
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 10, 2025
0974002
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 11, 2025
64f07fa
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 12, 2025
6e3c70a
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 13, 2025
3904e8a
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 14, 2025
a0b6979
revert import reordering
Sasbom Nov 17, 2025
1ec230e
revert imports pt 2
Sasbom Nov 17, 2025
6363c95
Merge branch 'comfyanonymous:master' into feature/custom_nodes-envvar
Sasbom Nov 17, 2025
ecf3c04
Merge branch 'feature/custom_nodes-envvar' of https://github.com/Sasb…
Sasbom Nov 17, 2025
0ef5557
Add QOL feature for changing the custom nodes folder location through…
Sasbom Nov 5, 2025
0a22e03
Merge branch 'feature/custom_nodes-envvar' of https://github.com/Sasb…
Sasbom Nov 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions comfy/cli_args.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ def __call__(self, parser, namespace, values, option_string=None):
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("--custom-nodes-directory", type=str, default=None, help="Set the ComfyUI custom_nodes directory. Overrides --base-directory and environment variable COMFYUI_CUSTOM_NODES_DIR.")
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. All other devices will not be visible.")
Expand Down
11 changes: 11 additions & 0 deletions folder_paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import time
import mimetypes
import logging
import sys
from typing import Literal, List
from collections.abc import Collection

Expand Down Expand Up @@ -115,6 +116,16 @@ def set_input_directory(input_dir: str) -> None:
global input_directory
input_directory = input_dir

def set_custom_nodes_directory(custom_nodes_dir: str) -> None:
global folder_names_and_paths

delimiter = ":"
if sys.platform in ("win32", "cygwin"):
delimiter = ";"

directories = custom_nodes_dir.split(delimiter)
folder_names_and_paths["custom_nodes"] = (directories, set())

def get_output_directory() -> str:
global output_directory
return output_directory
Expand Down
11 changes: 8 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def apply_custom_paths():
for config_path in itertools.chain(*args.extra_model_paths_config):
utils.extra_config.load_extra_path_config(config_path)

# --output-directory, --input-directory, --user-directory
# --output-directory, --input-directory, --user-directory, --custom-nodes-directory
if args.output_directory:
output_dir = os.path.abspath(args.output_directory)
logging.info(f"Setting output directory to: {output_dir}")
Expand All @@ -56,6 +56,11 @@ def apply_custom_paths():
logging.info(f"Setting user directory to: {user_dir}")
folder_paths.set_user_directory(user_dir)

if args.custom_nodes_directory:
custom_nodes_dir = os.path.abspath(args.custom_nodes_directory)
logging.info(f"Setting custom nodes directory to: {custom_nodes_dir}")
folder_paths.set_custom_nodes_directory(custom_nodes_dir)


def execute_prestartup_script():
if args.disable_all_custom_nodes and len(args.whitelist_custom_nodes) == 0:
Expand Down Expand Up @@ -110,7 +115,6 @@ def execute_script(script_path):
import threading
import gc


if os.name == "nt":
os.environ['MIMALLOC_PURGE_DELAY'] = '0'

Expand Down Expand Up @@ -155,6 +159,7 @@ def execute_script(script_path):
import app.logger
import hook_breaker_ac10a0


def cuda_malloc_warning():
device = comfy.model_management.get_torch_device()
device_name = comfy.model_management.get_torch_device_name(device)
Expand Down Expand Up @@ -293,7 +298,7 @@ def cleanup_temp():

def setup_database():
try:
from app.database.db import init_db, dependencies_available
from app.database.db import dependencies_available, init_db
if dependencies_available():
init_db()
except Exception as e:
Expand Down