Extensions/SP-Nodes
ComfyUI Extension

SP-Nodes

Node Pack: PromptChecker for token toggling, KoboldCPP API, ModelMerging, Telegram-Bot-API, and more

By bananasss00·Created 2 years ago·Updated 6 days ago· 20
bananasss00/ComfyUI-SP-Nodes
Nodes97
On cloudLocal install
CategorySP-Nodes, SP-Nodes/model_merging
Stars20
Updated6 days ago

Nodes (97)

Bool Switch Out Str

Turn a checkbox into text

SP-Nodes
CivitaiPrompts

Pull real prompts straight out of CivitAI's gallery

SP-Nodes
ComfyuiRuntimeArgs

Tune ComfyUI's launch flags without touching the .bat file

SP-Nodes
FaceScatter

Composite a face across a canvas

SP-Nodes
FaceScatter2

FaceScatter with randomization actually exposed

SP-Nodes
FluxInspireLbw_Batch

Sweep LoRA block weights across Flux's transformer

SP-Nodes
FluxInspireLbw_BlockVectorPreset

One fixed block-weight vector for a Flux LoRA

SP-Nodes
GodnessMerger_Apply

Merge two checkpoints block by block, with controlled randomness

SP-Nodes/model_merging
GodnessMerger_InputBlocks

Set, or randomize, one block group's merge ratio

SP-Nodes/model_merging
GodnessMerger_InputBlocksExperimental

The input-blocks config, now model-aware

SP-Nodes/model_merging
GodnessMerger_LabelEmb

Dialing in the merge ratio for SDXL's conditioning block

SP-Nodes/model_merging
GodnessMerger_MiddleBlock

Merging the U-Net's bottleneck on purpose

SP-Nodes/model_merging
GodnessMerger_MiddleBlockExperimental

The model-aware version of the middle-block merger

SP-Nodes/model_merging
GodnessMerger_NoiseInjection

Sprinkling noise into a checkpoint's weights

SP-Nodes/model_merging
GodnessMerger_Out

Merging the one layer that actually produces the image

SP-Nodes/model_merging
GodnessMerger_OutputBlocks

Merging the decoder half of the U-Net

SP-Nodes/model_merging
GodnessMerger_OutputBlocksExperimental

Output-block merging with the model in hand

SP-Nodes/model_merging
GodnessMerger_RAW_Apply

Replaying a saved merge recipe exactly

SP-Nodes/model_merging
GodnessMerger_TimeEmbed

Merging the block that tells the model 'how far along' it is

SP-Nodes/model_merging
Image Monitor

Load whatever image is sitting at a path, on demand

SP-Nodes
Image Load With Meta

Pull the seed (or anything else) back out of a PNG

SP-Nodes
Lora Loader By Path

Load a LoRA (model + CLIP) from any path on disk

SP-Nodes
LoraLoaderFromFolder

Point LoRA loading at a folder outside ComfyUI's own

SP-Nodes
Lora Loader Only Model By Path

Load a LoRA straight from disk, no models/loras folder needed

SP-Nodes
PreviewImageWEBP

Faster, smaller previews when you're iterating fast

image
PromptChecker

Click-and-drag prompt editing, wildcards included

SP-Nodes
Random_Model_Merge

One node, two checkpoints, a controlled-randomization merge

SP-Nodes/model_merging
Random Prompt From Book

Turn any text file into a prompt slot machine

SP-Nodes
ScatterParams

The recipe for scattering copies across a canvas

SP-Nodes
ScatterParamsBatch

Combining several scatter recipes into one

SP-Nodes
SD3BlocksMultiply

A volume knob per transformer block in SD3

_for_testing/attention_experiments
SD3Multiply

Turning individual weight groups up or down inside SD3's MMDiT

_for_testing/attention_experiments
Send Image To Telegram Bot

Get pinged on Telegram the second your render finishes

SP-Nodes
SP Any Pipe [10 Ports]

