mihawk-99 / PS5_MihawkGen
git clone https://github.com/mihawk-99/PS5_MihawkGen.git
v1.0.0 · 8d ago
Neural frame generation for PS5 homebrew: beats FSR 3.1 on unseen game frames, in about 2 ms on the console.
+0
stars, 24h · #35,786
+31
stars, 7 days · #3,728
+31
stars, 30 days · #14,249
32
★ total · +31% this week
8
forks · 0 open issues
Star history (as recorded here)
LanguageC++
License—
Created2026-10-14 (8d ago)
Last push8d ago
Watchers0
OwnerUser
Links
README excerpt
# PS5 MihawkGen **Neural frame generation for the PS5, in 432,308 parameters.** Two colour frames in, the picture between them out. Compute shaders on the PS5's own GPU, no engine data, no motion vectors, no async compute. MihawkGen turns a 30 or 60 fps picture into 120 fps on a base PS5: one generated picture between two real frames at 60 fps, three at 30 fps. It works on the *pictures* a title shows, so it needs nothing from the title: no engine data, no motion vectors. When a title does hand over depth and motion vectors, a second method (`mvsplat`) uses them. ## Why it is small | Model | Parameters | Compute for one 288×512 pair | Runs on a PS5? | | --- | ---: | ---: | --- | | **MihawkGen network** | **0.43 M** | **4.4 GFLOPs** | **yes: about 2.2 ms at 3840×2160** | | AMT-S | 3.0 M | 32 GFLOPs | not tested | | IFRNet | 5.0 M | 57 GFLOPs | not tested | | IFRNet-L | 19.7 M | 226 GFLOPs | no (about 50× the compute) | | GIMM-VFI-R | 19.8 M | RAFT, 20 iterations | no | The network estimates a flow and a mask at four scales, warps both real frames with it, and mixes them. It cannot paint a pixel that is not in one of the two frames; a last shader pass keeps still regions exact. ## Benchmarks The honest kind: the same triplets (frame, the real picture between, next frame) for every method, never-trained clips only, a hash audit of the benchmark against the training clips, and one scorer for all. PSNR in dB (higher is better), SSIM, LPIPS (lower is better); the average over clip sets. **33 never-trained 2D clip sets**, the picture at t = ½: | Method | PSNR | SSIM | LPIPS | | --- | ---: | ---: | ---: | | GIMM-VFI-R (20 M, research) | 30.44 | 0.9418 | 0.0420 | | SGM-VFI (21 M, research) | 30.20 | 0.9372 | 0.0454 | | **MihawkGen (0.43 M)** | **30.08** | **0.9391** | **0.0428** | | BiM-VFI (6.9 M, research) | 30.08 | 0.9410 | 0.0426 | | plain average of the two frames | 29.29 | 0.9223 | 0.0481 | | FSR 3.1 frame interpolation (no engine data) | 28.82 | 0.9206 | 0.0506 | **8 never-trained 3D clip sets:** | Method | PSNR | SSIM | LPIPS | | --- | ---: | ---: | ---: | | GIMM-VFI-R | 37.00 | 0.9328 | 0.0675 | | SGM-VFI | 36.38 | 0.9257 | 0.0621 | | **MihawkGen** | **35.84** | **0.9178** | **0.0578** | | BiM-VFI | 35.64 | 0.9295 | 0.0551 | | plain average | 33.66 | 0.8857 | 0.0716 | | FSR 3.1 | 31.53 | 0.8840 | 0.0742 | Three generated pictures between two real ones (t = ¼, ½, ¾) keep the same order: on the 3D set MihawkGen leads the plain average by 1 to 1.6 dB at every instant. **Reading the tables.** MihawkGen beats FSR 3.1 and the plain average on every metric on both sets, and is within 0.4 dB of a 20-million-parameter research model on 2D clips. The research models are far ahead on 3D (up to 1.2 dB) and cost 7× to 50× the compute. They are measured, not shipped. ### Every situation `train/situations.py` renders 70 controlled scenes with an exact truth (scrolls, pans, zoom, rotation, parallax, sprites, explosions, particles, fades, HUD over motion, tickers