diff --git a/main.py b/main.py index 740ace82b..3c3dab979 100644 --- a/main.py +++ b/main.py @@ -34,37 +34,40 @@ def _apply_proxy_env_vars(): https_proxy = args.https_proxy no_proxy = args.no_proxy - # Fall back to settings file if CLI args are not provided. - if not http_proxy and not https_proxy: - user_dir = args.user_directory or os.path.join( - args.base_directory or os.path.dirname(os.path.realpath(__file__)), "user" - ) - settings_path = os.path.join(user_dir, "default", "comfy.settings.json") - if os.path.isfile(settings_path): - try: - with open(settings_path, "r") as f: - settings = _json.load(f) - http_proxy = http_proxy or settings.get("Comfy.Network.Proxy.HttpUrl") or "" - https_proxy = https_proxy or settings.get("Comfy.Network.Proxy.HttpsUrl") or "" - no_proxy = no_proxy or settings.get("Comfy.Network.Proxy.NoProxy") or "" - except Exception: - pass + # Fall back to settings file for any field not provided via CLI. + user_dir = args.user_directory or os.path.join( + args.base_directory or os.path.dirname(os.path.realpath(__file__)), "user" + ) + settings_path = os.path.join(user_dir, "default", "comfy.settings.json") + if os.path.isfile(settings_path): + try: + with open(settings_path, "r") as f: + settings = _json.load(f) + http_proxy = http_proxy or settings.get("Comfy.Network.Proxy.HttpUrl") or "" + https_proxy = https_proxy or settings.get("Comfy.Network.Proxy.HttpsUrl") or "" + no_proxy = no_proxy or settings.get("Comfy.Network.Proxy.NoProxy") or "" + except Exception: + pass + + def _set_proxy_var(name, value): + """Set env var, overriding inherited values when explicitly configured.""" + os.environ[name] = value if http_proxy: - os.environ.setdefault('HTTP_PROXY', http_proxy) - os.environ.setdefault('http_proxy', http_proxy) + _set_proxy_var('HTTP_PROXY', http_proxy) + _set_proxy_var('http_proxy', http_proxy) # Use http_proxy for HTTPS too unless https_proxy is explicitly set if not https_proxy: - os.environ.setdefault('HTTPS_PROXY', http_proxy) - os.environ.setdefault('https_proxy', http_proxy) + _set_proxy_var('HTTPS_PROXY', http_proxy) + _set_proxy_var('https_proxy', http_proxy) logging.info("HTTP proxy configured: %s", http_proxy) if https_proxy: - os.environ.setdefault('HTTPS_PROXY', https_proxy) - os.environ.setdefault('https_proxy', https_proxy) + _set_proxy_var('HTTPS_PROXY', https_proxy) + _set_proxy_var('https_proxy', https_proxy) logging.info("HTTPS proxy configured: %s", https_proxy) if no_proxy: - os.environ.setdefault('NO_PROXY', no_proxy) - os.environ.setdefault('no_proxy', no_proxy) + _set_proxy_var('NO_PROXY', no_proxy) + _set_proxy_var('no_proxy', no_proxy) if __name__ == "__main__":