Border Composite Alpha
Alpha-Composite Borders for Batches
- bottom_images
- IMAGE
Border Composite Alpha is the "add a fancy frame to every image" node, and the key word is alpha. The border you apply is a transparent PNG layered on top of your image with proper alpha compositing, not a hard rectangle stamped over your pixels. That means you can use ornate borders - film sprocket holes, polaroid frames, polaroid-style white borders, scanned-photo edges - where the center is cut out and your actual image shows through. It works on a whole batch in one pass, so a 200-frame video's worth of stills all get the same frame, perfectly aligned.
It's a small node and it doesn't do much beyond that one job, but it's one of those "didn't know I needed it until I needed it" tools. If you're batch-upscaling images and want them to look like a cohesive set of framed prints, this is a one-node answer.
How it works
Under the hood it's standard alpha compositing: result = alpha * top_rgb + (1 - alpha) * bottom. The node loads the border PNG from a borders/ folder that lives inside the DJZ-Nodes install, resizes it to match your input frame, and layers it on. The border image is the "top" layer and your input images are the "bottom" layer - so whatever's transparent in your border PNG is where your image shows through.
That folder is the entire personality of this node. The border_image dropdown is populated by scanning ComfyUI/custom_nodes/DJZ-Nodes/borders/ for PNG files, so your workflow is: drop a few PNGs in there, restart ComfyUI, and they appear in the dropdown. If the folder is missing or empty, the dropdown shows a single no_borders_found.png placeholder and you'll get nothing useful until you add real files.
The inputs that matter
There are only two, which is refreshing:
bottom_images- yourIMAGEbatch. It must be RGB (3 channels); the node raises aValueErrorif you feed it something else.border_image- the dropdown of PNGs from theborders/folder. Pick your frame.
Output is an IMAGE of the same batch, same dimensions, with the border composited on. Because the border is resized to exactly match your frame, any resolution input works.
Installing it
Border Composite Alpha is part of DJZ-Nodes, so you're installing the full pack:
cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-Nodes
cd DJZ-Nodes
pip install -r requirements.txt
Or just search "DJZ-Nodes" in ComfyUI Manager and let it handle the install. Then create the borders/ folder inside the pack if it isn't there, add your PNGs, and restart so the dropdown picks them up.
Common issues
The border dropdown being stuck on no_borders_found.png is by far the most common complaint, and it's almost always one of two things: you haven't added any PNGs to the borders/ folder, or you added them but didn't restart ComfyUI - the file list is built at load time, so new files won't show until a fresh start. The border also has to be RGBA; if your PNG has no transparency, it'll just cover your image entirely. And remember the resize: whatever resolution you feed in, your border gets stretched to match, so a border designed for landscape will look wrong on a portrait frame.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| bottom_images | IMAGE | — | |
| border_image | COMBO | 1 options: no_borders_found.png |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |