VELVET VICE MiniMax H3 — Ghost Analyzer
Finding the ghost frames that frame interpolation leaves behind
- images
- ghost_analysis
- ghost_mask
- mask_preview
- average_score
- maximum_score
- analysis_report
If you've ever pushed a video to 48 or 60 fps with frame interpolation, you know the artifact: on fast motion, moving objects leave translucent after-images - "ghosts" - as the interpolator guesses frames between the real ones. It's the classic finishing-stage trade-off: interpolation makes motion smooth, and smoothness buys you ghosting. VelvetViceMiniMaxH3GhostAnalyzer is the node that finds those ghost frames in MiniMax H3 output so a repair stage can fix them.
This is a finishing-path node, and understanding that context is half the story. The typical open-weight video production chain - the KB's own standard pipeline for Wan-style work, and H3 follows the same shape - is: generate, optionally interpolate frames for smooth motion, upscale, add audio. Once you add that interpolation step, you've signed up for artifact inspection. The H3 Ghost Analyzer is the inspection half; its sibling TemporalAntiGhost node is the repair half.
How it works
The node takes the images (IMAGE) batch you've finished rendering and runs a temporal analysis over it. Its mode input tells it what it's looking at: SOURCE 24 FPS (the raw H3 output, which shouldn't have much ghosting) or RIFE INSERTED FRAMES (frames your RIFE-style interpolation inserted, which is where ghosts live). Then a stack of detection controls:
profile- SAFE / BALANCED / STRONG, an aggression ladder for how eagerly it flags ghost regions.sensitivity(default 1.0),motion_search_radius(5),minimum_ghost_area(24) - how much motion it searches, and how big a ghost has to be before it counts.scene_cut_protection(default true) with ascene_cut_threshold(0.24) - so a genuine cut between shots doesn't get misread as a giant ghost region.analysis_long_edge(256) - it analyzes at reduced resolution for speed; ghost detection doesn't need full res.analysis_chunk_size(4) andmemory_mode(AUTO/GPU/CPU) - chunking and where the analysis runs, because full-res frame batches are memory hogs.
Outputs are the tool's real payload: a ghost_analysis bundle that feeds straight into the TemporalAntiGhost repair node, plus ghost_mask (MASK) and mask_preview so you can actually see what it flagged, average_score and maximum_score floats for quantifying the problem, and an analysis_report (STRING) summarizing it.
Inputs and outputs that matter
images(IMAGE) - the rendered frame batch.mode- SOURCE 24 FPS or RIFE INSERTED FRAMES. Getting this wrong mis-calibrates everything.profile- how aggressively to detect.
Outputs: ghost_analysis (→ TemporalAntiGhost), ghost_mask, mask_preview, average_score, maximum_score, analysis_report.
Install and how to use it
Same pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/Velvet-Vice/velvet-vice-minimax-h3
then restart. It's a pure CV/tensor analysis node - no models to download, no heavy dependencies.
Where people get burned: they run it on RIFE-inserted frames but leave the mode at SOURCE, or they crank STRONG on a clip with real scene cuts and watch every cut get flagged as ghosting. Check the mask_preview before trusting the scores - if the mask is lighting up on intentional cuts rather than motion trails, adjust the scene-cut protection, not the sensitivity. And be realistic about scope: this analyzes and flags so the repair stage knows where to act. Analyzer alone doesn't fix anything; it's the first half of a two-node finishing pair.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| mode | COMBO | SOURCE 24 FPS | 2 options: SOURCE 24 FPS, RIFE INSERTED FRAMES |
| profile | COMBO | SAFE | 3 options: SAFE, BALANCED, STRONG |
| frame_rate | FLOAT | 241–240 | — |
| sensitivity | FLOAT | 1.000.25–2 | — |
| analysis_long_edge | INT | 256128–512 | — |
| motion_search_radius | INT | 51–12 | — |
| minimum_ghost_area | INT | 241–512 | — |
| scene_cut_protection | BOOLEAN | true | — |
| scene_cut_threshold | FLOAT | 0.240.05–0.75 | — |
| analysis_chunk_size | INT | 41–16 | — |
| memory_mode | COMBO | AUTO | 3 options: AUTO, GPU, CPU |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| ghost_analysis | VELVET_VICE_GHOST_ANALYSIS | — |
| ghost_mask | MASK | — |
| mask_preview | IMAGE | — |
| average_score | FLOAT | — |
| maximum_score | FLOAT | — |
| analysis_report | STRING | — |