Extensions/ComfyLab Pack
ComfyUI Extension

ComfyLab Pack

Nodes: XY Plot with many options, Output Config (JSON / JSON5 / YAML), Queue, Format String, List utilities, Input nodes, ....

By bugltd·Created 2 years ago·Updated about a year ago· 11
bugltd/ComfyLab-Pack
Nodes35
On cloudLocal install
CategoryComfyLab/utils, ComfyLab/queue
Stars11
Updatedabout a year ago

Nodes (35)

Convert to Any (lab)

The type-escape hatch, one connection at a time

ComfyLab/utils
File Queue (lab)

Loop every file in a folder without hand-typing a single path

ComfyLab/queue
Format: Multiline (lab)

String, for prompts that span lines

ComfyLab/utils
Format: String (lab)

The string-formatting node that replaced three others in my workflows

ComfyLab/utils
Generic Queue (lab)

Loop a list of anything, without touching the queue size

ComfyLab/queue
Image: Downscale to Total Pixels (lab)

Shrink images to a pixel budget without touching the aspect ratio

ComfyLab/utils
Image Queue (lab)

Batch-process a whole folder of images, one at a time

ComfyLab/queue
Input: Boolean (lab)

A single on/off switch, typed and wired

ComfyLab/input
Input: Float (lab)

A typed decimal constant, with a sane step size

ComfyLab/input
Input: Folder (lab)

The folder input that refuses to let you typo a path

ComfyLab/input
Input: Integer (lab)

A typed whole number, for when a widget value needs to travel

ComfyLab/input
Input: Multiline (lab)

A multiline text input that doubles as a mini file loader and comment stripper

ComfyLab/input
Input: String (lab)

The boring string node every workflow needs once

ComfyLab/input
List: Checkpoints (lab)

Turn your checkpoint folder into a list worth queueing

ComfyLab/list
List: from Elements (lab)

Build a list by hand from individual values — no files, no parsing

ComfyLab/list
List: from File (backend) (lab)

Read a text file into a list, straight off the backend machine

ComfyLab/list
List: from Multiline (lab)

One line per prompt, one batch run

ComfyLab/list
List: from String (lab)

Turn a comma-separated string into a list the XY Plot will eat

ComfyLab/list
List: Limit (lab)

Slice a list down to size, first or last

ComfyLab/list
List: LoRAs (lab)

Select a handful of LoRAs and batch-compare them in one run

ComfyLab/list
List: Merge (lab)

Concatenate two ComfyUI lists into one

ComfyLab/list
List: Random Seeds (lab)

A batch of random seeds that stays put while you work

ComfyLab/list
List: Samplers (lab)

The sampler sweep list that ends the 'which one is best?' argument

ComfyLab/list
List: Schedulers (lab)

The scheduler sweep list, for when Karras isn't the answer

ComfyLab/list
Load Image (RGBA) (lab)

Load a PNG and keep the transparency — ComfyUI's Load Image quietly drops it

ComfyLab/utils
Output Config: Retrieve (backend) (lab)

Turn a config file on the server into a rack of live outputs

ComfyLab/config
Output Config: Load (lab)

Load a config file and let it grow outputs for every key

ComfyLab/config
Plot Config: Grid (lab)

Style the XY Plot grid without touching a pixel of the pipeline

ComfyLab/plot
Plot Config: Header/Footer (lab)

Page headers and footers for XY plots that span multiple pages

ComfyLab/plot
Resolution to Dimensions (lab)

Turn '1024x1024' into real width and height numbers

ComfyLab/utils
Save Text File (lab)

Stop Losing Your Prompts and Logs to the Void

ComfyLab/utils
Sleep (lab)

Pausing a ComfyUI workflow on purpose

ComfyLab/utils
XY Plot: Split Data (lab)

Turning a whole XY plot run into numbers you can actually use

ComfyLab/plot
XY Plot: Queue (lab)

The auto-queuing engine behind every ComfyLab grid

ComfyLab/plot
XY Plot: Render (lab)

The node that turns a batch run into a labeled grid

