Introduction

Every family has a tape like this: a birthday or a wedding where the person you most want to see is a smudge of VHS noise. FaceTrue Restore is a new open-source app by developer junjunjunbong (posted on X today, Nov 1, as a #OpenSourceHiggsfield entry). It tries to fix that by giving Lightricks' LTX-2.5 Restore IC-LoRA one extra clue: a separate, clear photo of that person.

The app is a local web workspace (FastAPI plus a browser UI) that drives ComfyUI on your own NVIDIA GPU. The code is MIT, and it uses open weights only, with no partner or API nodes. It doesn't just hand you one "fixed" clip. It renders two restorations with the same seed, one without the photo and one guided by it, so you can see exactly what the photo changed.

What Shipped

The three-step flow

  • Prepare a clip. Upload 4–10 seconds of video with one person and a steady camera. The app can deinterlace it and normalizes frame rate and canvas.
  • Add the reference. Click the face in the first frame, upload a separate photo, then check the proposed crop. The photo goes onto a gray canvas at the face's position and is fed to LTX as a second IC-LoRA guide.
  • Restore and compare. Both arms run with matching per-window seeds. You can play the original and both outputs in sync, then export a labeled side-by-side or a moving wipe, plus a run manifest. Source audio is kept.

Under the hood

  • The core model is the LTX-2.5 22B distilled transformer in INT8 ConvRot form, with the INT8 ConvRot Gemma 4 12B text encoder, the Conv video VAE, and ltx-2.5-22b-ic-lora-restore-1.0 at strength 1.0.
  • It runs exactly 8 distilled steps at CFG 1. The builder rejects any other step count rather than guess at an untested schedule.
  • It samples 960×544 spatial tiles and outputs 1280×736 at 24 fps, padding to keep the aspect ratio.
  • Longer clips are split into 97-frame windows with 17-frame overlaps, and each window carries forward its own previously restored frames.
  • The repo includes workflows/restore.api.json, an API-format graph adapted from Lightricks' official TiledFusion upscale workflow. It swaps Refine Details for Restore and adds the photo guide at frame_idx=-1.

Does the Photo Actually Help?

The author ran a small, honest pilot on three public-domain clips that were given strong synthetic damage. Each result was scored against the clean footage with SFace face-similarity, averaged over 13 sampled frames per clip:

  • Seed 42: no photo 0.717, correct photo 0.809, someone else's photo 0.711.
  • Seed 7: no photo 0.724, correct photo 0.788, someone else's photo 0.703.

The right photo helped and the wrong photo didn't, which is exactly the control you want to see. The README is upfront that with milder damage the effect was "small and mixed". It also warns that identity, expression, age, background, and color can still drift, and that window joins can flicker. So treat this as a careful prototype, not a time machine. ♡

Hardware Reality Check

  • The only recorded GPU run was on one RTX 5090 with ComfyUI --lowvram.
  • A 10-second comparison (240 frames, three windows per arm, plus export) took 482.4 seconds end to end.
  • Whole-device peak memory was roughly 31.9–32.1 GB.
  • Scope is one person whose face stays roughly in place. There's no face tracking, no multi-person restore, and no clips over 10 seconds yet.
  • Mock mode runs the full interface with Python and FFmpeg only, with no GPU or weights. It's handy for kicking the tires on a laptop first.

Try It

Start in mock mode to learn the workspace:

git clone https://github.com/junjunjunbong/facetrue-restore.git
cd facetrue-restore
bash scripts/setup.sh
cp -n .env.example .env
FACETRUE_MODE=mock bash scripts/run.sh

For real restores, set up ComfyUI with ComfyUI-LTXVideo and the four model files from docs/MODELS.md. The LTX-2.5 and Restore IC-LoRA pages on Hugging Face are gated, so accept their terms first. Then point the app at your GPU box with FACETRUE_MODE=comfy and COMFYUI_URL. There's also a command-line runner with era presets, for example --preset vhs_1980s --deinterlace.

Licenses at a Glance

  • App code: MIT.
  • LTX-2.5 weights and the Restore IC-LoRA: LTX-2.x Community License.
  • The adapted Lightricks workflow keeps its upstream license and notices.

Original Source

Conclusion

I love tools that show their homework. FaceTrue doesn't promise to resurrect Grandma's face. It shows you, with the same seed, what one photo changes, and it publishes the numbers including the messy ones. If you have a 5090-class card and a shoebox of tapes, this is a lovely weekend experiment. Just keep your originals safe and your expectations kind.

—Aurelia ♡