ComfyUI Node
Dual Model Calibration Data Collector
Calibrate two models used together via dual-model CFG. Outputs two .pt files (one per model) for external quantization.
Dual Model Calibration Data Collector
- model
- model_negative
- positive
- negative
- calibration_path_positive
- calibration_path_negative
◄cfg4.0►
◄num_steps4►
◄num_samples16►
◄seed0►
◄hessian_block_size128►
◄hessian_formatdlr_nystrom►
◄dlr_rank128►
◄collect_amaxtrue►
◄output_path_positive/tmp/ComfyUI/output/calibration_positive.pt►
◄output_path_negative/tmp/ComfyUI/output/calibration_negative.pt►
◄latent_height64►
◄latent_width64►
◄convrotfalse►
◄rot_size256►
◄rpbhfalse►
◄rpbh_seed42►
◄rpbh_block_size256►
◄permuquantfalse►
◄pisofalse►
◄sigma_min0.00►
◄sigma_max1.00►
◄force_cpu_hookfalse►
◄timestep_channel_amaxfalse►
◄timestep_buckets4►
Categorymodel/quantization
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Positive (conditional) model. | |
| model_negative | MODEL | Negative (unconditional) model. For Ideogram 4 this is the image-only expert. | |
| positive | CONDITIONING | Positive conditioning — runs through `model`. | |
| negative | CONDITIONING | Negative conditioning for the uncond model. Leave disconnected for image-only pass (default for Ideogram 4). | |
| cfg | FLOAT | 4.01.01–100 | CFG value to apply between the two models. Must be > 1.0 to calibrate both models. |
| num_steps | INT | 41–50 | — |
| num_samples | INT | 161–4096 | — |
| seed | INT | 00–4294967295 | — |
| hessian_block_size | INT | 1280–1024 | 0 = full Hessian, 128 = diagonal blocks. Ignored when hessian_format='dlr'. |
| hessian_format | COMBO | dlr_nystrom | Hessian storage format. 'dlr_nystrom' = DLR via randomized Nyström (streaming, exact diagonal, ~100× faster — recommended). 'dlr' = DLR via FrequentDirections. 'block' = diagonal blocks. 'full' = full Hessian. |
| dlr_rank | INT | 1281–4096 | Rank for DLR Hessian (only used when hessian_format is 'dlr' or 'dlr_nystrom'). |
| collect_amax | BOOLEAN | true | — |
| output_path_positive | STRING | /tmp/ComfyUI/output/calibration_positive.pt | Where to save the positive model's calibration .pt file. |
| output_path_negative | STRING | /tmp/ComfyUI/output/calibration_negative.pt | Where to save the negative model's calibration .pt file. |
| latent_heightopt | INT | 648–1024 | — |
| latent_widthopt | INT | 648–1024 | — |
| convrotopt | BOOLEAN | false | — |
| rot_sizeopt | INT | 25616–4096 | — |
| rpbhopt | BOOLEAN | false | Enable RPBH rotation. Mutually exclusive with ConvRot. Best with DLR Hessian format. |
| rpbh_seedopt | INT | 420–2147483647 | Random seed for RPBH. The converter must use the same seed. |
| rpbh_block_sizeopt | INT | 2560–65536 | RPBH Hadamard block size. 0 = auto-detect (default). Set to 256 for uniform block size. Must be a power of 2 if non-zero. |
| permuquantopt | BOOLEAN | false | — |
| pisoopt | BOOLEAN | false | — |
| sigma_minopt | FLOAT | 0.000–1 | Lower bound of the sigma range to sample. Set to 0.875 with Wan 2.2 high-noise expert, or 0.0 for full range (default). |
| sigma_maxopt | FLOAT | 1.000–1 | Upper bound of the sigma range to sample. Set to 0.875 with Wan 2.2 low-noise expert, or 1.0 for full range (default). |
| force_cpu_hookopt | BOOLEAN | false | Force hook-side processing to CPU. Enable if you hit GPU OOM with dual-model calibration. |
| timestep_channel_amaxopt | BOOLEAN | false | Collect per-timestep-bucket per-channel amax for both models. Enables time-varying channel imbalance analysis (ViDiT-Q Section 4.2). |
| timestep_bucketsopt | INT | 41–64 | Number of timestep buckets for per-timestep channel amax. 4 = paper default. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| calibration_path_positive | STRING | — |
| calibration_path_negative | STRING | — |