anvil / README.md
NihilDigit's picture
Upload README.md with huggingface_hub
0b513f4 verified
---
license: mit
language:
- en
tags:
- video-frame-interpolation
- mobile-deployment
- npu
- int8-quantization
- codec-motion-vectors
library_name: pytorch
pipeline_tag: image-to-image
---
# ANVIL — Accelerator-Native Video Interpolation
Pretrained weights and ONNX models for the ANVIL video frame interpolation system.
ANVIL achieves 1080p INT8 real-time frame interpolation on mobile NPUs by replacing learned optical flow with codec motion vector prealignment, producing an NPU-friendly inference graph dominated by standard convolutions.
## Models
| Model | Params | Vimeo90K PSNR | Xiph 1080p PSNR | HTP V75 INT8 (avg) |
|-------|-------:|:-------------:|:---------------:|:-------------------:|
| **ANVIL-S** | 855K | 33.45 dB | 29.65 dB | 12.8 ms |
| **ANVIL-M** | 2.66M | 33.66 dB | 29.74 dB | 16.7 ms |
| NAFNet-ceiling | 17.1M | 34.58 dB | 30.30 dB | — |
Capacity sweep models (D-tiny through D-unet-l, 1.8K–289K params) are included under `checkpoints_capacity/`.
## File Structure
```
checkpoints/
D-unet-v3bs-nomv/best.pt # ANVIL-S (10 MB)
D-unet-v3bm-nomv/best.pt # ANVIL-M (31 MB)
D-nafnet-nomv/best.pt # NAFNet ceiling (197 MB)
checkpoints_capacity/
D-tiny-nomv/best.pt # 1.8K params
D-mini-nomv/best.pt # 10.6K params
D-mid-nomv/best.pt # 33K params
D-unet-s-nomv/best.pt # 129K params
D-unet-l-nomv/best.pt # 289K params
onnx/
D_unet_v3bs_nomv_1080p.onnx # ANVIL-S 1080p (BN fused)
D_unet_v3bm_nomv_1080p.onnx # ANVIL-M 1080p (BN fused)
```
## Usage
```bash
git clone https://github.com/NihilDigit/anvil && cd anvil
pixi install
pixi run download-weights # downloads to artifacts/
pixi run reproduce-main-quality
```
## Links
- **Paper repository**: [github.com/NihilDigit/anvil](https://github.com/NihilDigit/anvil)
- **Android demo**: [github.com/NihilDigit/mpv-android-anvil](https://github.com/NihilDigit/mpv-android-anvil)
## License
MIT