[PR #2] [CLOSED] feat(client): advertise audio capabilities for Stability audio nodes #1

Closed
opened 2026-10-26 22:28:49 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/comfy-remote-nodes/pull/2
Author: @Kosinkadink
Created: 5/13/2026
Status: ❌ Closed

Base: main ← Head: feat/audio-capabilities


📝 Commits (6)

  • d7e2683 feat(parser): Phase-A descriptor extensions for partner-node parity
  • 9843d63 Phase A§7: SVG envelope + IO.Autogrow + IO.DynamicCombo parser support
  • 6b66f6c Phase A§7 review fixes: tighten encoder gate + harden parsers/decoders
  • 11a84be Derive max_poll_attempts from hard_timeout_s instead of reading wire field
  • 8e91b27 Derive max_poll_attempts from hard_timeout_s (#1)
  • 69af6f8 feat(client): advertise audio:mp3_base64/wav_base64/wav_inline capabilities

📊 Changes

4 files changed (+327 additions, -28 deletions)

View changed files

📝 client.py (+13 -4)
📝 protocol.py (+17 -2)
📝 proxy_node.py (+232 -22)
📝 serialization.py (+65 -0)

📄 Description

Adds three new AUDIO capability tokens to protocol.Capability (AUDIO_MP3_BASE64 / AUDIO_WAV_BASE64 / AUDIO_WAV_INLINE) and advertises all five (the three new + the pre-existing AUDIO_MP3_INLINE and SVG_XML_BASE64) in CLIENT_CAPABILITIES so the server can select an AUDIO encoding the proxy_node already knows how to round-trip.

The AUDIO encoders / decoders themselves already exist in serialization.py: encode_audio_input always emits mp3_base64 (re-encodes a ComfyUI AUDIO dict via audio_input_to_mp3); decode_audio_envelope accepts any of mp3_base64/mp3_inline/wav_base64/wav_inline. Without the matching capability tokens advertised, a server that requires audio:wav_base64 would fail capability negotiation even though the client could already round-trip it.

Server-side dependency: the comfy-rnp-server Stability audio providers (TextToAudio / AudioToAudio / AudioInpaint, prototype phase 4) require audio:wav_base64 (Stability's default output_format=wav).


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/comfy-remote-nodes/pull/2 **Author:** [@Kosinkadink](https://github.com/Kosinkadink) **Created:** 5/13/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/audio-capabilities` --- ### 📝 Commits (6) - [`d7e2683`](https://github.com/Comfy-Org/comfy-remote-nodes/commit/d7e2683e9dca95447595e40925c5307aa88afa93) feat(parser): Phase-A descriptor extensions for partner-node parity - [`9843d63`](https://github.com/Comfy-Org/comfy-remote-nodes/commit/9843d635691331f6c2f002ce432c616d7fcac548) Phase A§7: SVG envelope + IO.Autogrow + IO.DynamicCombo parser support - [`6b66f6c`](https://github.com/Comfy-Org/comfy-remote-nodes/commit/6b66f6c5a423641bb39c01cb1afeacd6dd637706) Phase A§7 review fixes: tighten encoder gate + harden parsers/decoders - [`11a84be`](https://github.com/Comfy-Org/comfy-remote-nodes/commit/11a84be06d285a5e72c6215b3567ca5176732cda) Derive max_poll_attempts from hard_timeout_s instead of reading wire field - [`8e91b27`](https://github.com/Comfy-Org/comfy-remote-nodes/commit/8e91b274531ee621125cde760a87a89cba31ffc1) Derive max_poll_attempts from hard_timeout_s (#1) - [`69af6f8`](https://github.com/Comfy-Org/comfy-remote-nodes/commit/69af6f818d0f071c9c71f14ff06bf329229370f8) feat(client): advertise audio:mp3_base64/wav_base64/wav_inline capabilities ### 📊 Changes **4 files changed** (+327 additions, -28 deletions) <details> <summary>View changed files</summary> 📝 `client.py` (+13 -4) 📝 `protocol.py` (+17 -2) 📝 `proxy_node.py` (+232 -22) 📝 `serialization.py` (+65 -0) </details> ### 📄 Description Adds three new AUDIO capability tokens to `protocol.Capability` (`AUDIO_MP3_BASE64` / `AUDIO_WAV_BASE64` / `AUDIO_WAV_INLINE`) and advertises all five (the three new + the pre-existing `AUDIO_MP3_INLINE` and `SVG_XML_BASE64`) in `CLIENT_CAPABILITIES` so the server can select an AUDIO encoding the proxy_node already knows how to round-trip. The AUDIO encoders / decoders themselves already exist in `serialization.py`: `encode_audio_input` always emits `mp3_base64` (re-encodes a ComfyUI AUDIO dict via `audio_input_to_mp3`); `decode_audio_envelope` accepts any of mp3_base64/mp3_inline/wav_base64/wav_inline. Without the matching capability tokens advertised, a server that requires `audio:wav_base64` would fail capability negotiation even though the client could already round-trip it. Server-side dependency: the comfy-rnp-server Stability audio providers (TextToAudio / AudioToAudio / AudioInpaint, prototype phase 4) require `audio:wav_base64` (Stability's default `output_format=wav`). --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-26 22:28:49 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/comfy-remote-nodes#1
No description provided.