|
Download ComfyUI-MiniMaxH3-Context-Loop/ComfyUI-MAINodes/TESTING_ALPHA.md from dzmdd/Fast_deploy: direct link, hf CLI and curl.
- Browser
- Download file 7.83 kB
-
https://huggingface.co/dzmdd/Fast_deploy/resolve/main/ComfyUI-MiniMaxH3-Context-Loop/ComfyUI-MAINodes/TESTING_ALPHA.md
- Command line
-
hf download hf://dzmdd/Fast_deploy/ComfyUI-MiniMaxH3-Context-Loop/ComfyUI-MAINodes/TESTING_ALPHA.md
-
curl -L -o TESTING_ALPHA.md https://huggingface.co/dzmdd/Fast_deploy/resolve/main/ComfyUI-MiniMaxH3-Context-Loop/ComfyUI-MAINodes/TESTING_ALPHA.md
7.83 kB
| # Alpha test checklist (2026-08-09 nodes) | |
| Covers H3 Manual Hold Map, H3 Motion Editor (and its widget), H3 Segment | |
| Crop, H3 Segment Splice, and the manual mask paths on H3 Motion | |
| Composite / H3 V2V Init. The Python compile paths have been exercised via | |
| the API; the interactive widget and the drag-in workflows need human | |
| passes. Findings welcome as issues; symptom/dial pairs belong in | |
| TUNING.md. | |
| Setup: any ComfyUI with the H3 models working (0.30 and 0.31 front ends | |
| both need coverage). Keep the browser dev console open; any red line | |
| during widget use is a finding. All three graphs wire clip length from | |
| one source node; drop to a short legal duration (56 or 73 frames at | |
| 24fps) while iterating. Reminder when reviewing saved clips elsewhere: | |
| H3 audio is 32 kHz and some players decode that as silence; resample to | |
| 48 kHz AAC if you share files. | |
| ## 1. Targeted graph (motion_pipeline_targeted.json) | |
| - [ ] First queue with the shipped range saves baseline / oraclemap / | |
| dilated / final, no errors, final plays clean | |
| - [ ] The Manual Hold Map report (the price tag) is actually visible | |
| somewhere; if you had to wire your own text display, note it | |
| - [ ] Two-pass rhythm: watch oraclemap, retype ranges to the real burst, | |
| requeue; baseline sampler must NOT re-run; dilated length and | |
| report shrink | |
| - [ ] Syntax: multi-range, seconds ("0.5s-1.1s"), per-range ":hold", | |
| mixed; segments output echoes token-snapped (wider) spans | |
| - [ ] Error UX: reversed range and out-of-bounds range produce readable | |
| messages, not a stack wall | |
| - [ ] Gate mode semantics: with the oracle wired, your ranges choose | |
| WHERE and the oracle chooses hold strength (typed :hold values are | |
| ignored); unwire the oracle and your holds apply directly | |
| - [ ] s_per_step set to a measured value gives a plausible minutes | |
| estimate | |
| - [ ] Spatial branch: unmute, paint a background lasso mask, queue; | |
| with invert_mask on, the painted region returns to baseline | |
| timing; the seam (feather 64 smoothstep on a real edge) is | |
| invisible in playback | |
| - [ ] Latent freeze hard-cell ratification: hard 0/1 cells are now the | |
| DEFAULT (mask_feather 0 snaps boundary cells instead of leaving | |
| them fractional). Route the same mask through H3 V2V Init's | |
| freeze path and run same-seed mask_feather 0 vs 32 vs 64. The | |
| bet: hard cells tie or win, because half-frozen blend cells were | |
| the seam mush and the decode smooths a hard edge anyway. If 32/64 | |
| clearly wins in playback, revert the default and say so in | |
| TUNING | |
| ## 2. Editor graph (motion_pipeline_editor.json) | |
| Cold load | |
| - [ ] Node renders with toolbar, timeline, paint hint, price line; the | |
| raw editor_state textarea is hidden; console clean | |
| - [ ] Save and reload the workflow before any queue; node intact | |
| First queue (no blocks) | |
| - [ ] Behaves like the classic adaptive pipeline (oracle passes through, | |
| mask is all ones) | |
| - [ ] Widget populates: filmstrip, green jerk profile, "last run" report | |
| Timeline | |
| - [ ] Scrub on filmstrip/ruler; playhead and frame label track | |
| - [ ] Drag on the block lane creates a block snapped to the token grid; | |
| "+ block" works at the playhead; snap toggle off allows free edges | |
| - [ ] Move and resize via bracket handles (are the 4 px hit zones big | |
| enough?); multiple blocks get distinct colors; labels show | |
| "oracle"/"hN" and a star once painted | |
| - [ ] Delete button and Delete key; drags under 2 frames create nothing | |
| - [ ] Undo button and ctrl+z; ctrl+z inside the editor must NOT undo the | |
| ComfyUI graph, and editor keys must not trigger canvas hotkeys; | |
| clicking outside restores normal hotkeys | |
| Painting | |
| - [ ] Unpainted selected block shows the red tint and the "paint to | |
| narrow it" notice | |
| - [ ] Brush paints with the circle cursor; erase removes; size slider | |
| works at both extremes; "clear frame" wipes only the current frame | |
| - [ ] Playhead outside the selected block: painting no-ops with notice | |
| - [ ] "paint: whole block" strokes persist across the block's frames | |
| - [ ] Onion skin ghosts previous (blue) and next (green) frame strokes; | |
| toggle kills them | |
| - [ ] Mouse wheel over the paint area steps frames without zooming the | |
| graph canvas; arrow keys step too | |
| Dials and automation | |
| - [ ] All per-block dials respond; hold changes move the price line | |
| - [ ] "A" buttons open lanes for hold/feather/strength; click adds | |
| points, drag shapes, double-click deletes; values clamp to range | |
| and block span; the button lights when an envelope exists | |
| - [ ] Known cosmetic: pre-queue price estimates oracle blocks at hold 4, | |
| so it can overshoot the post-run report | |
| Edit and requeue (the core promise) | |
| - [ ] After an edit, only the regeneration side re-runs; if the baseline | |
| sampler re-runs, that is the P1 finding | |
| - [ ] Painted region regenerates, unpainted stays baseline; block edges | |
| ease via the fade dial with no hard pop | |
| - [ ] Trap to confirm and document: adding ANY block gates the oracle, | |
| so bursts outside your blocks are not de-roped | |
| - [ ] invert_mask and outside_blocks=regenerated behave as labeled | |
| Persistence | |
| - [ ] Save + browser refresh mid-edit: blocks/strokes/envelopes survive; | |
| the filmstrip may be blank until the next queue (temp thumbnails); | |
| confirm it degrades to the hint, not broken images | |
| - [ ] After a ComfyUI restart, the first queue repopulates everything | |
| ## 3. Segment graph (motion_pipeline_editor_segment.json) | |
| - [ ] First queue with an empty editor crops to the oracle's window plus | |
| handles; the crop report states the speedup ratio | |
| - [ ] A tight block around the burst improves the ratio and the wall | |
| time vs the plain editor graph | |
| - [ ] Video seam: step frames at both window boundaries; look for tone | |
| or brightness drift across the crossfade; compare feather_frames | |
| 0 vs 6 | |
| - [ ] Audio seam: headphones at both splice points; no clicks; total | |
| duration matches baseline; sync holds after the splice | |
| - [ ] Edge cases: block touching frame 0 or the last frame; two separate | |
| bursts produce ONE window spanning both (current behavior); the | |
| report should make that obvious | |
| ## Triage | |
| - P1: baseline re-runs on edit; state loss on save/reload; crashes; | |
| unreadable errors on common mistakes | |
| - P2: interaction jank, price/report confusion, seams below the playback | |
| bar | |
| - P3: cosmetics (canvas text is not hidpi-scaled yet, known) | |
| ## 5. Oracle alpha knobs (added 2026-08-10) | |
| - [ ] `profile_mode` default (`value |d3|`) must reproduce your previous | |
| results exactly: same clip, same seed, same hold map and same segments | |
| string as before this change. Verified bit-identical offline; confirm | |
| once in the graph. | |
| - [ ] `profile_mode` = `value |d1| (energy baseline)`: the honest cheap | |
| baseline. On real clips it correlates 0.96-0.98 with |d3|, so if it | |
| produces a materially similar hold map, that IS the finding and the | |
| default detector is not earning its name. | |
| - [ ] `profile_mode` = `trajectory centroid |d3|`: expect a different hold | |
| map. Judge in playback whether it targets the burst better or worse. | |
| Do not judge from the profile string alone. | |
| - [ ] `abstain_below` (absolute gate, 0 = off): run it on a clip you KNOW is | |
| calm. Raise until the oracle returns a flat hold map and empty | |
| segments, then check it still dilates a genuinely fast clip at that | |
| setting. Measured contrast ran ~1.9x higher on a lurching toy than a | |
| constant-velocity one, so the useful range is likely 1.5-2.5. If a | |
| single threshold cannot separate your calm and fast clips, say so: | |
| that is evidence the contrast statistic is the wrong absolute unit and | |
| the demand-over-capacity route in ROADMAP.md section 1 is needed | |
| instead. | |