Save Tuner Data
Keep an AutoTuner sweep so you never re-run it
- tuner_data
- file_path
The LoRA AutoTuner sweeps thousands of parameter combinations for a LoRA stack and ranks them by measured quality - that's real compute time you don't want to pay twice. Save Tuner Data takes the AutoTuner's TUNER_DATA output and writes it to disk as a .tuner (or .json) file, so the winning sweep result - and the alternatives behind it - survives past this ComfyUI session.
It fits into a small, useful loop: AutoTuner → tuner_data → Save Tuner Data, then later, Load Tuner Data → Merge Selector (to pick the top-ranked config or try an alternative one) or straight into LoRA Optimizer with settings_source=from_tuner_data. This is worth pairing mentally with the AutoTuner's own memory_mode, which automatically caches sweep results keyed by LoRA content hash - that's the "don't repeat the sweep on the same stack" path. This node is for something more deliberate: a named, exportable snapshot you can hand off, keep as a version, or reload explicitly regardless of memory-cache state.
What you're setting
tuner_data(required) - connect straight from LoRA AutoTuner's output. This is the only required upstream connection.save_folder- dropdown of configured tuner-data paths (fromextra_model_paths.yamland the pack's defaults).filename(defaulttuner_data) - subdirectories are fine (results/character_stack_v2); the.tunerextension is added automatically, and.jsonis accepted too if you'd rather have a human-readable file.overwrite(default on) - with it enabled, re-running the node with the same filename replaces the old file. Turn it off while you're still iterating on a stack and want to keep every sweep instead of clobbering the last one - disabled mode appends_001,_002, and so on automatically.promptanddescription(optional) - free-text notes embedded in the file, shown again when you reload it with Load Tuner Data. Useful for remembering why this particular config was the keeper six months later.
Output: a single file_path string. This is an OUTPUT_NODE, meaning it's a terminal step in the graph - it doesn't need to feed anything further downstream to do its job, though nothing stops you from also wiring the AutoTuner's model/clip outputs onward in the same run.
Installing it
Standard for this pack. ComfyUI Manager: search "LoRA Optimizer," install, restart. Manual:
cd ComfyUI/custom_nodes/
git clone https://github.com/ethanfel/ComfyUI-LoRA-Optimizer.git
Restart ComfyUI afterward. Nothing extra to download for this node specifically - it's writing a small metadata/config file, not weights.
Common issues & troubleshooting
You expected this to also save the merged LoRA itself. It doesn't - TUNER_DATA is the AutoTuner's ranked configuration data, not the merged model weights. If you want the actual merged LoRA as a portable file, that's Save Merged LoRA, fed from a lora_data output instead.
A later save quietly overwrote an earlier sweep you wanted to keep. That's overwrite=true doing what it's set to do. Flip it off before running further sweeps on stacks you're still comparing, so each result gets its own numbered file instead of replacing the last.
Reloaded tuner data doesn't seem to match what you remember tuning. Check the prompt/description metadata you saved at the time - if you left them blank, there's no record beyond the filename of which stack or intent a given .tuner file corresponds to. Worth naming files descriptively rather than relying on memory here.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| tuner_data | TUNER_DATA | Connect the tuner_data output from LoRA AutoTuner. | |
| save_folder | COMBO | Which tuner_data folder to save into. Lists all configured paths (from extra_model_paths.yaml and defaults). | |
| filename | STRING | tuner_data | Filename. Subdirectories allowed (e.g. 'results/experiment1'). Extension .tuner is added automatically (.json also accepted). |
| overwrite | BOOLEAN | true | When enabled, overwrites existing files. When disabled, appends _001, _002, etc. to avoid overwriting. |
| promptopt | STRING | Example prompt or trigger words to embed in the tuner file. Shown when loading. | |
| descriptionopt | STRING | Optional description or notes about this tuner run. Stored in the file. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |