A selection of custom nodes for ComfyUI.
Navigate to the ComfyUI/custom_nodes directory with cmd, and run:
git clone https://github.com/TinyTerra/ComfyUI_tinyterraNodes.git
Embedding Auto Complete
Enabled by default
- displays a popup to autocomplete embedding filenames in text widgets - to use, start typing embedding and select an option from the list
- Option to disable ([ttNodes] enable_embed_autocomplete = True | False)
Dynamic Widgets
Enabled by default
- Automatically hides and shows widgets depending on their relevancy
- Option to disable ([ttNodes] enable_dynamic_widgets = True | False)
ttNinterface
Enabled by default
-
Adds 'Node Dimensions (ttN)' to the node right-click context menu
Allows setting specific node Width and Height values as long as they are above the minimum size for the given node. -
Adds support for 'ctrl + arrow key' Node movement
This aligns the node(s) to the set ComfyUI grid spacing size and move the node in the direction of the arrow key by the grid spacing value. Holding shift in addition will move the node by the grid spacing size * 10. -
Adds 'Reload Node (ttN)' to the node right-click context menu
Creates a new instance of the node with the same position, size, color and title (will disconnect any IO wires). It attempts to retain set widget values which is useful for replacing nodes when a node/widget update occurs -
Adds 'Slot Type Color (ttN)' to the Link right-click context menu
Opens a color picker dialog menu to update the color of the selected link type. -
Adds 'Link Style (ttN)' to the Link right-click context menu
Sets the default link line type.
Save image prefix parsing
-
Add date/time info to filenames by using: %date:yyyy-MM-dd-hh-mm-ss%
-
Parse any upstream setting into filenames by using %[widget_name]% (for the current node)
or %[input_name]>[input_name]>[widget_name]% (for inputting nodes)
Node Versioning
- All tinyterraNodes now have a version property so that if any future changes are made to widgets that would break workflows the nodes will be highlighted on load
- Will only work with workflows created/saved after the v1.0.0 release
AutoUpdate
Disabled by default
- Option to auto-update the node pack ([ttNodes] auto_update = False | True)
$\Large\color{white}{Nodes}$
ttN/pipe
pipeLoader
(Modified from Efficiency Nodes and ADV_CLIP_emb)
Combination of Efficiency Loader and Advanced CLIP Text Encode with an additional pipe output
- Inputs - model, vae, clip skip, (lora1, modelstrength clipstrength), (Lora2, modelstrength clipstrength), (Lora3, modelstrength clipstrength), (positive prompt, token normalization, weight interpretation), (negative prompt, token normalization, weight interpretation), (latent width, height), batch size, seed
- Outputs - pipe, model, conditioning, conditioning, samples, vae, clip, seed
pipeKSampler
(Modified from Efficiency Nodes and QOLS_Omar92)
Combination of Efficiency Loader and Advanced CLIP Text Encode with an additional pipe output
- Inputs - pipe, (optional pipe overrides), script, (Lora, model strength, clip strength), (upscale method, factor, crop), sampler state, steps, cfg, sampler name, scheduler, denoise, (image output [None, Preview, Save]), Save_Prefix
- Outputs - pipe, model, conditioning, conditioning, samples, vae, clip, image, seed
Old node layout:
With pipeLoader and pipeKSampler:
pipeIN
Encode up to 8 frequently used inputs into a single Pipe line.
- Inputs - model, conditioning, conditioning, samples, vae, clip, image, seed
- Outputs - pipe
pipeOUT
Decode single Pipe line into the 8 original outputs, AND a Pipe throughput.
- Inputs - pipe
- Outputs - model, conditioning, conditioning, samples, vae, clip, image, seed, pipe
pipeEDIT
Update/Overwrite any of the 8 original inputs in a Pipe line with new information.
- Inputs - pipe, model, conditioning, conditioning, samples, vae, clip, image, seed
- Outputs - pipe
pipe > basic_pipe
Convert ttN pipe line to basic pipe (to be compatible with ImpactPack), WITH original pipe throughput
- Inputs - pipe[model, conditioning, conditioning, samples, vae, clip, image, seed]
- Outputs - basic_pipe[model, clip, vae, conditioning, conditioning], pipe
pipe > Detailer Pipe
Convert ttN pipe line to detailer pipe (to be compatible with ImpactPack), WITH original pipe throughput
- Inputs - pipe[model, conditioning, conditioning, samples, vae, clip, image, seed], bbox_detector, sam_model_opt
- Outputs - detailer_pipe[model, vae, conditioning, conditioning, bbox_detector, sam_model_opt], pipe
pipe > xyPlot
pipeKSampler input to generate xy plots using sampler and loader values. (Any values not set by xyPlot will be taken from the corresponding pipeKSampler or pipeLoader)
- Inputs - grid_spacing, latent_id, flip_xy, x_axis, x_values, y_axis, y_values
- Outputs - xyPlot
ttN/image
imageOutput
Preview or Save an image with one node, with image throughput.
- Inputs - image, image output[Hide, Preview, Save, Hide/Save], output path, save prefix, number padding[None, 2-9], overwrite existing[True, False], embed workflow[True, False]
- Outputs - image
imageRemBG
(Using RemBG)
Background Removal node with optional image preview & save.
- Inputs - image, image output[Disabled, Preview, Save], save prefix
- Outputs - image, mask
Example of a photobashing workflow using pipeNodes, imageRemBG, imageOutput and nodes from ADV_CLIP_emb and ImpactPack:
hiresFix
Upscale image by model, optional rescale of result image.
- Inputs - image, vae, upscale_model, rescale_after_model[true, false], rescale[by_percentage, to Width/Height], rescale method[nearest-exact, bilinear, area], factor, width, height, crop, image_output[Hide, Preview, Save], save prefix, output_latent[true, false]
- Outputs - image, latent
ttN/text
text
Basic TextBox Loader.
- Outputs - text (STRING)
textDebug
Text input, to display text inside the node, with optional print to console.
- inputs - text, print_to_console
- Outputs - text (STRING)
textConcat
3 TextBOX inputs with a single concatenated output.
- inputs - text1, text2, text3 (STRING's), delimiter
- Outputs - text (STRING)
7x TXT Loader Concat
7 TextBOX inputs concatenated with spaces into a single output, AND seperate text outputs.
- inputs - text1, text2, text3, text4, text5, text6, text7 (STRING's), delimiter
- Outputs - text1, text2, text3, text4, text5, text6, text7, concat (STRING's)
3x TXT Loader MultiConcat
3 TextBOX inputs with seperate text outputs AND multiple concatenation variations (concatenated with spaces).
- inputs - text1, text2, text3 (STRING's), delimiter
- Outputs - text1, text2, text3, 1 & 2, 1 & 3, 2 & 3, concat (STRING's)
ttN/util
seed
Basic Seed Loader.
- Outputs - seed (INT)
float
float loader and converter
- inputs - float (FLOAT)
- Outputs - float, int, text (FLOAT, INT, STRING)
int
int loader and converter
- inputs - int (INT)
- Outputs - int, float, text (INT, FLOAT, STRING)