DP Add Logo Banner
A watermark node that corners, sizes, and fades your logo before you save
- image
- logo
- logo_mask
- image
Once you've generated a face-swap image you're actually happy with, the last thing most people do is slap a logo on it - for a watermark, a handle, a "this is mine" stamp before it goes anywhere. That's the niche this node fills: it's a one-stop composite node that takes your image, takes a logo, and drops the logo into a corner at the size, position, and opacity you set. It's the finishing step of the DP pack, and it's the most self-contained node in it - no models, no downloads, nothing to trip over at runtime.
How it works
The mechanism is plain image compositing, done in PIL under the hood. You feed in the main image and a logo (both IMAGE tensors - so load the logo with a Load Image node like anything else), and the node:
- Resizes the logo to your target logo_height (default 100px), preserving aspect ratio with LANCZOS resampling.
- Positions it in one of the four corners (location: top-left / top-right / bottom-left / bottom-right, default top-right) with padding from the edge (default 20px).
- Pastes it with opacity (0–1, default 1.0 = fully opaque), clamped so it never runs off the edge.
- Hands back a single composited image output to wire into your Save Image / Preview node.
That's genuinely all of it. It's a utility node, and it behaves like one.
The transparency trap
Here's the thing that will burn you if you use a transparent PNG logo. ComfyUI's Load Image hands out RGB, not RGBA - the alpha channel gets dropped during conversion. So if you paste a transparent logo without a mask, you get a solid rectangle, because there's no alpha left to composite with.
The node has a logo_mask input for exactly this. But read the code before you use it: the node inverts whatever mask you give it. That means you want a stencil - black where the logo is - not the alpha-derived mask you'd get from splitting the image. Feed it a normal alpha mask and you'll punch the logo out of the image instead of stamping it in, which is a fun failure mode to debug at 1am. If you don't care about transparency, just leave the mask alone and set the logo background to match, or use opacity.
Install
It ships in the same pack as the styler and the detector, so the install is identical. ComfyUI Manager, search "ComfyUI DP Dynamic Random Styler" (or comfyui-dp-them-styler), or:
cd ComfyUI/custom_nodes
git clone https://github.com/DesertPixelAi/comfyui-dp-them-styler
restart, and it shows up under DP/Image. Its dependencies are just Pillow, numpy, and torch - all of which ComfyUI already runs on, so this is the one node in the pack that won't pull extra weight. As with the rest of this pack, don't expect community support: it's a small, essentially-unknown project, so treat this as a fix-it-yourself tool.
A couple of practical notes. logo_height is the control you'll actually touch - it's the effective size of the watermark, and it scales with your image's resolution (100px looks tiny on a 2048px render). And if you want a genuinely different look, remember the node only does corners; for anything else you're in compositing-node territory. But for the 90% case - "stamp my logo bottom-right and save" - it's exactly right, and it does it in one node instead of a mask/composite tangle.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| logo | IMAGE | — | |
| location | COMBO | top-right | 4 options: top-left, top-right, bottom-left, bottom-right |
| padding | INT | 200–500 | — |
| logo_height | INT | 10010–1000 | — |
| opacity | FLOAT | 1.000–1 | — |
| logo_maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |