Nodes/Pulse Studio/Pulse Bench
ComfyUI Node

Pulse Bench

Settle the Sol-Attn vs Spectrum speed argument with your own numbers

By Addis-Pulse-Studio·Created about a month ago·Updated 15 days ago· 2
Pulse Bench
    • table
    schema_version3.0.0
    run_dirs

    The node that reads your render manifests so you stop guessing

    Every serious MiniMax H3 workflow ends up with a patch chain - Sol-Attn here, Spectrum offloading history there, Sage attention as a fallback - and everyone has an opinion about which one is fast. The catch: Sol-Attn and Spectrum address different memory, and community reports on Spectrum's effect on speed genuinely disagree. One thread will tell you it saves time, another that it costs it. On your box, with your card and your window lengths, the truth is a number sitting on disk.

    Pulse Bench is the node that reads it out. When PulseRender finishes a run, every segment entry carries render_seconds, peak_vram_bytes, and a patch_fingerprint in its manifest. Pulse Bench loads those manifests, groups the timings by fingerprint, and prints a table of seconds-per-frame and peak VRAM per patch chain. It turns an argument into a lookup - which is exactly what the pack's README says it's for.

    Using it

    It's an output node with two inputs, and run_dirs is the one you set:

    • run_dirs - one run folder per line, the folders holding manifest.json (the ones PulseRender's segment_paths output prints). Absolute paths, or relative to ComfyUI/output.
    • schema_version - written by the node, read at load time, do not edit.

    Output is a single table (STRING). It's marked as an output node, so the table renders in the UI - there's no video or image to preview, just the numbers. The grouping is by patch fingerprint, so you can point it at several run folders from different patch configurations and compare rows directly. Warm-up segments (the Triton autotune sweep you pay once per distinct sequence length) are counted separately rather than dropped, so the table won't understate the cost of a ragged plan.

    The workflow: render the same timeline twice, once with Spectrum + Sol-Attn and once without, point Pulse Bench at both run folders, and read which chain was actually faster on your hardware. That's the whole job, and it's the right size for it.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Addis-Pulse-Studio/comfyui-pulse-studio
    

    Restart ComfyUI; no pip install and no dependencies beyond what a working ComfyUI already has. The host must be ComfyUI 0.30.0+ with H3 support, and the model weights come from Comfy-Org/MiniMax-H3 (they carry the geofenced MiniMax H3 Community License - no US, EU, UK, Korea). On Linux and macOS, example-graph loader widgets load red until you re-pick each file.

    What to expect

    If you run Pulse Bench on a folder that has no manifest, it lists the problem per path rather than crashing - one line per run folder. That's the whole troubleshooting story: it reads JSON files and imports nothing from ComfyUI, so it can't really fail in interesting ways. It's a thin utility, and it's the one you reach for when someone on the subreddit starts confidently telling you which patch chain is faster than yours.

    CategoryAddisPulse/H3

    Inputs (2)

    NameTypeDefaultDescription
    schema_versionSTRING3.0.0Which widget layout this node was saved with. Written by the node, read at load time to restore values by name. Do not edit.
    run_dirsSTRINGOne run folder per line -- the folders holding manifest.json, printed by PulseRender's `segment_paths`. Absolute paths, or paths relative to ComfyUI/output.

    Outputs (1)

    NameTypeDescription
    tableSTRING