mirror of
https://github.com/Comfy-Org/comfy-remote-nodes.git
synced 2026-11-04 23:37:22 +00:00
[PR #7] [MERGED] feat: input-side image:png_base64_batch envelope #7
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-remote-nodes#7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-remote-nodes/pull/7
Author: @Kosinkadink
Created: 5/15/2026
Status: ✅ Merged
Merged: 5/15/2026
Merged by: @Kosinkadink
Base:
main← Head:feat/input-batch-envelope📝 Commits (1)
aad9f0bfeat(serialization): input-side image:png_base64_batch envelope📊 Changes
2 files changed (+86 additions, -14 deletions)
View changed files
📝
proxy_node.py(+48 -6)📝
serialization.py(+38 -8)📄 Description
Summary
Closes the silent
tensor[0]truncation bug for multi-image inputs: when a descriptor advertises"png_base64_batch"for an IMAGE input and the inbound tensor hasshape[0] > 1, the encoder now emits a multi-frame envelope (frames=[…]) instead of droppingtensor[1:]. Lockstep with paired server PR — both must merge.Changes
Client
serialization.py: extendencode_image_tensorwith anaccepts_batch=Falsekeyword. When True ANDtensor.shape[0] > 1, emit{"type":"image","encoding":"png_base64_batch","frames":[…],"shape":[B,H,W,C],…}— same wire shape as the existing_decode_image_batch_envelopeon the response path so both directions round-trip symmetrically. Default-False keeps the legacy single-frame contract for descriptors that haven't migrated.proxy_node.py: plumb the per-inputinput_serializationallow-list fromdescriptor.remote.input_serializationthroughbuild_node_class→_execute_remote→_encode_inputs→_encode_one. The wire shape{input_name: <str | list[str]>}normalizes todict[str, list[str]]once at descriptor parse time._encode_onepassesaccepts_batch=("png_base64_batch" in encodings)to the image encoder.IMAGE_PNG_BASE64_BATCHis already inclient.CLIENT_CAPABILITIES(was added when the output-side decoder shipped) so no wire-header change.Verification
ast.parse._decode_image_batch_envelopealready in this file consumes the sameframes=[…]shape the new encoder emits — round-trips symmetrically.Lockstep
Paired server PR (must merge together): https://github.com/Comfy-Org/comfy-rnp-server/pull/12
No back-compat between unmatched server/client versions — the per-provider descriptors that previously narrowed
input_serializationto single-string"png_base64"now use["png_base64", "png_base64_batch"], and the schema_hash changes accordingly.Amp thread: https://ampcode.com/threads/T-019e29b4-d606-7278-8584-52910661c981
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.