Nodes/ComfyUI-TrainTools-MZ/MinusZone - KohyaSSUseConfig(old version)
ComfyUI Node

MinusZone - KohyaSSUseConfig(old version)

One template JSON, then tweak

By MinusZoneAI·Created 2 years ago·Updated 5 months ago· 67
MinusZone - KohyaSSUseConfig(old version)
  • workspace_config
  • save_advanced_config
  • train_config
workspace_images_dir
train_config_template
ckpt_name
max_train_steps0
max_train_epochs100
save_every_n_epochs10
learning_rate1e-5

MZ_KohyaSSUseConfig is the pack's old version config assembler, and the "(old version)" in its display name is doing a lot of work. In the modern pack flow you'd reach for MZ_KohyaSSLoraTrain, which folds this step in. But this node still exists for a reason: it's the bridge between the dataset step and the train step in the v1 workflow, and it's what a lot of circulating MinusZone workflows still expect.

Its job: take a training template (one of the JSON configs that ship in the pack's configs/kohya_ss_lora/ folder), point it at your checkpoint and workspace, and produce a single train_config object that MZ_KohyaSSTrain consumes. Think of it as "pick a kohya preset, then override the basics."

How it works

The pack ships five templates - lora_sd1_5, lora_sdxl, lora_hunyuan1_1, lora_hunyuan1_2, and controlnet_sd1_5 - each a JSON with the full sd-scripts flag set pre-filled (network_dim 16, network_alpha 8, AdamW, fp16, cache_latents on, and so on). This node loads the chosen template and stamps in the four things that have to be per-run: the checkpoint path (from ckpt_name), the output dir (workspace output/), an output name stamped with date-time, and the dataset config path from the dataset step. The result is the train_config output (type MZ_TT_SS_TrainConfig).

Note the wiring: it needs workspace_config and workspace_images_dir - the string path from the dataset node, not the workspace config. Forgetting that string connection is the classic way this node silently builds a config pointing at nothing.

Inputs that matter

  • train_config_template - your model family. lora_sd1_5 vs lora_sdxl differ meaningfully; picking the wrong one and training an SDXL LoRA is a wasted evening.
  • ckpt_name - the base checkpoint, picked from your ComfyUI models/checkpoints/.
  • max_train_steps / max_train_epochs - kohya stops on whichever hits first. Start with one, usually epochs.
  • save_every_n_epochs - how often a .safetensors lands in the workspace output/. Keep this low; the last epoch is rarely the best.
  • learning_rate - as a string, e.g. "1e-5" (that's the sd-scripts convention, string not float).
  • save_advanced_config (optional) - wire the output of MZ_KohyaSSAdvConfig here to override template defaults with your tuning.

Install & gotchas

cd ComfyUI/custom_nodes
git clone https://github.com/MinusZoneAI/ComfyUI-TrainTools-MZ
# restart ComfyUI

Or Manager → search ComfyUI-TrainTools-MZ.

The honest take: if you're starting fresh, skip this node. It's a legacy path - MZ_KohyaSSLoraTrain merges it with the trainer and accepts the same advanced_config. Reach for UseConfig only when you're reading an old workflow that has the InitWorkspace → Dataset → UseConfig → Train chain, or when you want to inspect the assembled train_config with MZ_TrainToolsDebug before committing to a run. The one thing to remember if you do use it: it builds a config, it doesn't run anything, and the config is only as good as the workspace_images_dir string you wired in.

CategoryMinusZone - TrainTools/kohya_ss/v1

Inputs (9)

NameTypeDefaultDescription
workspace_configMZ_TT_SS_WorkspaceConfig
workspace_images_dirSTRING
train_config_templateCOMBO5 options: lora_hunyuan1_1, lora_hunyuan1_2, lora_sdxl, controlnet_sd1_5, lora_sd1_5
ckpt_nameCOMBO0 options:
max_train_stepsINT00–2147483647
max_train_epochsINT1000–2147483647
save_every_n_epochsINT10
learning_rateSTRING1e-5
save_advanced_configoptMZ_TT_SS_AdvConfig

Outputs (1)

NameTypeDescription
train_configMZ_TT_SS_TrainConfig