Image Align
Paste a foreground image onto a canvas at a precise anchor point
- image_bg
- images_fg
- merge_image
- only_fg
The other blend-and-composite nodes in this pack all have an opacity field. This one doesn't - and that absence is the whole story. Image Align isn't a blend node; it's a positioning node. You're not mixing two images together, you're pasting a foreground onto a background canvas at an exact anchor point, with pixel offsets if you need to nudge it further.
What it's for
Anywhere you need precise, deterministic placement rather than a blended composite - dropping a rendered element into a specific corner of a larger canvas, building a consistent layout where a subject always sits in the same spot relative to a background, or preparing a foreground/background pair for a further compositing step that needs the foreground already correctly positioned first. Compare this to Image Blend BG, this pack's other two-image compositor: that node blends foreground into background at a chosen opacity; this one places it, full stop, with no strength control at all.
The seven-way align dropdown gives you the full set of compass anchors plus dead center, so you're not limited to corners - top-center and bottom-center are both available too, useful for horizontally-centering a subject while still controlling which edge it's pinned to vertically.
Inputs and outputs that matter
image_bg(required) - the background canvas the foreground gets placed onto.images_fg(required) - the foreground image (or batch) being positioned.align(required, dropdown: seven anchor points - top left, top center, top right, bottom left, bottom center, bottom right, and center) - which point of the canvas the foreground gets anchored to before any offset is applied.offset_x(required, integer, default 0, range −2048 to 2048) - nudges the foreground horizontally from its anchored position.offset_y(required, integer, default 0, range −2048 to 2048) - nudges the foreground vertically from its anchored position.
Two outputs, and both are worth knowing about: merge_image is the full composite, foreground pasted onto background. only_fg is just the foreground, repositioned onto a canvas the same size as the background but without the background content - useful if you need the positioned foreground on its own, say as a mask source or for a separate compositing pass, without redoing the alignment math yourself.
Installing it
ComfyUI Manager: search ComfyUI-ReplenishNodes, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/hben35096/ComfyUI-ReplenishNodes
No model downloads or extra dependencies documented for this node.
Where people get tripped up
Expecting a blend. There's no opacity field here at all - if part of your foreground is meant to show through translucently, this node won't do that; it places the image as-is. If your foreground has transparency you want handled properly, flatten or matte it before this step, or use Image Blend BG instead if what you actually want is opacity blending rather than hard placement.
Offsets pushing the foreground off-canvas. With a ±2048 range on both offsets, it's easy to push the foreground entirely outside the visible frame, especially on smaller canvases - if your composite comes back looking empty where the foreground should be, check the offset values before assuming the node is broken.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image_bg | IMAGE | — | |
| images_fg | IMAGE | — | |
| align | COMBO | 7 options: ◤ top left, top center ▼, top right ◥, ◣ bottom left, bottom center ▲, bottom right ◢, +1 | |
| offset_x | INT | 0-2048–2048 | — |
| offset_y | INT | 0-2048–2048 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| merge_image | IMAGE | — |
| only_fg | IMAGE | — |