SD Type Converter
Turn sampler dropdowns into strings you can actually use
- MODEL_NAME_STR
- SAMPLER_NAME_STR
- SCHEDULER_STR
Here's a problem you've definitely hit if you've built a serious ComfyUI setup: you've picked the perfect sampler and scheduler for a workflow, you've got it baked into a saved prompt or a config file, and then you can't do anything programmatic with it. The sampler and scheduler dropdowns on a KSampler are widgets, not data. SDTypeConverter fixes that in the most direct way possible - it takes your selections and hands them back as plain strings.
It's one of the quiet utility nodes from Eden.art's pack that nobody searches for until they need it, and then they need it badly. The name is honest: it converts the Stable Diffusion types - the checkpoint name, the sampler name, the scheduler name - into STRING outputs you can log, save, compare, or pipe into another node.
What it actually does
The mechanism couldn't be simpler, which is the point. The node has three optional dropdowns, all set to forceInput so they can also be fed from the graph:
- model_name - populated from your
models/checkpointsfolder. - sampler_name - all 44 samplers ComfyUI knows about (euler, euler_ancestral, dpm_2, heunpp2, and friends).
- scheduler - the 9 schedulers (karras, exponential, sgm_uniform, and so on).
Whatever you pick, it emits the name as a string:
- MODEL_NAME_STR → the checkpoint filename, e.g.
sd_xl_base_1.0.safetensors - SAMPLER_NAME_STR → e.g.
euler_ancestral - SCHEDULER_STR → e.g.
karras
That's the whole job. No conversion math, no inference - it's a "reader" node, which is exactly why Eden filed it under "SD Prompt Reader" alongside its sibling SDAnyConverter.
Why you'd bother
Three genuinely useful patterns:
- Persist your settings. Save the strings to a file or a parameter dict so a workflow's exact sampler/scheduler choices survive in text form, not just buried in the JSON.
- Conditional pipelines. Compare the sampler string against a known value (via Eden_Compare) and branch the workflow - run one path if it's
euler_ancestral, another otherwise. - Drive another node. Because the dropdowns are force-input, you can even feed a model/sampler/scheduler from elsewhere in the graph, which makes this node a bridge for people building dynamic sampler selectors.
If you only need the strings once, honestly, just type them. This node earns its place when a workflow is big enough that manual entry is a bug waiting to happen.
Installing
It's part of edenartlab/eden_comfy_pipelines (Eden.art nodesuite), installed once for all 70+ nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/edenartlab/eden_comfy_pipelines.git
cd eden_comfy_pipelines
pip install -r requirements.txt
Restart ComfyUI, or use ComfyUI Manager (search "Eden"). No models to download, no extra dependencies beyond the pack's own requirements - this is one of the lightest nodes in the suite.
Gotchas
Because all three inputs are optional, you can leave any of them unwired and the output is just an empty string - check your wires before you wonder why a downstream node is receiving "". Also note the checkpoint list reads from models/checkpoints at UI-load time: add a new model while ComfyUI is running and you'll need a refresh for it to appear in the dropdown. And if you're thinking "can this feed a KSampler directly?" - no, KSampler expects actual sampler types, not strings; this is for your own logic and bookkeeping, not for bypassing ComfyUI's type system.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_nameopt | COMBO | 0 options: | |
| sampler_nameopt | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduleropt | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL_NAME_STR | STRING | — |
| SAMPLER_NAME_STR | STRING | — |
| SCHEDULER_STR | STRING | — |