Compare commits

...

2 Commits

Author SHA1 Message Date
rattus
70f7e340d7
Merge 9ff4b7a7fb into 41d73ad180 2026-05-05 12:27:38 -07:00
Rattus
9ff4b7a7fb server: negotiate metadata aware transport for progress text 2026-04-13 21:52:03 +10:00
2 changed files with 12 additions and 3 deletions

View File

@ -95,6 +95,7 @@ def _parse_cli_feature_flags() -> dict[str, Any]:
# Default server capabilities
_CORE_FEATURE_FLAGS: dict[str, Any] = {
"supports_preview_metadata": True,
"supports_progress_text_metadata": True,
"max_upload_size": args.max_upload_size * 1024 * 1024, # Convert MB to bytes
"extension": {"manager": {"supports_v4": True}},
"node_replacements": True,

View File

@ -46,6 +46,7 @@ from app.subgraph_manager import SubgraphManager
from app.node_replace_manager import NodeReplaceManager
from typing import Optional, Union
from api_server.routes.internal.internal_routes import InternalRoutes
from comfy_execution.utils import get_executing_context
from protocol import BinaryEventTypes
# Import cache control middleware
@ -1289,7 +1290,14 @@ class PromptServer():
text = text.encode("utf-8")
node_id_bytes = str(node_id).encode("utf-8")
# Pack the node_id length as a 4-byte unsigned integer, followed by the node_id bytes
message = struct.pack(">I", len(node_id_bytes)) + node_id_bytes + text
target_sid = sid if sid is not None else self.client_id
message = b""
self.send_sync(BinaryEventTypes.TEXT, message, sid)
if feature_flags.supports_feature(self.sockets_metadata, target_sid, "supports_progress_text_metadata"):
current = get_executing_context()
prompt_id_bytes = str(current.prompt_id).encode("utf-8") if current is not None else b""
message = struct.pack(">I", len(prompt_id_bytes)) + prompt_id_bytes
message += struct.pack(">I", len(node_id_bytes)) + node_id_bytes + text
self.send_sync(BinaryEventTypes.TEXT, message, target_sid)