Nodes/ComfyUI-Purz/Animated Stripes (Purz)
ComfyUI Node

Animated Stripes (Purz)

Equalizer bars, camo, and rolling waves

By purzbeats·Created about a year ago·Updated 3 months ago· 24
Animated Stripes (Purz)
    • image
    width512
    height512
    stripe_width20
    directionvertical
    color1#FFFFFF
    color2#000000
    frame_count30
    wave_typesine
    wave_scale0.10
    wave_directionhorizontal
    wave_shapesine
    math_operationadd
    wave_factor0.50
    reverse_phasefalse
    color_ramp_typelinear

    Stripes are the most workhorse pattern there is - and PurzAnimatedStripes is the one that makes them move. A wave rolls through your stripe pattern frame by frame, so vertical bars sway, diagonal stripes crawl, and the whole thing turns into a looping background that's begging to be a video. It's the animated counterpart to the pack's plain Stripes Pattern node, and it's the most "music visualizer" of the four Purz/Patterns/Animated nodes - tilt the stripes horizontal and you're basically building equalizer bars.

    From ComfyUI-Purz by PurzBeats (a Comfy Org staffer). Same wave engine as the other animated patterns; the base pattern is just stripes, with more direction options than the checkerboard version.

    How it works

    Draw a stripe pattern, generate an animating wave, combine the two with a math operation, map to a color ramp, repeat per frame. Output is a full IMAGE batch - one frame per frame_count - ready for a video combiner or a quick preview loop.

    The geometry knobs are simple but worth knowing:

    • stripe_width - 1–256, the thickness of each stripe. Thin stripes + a gentle wave = fabric or camo-ish texture; thick stripes + a strong wave = bold graphic motion.
    • direction - horizontal, vertical, diagonal_right, or diagonal_left. Diagonal stripes are where this node gets interesting - rolling diagonals read as motion even at low wave factors, which makes them great for conveyor-belt or "energy flow" backgrounds.

    The inputs that matter

    • width / height - canvas size (64–4096).
    • color1 / color2 - hex colors, blended through the color ramp. High-contrast pairs (white/black) give clean barcode motion; close, muted pairs give a subtle shifting sheen.
    • frame_count - number of frames, up to 300. Your length control.
    • wave_type - sine, cosine, square, triangle, sawtooth. The default sine is smooth; square gives abrupt on/off banding that can look like a hard matte shifting.
    • wave_direction - defaults to horizontal here, which makes the stripes sway left and right. vertical rolls them up/down; radial and diagonal are the wilder options.
    • wave_scale - wave frequency. Lower = slower, longer waves.
    • wave_factor - 0–2, how strongly the wave bends the stripes. 0 = static stripes.
    • math_operation - how the wave combines with the stripes (add, multiply, maximum, power…).
    • reverse_phase - flips the direction of travel.
    • color_ramp_type - linear, ease, b_spline, cardinal, constant.

    Output is image, an IMAGE batch with frame_count frames.

    Installing it

    ComfyUI Manager - search ComfyUI-Purz - or:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/purzbeats/ComfyUI-Purz.git
    cd ComfyUI-Purz
    pip install -r requirements.txt
    

    Restart ComfyUI and you're done. Requirements are OpenCV, Pillow, torch, numpy - all already present in a stock ComfyUI install, no models to fetch.

    Where people get burned

    The classic mistake is pairing wave_shape and wave_type values that fight each other and getting jagged output - if your stripes look glitchy rather than wavy, back off to sine on both and reintroduce one at a time. Also remember wave_direction controls the wave's sweep, not the stripe angle; direction controls the stripes. Mix them up and you can get perpendicular motion that looks like a weave - which is honestly kind of cool, but it's easy to not realize why it happened. As always with animated nodes, prototype at low resolution; 300 frames of high-res stripes is a real render.

    CategoryPurz/Patterns/Animated

    Inputs (15)

    NameTypeDefaultDescription
    widthINT51264–4096
    heightINT51264–4096
    stripe_widthINT201–256
    directionCOMBOvertical4 options: horizontal, vertical, diagonal_right, diagonal_left
    color1STRING#FFFFFF
    color2STRING#000000
    frame_countINT301–300
    wave_typeCOMBOsine5 options: sine, cosine, square, triangle, sawtooth
    wave_scaleFLOAT0.100.01–1
    wave_directionCOMBOhorizontal4 options: horizontal, vertical, diagonal, radial
    wave_shapeCOMBOsine3 options: sine, square, triangle
    math_operationCOMBOadd12 options: add, subtract, multiply, divide, power, minimum, +6
    wave_factorFLOAT0.500–2
    reverse_phaseBOOLEANfalse
    color_ramp_typeCOMBOlinear5 options: linear, ease, b_spline, cardinal, constant

    Outputs (1)

    NameTypeDescription
    imageIMAGE