Nodes/ComfyUI-AbstractImaGen/Abstract Image Background
ComfyUI Node

Abstract Image Background

The plain canvas that starts every abstract workflow — solid or gradient, seeded or hand-picked

By wakattac·Created about a year ago·Updated about a year ago· 1
Abstract Image Background
    • IMAGE
    width512
    height512
    seed0
    randomizefalse
    background_typesolid
    solid_color_moderandom
    solid_color_hex
    gradient_color_mode_startrandom
    gradient_color_mode_endrandom
    gradient_start_hex
    gradient_end_hex
    gradient_directionvertical

    This is where every workflow in the AbstractImaGen pack starts. Abstract Image Background doesn't do anything clever - it makes a solid color or a gradient at any size you like, hands you a clean IMAGE, and lets you build on top of it. The clever part is why you'd want that at all, so let's get to that first.

    The whole point of this pack is to generate abstract base images on the fly, feed them into VAE Encode, and run img2img at high denoise so the model keeps your composition but paints in the actual subject. Think of it as composition control without ControlNet: the shapes and color blocks you arrange become the structure, and the checkpoint fills in the detail. If your composition is a boring gray slab, that's what you'll get back. A seeded gradient background gives the diffusion model something interesting to anchor to, and because everything is deterministic per seed, you can lock a composition you like and vary only the prompt.

    What you actually set

    Four things matter for a beginner:

    • width / height - 64 to 2048, stepping in 8s (that's the standard ComfyUI latent-friendly grid). Match the resolution you'll run your sampler at.
    • seed - this is the reproducibility lever. Same seed, same gradient direction and colors, forever.
    • randomize - flip this on and the node picks background type, colors, and gradient direction itself from the seed. Good for sketching; off when you want to art-direct.
    • background_type - solid or gradient. Gradient gets you gradient_direction (vertical, horizontal, radial, diagonal) plus separate start/end color modes and hex overrides.

    Colors are chosen via solid_color_mode / gradient_color_mode_start / gradient_color_mode_end, each offering random plus red, green, blue, cyan, magenta, yellow, black, and white. Drop a hex code like #FF0000 into solid_color_hex and it overrides the mode whenever it's valid - the author's tooltip says so explicitly, and it holds. Leave the hex empty and the mode rules.

    How it works

    Under the hood it's pure NumPy and Pillow - no model, no GPU, no API. A solid fill is a numpy array painted one color; gradients interpolate between two colors per-pixel along the chosen direction (radial is a distance falloff, diagonal is a corner-to-corner lerp). It runs in milliseconds, which is the whole appeal: you're generating infinite canvas material for free, then spending your actual GPU budget on the denoise pass.

    Install

    ComfyUI Manager is the easy route: search AbstractImaGen in the Custom Nodes Manager, install, restart, and refresh the browser. The nodes land under the AbstractImage menu. Manual is the same as any custom node:

    cd ComfyUI/custom_nodes
    git clone https://github.com/wakattac/ComfyUI-AbstractImaGen
    

    The requirements.txt asks for Pillow, numpy, scipy, and torch - torch comes with ComfyUI and the first three are almost certainly already installed. There are no model files to download and no API key to find. Restart ComfyUI after the clone and you're done.

    Gotchas

    Because this node is just a base layer, it doesn't validate anything about what you wire after it - if you feed a solid red square into img2img at denoise 0.2 you'll get a slightly redder square. That's not a bug, that's the workflow telling you to push denoise up toward 0.8–0.9 so the composition is a starting point, not a straitjacket. Also note the randomize toggle only varies things when you actually change the seed; reseed to reshuffle.

    The output IMAGE wires straight into any layer node in this pack (or into VAE Encode on its own if you want a pure color study). That's the intended chain: Background → layers → postprocessing → VAE Encode → sampler.

    CategoryAbstractImage/Background

    Inputs (12)

    NameTypeDefaultDescription
    widthINT51264–2048Width of the generated image.
    heightINT51264–2048Height of the generated image.
    seedINT00–18446744073709550000Seed for background randomness.
    randomizeBOOLEANfalseIf true, randomize background type, colors, and gradient direction using the seed. Hex inputs override random colors if valid.
    background_typeCOMBOsolidChoose between a solid color or gradient background.
    solid_color_modeCOMBOrandomColor selection mode for solid background.
    solid_color_hexSTRINGHex code for solid color background (overrides Solid Color Mode if valid). Example: #FF0000 for red.
    gradient_color_mode_startCOMBOrandomColor selection mode for the gradient start color.
    gradient_color_mode_endCOMBOrandomColor selection mode for the gradient end color.
    gradient_start_hexSTRINGHex code for gradient start color (overrides Start Color Mode if valid). Example: #00FF00 for green.
    gradient_end_hexSTRINGHex code for gradient end color (overrides End Color Mode if valid). Example: #0000FF for blue.
    gradient_directionCOMBOverticalDirection of the gradient.

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE