From 2070c99c14fbe1c8764f61a49983eaec79c36f00 Mon Sep 17 00:00:00 2001 From: bigcat88 Date: Mon, 13 Apr 2026 21:19:41 +0300 Subject: [PATCH] fix: do not spam frontend with each chunk arrival Signed-off-by: bigcat88 --- comfy_api_nodes/nodes_sonilo.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/comfy_api_nodes/nodes_sonilo.py b/comfy_api_nodes/nodes_sonilo.py index 06d3b9032..3382e3b31 100644 --- a/comfy_api_nodes/nodes_sonilo.py +++ b/comfy_api_nodes/nodes_sonilo.py @@ -180,6 +180,7 @@ async def _stream_sonilo_music( node_id = get_node_id(cls) start_ts = time.monotonic() + last_chunk_status_ts = 0.0 audio_streams: dict[int, list[bytes]] = {} title: str | None = None @@ -242,14 +243,17 @@ async def _stream_sonilo_music( audio_streams[stream_idx] = [] audio_streams[stream_idx].append(chunk_data) - total_chunks = sum(len(chunks) for chunks in audio_streams.values()) - elapsed = int(time.monotonic() - start_ts) - status_lines = ["Status: Receiving audio"] - if title: - status_lines.append(f"Title: {title}") - status_lines.append(f"Chunks received: {total_chunks}") - status_lines.append(f"Time elapsed: {elapsed}s") - PromptServer.instance.send_progress_text("\n".join(status_lines), node_id) + now = time.monotonic() + if now - last_chunk_status_ts >= 1.0: + total_chunks = sum(len(chunks) for chunks in audio_streams.values()) + elapsed = int(now - start_ts) + status_lines = ["Status: Receiving audio"] + if title: + status_lines.append(f"Title: {title}") + status_lines.append(f"Chunks received: {total_chunks}") + status_lines.append(f"Time elapsed: {elapsed}s") + PromptServer.instance.send_progress_text("\n".join(status_lines), node_id) + last_chunk_status_ts = now elif evt_type == "complete": break