Nodes/ComfyUI-NynxzNodes/Background Maker
ComfyUI Node

Background Maker

Background Maker doesn't make a background — and that's the good part

By Nynxz·Created 11 months ago·Updated about 12 hours ago· 4
Background Maker
  • icons
  • icon_alpha
  • config
  • background
◄seed0►

The name is misleading in a way that matters, so let's kill it first: Background Maker produces no pixels. It's a data node. It packages colours, pattern parameters and icon stamps into a resolution-independent spec, and the grid node you wire it into builds the actual background at its canvas size.

That sounds like a technicality until you've used the alternative. Every "grid with a backdrop" node that renders the background itself has to guess a size, and the guess is where you get icons sliced in half at the canvas edge or a gradient banded across a cell boundary. Deferring the render to the consumer means the background is measured to the thing it sits behind. It's a small architectural decision that removes a whole class of annoyance.

What it can be

The config is one socketless panel (NYNXZ_BG_CONFIG) rather than a pile of widgets, and it holds four modes plus an off switch:

  • solid - one colour.
  • gradient - two colours along an angle.
  • pattern - six procedural overlays: dots, grid, checker, stripes, diagonal, crosshatch, each with its own colour, scale and opacity. They're vectorised numpy functions of pixel coordinates, so they tile seamlessly at any size by construction.
  • icons - a square grid of icon stamps across the canvas, sized so the icons are never cut off. One icon wired in tiles evenly; a batch or list gets shuffled by seed.
  • transparent - a fully see-through ground, which survives all the way through the grid to the saved file because the renderer always returns RGBA.

The transparent mode is more useful than it looks. Fill it in, add a coloured cell shadow with a big blur and no offset, and you get a glow around each image against nothing at all - a decent "these are separate objects floating in space" look for a comparison sheet.

Inputs that matter

Required: seed, which is only the shuffle seed for icons mode. Same seed, same layout - so a grid you liked is reproducible, and it has the usual control-after-generate widget next to it.

Optional: icons (an IMAGE, or a batch/list of them), icon_alpha (a MASK giving per-icon alpha, white = visible - otherwise the icon's own luminance is used, which is what you want for a black glyph on white), and config. Output is a single background wire.

Two things about icons worth doing properly. First, the panel's tint recolours every icon to one colour, which is what makes a wall of mixed logos look deliberate instead of like a folder dump. Second, rotate_jitter and scale_jitter exist so a repeating icon doesn't read as a spreadsheet - small values, 10–20 degrees and 0.1, go a long way.

The install, and the one gotcha

Manager → search Nynxz → ComfyUI-NynxzNodes, or:

comfy node install comfyui-nynxz-nodes

From source:

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzNodes
cd ComfyUI-NynxzNodes
pnpm install && pnpm build

Restart. Nothing to download; the renderer is numpy and PIL.

Now the gotcha, and it's the reason I'd steer you to Manager: the panel is the node. There's no native widget fallback for a config blob like this - no colour swatch, no pattern preview, no icon-grid preview. The built frontend lives in web/, which the repo gitignores, so a bare git clone without the pnpm build gives you a Background Maker you can't configure. The README is explicit about the build step; Manager and the registry package ship it done.

Troubleshooting

You wired it in and the grid still has the default dark backdrop. Check the mode in the panel. And check you wired the output into the grid's background input, not into style - both are optional inputs on Grid From Images and swapping them is the classic mistake. The style input won't complain about a spec dict nearly as loudly as you'd like.

Icons are pixelated or squashed. The stamp is built at render time to fit a square cell sized 1/columns of the canvas width, with scale as a fraction of that cell. Twelve columns on a 1280-wide grid means ~106px cells; if your icons are 512px PNGs they're being downsampled, which is fine, and if they're 32px glyphs they're being upsampled, which isn't. Feed bigger icons or use fewer columns.

The pattern is invisible. pattern_opacity defaults to 0.10, which is deliberately subtle. On a mid-grey base it basically disappears. Raise it to 0.2–0.3 before you conclude the node is broken.

Background looks different between two grids. It should - it's rendered per canvas. If you want pixel-identical backdrops across two outputs, drive both grids from one Grid Style so the canvas size matches.

One last thought: this is a preview node in the sense that it's aimed at presentation output - contact sheets, mood boards, dataset screenshots. It's never going to be the background of your render, and it isn't trying to be.

CategoryNynxz/Grid

Inputs (4)

NameTypeDefaultDescription
seedINT00–2147483647Shuffle seed for 'icons' mode — same seed = same layout.
iconsoptIMAGEIcon image(s) for 'icons' mode — one tiles evenly, a batch/list shuffles by seed.
icon_alphaoptMASKOptional per-icon alpha (white = visible). Else the icon's luminance is used.
configoptNYNXZ_BG_CONFIG—

Outputs (1)

NameTypeDescription
backgroundNYNXZ_BACKGROUNDWire into a grid's background input.