ComfyUI-VideoSeal
Local ComfyUI nodes for Meta VideoSeal invisible video watermarking.
ComfyUI VideoSeal
Local ComfyUI nodes for Meta VideoSeal invisible video watermarking.
This node pack vendors the upstream VideoSeal source under vendor/videoseal_repo and uses the ComfyUI Python environment without changing Torch. The default model is videoseal, which embeds a 256-bit message. The node stores an arbitrary UTF-8 watermark ID in those bits. IDs that fit with enough spare capacity include a CRC32 checksum; longer IDs still work up to the selected model's byte capacity.
The PixelSeal Low-Impact Embed node is the quality-first path for finished videos. It uses PixelSeal, embeds every frame, applies JND attenuation at the original resolution, and defaults to scaling_w=0.15. Canonical 128-bit IDs in the form wm_v1_ plus 22 unpadded Base64URL characters automatically use a Reed-Solomon RS(32,16) code: 16 ID bytes plus 16 parity bytes. This can correct up to eight corrupted bytes without increasing watermark strength. Other IDs continue to use the arbitrary UTF-8 text format.
With the default 256-bit videoseal model, keep IDs to 31 UTF-8 bytes or less. IDs up to 27 UTF-8 bytes are CRC32-checked. chunkyseal has a larger payload capacity.
Recommended default:
- model:
videoseal - scaling_w:
0.2 - chunk_size:
16 - step_size:
4 - video_mode:
repeat - lowres_attenuation:
true
Quality-first PixelSeal default:
- watermark_id: canonical 128-bit
wm_v1_ID - scaling_w:
0.15 - chunk_size:
8 - full_resolution_jnd:
true - temporal_pooling:
false
The vendored reedsolo implementation is version 1.7.0 and is distributed under its included MIT-0/Unlicense terms. No additional Python package is installed.
This is not C2PA and does not write provenance metadata. It changes pixels slightly in order to make the ID recoverable from the video itself.