DaSiWa Metadata Config
The settings hub behind DaSiWa's metadata savers
- node_positive
- node_negative
- node_model
- node_latent
- node_noise
- node_sigmas
- node_sampler
- extra_metadata
- config
If you've looked at DaSiWa_MetadataImageSaver's optional metadata_config port and wondered what's supposed to feed it, this is the node. It's the settings hub for DaSiWa's metadata system: collect your real sampler/model/conditioning connections (or type override values) once here, and every saver downstream that accepts a metadata_config input can just plug into this single output instead of repeating the wiring.
Why it exists as a separate node
The pack actually gives you two ways to get full manual control over saved metadata: wire everything directly into DaSiWa_MetadataImageSaverFull, or build the config once here and feed the plain DaSiWa_MetadataImageSaver. The second approach wins the moment you have more than one saver in a graph - save a full-res PNG and a compressed WebP for social sharing, say - because you build the settings bundle once and both savers read from the same source instead of you duplicating a dozen connections across two nodes.
How it works
Same two input styles as the Full saver's manual ports, just living here instead: wire the real nodes - node_positive / node_negative (CONDITIONING), node_model (MODEL), node_latent (LATENT), node_noise (NOISE), node_sigmas (SIGMAS), node_sampler (SAMPLER) - and the config auto-detects real values off them. Or type overrides directly: text_positive / text_negative, text_steps, text_cfg, text_sampler, text_scheduler, text_seed, text_model. Mix and match as needed - connect what you have, type what you don't.
save_workflow (default true) is the privacy control that lives here rather than on the saver itself: on, the full workflow JSON gets embedded for drag-and-drop reconstruction; off, the image carries generation parameters but not your entire graph. Turn it off before sharing anything you'd rather keep the underlying node setup private for. model_hash lets you stamp the checkpoint hash Civitai matches against - useful if the auto-detected hash doesn't line up with what Civitai has on file for a model you downloaded from elsewhere.
The inputs and outputs that matter
Two required fields (save_workflow, model_hash), a long list of optional node/text ports covering everything a generation's metadata needs, plus an optional extra_metadata port that accepts a bundle from DaSiWa_CreateExtraMetadata if you're adding custom fields on top of the standard set. Single output: config (type METADATA_CONFIG) - wire it into any DaSiWa saver's metadata_config input.
How to install it
ComfyUI Manager - search DaSiWa-Nodes, install, restart. Manual: clone ComfyUI-DaSiWa-Nodes into custom_nodes, pip install -r requirements.txt, restart. Pure metadata plumbing - no models, no GPU dependency.
Common issues & troubleshooting
Config output doesn't seem to change anything. Confirm you actually wired config into a saver's metadata_config port - building this node without connecting its output anywhere is a common first-try mistake, since it's easy to assume the config applies globally once it exists in the graph.
Text overrides get ignored in favor of connected nodes. If both a node_* connection and its corresponding text_* override are set, the real connection is what actually ran your generation, so treat the connected value as authoritative and the text field as a fallback for when nothing's wired - don't expect the text override to win over live data.
Two savers show different metadata even though both use this config. Check whether one of them also has its own local overrides set (the Full saver accepts metadata_config and its own individual ports simultaneously) - a saver's own fields can take precedence over what the shared config provides, so a stray value left on the saver itself is the usual culprit.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| save_workflow | BOOLEAN | true | — |
| model_hash | STRING | — | |
| node_positiveopt | CONDITIONING | — | |
| node_negativeopt | CONDITIONING | — | |
| node_modelopt | MODEL | — | |
| node_latentopt | LATENT | — | |
| node_noiseopt | NOISE | — | |
| node_sigmasopt | SIGMAS | — | |
| node_sampleropt | SAMPLER | — | |
| extra_metadataopt | EXTRA_METADATA | — | |
| text_positiveopt | STRING | — | |
| text_negativeopt | STRING | — | |
| text_stepsopt | INT | 00–10000 | — |
| text_cfgopt | FLOAT | 0.00–100 | — |
| text_sampleropt | COMBO | 13 options: , euler, euler_ancestral, heun, dpm_2, dpm_2_ancestral, +7 | |
| text_scheduleropt | COMBO | 6 options: , normal, karras, exponential, simple, ddim_uniform | |
| text_seedopt | INT | 00–18446744073709550000 | — |
| text_modelopt | STRING | — | |
| save_outputopt | BOOLEAN | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| config | METADATA_CONFIG | — |