Nodes/Comfyroll Studio/πŸ“‰ CR XY From Folder
ComfyUI Node Runs on cloud

πŸ“‰ CR XY From Folder

Assemble a labeled comparison grid from saved images

By Suzie1Β·Created 3 years agoΒ·Updated 2 years agoΒ· 1,296
πŸ“‰ CR XY From Folder
    • IMAGE
    • trigger
    • show_help
    β—„image_folderβ–Ύβ–Ί
    β—„start_index1β–Ί
    β—„end_index1β–Ί
    β—„max_columns1β–Ί
    β—„x_annotationβ€”β–Ί
    β—„y_annotationβ€”β–Ί
    β—„font_size50β–Ί
    β—„gap0β–Ί
    β—„triggerfalseβ–Ί

    The classic "XY plot" comparison grid - one axis is sampler, the other is CFG, and you get a labeled grid of every combination in one image - didn't come free with ComfyUI the way it did in A1111. Comfyroll's answer is a two-step system: sweep your parameters and save each result as its own image file, then point CR XY From Folder at that folder and it stitches them into one labeled grid with your axis values annotated.

    How it works

    image_folder is a dropdown populated from your saved output subfolders - empty until you've actually got a folder of sweep images for it to find, so this only shows up after you've run the sweep that generates them. start_index and end_index pick which range of images in that folder get pulled into the grid, and max_columns sets how many images sit in a row before wrapping to the next.

    x_annotation and y_annotation are multiline text fields where you paste your actual axis values - your list of CFG numbers for the x-axis, your list of sampler names for the y-axis - so the finished grid image is self-labeled rather than a wall of unmarked thumbnails you have to cross-reference against your notes. font_size and gap control the label text size and spacing between cells.

    The optional trigger input (BOOLEAN, default false) is a gate: wire a boolean into it to control exactly when the grid gets assembled, rather than firing on every graph execution regardless of whether your sweep has actually finished writing all its images. Comfyroll's own CR Trigger node - which flips a boolean once a loop index reaches a target value - is a natural fit for driving this, letting you gate the grid build on "the last sweep image should exist by now" rather than triggering it prematurely on an incomplete set. It also outputs its own trigger boolean, so you can chain a confirmation onward if something downstream needs to know the grid was actually built.

    The inputs that matter

    • image_folder - where your swept images live. Populated only once that folder exists.
    • start_index / end_index - which images from the folder to include.
    • max_columns - grid width before wrapping.
    • x_annotation / y_annotation - the axis labels, one value per line.
    • font_size, gap - label and spacing appearance.
    • trigger (optional) - gates when the grid actually assembles.

    Outputs: the assembled IMAGE, a passthrough trigger boolean, and show_help.

    How to install it

    ComfyUI Manager - search "Comfyroll Studio", install, restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git
    

    then restart. No models - this reads and composites image files you've already generated and saved.

    Common issues

    image_folder dropdown is empty. Expected until there's actually a folder of saved sweep images to point at - run your XY sweep and save its output first, then come back to this node.

    Grid looks incomplete or misaligned. Check that start_index/end_index actually spans the number of images your sweep produced, and that max_columns matches the number of values on your x-axis - a mismatch here is the most common reason the grid doesn't line up with your annotations.

    Grid assembles before all the sweep images exist. That's exactly what the trigger input is for - wire something like CR Trigger into it instead of leaving the graph to run on its default timing.

    If none of Comfyroll's nodes appear at all, check your ComfyUI console for Comfyroll Studio: Failed to load ... nodes - commonly a Pillow version conflict from another custom node - and reinstall Pillow or update the pack through Manager.

    Category🧩 Comfyroll Studio/✨ Essential/πŸ“‰ XY Grid

    Inputs (9)

    NameTypeDefaultDescription
    image_folderCOMBO0 options:
    start_indexINT10–10000β€”
    end_indexINT11–10000β€”
    max_columnsINT11–10000β€”
    x_annotationSTRINGβ€”
    y_annotationSTRINGβ€”
    font_sizeINT50β€”
    gapINT0β€”
    triggeroptBOOLEANfalseβ€”

    Outputs (3)

    NameTypeDescription
    IMAGEIMAGEβ€”
    triggerBOOLEANβ€”
    show_helpSTRINGβ€”