Compare commits

...

2 Commits

Author SHA1 Message Date
Deep Mehta
e773b69b03 Merge branch 'master' into deepme987/add-execution-environment-api 2026-03-20 10:14:47 -07:00
Deep Mehta
81651606a6 feat: add execution environment API for managed deployments
Adds api.environment.get() to the public ComfyAPI — returns
"local" (default), "cloud", or "remote" based on the
COMFY_EXECUTION_ENVIRONMENT env var.

Custom nodes use this to adapt behavior for managed deployments
(e.g. skip model downloads when models are pre-provisioned).
2026-03-20 10:05:06 -07:00

View File

@@ -15,6 +15,7 @@ from comfy_execution.progress import get_progress_state, PreviewImageTuple
from PIL import Image
from comfy.cli_args import args
import numpy as np
import os
class ComfyAPI_latest(ComfyAPIBase):
@@ -25,6 +26,7 @@ class ComfyAPI_latest(ComfyAPIBase):
super().__init__()
self.node_replacement = self.NodeReplacement()
self.execution = self.Execution()
self.environment = self.Environment()
self.caching = self.Caching()
class NodeReplacement(ProxiedSingleton):
@@ -85,6 +87,27 @@ class ComfyAPI_latest(ComfyAPIBase):
image=to_display,
)
class Environment(ProxiedSingleton):
"""
Query the current execution environment.
Managed deployments set the ``COMFY_EXECUTION_ENVIRONMENT`` env var
so custom nodes can adapt their behaviour at runtime.
Example::
from comfy_api.latest import api
env = api.environment.get() # "local" | "cloud" | "remote"
"""
_VALID = {"local", "cloud", "remote"}
async def get(self) -> str:
"""Return the execution environment: ``"local"``, ``"cloud"``, or ``"remote"``."""
value = os.environ.get("COMFY_EXECUTION_ENVIRONMENT", "local").lower().strip()
return value if value in self._VALID else "local"
class Caching(ProxiedSingleton):
"""
External cache provider API for sharing cached node outputs