ComfyUI Node

XY Plot End

XY Plot End

By kinorax·Created 5 months ago·Updated about a month ago· 2
XY Plot End
  • image
  • xy_plot_info
  • loop_control
  • accumulated_images
  • xy_plot_image
background_colorF8F9FB
text_color111827
border_color8A8F99
y_label_width_ratio0.35
x_only_max_columns0

XY Plot End is the payoff node of the Info-Prompt-Toolkit XY trio. Start generates the per-cell settings, Modifier defines what varies, and End takes the resulting images and composes them into a single labeled grid - the thing you can actually look at and go "yeah, 0.8 is the LoRA strength." Without it, an XY plot is just a folder full of images you have to mentally line up.

It's the closing bookend in the same way Video Saver closes the video pair. Give it the generated cells and the plot's metadata, and it draws the axis labels, borders, and background, then hands you one grid image.

Inputs that matter

  • image - the generated cell(s). Required.
  • xy_plot_info - the labels and grid shape, straight from XY Plot Start's xy_plot_info output. Required.
  • loop_control - the flow signal from Start. This is how End knows whether it's in loop mode or list mode: connected = loop mode (cells arrive one at a time and accumulate), None = list mode (all cells in one go). The tooltip is explicit: "None means list mode."
  • background_color / text_color / border_color - hex colors (RRGGBB) for the grid chrome. Defaults are a clean light background (F8F9FB), dark text (111827), and a neutral border (8A8F99). The defaults are genuinely fine; change them only if you're matching a brand or a theme.
  • y_label_width_ratio - how much of each cell's width the Y-axis label column may take (0.2–0.8, default 0.35). Only relevant if you're using Y modifiers.
  • x_only_max_columns - in a single-row X-only plot, this wraps the row into multiple rows after N columns. 0 keeps single-row mode.

There's also an accumulated_images input whose tooltip says it all: "Internal use only. Leave this unconnected." Leave it unconnected. In loop mode the accumulation is handled through the loop_control chain; wiring it manually is how you get weird duplicated cells.

Output

One output: xy_plot_image - the composed grid, ready for a preview or the pack's Image Saver. It's a single image, not a list, so you can drop it straight onto a Preview or Save node.

The loop/list handshake

This is the part that trips people up. The trio supports two execution modes, and End's behavior follows Start's:

  • List mode: Start emits all cells at once; End gets the full batch in image and loop_control arrives as None. One composition at the end.
  • Loop mode: Start emits one cell per execution and increments the loop through loop_control. End accumulates cells across turns - that's what the flow control exists for - and composes once the loop finishes. This is the mode that keeps memory down on big grids.

If the grid comes back half-composed or cells are missing, check that Start and End are using the same mode, and that loop_control is actually wired between them.

Installing

It ships in ComfyUI-Info-Prompt-Toolkit:

cd ComfyUI/custom_nodes
git clone https://github.com/kinorax/comfyui-info-prompt-toolkit.git
cd comfyui-info-prompt-toolkit
pip install -r requirements.txt

Or install via ComfyUI Manager (search the pack title) and restart ComfyUI. No extra models or downloads for the XY nodes. Like the rest of the pack it targets the newer node API, so keep ComfyUI at ≥ 0.17.0 or the node won't register. The trio is the closest ComfyUI has to A1111's one-click grid - End is what finally makes the results look like something you'd actually show someone.

CategoryInfo-Prompt-Toolkit/XYPlot

Inputs (9)

NameTypeDefaultDescription
imageIMAGEGenerated image(s)
xy_plot_infoIPT-XYPlotInfoXY plot labels and grid shape
loop_controlFLOW_CONTROLLoop control value from XY Plot Start (None means list mode)
background_colorSTRINGF8F9FBXY plot background color (RRGGBB)
text_colorSTRING111827XY plot text color (RRGGBB)
border_colorSTRING8A8F99XY plot border and grid color (RRGGBB)
y_label_width_ratioFLOAT0.350.2–0.8Y-label width upper ratio against cell width
x_only_max_columnsINT00–99990 keeps single-row mode. >=1 wraps only when Y modifiers are not used.
accumulated_imagesopt*Internal use only. Leave this unconnected.

Outputs (1)

NameTypeDescription
xy_plot_imageIMAGE