diff --git a/.gitignore b/.gitignore index 2700ad5c2..b7a7398ac 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ web_custom_versions/ openapi.yaml filtered-openapi.yaml uv.lock +.comfy_environment diff --git a/comfy/deploy_environment.py b/comfy/deploy_environment.py new file mode 100644 index 000000000..b4684b363 --- /dev/null +++ b/comfy/deploy_environment.py @@ -0,0 +1,33 @@ +import logging +import os + +import folder_paths + +logger = logging.getLogger(__name__) + +_DEFAULT_DEPLOY_ENV = "local_git" +_ENV_FILENAME = ".comfy_environment" + +_cached_value: str | None = None + + +def get_deploy_environment() -> str: + global _cached_value + if _cached_value is not None: + return _cached_value + + env_file = os.path.join(folder_paths.base_path, _ENV_FILENAME) + try: + with open(env_file, encoding="utf-8") as f: + first_line = f.readline().strip() + value = "".join(c for c in first_line if 32 <= ord(c) < 127) + if value: + _cached_value = value + return _cached_value + except FileNotFoundError: + pass + except Exception as e: + logger.warning("Failed to read %s: %s", env_file, e) + + _cached_value = _DEFAULT_DEPLOY_ENV + return _cached_value diff --git a/comfy_api_nodes/util/client.py b/comfy_api_nodes/util/client.py index 9d730b81a..f09383dc1 100644 --- a/comfy_api_nodes/util/client.py +++ b/comfy_api_nodes/util/client.py @@ -19,6 +19,8 @@ from comfy import utils from comfy_api.latest import IO from server import PromptServer +from comfy.deploy_environment import get_deploy_environment + from . import request_logger from ._helpers import ( default_base_url, @@ -617,6 +619,7 @@ async def _request_base(cfg: _RequestConfig, expect_binary: bool): payload_headers = {"Accept": "*/*"} if expect_binary else {"Accept": "application/json"} if not parsed_url.scheme and not parsed_url.netloc: # is URL relative? payload_headers.update(get_auth_header(cfg.node_cls)) + payload_headers["X-Comfy-Env"] = get_deploy_environment() if cfg.endpoint.headers: payload_headers.update(cfg.endpoint.headers)