pipeKSampler
The sampler that also upscales, applies a LoRA, and saves
- pipe
- optional_model
- optional_positive
- optional_negative
- optional_latent
- optional_vae
- optional_clip
- input_image_override
- adv_xyPlot
- pipe
- model
- positive
- negative
- latent
- vae
- clip
- images
- seed
- plot_image
pipeKSampler is where a tinyterra workflow actually does the generating. It takes the pipe from pipeLoader, runs the sampler, and gives you back the results plus an updated pipe - and it folds in three extra jobs you'd normally need separate nodes for: an optional LoRA apply, an optional upscale before sampling, and the image preview/save. It's the KSampler that thinks it's a Swiss Army knife, and mostly it's right.
The design goal, borrowed from the Efficiency Nodes lineage: keep the graph small enough to read. Instead of Load Checkpoint β LoRA β Text Encode Γ2 β Empty Latent β KSampler β Preview, you get pipeLoader β pipeKSampler β done. The README even shows the old multi-node layout next to the pipe version to make the point.
How it works
Feed it a PIPE_LINE (from pipeLoader_v2 or the legacy loader). The sampler pulls model, conditioning, latent, VAE, CLIP and seed out of the pipe, but every one of those has an optional_* input to override it - that's how you hook in a ControlNet-applied conditioning or a custom latent without unwrapping the pipe. The seed input on the node overrides the pipe's seed if you provide it.
Three built-ins you'll actually use:
lora_name/lora_strength- one quick LoRA apply right before sampling, without touching the loader.upscale_method- the hires-fix block. Choose from[latent](latent-space upscale: nearest-exact, bilinear, areaβ¦) or[hiresFix](pixel upscale via anupscale_model_name), then setfactor, orrescaleto a percentage / width-height / longer side. In practice: latent upscale for a cheap second pass, hiresFix with a real upscaler model for quality.image_output/save_prefix/file_type/embed_workflow- preview or save right here, with the same prefix-parsing as the standalone imageOutput node.
Sampler controls are the standard steps, cfg, sampler_name (44 samplers), scheduler (including the AYS presets the pack adds), and denoise.
Inputs and outputs
The inputs that matter day-to-day: pipe, steps, cfg, sampler_name, scheduler, denoise, and the upscale trio. Outputs: the updated pipe, plus model, positive, negative, latent, vae, clip, images, seed, and plot_image (the last one exists so an advanced xyPlot can inject a grid image into the flow).
Installing it
Part of tinyterraNodes:
cd ComfyUI/custom_nodes
git clone https://github.com/TinyTerra/ComfyUI_tinyterraNodes.git
or ComfyUI Manager β tinyterraNodes. No extra dependencies.
Gotchas
The [hiresFix] upscale path needs an upscale model in ComfyUI/models/upscale_models - pick None there and the hiresFix options silently can't work, so set upscale_model_name first. And because image_output here saves every run when set to Save, iterate in Preview and flip to Hide/Save when you're done. One more: the optional overrides are a real power feature but also the classic "why is my result ignoring the loader?" culprit - if a wired optional_model or optional_latent is connected, it wins over the pipe.
Inputs (30)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | PIPE_LINE | β | |
| lora_name | COMBO | 1 options: None | |
| lora_strength | FLOAT | 1.00-10β10 | β |
| upscale_method | COMBO | None | 13 options: None, [latent] nearest-exact, [latent] bilinear, [latent] area, [latent] bicubic, [latent] lanczos, +7 |
| upscale_model_name | COMBO | 1 options: None | |
| factor | FLOAT | 2.000β10 | β |
| rescale | COMBO | 4 options: by percentage, to Width/Height, to longer side - maintain aspect, None | |
| percent | INT | 500β1000 | β |
| width | INT | 102464β16384 | β |
| height | INT | 102464β16384 | β |
| longer_side | INT | 102464β16384 | β |
| crop | COMBO | 2 options: disabled, center | |
| steps | INT | 201β10000 | β |
| cfg | FLOAT | 8.000β100 | β |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 13 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +7 | |
| denoise | FLOAT | 1.000β1 | β |
| image_output | COMBO | 5 options: Hide, Preview, Save, Hide/Save, Disabled | |
| save_prefix | STRING | ComfyUI | β |
| file_type | COMBO | png | 7 options: png, jpg, jpeg, tiff, tif, webp, +1 |
| embed_workflow | BOOLEAN | true | β |
| seedopt | INT | 00β18446744073709550000 | β |
| optional_modelopt | MODEL | β | |
| optional_positiveopt | CONDITIONING | β | |
| optional_negativeopt | CONDITIONING | β | |
| optional_latentopt | LATENT | β | |
| optional_vaeopt | VAE | β | |
| optional_clipopt | CLIP | β | |
| input_image_overrideopt | IMAGE | β | |
| adv_xyPlotopt | ADV_XYPLOT | β |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE_LINE | β |
| model | MODEL | β |
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |
| latent | LATENT | β |
| vae | VAE | β |
| clip | CLIP | β |
| images | IMAGE | β |
| seed | INT | β |
| plot_image | IMAGE | β |