Nodes/Diffusion_pipe_in_ComfyUI/评估数据集配置
ComfyUI Node

评估数据集配置

The evaluation dataset panel — check your LoRA against held-out data while you train

By TianDongL·Created 11 months ago·Updated 7 months ago· 69
评估数据集配置
  • input_path
  • frame_buckets
  • ar_buckets
  • eval_dataset_config
resolutions[512]
enable_ar_buckettrue
min_ar0.5
max_ar2.0
num_ar_buckets7
num_repeats1

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: GeneralDatasetPathNode for a plain folder, or EditModelDatasetPathNode if 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.

CategoryDiffusion-Pipe/dataset

Inputs (9)

NameTypeDefaultDescription
input_pathinput_path评估数据集输入路径,必选,根据不同训练目的,选择不同节点
resolutionsSTRING[512]评估分辨率,可以是单个数值(正方形)或 [宽度, 高度] 对,例如: [1280, 720]
enable_ar_bucketBOOLEANtrue是否启用宽高比分桶设置
min_arFLOAT0.50.1–5最小宽高比
max_arFLOAT2.00.1–5最大宽高比
num_ar_bucketsINT71–20宽高比分桶数量
num_repeatsINT11–100评估数据集重复次数
frame_bucketsoptframe_buckets帧分桶设置,例如: [1, 33] 或 [1, 33, 65, 97],专用与视频模型训练
ar_bucketsoptar_buckets宽高比分桶设置,例如:[[512, 512], [448, 576]]

Outputs (1)

NameTypeDescription
eval_dataset_configEVAL_DATASET_CONFIG