Nodes/VELVET VICE — LTX/VELVET VICE — Final Watermark Overlay
ComfyUI Node

VELVET VICE — Final Watermark Overlay

Watermark the final frames, not every test render

By Velvet-Vice·Created 25 days ago·Updated 10 days ago· 2
VELVET VICE — Final Watermark Overlay
  • images
  • images
enabledfalse
watermark_fileVelvet_Vice_Watermark.png
positionbottom-right
scale0.18
opacity0.65
margin_x24
margin_y24

Branding a video is a final-step problem, not a generation-step one. You don't want a watermark baked into every test frame you iterate on - you want it on the final export, once, on top of finished pixels. VelvetViceWatermarkOverlay is Velvet Vice's answer: a compositing node that drops an RGBA watermark onto your final 24/48 FPS frame stack immediately before the pack's encoder, with nine placements, scale, opacity, and independent margins. It's a small, honest, deterministic pixel operation - the kind of thing that should be a node, and here it's a good one.

How it works

It reads the watermark image from ComfyUI's input directory (or an annotated path), composes it over each frame using the alpha channel, and blends by your opacity setting before passing the frames on. Because the blend is a plain per-pixel operation on tensors, it's cheap and deterministic - no model pass, no inference, no re-roll luck. It's not a "generative" watermark or a metadata tag; it's actual pixels in the output, which is what you want when the point is that the mark is visibly there.

Positioning is nine-way (top-left through bottom-right, including dead center), computed from your margins rather than fixed pixel offsets - so the mark keeps the same relative distance from the edge regardless of frame dimensions, which matters when your clip is 1216×704 one run and 1280×768 the next.

The inputs

  • images - your final frame batch, straight from decode/postprocessing.
  • enabled - defaults to false, deliberately. The pack ships with the watermark OFF so you don't get branded exports unless you turn it on. Flip this and the file dropdown actually rescans your input directory for PNGs, WebPs, JPEGs.
  • watermark_file - an enum populated from image files in ComfyUI/input (it tries to keep Velvet_Vice_Watermark.png at the top if present). Drop your own .png - ideally with real transparency - into input/ and it'll show up in the list.
  • position - one of the nine exact spellings (top-left, bottom-right, center, …). It's a plain string field, and anything unrecognized silently falls back to bottom-right, so typos are the classic mistake here.
  • scale (0.18) / opacity (0.65) - the two dials that matter. 0.18 of frame width is subtle; 0.65 opacity keeps it visible without screaming.
  • margin_x (24) / margin_y (24) - independent horizontal/vertical offsets in pixels.

It outputs images - the same batch with the mark composited - which you wire into the Output Studio or any encoder.

Installing it

Part of the Velvet Vice LTX pack (registry velvet-vice-ltx). ComfyUI Manager → search "VELVET VICE - LTX", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Velvet-Vice/velvet-vice-ltx

Restart ComfyUI and Ctrl+F5. No Python dependencies; it uses PIL and numpy, both already present in a normal ComfyUI. If you're upgrading from an older Velvet Vice install, don't merge the old node directory into the new release - reinstall fresh.

Common issues

  • No watermark appears - either enabled is still false (it ships off!), or the selected file doesn't exist in input/ and the node silently skips. Drop the file in the right folder and re-check the dropdown.
  • It lands in the wrong corner - you typed a position that isn't one of the nine exact values. Check the spelling; unknown values fall back to bottom-right.
  • The mark looks harsh / covers the subject - that's the scale/opacity/margins doing exactly what they're set to. A watermark that "ruins" a frame is a settings problem, not a node problem.
  • Hard edges on the mark - your PNG needs an alpha channel. A JPEG with no transparency composites as an opaque box at 0.65 opacity, which never looks right.

One honest note: this node brands pixels. The pack's license is itself a branded thing - free to use, but you can't resell or redistribute the workflow or the included assets. If you're building on this workflow for something you ship, keep that in mind, and keep the watermark toggle where the author left it: off, unless you mean it.

CategoryVELVET VICE/LTX

Inputs (8)

NameTypeDefaultDescription
imagesIMAGE
enabledBOOLEANfalse
watermark_fileCOMBOVelvet_Vice_Watermark.png2 options: Velvet_Vice_Watermark.png, example.png
positionSTRINGbottom-right
scaleFLOAT0.180.02–0.8
opacityFLOAT0.650–1
margin_xINT240–2048
margin_yINT240–2048

Outputs (1)

NameTypeDescription
imagesIMAGE