ComfyLab/plot
Readme
<p align="center"> <img src="static/repo_banner.png" title="welcome to ComfyLab Pack!"> <br/> <span>A collection of carefully experimented nodes, to improve your Comfy UX.</span> </p> <h2 align="center"><a href="#️news">News</a> &nbsp; | &nbsp; <a href="#️node-overview">Node overview</a> &nbsp; | &nbsp; <a href="#documentation">Documentation</a> | &nbsp; <a href="#installation">Installation</a></h2>

News

Latest additions:

  • 2025-01-29 - v0.0.5:
    • new List utility nodes: Random Seeds / Checkpoints / LoRAs / Samplers/ Schedulers
    • reorganize / improve wiki

Full changelog in the dedicated file.

Node overview

The complete list of nodes can be found in the wiki / node list

XY Plot - build beautiful and unique grids

Auto-queue, make virtually anything vary (checkpoints, LoRAs, ...), not restricted to KSampler, ...
Many configuration options: pagination, page header / footer, custom fonts (even your own), background,...
Make it RGBA and add a custom background image for a very unique look.

<details> <summary><strong>Detailed features</strong> <i>(click to show)</i></summary>
  • simple to use by default: only 2 nodes
    • optional configuration nodes to customize the grid, or the page header / footer
    • with possible pagination, row / column switch
  • auto-queuing (very simple to use, automatic error / interruption detection)
  • you can virtually make anything vary: CFG, seed, checkpoint / sampler / LoRA / ...
  • not restricted to KSampler: can be adapted to any process generating images
  • many configuration options:
    • custom row/col headers, with string templating
    • font (type / size / color)
      • in row / column headers, and/or page header / footer (each configurable differently)
      • either one of the 4 fonts shipped with the extension, or any other TTF font on your disk
    • background color:
      • make your grid transparent (RGBA) to add a custom background image
    • padding, wrap, ...
  • mix any image resolution / aspect ratio
  • ...
</details>

[!NOTE] For a quick start, it is advised to read the core concepts.
More information in the XY Plot node reference and the dedicated tutorials, from simple to advanced.
You can also check the examples, they will be frequently extended.

Output Config - dynamic outputs from a config file

Use the Output Config nodes to load custom config files, and dynamically create any number of custom outputs, that you can later connect to other nodes before executing the workflow.
Very useful to standardize your workflows, and keep a collection of configurations / test cases separately, share them with others... and many other applications.

<details> <summary><strong>Detailed features</strong> <i>(click to show)</i></summary>
  • any number of outputs, you decide what you need for your speific cases
  • very simple config file, by default, only output: value is needed
  • optionally configure the shape, color, and even the type of each output
  • available in JSON / JSON5 / YAML (with comments if you wish)
  • strictly validated with a JSON Schema, with detailed visual report in case of errors
</details>

[!NOTE] More information in the Output Config node reference and the dedicated tutorials.
You can also check the examples, they will be frequently extended.

Format String - one node to rule them all

Take advantage of the powerful Python string format() method, to build strings using placeholders.
Very useful for many operations: insert / prefix / append, concatenate, pad, truncate, ...
Any number of inputs (credits to @melMass and his comfy_mtb extension for the trick!).
Compatible with integers, floats, booleans.
Exist in 2 flavors: simple string and multiline.

[!NOTE] More information in the Format String node reference and the dedicated tutorials.
You can also check the examples, they will be frequently extended.

Queue - efficient and simple to use

Exist in 3 flavors: Generic, File, Image.
Very simple to use: auto-queuing (with error / interruption detection), no counter to reset or queue size to set.

List utilities - make lists as you want

A set of nodes to create lists (from string, file, individual elements).
Parse and convert strings to integers, floats, ...
Merge / limit lists.

More utilities

Please check the node list.

Documentation

[!TIP] All nodes in this extension has been adjusted with custom tooltips.
By simply moving the mouse pointer over a node or its inputs / widgets / outputs, you can get useful contextual information.

In addition, more detailed information in the wiki:

Installation

Preferred installation method via the ComfyUI Manager: search and install ComfyLab Pack

Manual installation (from the ComfyUI directory):

source venv/bin/activate # adjust to your env
cd custom_nodes
git clone https://github.com/bugltd/ComfyLab-Pack.git
cd ComfyLab-Pack
pip install -r requirements.txt
cd ../..
deactivate
# run ComfyUI as usual