mirror of
https://github.com/Comfy-Org/comfy-remote-nodes.git
synced 2026-11-04 23:37:22 +00:00
[PR #19] [MERGED] Add VIDEO input encoder to close the encode-side gap #18
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#18
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/19
Author: @Kosinkadink
Created: 5/17/2026
Status: ✅ Merged
Merged: 5/17/2026
Merged by: @Kosinkadink
Base:
main← Head:feat/video-input-encoder📝 Commits (1)
04ca70aAdd VIDEO input encoder to close the encode-side gap📊 Changes
2 files changed (+60 additions, -1 deletions)
View changed files
📝
proxy_node.py(+4 -0)📝
serialization.py(+56 -1)📄 Description
Wires the VIDEO encode direction in the proxy_node, closing the gap noted at
serialization.py:468(# Video decode (encode lands when a remote node accepts VIDEO inputs)). Previously_encode_oneonly dispatched AUDIO + IMAGE + MASK, so any remote node declaring anIO.Video.Inputwould receive the rawVideoInputobject as a non-JSON-serialisable value — most notably the shipped-but-brokenGrokVideoEditProvider/GrokVideoExtendProviderpaths.Changes
serialization.py: addedencode_video_input(video)(mirrors the AUDIO encoder — re-encodes to mp4/H.264 via the upstreamcomfy_api_nodes/util/conversions.video_to_base64_string, base64-encodes the result, populatesduration_sfromvideo.get_duration()so server-side_validate_video_duration_envelopecan range-check without demuxing).serialization.py: addedis_video_input(value)(duck-types on thesave_to+get_durationmethod pair — both defined oncomfy_api.latest._input.VideoInputand present on every concrete subclass; avoids importingVideoInputat module load to keep the no-torch smoke-test pattern intact).__all__.proxy_node.py:_encode_onegains a VIDEO branch right after the AUDIO branch (mirrors the AUDIO call shape). Docstring of_inputs_to_envelopesupdated to mention the new VIDEO duck-type rule.Why
Symmetric to the (still-open) MODEL_3D INPUT gap noted at
serialization.py:484. AUDIO INPUT was already wired (ElevenLabs nodes exercise it end-to-end); IMAGE / MASK have always been wired; VIDEO INPUT closes today's last input-direction envelope gap for the existing capability vocabulary.Unlocks:
GrokVideoEditProvider/GrokVideoExtendProvider(server side already advertisedVIDEO_MP4_BASE64capability +input_serialization={"video": "mp4_base64"}).Wan2VideoContinuationApi_RNPprovider landing in the matchingcomfy-rnp-serverPR (it consumesfirst_clip: VIDEO).Verification
Imported
serializationwith stubbedcomfy_remote_nodespackage:is_video_input(None)→ Falseis_video_input({})→ Falseis_video_input(audio_dict)→ Falseis_video_input(stub with save_to + get_duration)→ Trueis_audio_input(audio_dict)→ True (unchanged)Additional end-to-end verification rides on the matching
comfy-rnp-serverPR which adds the first new VIDEO-input consumer (Wan2VideoContinuationApi_RNP).🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.