Corrector on a 32 GB card: step window, budget, and a swap loader

#5
by sandpies - opened

Corrector on a 32 GB card: step window, budget, and a swap loader

Local ComfyUI bench of s3_corrector.safetensors on Sulphur-3_Ref2VA-hybrid_mid_int8_convrot_keepB0-1-49. Not an official FusionCow result. Clips were 672Γ—384, 124 frames, seed 60, unless noted. Sharpness is Laplacian variance of the frames. Higher is more edge energy, not a quality score. Face similarity was not measured.

What was held

The corrector is a separate 2.0B network, 7.44 GB, fp32. The stock Apply node registers it with the diffusion model for the whole sample, so both are resident together. On a 32 GB card the hybrid plus that file plus both forwards does not fit, and ComfyUI's dynamic offload starts paging.

A second apply node, Apply H3 Corrector (Tunable), can unload H3, run the corrector, and reload H3 before the next step. Same math. Peak VRAM then stayed in the same band as H3 alone: about 30.6–31.9 GB of 32.6 GB, including the corrector-off runs. Each corrected step costs the weight swap, roughly 3 seconds here. A 20-step corrector-off clip was about 50 s. Corrector on every step was about 110–120 s. Early-only was about 70 s.

The stock node was not used for the runs below. Strength 1.0 and budget fraction 0.5 are the node defaults.

20-step window

Sampler still 20 steps. The corrector was off, on for all 20, on for steps 0–8, or on for steps 9–19.

Prompt Off All 20 Early 0–8 Late 9–19
Kitchen, text 425 324 469 302
Fight, text 83 23 42 50
Fast action, text 111 45 85 71
Cowgirl, text 463 408 563 312
Water, text 195 76 111 132

All-steps softened every prompt. Early beat both the baseline and the full pass on the kitchen clip and the cowgirl clip, and it was the least-soft corrector-on run on the fast-action clip. On the fight and water clips, corrector-off stayed sharper than early. Late was worse than early on kitchen, fast action, and cowgirl.

Budget and strength, early window only

Same cowgirl prompt, corrector only on steps 0–8.

Setting Sharpness Same scene as corrector-off
Off 463 yes
Budget 0.25, strength 1.0 446 yes
Budget 0.5, strength 1.0 563 yes
Budget 1.0, strength 1.0 679 no, different room and pose
Budget 0.5, strength 0.5 457 yes, close to off
Budget 0.5, strength 1.5 669 no, different room and pose
Budget 0.5, strength 1.0, per-frame cap 540 yes, a bit under the default

Budget 1.0 and strength 1.5 are past the trained allowance. The high sharpness is the other video, not a sharper version of the same one. Strength 0.5 barely moves the clip. Per-frame cap stays in the scene and scores lower than one budget for the whole clip.

8-step turbo, reference, full versus early

LoRA pika_h3_flex_turbo_8step_hd_ref2va at strength 1, Euler, scheduler simple, 8 steps. Two reference crops from one character sheet. Strength 1.0, budget 0.5, virtual_steps 20 so each real step is described to the corrector as one step of a 20-step schedule (told_gap = real_gap Γ— 8/20). Early on this schedule is steps 0–3. Steps 0–8 would be the entire run.

Scene Full, 8 steps Early, steps 0–3
Desk, seated 87 s, 97 sharp, peak 30,878 MB 42 s, 164 sharp, peak 31,599 MB
Spooning 73 s, 59 sharp, peak 31,315 MB 42 s, 95 sharp, peak 30,920 MB
Standing, one leg lifted 76 s, 49 sharp, peak 30,824 MB 42 s, 89 sharp, peak 30,599 MB

Early was sharper on all three and about half the time. Watched against the full pass, early looked better.

What did not move

Naming anal entry, changing the camera from on-the-back to a low POV to a top-down POV, and starting the clip with the penis already inserted did not make the base model use the anus. The corrector only nudges a trajectory the diffusion model already chose. Reference versus text-to-video did not change that.

velocity_floor, strength_end, and fp32 forward were left at the defaults and not swept. virtual_steps matters for an 8-step schedule. It does nothing useful on a real 20-step schedule.

Operating point used after the bench

  • 20 steps: corrector on steps 0–8 only, strength 1.0, budget 0.5, per-frame cap off, swap on.
  • 8-step turbo: corrector on steps 0–3 only, same strength and budget, virtual_steps 20, swap on.
  • Do not raise budget above 0.5 or strength above 1.0 on this checkpoint.

The tunable node is a local copy. The stock Apply node is unchanged and still loads both networks. Happy to put the swap node up as a PR against the corrector package if that is useful. Clips are local and are not attached here.

β€’
This comment has been hidden

Sign up or log in to comment