ComfyUI Extension: AK Pack
Utility tools: IndexMultiple, IsOneOfGroupsActive, RepeatGroupState group enable/disable like rg but without connection, Pipe, Getter, Setter highly optimized.
Custom Nodes (0)
README
Other My Nodes
Utilities for working with Lists, Regions, Toggling groups, Caching conditions: ComfyUI AK Pack
Folding of promts in to tree with extra features. Extra shortcuts for editing prompts. Reginal prompting text separation: ComfyUI Folded Prompts
RGBYP 5-color mask editor: ComfyUI RGBYP Mask Editor
AK XZ Axis so called XY testing for any type of KSampler: ComfyUI AK XZ Axis
Version changes
V 3.05
Getter & Setter These nodes already exist in several other packs. My goal was to make them faster.
V 3.01
AK Pipe Max speed pipe node. Read the description below.
V 3.00
CLIP Text Encode Cached node. I highly recommend using it together with FPFoldedPrompts and FPTextAreaPlus from ComfyUI Folded Prompts pack!
[!IMPORTANT] Guys, the nodes in this pack are the ones I use in my own workflows. I work with them every day. And yes, I change them often — especially if the nodes are in the testing folder. Quite often, after updates, your connections may break. Please keep this in mind. The main purpose of these nodes is performance optimization. Yes, all of them can be found in other packs, but I make them faster.
ComfyUI-Utils-extra
A compact collection of utility nodes for ComfyUI that I could not find in other node packs, but which I need in my production workflow.
They help automate repetitive tasks, relay group states, manage sampler parameters, and simplify work with lists.
This repository will be gradually expanded with new practical utilities.
Nodes Overview
AK Pipe
AK Pipe is a zero-copy pipeline node that passes a structured pipe object through the graph and updates only explicitly connected inputs. It avoids unnecessary allocations by reusing the original pipe when no values change and creates a new container only on real object replacement.
This design minimizes memory churn and Python overhead, making it significantly faster than traditional pipe merge nodes.
Setter & Getter
These nodes already exist in several other packs. My goal was to make them faster. In my implementation, the nodes do not use JavaScript to store or pass data. All data is passed only through Python and direct connections between nodes. Simply put, they hide links and hide outputs and inputs.
In my setup, JavaScript is responsible only for updating the list of variables and does not affect the Run process in any way. Based on my comparisons, in complex workflows with 20–30 Getter/Setter nodes, my nodes perform much faster.
Index Multiple
Category: utils/list
Extracts a specific range from any List or Batch (images, masks, latents, text � any type) and creates individual outputs for that range.
Optionally replaces missing values with a fallback (if_none).
How it works
- Connect any List/Batch to
input_any. - Set:
starting_index� the first index to outputlength� how many elements to output
- Outputs are generated as
item_0 � item_49.
Only the firstlengthoutputs are meaningful.
Example 1 � simple extraction
Input:
[mask_0, mask_1, mask_2, mask_3, mask_4]
Settings:
starting_index = 3length = 2
Result:
item_0 = mask_3item_1 = mask_4
Example 2 � unknown list length + fallback
If you ask for 5 outputs but receive only 2 items, the rest become None, or if_none if connected.
CLIP Encode Multiple
Category: conditioning
Extracts a specific range from any List or Batch of STINGs and CLIP encodes individual outputs for that range.
Same as Index Multiple but for CLIP encoding. Works faster than regular CLIP Encoders because does only one encoding for all NONE input strings.
Starting from v3+ caches the stings and does not encode them if no changes.
CLIP Text Encode Cached
Category: conditioning
This node can cache the previous CONDITIONING and avoids re-encoding. Unfortunately, ComfyUI is designed in such a way that if you change anything in FPFoldedPrompts or FPTextAreaPlus of ComfyUI Folded Prompts pack, the encode step will always be triggered. However, you often change text inside the <ARn> tags, and this should not cause a re-encode of the main text.
AKSampler Settings
Category: utils/settings
A minimalistic node that stores three key sampler parameters:
SeedDenoiseCfg
It outputs them as a LIST, suitable for passing into:
- AKSettings Out
- any SetNode
- custom controller graphs
AKSettings Out
Category: utils/settings
Expands the LIST received from AKSampler Settings into three independent outputs:
SeedDenoiseCfg
Useful for distributing sampler parameters across multiple samplers or exposing them deeper into the graph.
IsOneOfGroupsActive
Category: utils/logic
Checks the state of all groups whose names contain a specified substring.
If at least one matching group is Active -> output is true.
If all matching groups are Muted/Bypassed -> output is false.
- Matching is substring-based.
Example:"Face"matchesFaceFix,FaceDetail,Faces, etc. - If no matching groups are found -> output =
false.
RepeatGroupState
Category: utils/logic
A connection-free interactive node that synchronizes the state of its own group with the state of other groups matching a given substring.
Logic:
- Finds groups with names containing the target substring.
- Checks whether any of them are Active.
- If all matching groups are disabled -> it disables its own group.
- If any matching group is active -> it enables its own group.
This allows groups to depend on other groups without wires, similar to rgthree repeaters.
<details> <img src="preview_repeater.jpg" width="100%"/> <summary><b>Usage examples</b></summary>Example 1 � enable your group if �MainFix� is active
Filter: MainFix
If any "MainFix*" group is Active -> enable the current group.
PreviewRawText
Category: utils
Just a text preview bridge node because comfyui ruined the original Preview Any.
Installation
From your ComfyUI root directory:
cd ComfyUI/custom_nodes
git clone https://github.com/akawana/ComfyUI-Utils-extra.git