Jurdns Prompt Parameters
Your whole generation recipe in one node, wired for metadata
- positive_prompt
- negative_prompt
- sampler_for_ksampler
- scheduler_for_ksampler
- sampler_for_metadata
- scheduler_for_metadata
- steps
- cfg
- denoise
- seed
Here's the awkward bit of saving ComfyUI metadata: a KSampler wants its sampler as a native enum type, but a metadata save node wants it as a plain string - and if you type them in two places, you get mismatches your PNG will faithfully record forever. Jurdns Prompt Parameters is the node that sits in the middle and makes the two agree. It's a parameter hub: you type your prompts and every sampling setting once, and it fans the same values out to both the sampler and the save node.
It's one of the two nodes in ComfyUI-JurdnsMetadataNodes, designed to feed its sibling Jurdns Metadata Image Save. It's also a clean example of the value-node pattern: one authoritative source, many consumers, no pixels touched.
How it works
There's no computation here - it's a pure passthrough that returns the values you give it. The clever bit is what happens to the sampler and scheduler. ComfyUI's sampler list is an enum type, and KSampler's sampler_name and scheduler inputs accept that type once you convert them to inputs. So the node outputs the sampler twice:
sampler_for_ksampler/scheduler_for_ksampler- in the native KSampler types, so they plug straight into KSampler's sockets.sampler_for_metadata/scheduler_for_metadata- as plain strings, for the metadata save node.
Everything else - steps, cfg, denoise, seed, both prompts - has a single output that serves both sides. Because the dropdown lists are pulled from comfy.samplers.KSampler.SAMPLERS and SCHEDULERS at load time, they always match your ComfyUI version exactly; new samplers show up in the dropdown after an update without you touching the node.
The inputs
Seven, and all boring in the good way:
positive_promptandnegative_prompt- multiline text, defaults to empty.sampler_name- every sampler ComfyUI ships (44 at last count), defaulteuler.scheduler- the nine schedulers, defaultnormal.steps(1–10000, default 20),cfg(0–100, default 8),denoise(0–1, default 1),seed(0 to 2⁶⁴−1, default 0).
Wiring it into a workflow
The prompts here are plain text, not conditioning - a common first trip-up. You still need CLIP Text Encode nodes to turn them into the conditioning KSampler wants. Convert the text widget on each encoder to an input and wire the strings in:
Jurdns Prompt Parameters
├─ positive_prompt ──► CLIP Text Encode (positive) ──► KSampler positive
├─ negative_prompt ──► CLIP Text Encode (negative) ──► KSampler negative
├─ sampler_for_ksampler ──► KSampler sampler_name
├─ scheduler_for_ksampler ──► KSampler scheduler
└─ steps / cfg / denoise / seed ──► KSampler (converted inputs)
Jurdns Prompt Parameters ──► Jurdns Metadata Image Save (every output)
Model, CLIP, VAE, and latents still come from your loader and empty-latent nodes as usual - this node only holds the sampling parameters and the raw prompt text.
Gotchas
- It doesn't randomize your seed.
control_after_generatelives on KSampler, not here. If KSampler's seed widget randomizes internally, the save node never learns what was actually used, and your PNG records the hub's seed instead - a silent metadata lie. If you want random seeds, generate them upstream and feed that into the hub, keeping one source of truth. - It only helps if you route everything through it. Leave the save node's inputs dangling and it errors anyway (they're
forceInput), so commit to the pattern or skip it. - It saves a recipe, not immortality. The
parameterschunk still dies on any re-encode - keep the original PNG if you're sharing.
Install
Shared with the rest of the pack: ComfyUI Manager → Install Custom Nodes → search "ComfyUI-JurdnsMetadataNodes", or clone and restart. No extra dependencies - the only import beyond ComfyUI's own modules is comfy.samplers.
cd ComfyUI/custom_nodes
git clone https://github.com/jurdnf/ComfyUI-JurdnsMetadataNodes
Restart ComfyUI and it appears under "Jurdns" → sampling. It's a small single-author pack, but for the narrow job of keeping your sampler settings and your saved metadata in one place, it's tidy.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_prompt | STRING | — | |
| negative_prompt | STRING | — | |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | normal | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| denoise | FLOAT | 1.000–1 | — |
| seed | INT | 00–18446744073709550000 | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |
| sampler_for_ksampler | euler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2 | — |
| scheduler_for_ksampler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |
| sampler_for_metadata | STRING | — |
| scheduler_for_metadata | STRING | — |
| steps | INT | — |
| cfg | FLOAT | — |
| denoise | FLOAT | — |
| seed | INT | — |