LucidNFT_SM_KSampler
The one that actually runs the diffusion
- model
- condition
- latent
Every node before this one has been loading, encoding, and merging. LucidNFT_SM_KSampler is where the restoration actually happens - the denoise pass that turns your anchored condition into a high-resolution image. It looks like a standard KSampler, but it isn't one, and that distinction is the whole point: a stock KSampler doesn't know about the dual condition branch, so it can't run this model at all.
The name is a lie only in that it's a very small lie. This is the pack's dedicated sampler, and its job is to run the LucidFlux denoiser with both the Flux backbone and the dual condition branch on device. Internally it computes the timestep schedule (with the shifted schedule Flux-dev expects - it's skipped only if the model was loaded as schnell), writes your cfg value into the condition as the guidance term, denoises, and unpacks the latent to your target height and width. The LR anchors you built earlier get consumed here, not anywhere else.
Inputs
- model - the output of
LucidNFT_SM_Cond(or straight fromLucidNFT_SM_Modelif you skipped the LoRA merge). This is the pipe dict, so again: not a regularMODEL, don't wire in a checkpoint. - condition - the
CONDITIONINGoutput ofLucidNFT_SM_Encode. - steps - default 20. That's a sensible Flux-dev number. If you merged the turbo LoRA in
LucidNFT_SM_Cond, you can drop to 8. - cfg - default 4.0. Read this as guidance, not SD-style CFG. Flux-dev is guidance-distilled in the sense that its sweet spot is a low single-digit guidance (3.5–4), not the CFG 7 you're used to from SDXL. If you crank cfg here like you would on a 1.5 checkpoint, you'll double-apply the guidance and torch the restoration.
Output and gotchas
The single latent output feeds LucidNFT_SM_Decoder. One subtle thing: the latent dict carries a copy of the LR reference image along with the samples, and the decoder relies on that for its color fix. That means the latent needs to come from this node - you can't just swap in a generic KSampler's latent and expect the wavelet stage downstream to work. Keep the chain intact.
Install is the pack-level one (clone into custom_nodes, pip install -r requirements.txt, restart). Performance-wise this is the heavy node: the dual condition branch plus a Flux dev backbone means this is where your GPU earns its keep, and it's the node where offloading (block_offload in LucidNFT_SM_Model) pays off. If you're tuning for speed, drop steps to 8 with the turbo LoRA rather than fighting the scheduler - this sampler picks its own schedule internally, so the settings that matter are exactly these three: steps, cfg, and whether you merged the turbo LoRA.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| condition | CONDITIONING | — | |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 4.00–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |