Wan 2.2 Run Manifest (Nukun)
Make your Wan runs reproducible enough to actually compare them
- settings
- manifest_json
- filename_prefix
Every Wan 2.2 experiment ends the same way: a folder of MP4s and no idea which settings made which one. Nukun Wan 2.2 Run Manifest is the pack's answer - a single node that records everything that defines a run into JSON and builds you a filename-safe prefix, so "that good one from Tuesday" becomes "wan22_wan2.2_ti2v_5B_fp16_image_to_video_544x960_f81_ps44005_ss55006." It's pure bookkeeping, but it's the bookkeeping that makes tuning tolerable.
How it works
You feed it the settings object from NukunWan22VideoSettings plus the sampling parameters and prompts you actually used, and it composes a manifest JSON (schema nukun.wan22.run.v1) holding the model name, mode, quality, orientation, width/height, frame count, FPS, both seeds, the full sampling block (steps, CFG, sampler, scheduler, shift), and your positive/negative text. The filename prefix is derived deterministically from all of it - model, mode, dimensions, frame count, and both seeds - so identical runs produce identical prefixes and different runs are immediately distinguishable in a file browser.
The inputs that matter
settings- the toolkit's settings object, so dimensions/frames/FPS are always consistent with the actual render.model_name- defaults towan2.2_ti2v_5B_fp16.safetensors; any string is sanitized into the prefix.prompt_seedandsampling_seed- the two seeds. Wan workflows often split these: one for the prompt/caption path, one for the actual sampling. Recording both is the difference between "I'll never know" and "I can reproduce it."steps,cfg,sampler,scheduler,shift- the sampling configuration, captured at run time rather than trusted to memory.positive,negative- your actual prompts, so the JSON is a complete record, not a hint.
Two outputs: manifest_json (pretty-printed, sort-keys JSON - paste it into NukunWan22SegmentStore's run_manifest_json input or stash it in a file) and filename_prefix (wire into a Save Video node or filename composer).
The honest take
For a single throwaway clip this is overkill. It earns its place in the continuation workflow, where the manifest becomes the single source of truth that NukunWan22SegmentStore and NukunWan22SegmentLoader read to keep a multi-segment run coherent, and where NukunWan22ContinuationManifest folds it into a final record. It's also quietly good practice on its own: run your A/B sampler comparisons through it and the report writes itself. There's no model file or heavy dependency here - it's JSON plumbing, which is exactly why it's reliable.
Installing it
Part of Nukun_ComfyUI_Nodes - ComfyUI Manager (search "Nukun") or:
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes
Restart ComfyUI. Only numpy, Pillow, scipy, and PyWavelets are required. One gotcha: this node records what you tell it - it can't see the actual sampler node elsewhere in your graph, so keep the values here in sync with the sampler or the manifest will lie to you later.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| settings | WAN22_VIDEO_SETTINGS | — | |
| model_name | STRING | wan2.2_ti2v_5B_fp16.safetensors | — |
| prompt_seed | INT | 00–18446744073709550000 | — |
| sampling_seed | INT | 00–18446744073709550000 | — |
| steps | INT | 251–10000 | — |
| cfg | FLOAT | 5.00–100 | — |
| sampler | COMBO | dpmpp_2m | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | bong_tangent | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| shift | FLOAT | 8.00–100 | — |
| positive | STRING | — | |
| negative | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| manifest_json | STRING | — |
| filename_prefix | STRING | — |