Nodes/S42 CutFlow/🔖 S42 CutFlow Watermark
ComfyUI Node

🔖 S42 CutFlow Watermark

Stamp your footage without leaving the graph — text, logo, or full anti-theft tile

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
🔖 S42 CutFlow Watermark
  • clip
  • watermark_image
  • clip
  • frame_count
  • info
modetext
text© 2026
positionbottom_right
opacity0.30
scale1.0
font_size24
margin20

If you're generating video in ComfyUI for anything beyond a personal toy, eventually you need to brand it - and the last thing you want is to export a render, open an NLE, add a watermark, and re-encode. S42CF_Watermark burns text or an image logo straight onto your IMAGE batch before it ever leaves the node graph. It's deterministic, batch-safe, and about as simple as these things get.

It's one of the Text & Overlays nodes in S42 CutFlow, and it's the end-of-chain stamp: generate → edit → watermark → save. Same node handles the "I'm sending this preview to a client" job via its tile mode, which is the anti-theft classic.

How it works

Everything is rendered with PIL. In text mode it draws your string at font_size × scale with proper anti-aliasing and drops it onto each frame. In image mode it takes the first frame of your connected watermark_image - and if that image has an alpha channel it's preserved, so a transparent PNG logo stays transparent instead of sitting in a white box.

The six position options cover the corners, center, and tile. Tile is the interesting one: it repeats the watermark across the whole frame at margin spacing - the standard way to make preview footage useless for reposting while keeping it viewable.

Inputs that matter

  • clip - the footage.
  • mode - text or image. Text is the zero-setup path; image is for a real logo.
  • text - what gets drawn (default "© 2026").
  • position - corners, center, or tile.
  • opacity - 0.3 default; 0.1–0.2 for "I want to see it but it shouldn't distract," up toward 0.8 if you genuinely want it to annoy.
  • scale / font_size / margin - sizing and placement.
  • watermark_image (optional) - only used in image mode; first frame only.

Outputs

clip (watermarked frames) → your video combine node. frame_count is a passthrough you can ignore unless downstream nodes need it. info is the summary string every CutFlow node emits.

Installing it

Same as the rest of the pack: ComfyUI Manager → search S42 CutFlow → install, or git clone https://github.com/GeekyGhost/S42-CutFlow into ComfyUI/custom_nodes/, install requirements, restart. PIL ships with ComfyUI, so no extra dependencies for this node.

Gotchas

Two small traps. First, image mode with nothing connected silently falls back to text rendering - the node doesn't error, it just draws your text string instead, which is easy to miss if you were expecting a logo. Second, it uses only the first frame of watermark_image, so don't feed it an animated badge expecting motion. And a workflow tip: since every node here is deterministic, one watermark config stamps a hundred renders identically - perfect for batch jobs, annoying if you forget it's in the chain and "can't figure out where this © came from."

CategoryS42 CutFlow/Text

Inputs (9)

NameTypeDefaultDescription
clipIMAGEVideo clip to watermark.
modeCOMBOtext'text' = render text as watermark. 'image' = use connected image as watermark.
textSTRING© 2026Watermark text (used in 'text' mode).
positionCOMBObottom_rightWatermark placement. 'tile' = repeat across entire frame.
opacityFLOAT0.300–1Watermark opacity. Lower = more subtle.
scaleFLOAT1.00.1–5Scale multiplier for watermark size.
font_sizeINT248–200Font size for text watermark.
marginINT200–200Margin from edges in pixels.
watermark_imageoptIMAGEWatermark image (used in 'image' mode). First frame used.

Outputs (3)

NameTypeDescription
clipIMAGE
frame_countINT
infoSTRING