Skip to content

Commit a536863

Browse files
committed
dockerfile: add entrypoint and cmd for byoc
1 parent a7f89e6 commit a536863

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

docker/Dockerfile.base

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,8 @@ RUN conda config --set auto_activate_base false && \
110110
RUN echo "conda activate comfystream" >> ~/.bashrc
111111

112112
WORKDIR /workspace/comfystream
113+
114+
# Run ComfyStream BYOC server from /workspace/ComfyUI within the comfystream conda env
115+
ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "comfystream", "--cwd", "/workspace/ComfyUI", "python", "/workspace/comfystream/server/byoc.py"]
116+
# Default args; can be overridden/appended at runtime
117+
CMD ["--workspace", "/workspace/ComfyUI", "--host", "0.0.0.0", "--port", "8000"]

server/byoc.py

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ def main():
2323
parser = argparse.ArgumentParser(
2424
description="Run comfystream server in BYOC (Bring Your Own Compute) mode using pytrickle."
2525
)
26-
parser.add_argument("--port", default=8889, help="Set the server port")
27-
parser.add_argument("--host", default="127.0.0.1", help="Set the host")
26+
parser.add_argument("--port", default=8000, help="Set the server port")
27+
parser.add_argument("--host", default="0.0.0.0", help="Set the host")
2828
parser.add_argument(
29-
"--workspace", default=None, required=True, help="Set Comfy workspace"
29+
"--workspace", default=os.getcwd() + "/../ComfyUI", help="Set Comfy workspace (Default: ../ComfyUI)"
3030
)
3131
parser.add_argument(
3232
"--log-level",
@@ -46,21 +46,6 @@ def main():
4646
choices=logging._nameToLevel.keys(),
4747
help="Set the logging level for ComfyUI inference",
4848
)
49-
parser.add_argument(
50-
"--orch-url",
51-
default=None,
52-
help="Orchestrator URL for capability registration",
53-
)
54-
parser.add_argument(
55-
"--orch-secret",
56-
default=None,
57-
help="Orchestrator secret for capability registration",
58-
)
59-
parser.add_argument(
60-
"--capability-name",
61-
default="comfystream",
62-
help="Name for this capability (default: comfystream)",
63-
)
6449
parser.add_argument(
6550
"--disable-frame-skip",
6651
default=False,
@@ -91,7 +76,7 @@ def main():
9176
if args.comfyui_log_level:
9277
log_level = logging._nameToLevel.get(args.comfyui_log_level.upper())
9378
logging.getLogger("comfy").setLevel(log_level)
94-
79+
9580
# Add ComfyStream timeout filter to suppress verbose execution logging
9681
logging.getLogger("comfy.cmd.execution").addFilter(ComfyStreamTimeoutFilter())
9782

@@ -100,7 +85,7 @@ def force_print(*args, **kwargs):
10085
sys.stdout.flush()
10186

10287
logger.info("Starting ComfyStream BYOC server with pytrickle StreamProcessor...")
103-
88+
10489
# Create frame processor with configuration
10590
frame_processor = ComfyStreamFrameProcessor(
10691
width=args.width,
@@ -109,17 +94,19 @@ def force_print(*args, **kwargs):
10994
disable_cuda_malloc=True,
11095
gpu_only=True,
11196
preview_method='none',
97+
blacklist_nodes=["ComfyUI-Manager"],
98+
logging_level=args.comfyui_log_level,
11299
comfyui_inference_log_level=args.comfyui_inference_log_level
113100
)
114-
101+
115102
# Create frame skip configuration only if enabled
116103
frame_skip_config = None
117104
if args.disable_frame_skip:
118105
logger.info("Frame skipping disabled")
119106
else:
120107
frame_skip_config = FrameSkipConfig()
121108
logger.info("Frame skipping enabled: adaptive skipping based on queue sizes")
122-
109+
123110
# Create StreamProcessor with frame processor
124111
processor = StreamProcessor(
125112
video_processor=frame_processor.process_video_async,
@@ -129,29 +116,31 @@ def force_print(*args, **kwargs):
129116
on_stream_start=frame_processor.on_stream_start,
130117
on_stream_stop=frame_processor.on_stream_stop,
131118
# Align processor name with capability for consistent logs
132-
name=(args.capability_name or os.getenv("CAPABILITY_NAME") or "comfystream"),
119+
name=(os.getenv("CAPABILITY_NAME") or "comfystream"),
133120
port=int(args.port),
134121
host=args.host,
135122
frame_skip_config=frame_skip_config,
136123
# Ensure server metadata reflects the desired capability name
137-
capability_name=(args.capability_name or os.getenv("CAPABILITY_NAME") or "comfystream")
124+
capability_name=(os.getenv("CAPABILITY_NAME") or "comfystream"),
125+
#server_kwargs...
126+
route_prefix="/",
138127
)
139128

140129
# Set the stream processor reference for text data publishing
141130
frame_processor.set_stream_processor(processor)
142-
131+
143132
# Create async startup function for orchestrator registration
144133
async def register_orchestrator_startup(app):
145134
try:
146-
orch_url = args.orch_url or os.getenv("ORCH_URL")
147-
orch_secret = args.orch_secret or os.getenv("ORCH_SECRET")
135+
orch_url = os.getenv("ORCH_URL")
136+
orch_secret = os.getenv("ORCH_SECRET")
148137

149138
if orch_url and orch_secret:
150139
# CAPABILITY_URL always overrides host:port from args
151140
capability_url = os.getenv("CAPABILITY_URL") or f"http://{args.host}:{args.port}"
152141

153142
os.environ.update({
154-
"CAPABILITY_NAME": args.capability_name or os.getenv("CAPABILITY_NAME") or "comfystream",
143+
"CAPABILITY_NAME": os.getenv("CAPABILITY_NAME") or "comfystream",
155144
"CAPABILITY_DESCRIPTION": "ComfyUI streaming processor",
156145
"CAPABILITY_URL": capability_url,
157146
"CAPABILITY_CAPACITY": "1",
@@ -161,7 +150,7 @@ async def register_orchestrator_startup(app):
161150

162151
result = await RegisterCapability.register(
163152
logger=logger,
164-
capability_name=args.capability_name
153+
capability_name=os.getenv("CAPABILITY_NAME") or "comfystream"
165154
)
166155
if result:
167156
logger.info(f"Registered capability: {result.geturl()}")
@@ -193,7 +182,7 @@ async def warmup_handler(request):
193182

194183
# Mount at same API namespace as StreamProcessor defaults
195184
processor.server.add_route("POST", "/api/stream/warmup", warmup_handler)
196-
185+
197186
# Run the processor
198187
processor.run()
199188

0 commit comments

Comments
 (0)