评估数据集配置
The evaluation dataset panel — check your LoRA against held-out data while you train
- input_path
- frame_buckets
- ar_buckets
- eval_dataset_config
If you've trained LoRAs before, you know the drill: you save the last epoch, it's worse than epoch 40, and you have no curve to prove it. Eval support landed in this pack in late 2025 (20251026: support eval in the README changelog), and EvalDatasetConfig is the panel that gives you that curve - a separate, held-out dataset the trainer periodically scores against while your real training runs.
What it does
Structurally it's the twin of GeneralDatasetConfig - nearly the same inputs, same feel - but its output is typed EVAL_DATASET_CONFIG and it feeds the optional eval_dataset_config input on GeneralConfig, not the training dataset slot. The inputs:
input_path(required) - where the eval data lives. Plug in any of the path nodes from this pack:GeneralDatasetPathNodefor a plain folder, orEditModelDatasetPathNodeif you're evaluating an image-edit model. The tooltip makes the point: pick the node that matches your training purpose.resolutions(default[512]) - eval resolution, a single number for square or a[width, height]pair like[1280, 720].enable_ar_bucket,min_ar(0.5),max_ar(2.0),num_ar_buckets(7) - the same auto aspect-ratio bucketing knobs as the training dataset. Eval can bucket at different resolutions than training if you want it to, which is a nice way to see how your LoRA generalizes beyond train resolution.num_repeats(default 1) - how many times to repeat the eval set.frame_buckets/ar_buckets(optional) - the video frame-bucket list or a hand-written AR bucket list, exactly like the training-side optional inputs.
How often it actually runs is controlled back on GeneralConfig via eval_every_n_epochs and eval_before_first_step, plus the eval batch size fields there. So this node defines what to evaluate on; GeneralConfig defines when.
Why bother
The KB's LoRA training notes hammer one lesson harder than most: save intermediate epochs, because the last one is usually not the best. A held-out eval set turns that from folklore into a number on a TensorBoard curve - this pack auto-starts TensorBoard with its monitoring nodes - so you can watch the model overfit in real time and stop at the epoch that's actually best instead of guessing.
Installing the pack
Shared install, unchanged: Linux/WSL2 only, submodules required, deepspeed-heavy requirements:
cd ComfyUI/custom_nodes/
git clone --recurse-submodules https://github.com/TianDongL/Diffusion_pipe_in_ComfyUI.git
git submodule update
pip install -r Diffusion_pipe_in_ComfyUI/requirements.txt
Restart and load the example workflow to see the eval wiring in context.
Common issues
The eval set should not be the same images you train on - that just gives you a flattering, useless curve. Keep it separate and representative. And watch the usual path traps: full absolute paths, the pack's WSL2 drive-letter convention (Z:/...), and remembering that an empty eval_every_n_epochs on GeneralConfig means the eval set never runs, no matter how carefully you filled this node in.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| input_path | input_path | 评估数据集输入路径,必选,根据不同训练目的,选择不同节点 | |
| resolutions | STRING | [512] | 评估分辨率,可以是单个数值(正方形)或 [宽度, 高度] 对,例如: [1280, 720] |
| enable_ar_bucket | BOOLEAN | true | 是否启用宽高比分桶设置 |
| min_ar | FLOAT | 0.50.1–5 | 最小宽高比 |
| max_ar | FLOAT | 2.00.1–5 | 最大宽高比 |
| num_ar_buckets | INT | 71–20 | 宽高比分桶数量 |
| num_repeats | INT | 11–100 | 评估数据集重复次数 |
| frame_bucketsopt | frame_buckets | 帧分桶设置,例如: [1, 33] 或 [1, 33, 65, 97],专用与视频模型训练 | |
| ar_bucketsopt | ar_buckets | 宽高比分桶设置,例如:[[512, 512], [448, 576]] |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| eval_dataset_config | EVAL_DATASET_CONFIG | — |