Bundle ten arbitrary wires into one

SP-Nodes/Pipes
SP Any Pipe [15 Ports]

The bigger bundle-everything pipe

SP-Nodes/Pipes
SP Any Pipe [20 Ports]

The pipe size you'll actually reach for

SP-Nodes/Pipes
SP Any Pipe [30 Ports]

For when 20 wasn't enough

SP-Nodes/Pipes
SP Any Pipe [40 Ports]

For control-panel-sized workflows

SP-Nodes/Pipes
SP Any Pipe [5 Ports]

Bundle five wires into one so your graph stops looking like spaghetti

SP-Nodes/Pipes
SP Any Pipe [50 Ports]

The biggest pipe in the pack, for when everything needs to travel together

SP-Nodes/Pipes
SP_CacheAutoLoader

Memoize an expensive node across queue runs, to memory and disk

SP-Nodes/cache
SP_CacheCheck

A boolean gate for whether a key is already cached

SP-Nodes/cache
SP_CacheGet

Read a cached value without any risk of triggering a recompute

SP-Nodes/cache
SP_CacheManager

View or clear the SP-Nodes cache without restarting ComfyUI

SP-Nodes/cache
SP_CachePersistence

Save or restore the entire SP-Nodes cache as one joblib file

SP-Nodes/cache
SP_CacheStore

Forcibly write a value into the SP-Nodes cache, every run

SP-Nodes/cache
SP_CacheValue

Cache a value once, reuse it until you say otherwise

SP-Nodes/cache
SP Custom Checkpoint Save

Save a checkpoint without being forced to bundle CLIP and VAE

SP-Nodes
SP_CompositeCacheKey

Build a cache key that actually changes when your inputs do

SP-Nodes/cache
SP_DDInpaint_Pipe

A packaged differential-diffusion inpaint step for the SP_PIPE workflow

SP-Nodes/Group Nodes
SP_DebugLogger

Print whatever's flowing through a wire without breaking it

SP-Nodes
SP_DictValue

Pull one field out of a dict without writing a parser node

SP-Nodes/Group Nodes
SP_DynamicCombo

A dropdown you build yourself, no custom node required

SP-Nodes
SP_FlorenceCaption

Auto-caption a whole dataset with Florence-2

SP-Nodes/Group Nodes
SP_FluxFastMergePatchFP8 [Experimental]

A monkey-patch that speeds up FP8 model merging, and knows it's experimental

SP-Nodes
SP_FluxUnsampler

Unsampling for Flux, packaged as one node

SP-Nodes/Group Nodes
SP_FluxUnsampler_ForwardODESampler

The controlled-forward-ODE settings behind SP-Nodes' unsampling

SP-Nodes/Group Nodes
SP_FluxUnsampler_InverseSampler

Dialing in the noising half of a Flux unsample

SP-Nodes/Group Nodes
SP_HiresGen

Hi-res fix, but as one node with its own upscale/sharpen pipeline

SP-Nodes/HiresGen
SP_HiresGen_Dynamic

The ramp curve behind SP_HiresGen's multi-pass upscale

SP-Nodes/HiresGen
SP_HiresGen_HiresCfg

Which upscale model and how many passes for SP_HiresGen

SP-Nodes/HiresGen
SP_HiresGen_Sharpen

An unsharp-mask pass for when SP_HiresGen comes out soft

SP-Nodes/HiresGen
SP_KoboldCpp

Talk to a local LLM from inside your ComfyUI graph

SP-Nodes
SP_KoboldCpp_BannedTokens

Stop your local LLM from saying specific words

SP-Nodes
SP_KoboldCpp_OverrideCfg

Fine-tune your local LLM's sampling without leaving ComfyUI

SP-Nodes
SP_KoboldCppWithContext

Chat-style calls to a local LLM, with real context

SP-Nodes
SP_KSampler

The pipe-based KSampler that also decodes and previews

