Nodes/DJZ-Nodes/Dinsky Plus Generator
ComfyUI Node

Dinsky Plus Generator

Seeded Abstract Art for Backgrounds and Datasets

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 78
Dinsky Plus Generator
    • IMAGE
    width1024
    height1024
    seed0
    num_shapes100
    min_size10
    max_size100
    color_palette
    circle_weight1.0
    rectangle_weight1.0
    line_weight1.0

    Dinsky Plus is a procedural art generator that draws Kandinsky-style abstract compositions - colored circles, rectangles, and lines scattered across a canvas with no diffusion model involved. Give it a size and a seed and it paints you a fresh abstract image in milliseconds. No checkpoint, no sampler, no VRAM. That's the appeal: it's instant, reproducible, and infinite.

    The practical uses are more varied than they sound. These make great background textures to composite AI subjects onto, useful as style-reference inputs, or a fast source of abstract art for dataset experiments. And because it's seeded, the same seed always gives the same painting - which makes it handy as a controllable element in bigger workflows rather than just random noise.

    How it works

    The mechanism is refreshingly simple: it creates a blank RGB canvas in PIL, then loops num_shapes times, each iteration picking a shape type (weighted by circle_weight, rectangle_weight, line_weight), a random color from the selected palette, and random geometry, then draws it. The weights are normalized into probabilities, so cranking circle_weight to 10 vs 1 for lines makes the canvas mostly circles. The seed drives both Python's random and numpy's, so everything is reproducible.

    The kandinsky palette is the namesake and the best default - a warm set of corals, golds, and teals that genuinely evokes the painter. There are also warm, cool, monochrome, and vibrant options.

    The inputs that matter

    • width / height - canvas size (64–4096). Default 1024².
    • seed - the reproducibility knob. Change it, get a different painting; keep it, get the same one forever.
    • num_shapes - shape count (1–1000). 100 is a nice abstract density; 1000 is basically confetti.
    • min_size / max_size - shape size range.
    • circle_weight / rectangle_weight / line_weight - the three shape-type probabilities. This is the personality control.

    Output is a single IMAGE at your requested size.

    Installing it

    Dinsky Plus is part of DJZ-Nodes:

    cd ComfyUI/custom_nodes
    git clone https://github.com/MushroomFleet/DJZ-Nodes
    cd DJZ-Nodes
    pip install -r requirements.txt
    

    Restart ComfyUI, or install via Manager (search "DJZ-Nodes"). It only needs Pillow and numpy - both ship with ComfyUI, so it works out of the box.

    Common issues

    Not much can go wrong here, which is the point. The one thing to watch: line shapes are capped at a width of min_size // 10, so if min_size is tiny your lines come out hairlines. And there's no "background" input - the canvas is always solid white, so if you want a specific backdrop you'll need to composite the output yourself. For a version that anchors shapes to explicit coordinates instead of scattering them, the pack also has Dinsky Plus V2.

    CategoryDJZ-Nodes

    Inputs (10)

    NameTypeDefaultDescription
    widthINT102464–4096
    heightINT102464–4096
    seedINT00–4294967295
    num_shapesINT1001–1000
    min_sizeINT101–500
    max_sizeINT1001–1000
    color_paletteCOMBO5 options: kandinsky, warm, cool, monochrome, vibrant
    circle_weightFLOAT1.00–10
    rectangle_weightFLOAT1.00–10
    line_weightFLOAT1.00–10

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE