Abstract Image Pattern Layer
Tiled patterns that read as texture, not wallpaper
- image
- IMAGE
Abstract Image Pattern Layer is the one that makes your abstract base look designed instead of random. Where the other layer nodes scatter shapes or strokes across the canvas, this one builds a single small tile and repeats it edge-to-edge. Run it through the usual img2img pipeline - pattern → VAE Encode → KSampler at 0.8–0.9 denoise - and the tiling becomes a regular texture the model will happily lean on: fabric, ceramic, wallpaper, circuit boards, whatever the prompt wants to make of it.
That regularity is the whole trick, and it's why this node earns a place you might not expect. Abstract generators that go full chaos produce composition soup. A tiled base forces a rhythm, and rhythm is what makes an abstract image feel intentional. If you only stack shape and line layers you get noise; add one pattern layer and suddenly you have a motif.
Inputs that matter
- tile_size - the size of the repeating tile, 16 to 512 in steps of 16. This is your scale control: small tiles = fine grain texture, big tiles = chunky graphic blocks.
- num_layers - how many pattern layers to stack (1–10). Overlaying two tile sizes is a genuinely good look.
- alpha - opacity of the pattern layer. Keep it high for a strong motif, low for a subtle background weave.
- blend_mode - the same 12 blend modes as the rest of the pack.
multiplyover a light background gives a great under-print feel.
pattern_color_mode picks the color (random RGB, hex with pattern_color_hex, or named colors), shape_position can confine the tiling to a quadrant or the center, and randomize lets the seed choose tile scale, color, position, and blend mode for you.
How it works
The implementation is refreshingly direct. The node draws one tile as a transparent RGBA image with PIL - one to three small shapes (ellipse, rectangle, or line) placed inside it, colored from the pattern color mode - then stamps copies of that tile across the canvas with NumPy's np.tile and crops to the exact width/height. Because it's the same tile repeated, the pattern is perfectly seamless by construction; you don't have to fight edge wrapping like you would stitching textures manually. The layer then composites through your chosen blend function, with optional alpha feathering, and returns an IMAGE ready for the next node.
Install
This is one of the seven nodes in the AbstractImaGen pack. Easiest route is ComfyUI Manager: search AbstractImaGen, install, restart, refresh. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/wakattac/ComfyUI-AbstractImaGen
It depends only on Pillow, numpy, scipy, and torch - all standard ComfyUI companions. No models, no downloads, no config. After restarting, the node lives under AbstractImage/Layers.
Gotchas
tile_sizeis clamped to the 16-step grid (16, 32, 48, …). Type 50 and you'll get whatever the step snaps to - set sizes in multiples of 16.pattern_color_hexonly kicks in whenpattern_color_modeishex, same as the sibling layer nodes.- Because the whole tile is built from the seed, one seed change re-rolls the tile, the tiling, and the colors together. If you want to keep a motif you found and just shift its color, that's a job for the V1 generator's color salt - or just re-pick the color mode manually here.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| seed | INT | 00–18446744073709550000 | Seed for pattern randomness. |
| randomize | BOOLEAN | false | If true, randomize pattern size, colors, position, and blend mode using the seed. |
| num_layers | INT | 11–10 | Number of pattern layers to add. |
| tile_size | INT | 6416–512 | Size of the repeating pattern tile. |
| pattern_color_mode | COMBO | random | Color selection mode for pattern. 'random' uses implicit RGB. |
| pattern_color_hex | STRING | Hex code for pattern color (used if Pattern Color Mode is 'hex'). | |
| alpha | INT | 2550–255 | Alpha (transparency) for pattern (0 is fully transparent, 255 is fully opaque). |
| shape_position | COMBO | full | Restrict pattern to a specific position/quadrant. |
| blend_mode | COMBO | normal | Blending mode to composite the pattern layer onto the base image. |
| feather_layer | BOOLEAN | false | Apply Gaussian blur to the alpha channel of the pattern layer. |
| feather_sigma_min | FLOAT | 1.00–20 | Minimum sigma for feathering (if applied). |
| feather_sigma_max | FLOAT | 6.00–20 | Maximum sigma for feathering (if applied). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |