ComfyUI Node

XYZ Plot

The A1111 grid-maker, reborn as a ComfyUI node

By talesofai·Created 3 years ago·Updated 16 days ago· 675
XYZ Plot
  • images
  • input_x
  • input_y
  • input_z
    value_x
    value_y
    value_z
    output_folder_namexyz_plot

    This is the node people install ComfyUI Browser for. If you came from Automatic1111, you know the XYZ Plot script: pick a few settings, give each a list of values, and it runs every combination and lays the results out as a grid so you can actually compare them. XyzPlot-Browser brings that to the node graph - pick up to three widgets anywhere in your workflow, feed it values, and it generates every combination, saves each image, and opens an interactive grid you can click through.

    People keep asking "is there an XYZ plot for ComfyUI?" on r/StableDiffusion, and the answers are usually Efficiency Nodes or this one. This version has a nicer payoff than most: instead of a static sheet, you get a clickable web grid that opens inside ComfyUI.

    Why it earns its place

    The community's core testing discipline is "change one variable at a time with a fixed seed." That's exactly what this automates - same seed, one widget varied, side by side. Prompt tweaks, sampler comparisons, CFG sweeps, a LoRA weight ladder: anything you'd otherwise babysit for ten runs, it does for you in one pass. That's the whole job.

    How it works

    This one needs its sibling, SelectInputs, because XyzPlot doesn't take raw values for its axes - it takes an INPUT selection that points at a specific widget on a specific node (like the prompt widget of your CLIP Text Encode, or the seed widget of your KSampler).

    When you hit run, the node deep-copies the current prompt, rewrites the chosen widget on the chosen node for each value combination, and re-queues those prompts to ComfyUI's own /prompt endpoint. When the graph runs again, the node knows from its hidden xyz_data which X/Y/Z cell it is, and it saves the incoming images as x0_y0_z0_0.jpeg-style files into <output>/<output_folder_name>. Once all combinations have run, it writes a result.json and shows you an interactive HTML grid served by the pack, where you can even score individual cells (scores get logged to a score_log.csv in the output folder).

    The inputs that matter

    • images - wire this from your sampler/VAE decode. This is the batch that gets saved.
    • input_x / input_y (and optional input_z) - INPUT connections from a SelectInputs node. Each tells XyzPlot which widget to vary.
    • value_x / value_y / value_z - the values to try, split by semicolons: "1girl; 1boy; 1girl, solo". Empty entries are dropped.
    • output_folder_name - where the grid lands under your output directory. Default xyz_plot.

    There are no outputs; it's a terminal output node.

    Gotchas

    Three things trip people up. First, values split on ;, so a prompt containing a literal semicolon will break mid-way - pick values that don't use it. Second, when you start a new sweep the node moves the old output folder aside to <name>_old_<timestamp> instead of overwriting, so you'll accumulate orphaned folders if you sweep often. Third, the first run just re-queues the variants - it looks like "nothing happened" until those queued jobs finish and the node runs again to save and build the grid. Patience, or watch the queue.

    Install

    Install the whole pack:

    cd ComfyUI/custom_nodes && git clone https://github.com/talesofai/comfyui-browser
    

    or via ComfyUI Manager → search comfyui-browser. No extra models, no heavy dependencies - the pack's requirements are just requests, numpy, pandas, tqdm, and urllib3. Restart ComfyUI after installing.

    CategoryBrowser

    Inputs (8)

    NameTypeDefaultDescription
    imagesIMAGE
    input_xINPUT
    input_yINPUT
    value_xSTRING
    value_ySTRING
    value_zSTRING
    output_folder_nameSTRINGxyz_plot
    input_zoptINPUT

    Outputs (0)

    No outputs