Nodes/Nukun_ComfyUI_Nodes/Wan 2.2 Run Manifest (Nukun)
ComfyUI Node

Wan 2.2 Run Manifest (Nukun)

Make your Wan runs reproducible enough to actually compare them

By OnekoSL·Created 3 months ago·Updated 11 days ago· 1
Wan 2.2 Run Manifest (Nukun)
  • settings
  • manifest_json
  • filename_prefix
model_namewan2.2_ti2v_5B_fp16.safetensors
prompt_seed0
sampling_seed0
steps25
cfg5.0
samplerdpmpp_2m
schedulerbong_tangent
shift8.0
positive
negative

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 to wan2.2_ti2v_5B_fp16.safetensors; any string is sanitized into the prefix.
  • prompt_seed and sampling_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.

CategoryNukun/Video/Wan 2.2

Inputs (11)

NameTypeDefaultDescription
settingsWAN22_VIDEO_SETTINGS
model_nameSTRINGwan2.2_ti2v_5B_fp16.safetensors
prompt_seedINT00–18446744073709550000
sampling_seedINT00–18446744073709550000
stepsINT251–10000
cfgFLOAT5.00–100
samplerCOMBOdpmpp_2m44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBObong_tangent9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
shiftFLOAT8.00–100
positiveSTRING
negativeSTRING

Outputs (2)

NameTypeDescription
manifest_jsonSTRING
filename_prefixSTRING