SP-Nodes/Group Nodes
SP_KSamplerSelect

One dropdown for sampler and scheduler, wired everywhere at once

SP-Nodes
SP_ListAny

Bundle up to five arbitrary values into one list

SP-Nodes
SP_LoadLatent

Reload a saved latent from an absolute file path

SP-Nodes/latent
SP_Name_Checkpoint

Pick a checkpoint's filename without loading the model

SP-Nodes/ModelName
SP_Name_Clip

Grab a text-encoder filename as a string, without loading it

SP-Nodes/ModelName
SP_Name_ClipVision

The filename behind your IP-Adapter's vision encoder

SP-Nodes/ModelName
SP_Name_ControlNet

Which control model, as a string, not a load

SP-Nodes/ModelName
SP_Name_StyleModel

The filename behind a Redux-style reference model

SP-Nodes/ModelName
SP_Name_Unet

The filename of a standalone diffusion-model weight file

SP-Nodes/ModelName
SP_Name_UpscaleModel

The ESRGAN filename, as text, without loading it

SP-Nodes/ModelName
SP_Name_Vae

Which VAE, as a string — useful more often than it sounds

SP-Nodes/ModelName
SP_Pass

SP-Nodes' internal test node (use with caution)

_test_
SP_Pipe

Bundle model/clip/vae/conditioning into one wire

SP-Nodes/Group Nodes
SP_Pipe_ToBasicPipe

Hand your SP_Pipe bundle to Impact Pack

SP-Nodes/Group Nodes
SP_SaveLatent

Dump a latent to an exact file path

SP-Nodes/latent
SP_SelectItemFromAnyList

Pull the Nth item, and don't crash if you overshoot

SP-Nodes
SP_SendStringWebsocket

Push text out to whatever's listening on your API connection

SP-Nodes/websocket
SP_SetPipeModelType

Tag your SP_Pipe bundle as Flux or Hunyuan Video

SP-Nodes/Group Nodes
SP_Supir

SUPIR restoration-upscale, collapsed into one node

SP-Nodes/Group Nodes
SP_SupirSampler

Unpack a SUPIR sampler config into its raw values

SP-Nodes/Group Nodes
SP_SupirSampler_DPMPP2M

The simple sampler config for SP_Supir

SP-Nodes/Group Nodes
SP_SupirSampler_EDM

SUPIR's sampler settings, boiled down to three dials

SP-Nodes/Group Nodes
SP_SwitchBooleanAny

A boolean-driven if/else for any type

SP-Nodes
SP-UnetSave

Bake an in-graph model edit into a file you can just load next time

SP-Nodes
SP_UnlistValues

One of SP-Nodes' rougher, unlabeled corners

SP-Nodes/Group Nodes/Tmp
SP_WebsocketSendImage

Stream an image straight to your API client, no disk write

SP-Nodes/websocket
SP_XYGrid

Turn two values into a parameter sweep

SP-Nodes
SP_XYValues

Turn a block of text into a typed list

SP-Nodes
StrToCombo

Feed a dropdown-only input from a plain string

SP-Nodes
TextSplitJoinByDelimiter

Slice and reformat a delimited text block

SP-Nodes
Readme

ComfyUI-SP-Nodes

Prompt Checker (@credits: ImpactPack).

Workflow: https://github.com/bananasss00/ComfyUI-SP-Nodes/blob/main/examples/prompt_checker_node.png

How a node finds its way to wildcards:

  1. The node searches for the catalog next to the launched comfyui-bat file's catalog with wildcards.
  2. If the path from point 1 does not exist, the node searches for the wildcards catalog in the node's folder. PS: You can specify the full path yourself in the config.ini

Send Images In To Telegram Bot

KoboldCPP API

Extract Image MetaInfo for Hires

CivitAI Prompts Parser

Text Split Join (@credits: comfyui-mixlab-nodes)

Model Merging

Another nodes