Изображенияjc-builds
LiquidInbetween
кадр между двумя фото прямо на телефоне
2 мин чтения
LiquidInbetween от jc-builds / Haplo LLC — компактный обученный in-betweener для фото, который работает на телефоне через Core ML. Он принимает два изображения 512×512 и момент t, а возвращает кадр между ними; в основе RIFE IFNet примерно с 2.3 млн параметров. Лицензия MIT.
🧩 Ключевые особенности
- ⚡ Работает на устройстве через Core ML, iOS 17+; FP16-веса около 8.6 МБ.
- 🎯 На вход два изображения 512×512 и параметр
t; выход — кадр в выбранный момент за один проход. - 🧩 Архитектура RIFE IFNet с дополнительным входом времени, около 2.3 млн параметров.
- 🌫 Учитывает появление и исчезновение частей сцены через occlusion mask — без смазывания и двойной экспозиции.
- 🛑 Не генеративная видеомодель: двигает то, что есть на двух фото, и не придумывает отсутствующий контент.
⚙ Пример
import torch
from safetensors.torch import load_file
from liquid_model import IFNet
net = IFNet(timestep=True).eval()
net.load_state_dict(load_file("liquid_inbetween.safetensors"))
# first, second: 1 × 3 × H × W, значения 0…1
with torch.no_grad():
frame = net(first, second, t=torch.tensor([[[[0.5]]]]))
Подробнее
На held-out видео PSNR при t=¼, ½, ¾: 36.77 по всему кадру и 22.92 по движущимся пикселям; у cross-fade — 36.97/22.74, у RIFE — 36.50/22.60.PSNR поощряет размытые cross-fade, поэтому авторы советуют смотреть
review.mp4.Core ML-веса FP16, около 8.6 МБ, вход 512×512, нужен iOS 17+; конверсия дала 42.9 dB PSNR относительно PyTorch.
Обучение на парах кадров с разрывом 0.13–0.8 с; это in-betweener, а не генеративная видеомодель.
Комментарии
Без регистрации: достаточно имени.