Image Overlay
Place up to 12 layers, such as logos, text, QR codes and shapes, on an image, pixel-exactly, with a live preview. Export for many platforms in one run.
The Image Overlay node places layers on top of a base image, exactly where you put them. A layer can be a picture, such as a logo or a cut-out, real text in a bundled font, a QR code or a flat shape. Nothing is redrawn by AI, so a brand asset comes out as the file you gave it. Use the node for watermarks, logos, headlines, price badges and banners sized for each platform.
When to use it
- Watermark or brand every generated image before you publish it.
- Build YouTube, LinkedIn or X banners and video covers with your real logo file on an AI-generated background.
- Place a cut-out from Remove Background on a new backdrop, with a shadow.
- Add a badge or a sticker, such as "NEW", a price tag or a rating, to product shots.
- Put a QR code on a flyer, or one code per product in a batch.
- Compose before-and-after cards or comparison cards from two results.
Quick start
Add the node
Press Tab on the canvas and choose Image › Edit & Retouch › Image Overlay.
Connect the base image
Drag from the background image, for example a Generate Image result, to the Base input. The node now shows a live preview.
Add layers
Wire a picture, such as an Upload Image node with your logo, into Layer 1. For text, a QR code or a shape, click Text, QR or Shape instead. These layers need no wire.
Place the layers
Drag a layer in the preview to move it, pull its corner handle to resize it, and pull its top handle to rotate it. You can also type exact values in the settings panel, or start from a Preset.
Run it
The preview is live, but the file is made only when you run. Click Run on the node.
Inputs
| Input | Accepts | What it does |
|---|---|---|
| Base | Image nodes, or a List of image URLs | The image everything is placed on. Required. With a List, the node runs once per image with the same layers. |
| Layer 1 to Layer 12 | Image nodes, such as Upload Image, Remove Background and Generate Image | One picture per layer: a logo, a cut-out, a sticker. Text, QR and shape layers need no wire. |
| QR link | Text nodes, such as Text, or a List column | Appears only when a QR layer takes its link from the workflow. With a List column, you get one code per row. |
The node shows 4 layer inputs at first. Use + Layer and − Layer to show from 1 to 12, and the count also grows when you wire a higher layer. Every run needs at least one layer: a wired picture, or a text, QR or shape layer.
| Output | What it carries |
|---|---|
| Image | The composite, as a PNG by default. It keeps the pixel size of the base image unless you set a platform size or a custom output size. |
| Mask | A black-and-white image of the same size. White marks the area an AI edit may change. See Mask output. |
| One output per platform | For each platform ticked under Export also for, an output with that platform's render, such as X header. |
Place a layer
Every layer attaches to the base image at an anchor, and every distance is a percentage of the base image.
| Setting | What it does |
|---|---|
| Anchor | One of nine points on the base: top-left, top, top-right, left, center, right, bottom-left, bottom or bottom-right. The default is center. |
| Offset X and Offset Y | The distance from the anchor, from -100 to 100, in percent of the base width and height. On a right or bottom anchor, a negative offset moves the layer inward. |
| Width | The layer width in percent of the base width, from 1 to 100. The default is 25. The height follows the layer's own shape. |
| Height (% of base, optional) | A fixed height in percent of the base height. When it is set, Fit (when height is set) decides how the layer fills the box: Contain, Cover or Stretch. |
| Opacity | From 0 to 100%. The default is 100%. |
| Rotation | From -180 to 180 degrees, around the layer's own center. |
| Blend | Normal, Multiply or Screen. |
| Rounded corners (px) | Rounds the corners of the layer. |
| Drop shadow | A blurred, tinted copy of the layer under it, with Blur, Shadow X, Shadow Y, Shadow color and Shadow opacity. |
| Layer order (z) | Higher numbers draw on top. Empty means the layer number, so Layer 1 is at the bottom. The up and down buttons in the preview set it too. |
Why percentages: the size of the base image is decided upstream. It may be a 2K render today and a 4K poster tomorrow. A layer set "12% wide, 4% in from the right" lands in the same place on both, while a pixel position would not. Once a base image is connected, the settings panel shows the pixel value next to each percentage.
A layer that falls partly outside the base is cut at the edge of the base. A layer entirely outside the base is skipped, which is not an error. SVG logos are drawn at the final pixel size, so they stay crisp.
Start from a preset
Preset (fills layer 1) sets up Layer 1 in one click. Every value stays editable afterwards.
| Preset | Layer 1 |
|---|---|
| Watermark | Bottom-right, 10% wide, 85% opacity |
| Logo top-left | Top-left, 14% wide |
| Centered | Centered, 40% wide |
| Full bleed | Covers the whole base |
Example: a watermark
Connect the photo to Base and the logo to Layer 1, then set Layer 1 to these values:
| Setting | Value |
|---|---|
| Anchor | bottom-right |
| Width | 12 |
| Offset X | -4 |
| Offset Y | -6 |
| Opacity | 95% |
On a 2000 × 1000 pixel base, the logo is 240 pixels wide. Its right edge is 80 pixels from the right, and its bottom edge is 60 pixels from the bottom. On a 4000 × 2000 base, every one of those numbers doubles, and the node needs no change.
Layer kinds
| Kind | What it is | How it is sized |
|---|---|---|
| Image | A picture wired into the layer's input: a logo, a Remove Background cut-out, a sticker | Width in percent of the base width; the height follows the picture unless Height is set |
| Text | Real text, drawn with a bundled font. The preview uses the same font file, so the result matches the preview. | Size (% of base height); the box fits the text |
| QR | A QR code for a link or any text | Width in percent of the base width; always square |
| Shape | Rectangle, Rounded rectangle, Pill, Circle, Ribbon, Triangle, Diamond, Hexagon, Star, Starburst badge or Arrow | Width and Height in percent of the base |
To change a text, QR or shape layer back into a picture layer, use Turn back into an image slot.
Text layers
- Fonts: Inter, Montserrat, Space Grotesk, Playfair Display, Oswald, Bebas Neue, Anton, Pacifico, Rubik and Heebo. Rubik and Heebo set Hebrew. Variable fonts accept any Weight from 100 to 900.
- Layout: Align, Letter spacing, Line height and Uppercase. Right-to-left text is laid out right to left on each line.
- Outline: an outline around the letters, with Outline width and Outline color.
- Background box (pill / badge): a box behind the text, with Box color, opacity, Padding and a corner radius. A large radius makes a pill.
Image layers
Every layer can have a drop shadow and rounded corners. An image layer has four more finishes:
- Crop cuts the picture to a circle.
- Feather edges fades the edges out over a number of pixels.
- Outline draws a line around the silhouette.
- Glow adds a colored glow around it.
QR layers
Type the link in QR content (URL or text). You can change it at any time, and the code updates. QR color, QR background and Quiet zone set the look.
To take the link from the workflow instead, switch on Use workflow output. The node gets a QR link input: wire a Text node, a List column or any text output into it. With a List column, one run makes one code per row, for example fifty codes for fifty product pages. A run with Use workflow output on and nothing wired is refused, with a message that names the input.
Platform sizes and safe areas
Platform size turns the output into the pixel size of a platform:
- YouTube thumbnail and YouTube channel banner
- LinkedIn company cover and LinkedIn personal cover
- X header and Facebook cover
- Instagram post, Instagram portrait and Instagram story
- Link preview, slide and A4 print
The default is Keep the base image size. When you choose a platform, the preview draws its safe area as a dashed box: the part every device shows. Choosing a platform also sets Base fit to Cover, so the picture fills the canvas. For the YouTube channel banner, the preview shows three nested zones: what TVs show, what desktops show and what all devices show.
While you drag, a layer snaps to the center lines, the edges and the safe area. Hold Shift to drag freely.
Export also for renders the same composition into more platform canvases in the same run. Tick as many platforms as you need, up to all twelve. The extra files appear as chips on the result. Every ticked platform is also an output on the node. For example, the X header render can feed an X Post node while the LinkedIn cover feeds a LinkedIn Post node in the same run. Each extra platform costs 2 credits.
Open full editor opens a large editing view of the node. Its header has the same platform picker, and the stage becomes that platform's canvas with its safe area.
Output size and format
| Setting | What it does |
|---|---|
| Custom output size | Off by default: the output keeps the pixel size of the base. On: the base is placed into a canvas of Canvas width (px) × Canvas height (px) with a Canvas background. Base fit decides how: Contain fits the whole base and fills the rest with the background color, Cover fills the canvas and crops the base. The layers are still placed relative to the base. |
| Output format | PNG (keeps transparency), the default, JPG or WebP. JPG and WebP remove transparency. |
Mask output
The Mask output is a black-and-white image. White marks the area an AI edit may change. Mask output chooses what is white:
| Option | White area |
|---|---|
| Ring around the layers (for AI finish) | A ring around the placed layers, Ring width (px) wide. This is the default. |
| The layers themselves | The layers |
| Everything except the layers | The rest of the image |
| No mask | Nothing |
Wire the mask into the Mask input of Modify Image.
Make it look part of the picture
The node never redraws your layers. That is the point, but sometimes you want the scene to react to them: a contact shadow under a placed product, matching light on a logo, a reflection on a floor.
Click Add AI finish (make it look part of the picture). It adds a Modify Image node after this one. The new node is wired to the composite and to the mask ring around your layers, and its prompt asks for exactly that. The model can paint only in the ring, so it adds shadows and light around the elements. Every pixel outside the mask is kept from the composite, so the elements stay pixel-exact. To steer the look, wire a Composition Effects picker into that Modify Image node.
Suggest placement (AI), in a layer's settings, asks a vision model where the layer should go. It avoids faces, the main subject and busy textures, and it stays inside the safe area when a platform is set. It then fills in the anchor and the offsets. It costs the same as one Describe Image run, and you can drag the layer afterwards as usual.
Credits
Image Overlay costs 10 credits for the composite and its mask, whatever the size of the base image or the number of layers. Each extra platform under Export also for adds 2 credits.
| Export also for | Credits |
|---|---|
| Nothing | 10 |
| 2 platforms, for example Instagram post and YouTube thumbnail | 14 |
| All 12 platforms | 34 |
The Run button, the workflow estimate and the API all use the same formula. The Modify Image node that Add AI finish creates is charged separately, at its model's price.
Tips
- Use transparent files. Feed a transparent PNG or an SVG as a layer. An opaque JPG logo is placed as a rectangle, so run it through Remove Background first.
- Keep brand assets as files. Draw the picture with an AI node, then place the real logo here. A model always redraws a wordmark slightly wrong.
- Blend marks into the image. Use Multiply for dark marks on light photos and Screen for light marks on dark photos.
- Lift a cut-out. A soft drop shadow separates a person or a product from a busy background. Try blur 24, Shadow X 0, Shadow Y 12 and 50% opacity.
- Make a banner from a wider render. Turn on Custom output size with Cover, for example at 1500 × 500 pixels. The logo stays placed relative to the base, not the canvas.
- Generate the base first. The pixel values next to each percentage appear once a base image with a known size is connected.
- Rotate, then offset. Rotation turns the layer around its own center. Add an offset to keep a rotated mark tight in a corner.
- Use text layers for words, files for logos. Use a text layer for headlines, captions, prices and lower thirds, and an SVG or PNG file for the brand wordmark.
From the API
POST /v1/image-overlay takes the base image and the layers. This call places the watermark from the example above:
{
"imageUrl": "https://example.com/photo.png",
"layers": [
{ "imageUrl": "https://example.com/logo.svg", "anchor": "bottom-right", "width": 12, "x": -4, "y": -6, "opacity": 0.95 }
]
}- A text, QR or shape layer sets
layers[i].kindtotext,qrorshape, with atext,qrorshapeobject.opacityruns from 0 to 1, andzIndexsets the stacking order. canvassets a platform size or a custom output size.outputFormatispng,jpgorwebp.variants, for example["youtube-thumbnail", "x-header"], adds platform renders. The result lists them asvariants, each with anid, alabel, awidth, aheightand aurl.maskModeisaround,layers,outsideornone, andmaskSpreadis the ring width. The job's output carries the mask asmaskUrl.- A QR layer with
qr.fromInputset totruetakes its link from a top-levelqrText.
Frequently asked questions
Related
Remove Background
Modify Image
Publish to Social
Video Overlay
Image Collage
Last updated on
Image Collage
Arrange up to 30 images into one 2K or 4K picture with a smart or grid layout. Add numbers and labels to turn a batch of shots into a storyboard.
Extract Frame
Pull one frame out of a video as a lossless PNG, such as the first, the last, a timestamp or an exact frame number, to chain clips or make thumbnails.