Nodes/ComfyUI Flux Prompt Saver/πŸˆβ€β¬› Flux Text Sampler
ComfyUI Node

πŸˆβ€β¬› Flux Text Sampler

The sampler sweep node hiding in a save pack

By markuryyΒ·Created 2 years agoΒ·Updated 2 years agoΒ· 16
πŸˆβ€β¬› Flux Text Sampler
  • model
  • conditioning
  • latent_image
  • latent
  • params
β—„seed0β–Ί
β—„samplereulerβ–Ί
β—„schedulersimpleβ–Ί
β—„steps20β–Ί
β—„guidance3.5β–Ί
β—„max_shiftβ–Ί
β—„base_shiftβ–Ί
β—„denoise1.0β–Ί

The interesting node in this pack

If you found this because you typed "Flux Text Sampler" into Google, here's the honest pitch: it's a copy of cubiq's Flux Sampler Parameters node from ComfyUI Essentials - the pre-LoRA version - shipped inside this pack so it works without installing the whole Essentials suite. On its own it's genuinely useful; that it lives in a "prompt saver" pack is just where the author parked it.

One node replaces the usual pile of sampling plumbing: model-sampling patch, random noise, guider, sampler, scheduler, sigmas - all of it. And it hands you a params bundle on the side that the pack's Flux Prompt Saver reads to write proper A1111-style metadata. Sampling and record-keeping in one shot.

Why "Text"

Every tuning knob is a text field. sampler, scheduler, steps, guidance, max_shift, base_shift, and denoise are all STRING inputs. Type euler, dpmpp_2m into sampler and it runs both. That's the whole trick: comma-separated lists become sweeps, no parallel KSamplers to rig up. You can even type * for "every sampler" or prefix with ! to exclude (!euler). This is exactly what people use it for - hunting a good sampler/scheduler combo for a model, same job the original Essentials node was built for.

It also auto-detects the model family. Feed it Schnell and it patches with ModelSamplingAuraFlow, defaults to 4 steps, and guidance barely matters there (Schnell is guidance-distilled, so there's no real CFG to set). Feed it FLUX.1 Dev and it uses ModelSamplingFlux with max_shift 1.15 and base_shift 0.5 defaults, guidance 3.5. That 3.5 is the same default the community argues is a bit hot for Dev, so treat it as a starting point rather than gospel.

The inputs and outputs that matter

  • seed - the one plain INT input, and the thing the README brags about: it accepts a seed straight from a primitive node, no string parsing, no surprises.
  • sampler / scheduler - text, defaults euler / simple.
  • steps - defaults to 20 (or 4 on Schnell).
  • max_shift / base_shift - leave blank and it uses the sensible Flux defaults; you almost never touch these.
  • conditioning - understands the "encoded" conditioning dict format, which is why the README can claim ImpactWildcardEncode and similar prompt nodes just work, and it captures the prompt text into the params.

Outputs: latent (LATENT) goes to VAE Decode β†’ image β†’ the saver. params (SAMPLER_PARAMS) goes straight into the Flux Prompt Saver's params input.

The trap: the cross product

Every field you multi-fill multiplies the run. Two samplers Γ— three schedulers Γ— two guidance values is twelve full renders in one go - and every result gets batched into a single latent, so VRAM climbs with the sweep. Start small, watch the progress bar, and don't blame the node when a four-field sweep eats your GPU.

Also, pre-LoRA means there's no LoRA input on the node itself. If your Flux workflow hinges on LoRAs, load them upstream with a regular LoRA loader - or just use the current Essentials node, which gained that input later. This copy is a convenience, not an upgrade.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/markuryy/ComfyUI-Flux-Prompt-Saver

then restart ComfyUI. Or in ComfyUI Manager, search "ComfyUI Flux Prompt Saver" and click install. No pip dependencies, no model downloads - it's pure Python against ComfyUI's own modules, so this is about as clean a custom-node install as exists. The only missing-node errors you can hit come from the pack's example workflow, which needs Impact Pack, ComfyUI-Custom-Scripts, and Comfyroll - not from the node itself.

Categorysampling

Inputs (11)

NameTypeDefaultDescription
modelMODELβ€”
conditioningCONDITIONINGβ€”
latent_imageLATENTβ€”
seedINT00–18446744073709550000β€”
samplerSTRINGeulerβ€”
schedulerSTRINGsimpleβ€”
stepsSTRING20β€”
guidanceSTRING3.5β€”
max_shiftSTRINGβ€”
base_shiftSTRINGβ€”
denoiseSTRING1.0β€”

Outputs (2)

NameTypeDescription
latentLATENTβ€”
paramsSAMPLER_PARAMSβ€”