Nodes/DJZ-Nodes/Screensaver Generator
ComfyUI Node

Screensaver Generator

Generate After Dark-style screensaver footage, frame by frame, inside ComfyUI

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 78
Screensaver Generator
    • images
    width512
    height512
    fps30
    max_frames60
    preset
    color_scheme
    speed1.0

    ScreensaverGenerator makes classic screensaver animations as image batches: flying pipes, starfields, Matrix rain, bouncing shapes, plasma. You give it dimensions, an fps, a frame count, and a preset, and it renders that many frames of pure retro computer-generated footage. If you've ever wanted a synthwave background loop or a fake "this computer is idle in 1997" clip without hunting down stock footage, this is the node - and it's one of the most purely fun things in the DJZ pack.

    It outputs an IMAGE batch, which is the currency video nodes speak: wire it into a Video Combine / save-animated-WEBP node (or the pack's video-save nodes) and you have a video. No diffusion, no GPU - it's procedural rendering, CPU-only, and fully deterministic in its look if you like what you get.

    How it works

    Each preset is a little stateful renderer that draws frames with numpy and OpenCV:

    • pipes - the classic 3D pipes screensaver, recreated as 2D line segments that grow and turn.
    • starfield - stars with random depths that fly toward you; the classic warp effect.
    • matrix - falling green character columns.
    • bounce - shapes bouncing around the screen (you set shape count/size via... well, V1 keeps it simple; the per-preset knobs arrive in V2).
    • plasma - flowing colored noise fields, the lava-lamp of screensavers.

    Each preset tracks its own state across frames (positions, velocities, pipe lengths), so the animation is coherent instead of each frame being random. speed (0.1–5) scales how fast everything moves, and color_scheme - classic, rainbow, neon, monochrome - recolors the whole thing. fps and max_frames define the output: 30 fps × 60 frames = 2 seconds of footage.

    The inputs that matter

    • preset - pipes / starfield / matrix / bounce / plasma. This is the whole character of the output.
    • width / height - canvas size. 64–4096 in steps of 64. 512×512 is the sensible playground.
    • fps / max_frames - 30 fps and 60 frames gives a 2-second loop, a good first render.
    • color_scheme - classic (blue/cyan/green), rainbow, neon, monochrome.
    • speed - 1 is normal; crank to 3–5 for frantic.

    Output: images - an IMAGE batch of max_frames frames, ready for video encoding.

    Installing it

    Part of DJZ-Nodes. ComfyUI Manager → Install Custom Nodes → search DJZ-Nodes → install → restart, or:

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

    It uses OpenCV (opencv-python) and PIL, both covered by the pack's requirements. The rest of the pack's install is heavier than this node needs, but nothing here will bite you.

    Common issues

    The main practical note: this generates a batch of frames, not a video file - you need an encoder node downstream (VHS Video Combine or similar) to get an actual .mp4/.webm. Second, higher resolutions slow things down fast because every frame is drawn procedurally on CPU; 512×512 at 30fps is comfortable, 4096 at 60fps is a long render. And the presets are intentionally simple - if the plain pipes looks flat, that's the aesthetic; V2 adds "3d pipes," "flying toasters," and "windows maze," plus a pile of per-preset tuning knobs, so the upgrade path is real. For quick background loops this V1 is all you need.

    Categorysd

    Inputs (7)

    NameTypeDefaultDescription
    widthINT51264–4096
    heightINT51264–4096
    fpsINT301–60
    max_framesINT601–9999
    presetCOMBO5 options: pipes, starfield, matrix, bounce, plasma
    color_schemeCOMBO4 options: classic, rainbow, neon, monochrome
    speedFLOAT1.00.1–5

    Outputs (1)

    NameTypeDescription
    imagesIMAGE