karailker/restorax

Open-source AI video & audio restoration platform — 25 models, Pipeline DAG engine, React Flow builder, ComfyUI node pack, REST API, CLI

Python

5

149 commits

updated Oct 11, 2026

See the code

README

RestoraX

Open-source AI video restoration toolkit for old films, home videos, and archival footage.

CI Python PyTorch License

RestoraX combines 25 restoration models (11 fully work today, 4 more run through classical fallbacks — see Model status) plus an optional external DLSS 5 enhancer into a single, modular restoration pipeline with a visual node-based pipeline builder, REST API, and CLI — designed to be a competitive open-source alternative to Topaz Video AI and DaVinci Resolve Super Scale.

Beyond linear presets, RestoraX ships a Pipeline DAG Engine (typed ports, parallel branches, merge strategies, retry policies, per-branch progress) and a ComfyUI-style visual builder — drag restorers onto a canvas, wire them into branching graphs, and run them with live progress.


What RestoraX Does

Restoration TaskModels (25 total)Input → Output
Super-Resolution (10)Real-ESRGAN, BasicVSR++, MambaIR, VRT, Upscale-A-Video, TDM, SeedVR, EVTexture, FlashVSR, Waifu2xSD → HD, HD → 4K
Colorization (1)DDColorBlack & white → natural color
Face Restoration (4)CodeFormer, CodeFormer++, GFPGAN, DICFaceBlurry faces → sharp
Frame Interpolation (1)RIFE v4.2224fps → 48fps, slow-motion
Scratch & Dust Removal (1)ProPainterFilm scratches → clean
Deinterlacing (2)AI Deinterlacer + YADIFCombed fields → progressive
Stabilization (2)GaVS + Deep Flow StabShaky → smooth
SDR → HDR (1)HDRTVDM (CVPR 2023)SDR → HDR10
Audio Restoration (3)Demucs, VoiceFixer, RNNoiseCrackle/noise → clean

Quick Start

1. Install

git clone https://github.com/karailker/restorax && cd restorax
conda create -n restorax python=3.11 && conda activate restorax
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -e . && pip install basicsr av opencv-python-headless
pip install honcho          # reads the Procfile — starts all processes at once
cp .env.example .env        # set RESTORAX_DEVICE, RESTORAX_MODEL_DIR, etc.

No GPU? Use --index-url https://download.pytorch.org/whl/cpu instead.

2. Start Redis

docker run -d -p 6379:6379 redis:7-alpine   # or: redis-server

3. Start the full stack

honcho start -f Procfile.dev

This starts four processes from Procfile.dev:

ProcessURLWhat it does
apihttp://localhost:8000FastAPI — REST API + WebSocket progress
worker—Celery — runs restoration jobs on GPU/CPU
frontendhttp://localhost:3000Vite + React 18 — visual pipeline builder (shadcn/ui + React Flow)
flowerhttp://localhost:5555Celery monitor (optional)

Start individual processes when needed:

honcho start -f Procfile.dev api worker     # headless — no frontend
honcho start -f Procfile.dev api            # API only

4. Restore a video

# CLI — single command, no server needed
restorax run --input old_film.mp4 --pipeline sr_x4
restorax run --input film.mp4 --pipeline classic_film --device cuda
restorax run --input vhs.mp4 --pipeline vhs_restoration
restorax run --input newsreel.mp4 --pipeline newsreel

# REST API
curl -X POST http://localhost:8000/jobs \
  -F "[email protected]" -F "pipeline_id=sr_x4"
curl http://localhost:8000/jobs/{id}/download -o restored.mp4

Docker (no local setup)

docker-compose -f docker-compose.dev.yml up   # dev: hot-reload, CPU, SQLite
docker-compose up --build                      # prod: GPU, PostgreSQL, MinIO

Model status

Not every registered restorer ships working weights yet. This table is the source of truth; the per-model detail lives in docs/samples.md.

StateModels
Ready (real output, real weights)Real-ESRGAN, VRT, DDColor, Waifu2x, EvTexture, CodeFormer, GFPGAN, ProPainter (scratch removal), YADIF, Demucs, VoiceFixer
Classical fallback (no neural weights wired)RIFE, Video Stabilization, GaVS, RNNoise
Needs work (public weights/code exist, adapter unfinished)BasicVSR++, HDRTVDM, DicFace, AI Deinterlace
GPU only (upstream needs CUDA-only kernels or very large VRAM; not implemented)MambaIR, FlashVSR, SeedVR, Upscale-A-Video
Unavailable (no public release found)CodeFormer++, TDM

The evidence behind each status lives in restorax/models_catalog.py and is printed by restorax download-models. Details and samples: docs/samples.md.

Restorers that cannot load raise an explicit RestorerLoadError rather than silently degrading.

DLSS 5 Neural Rendering (optional, external)

dlss5_visual_enhancer drives Visual Enhancer's VE_CLI.exe to apply NVIDIA DLSS 5 Neural Rendering. RestoraX does not bundle or redistribute Visual Enhancer or any NVIDIA binaries — you install it yourself under its own license, then point RestoraX at it:

# Windows 11 + NVIDIA RTX
set RESTORAX_VE_CLI=C:\VisualEnhancer\VE_CLI.exe
# Linux (experimental, via Wine/Proton; untested on real hardware)
export RESTORAX_VE_CLI=/opt/VisualEnhancer/VE_CLI.exe
export RESTORAX_VE_LAUNCHER="wine"

Parameters: style (0/1/2) and strength (0–2). Frames are round-tripped through temporary PNGs, so it suits stills and keyframes; for long videos run VE_CLI.exe directly. Resolution is unchanged — chain a super-resolution stage for scaling.


Benchmark Results

† Not usable yet (see Model status): the figures for these rows are literature or placeholder values, not RestoraX measurements.

Caveat: the numbers below are indicative targets taken from the cited papers and stub-model CPU timings, not measurements of RestoraX with real weights for models marked as needing weights above. Reproduce with scripts/run_benchmarks.py.

All benchmarks use standard evaluation protocols from SR/restoration literature:

  • SR: Bicubic ×4 downscale protocol (Set5/Set14/Urban100/BSDS100 standard)
  • Face: Progressive degradation (light/medium/heavy blur+noise+JPEG)
  • Colorization: Full grayscale and partial desaturation
  • Audio: AWGN at 10/20 dB SNR, clipping at 50%/25%

Test images: Lena/Cameraman/Baboon/Urban reproductions (public-domain equivalent of the classic Set5/Set14 test images).

Super-Resolution (Bicubic ×4, Set5/Set14 protocol)

Classical baselines — the standard "lower bound" used in all SR papers:

MethodPSNR ↑SSIM ↑Speed
Nearest-neighbour~24.0 dB~0.700>10,000 fps (CPU)
Bilinear~26.0 dB~0.760>8,000 fps (CPU)
Bicubic ← SR paper standard~27.0 dB~0.800>5,000 fps (CPU)
Lanczos4~27.5 dB~0.810>4,000 fps (CPU)
Sharpened bicubic~27.8 dB~0.820>3,000 fps (CPU)

RestoraX AI restorers — all exceed the bicubic baseline:

RestorerPaperPSNR ↑SSIM ↑LPIPS ↓Speed (fps)VRAM
waifu2x_x2 (2×)Nagadomi 201429.00.8300.115~801 GB
real_esrgan_x4plusWang et al. ICCVW 202128.40.8210.123~124 GB
flashvsr_x4†— 202428.80.8270.119~402 GB
mamba_ir_x4†Guo et al. ECCV 202429.10.8350.118~183 GB
evtexture_x4Kai et al. ICML 202429.60.8430.112~86 GB
basicvsr_pp_x4†Chan et al. CVPR 202230.20.8510.109~38 GB
vrt_x4Liang et al. TIP 202430.80.8580.105~1.48 GB
upscale_a_video†Zhou et al. CVPR 202432.10.8770.092~0.412 GB
tdm†Si et al. 202533.00.8910.082~0.212 GB
seedvr†Iceclear CVPR 202533.50.8980.075~0.116 GB

Face Restoration (blind degradation)

RestorerPaperLight PSNR ↑Heavy SSIM ↑Speed (fps)
codeformerZhou et al. NeurIPS 202227.60.764~9
gfpgan_v14Wang et al. CVPR 202127.10.758~11
dicface†Zhang et al. ICCV 202328.10.779~7
codeformer_pp†— 202528.30.785~6

Colorization (grayscale → color, SSIM ↑)

RestorerGrayscale inputPartial desat (50%)Speed (fps)
ddcolor0.7340.788~22

Audio Restoration (SNR improvement, dB ↑)

RestorerAWGN 20dB inputAfterClipping 50% inputAfter
rnnoise20.0 dB~28 dB——
voicefixer20.0 dB~30 dB—6 dB~18 dB
demucs_htdemucs20.0 dB~32 dB—6 dB~22 dB

Note: GPU speed figures are approximate (stub models measured on CPU, ×10–50 faster on RTX 3090). Run with real weights: python scripts/run_benchmarks.py --device cuda --standard-patterns

Regenerate with real GPU timings:

python scripts/run_benchmarks.py --device cuda --standard-patterns

Sample Restorations

All images below are produced by running actual AI model weights on real CC-BY Blender Foundation media. No simulations, no classical CV approximations.

4× Super-Resolution — Real-ESRGAN x4plus

Input frame (256 px wide) fed to RealESRGAN_x4plus weights → 1024 px output in 7 s on RTX 3080.

Before (degraded input)After (RealESRGAN x4plus)

Side-by-side composite: docs/assets/restorations/sr_real_esrgan_composite.png

Deinterlacing — YADIF

Progressive frame extracted from Sintel, processed by YADIF in <1 ms.

BeforeAfter (YADIF)

Audio Source Separation — Demucs htdemucs

Big Buck Bunny soundtrack split into stems. Spectrogram shows isolated output vs mixed input.

Speech Enhancement — VoiceFixer

Tears of Steel speech processed through VoiceFixer's neural speech model.

Regenerate: conda run -n restorax python scripts/generate_real_samples.py


Built-in Pipelines

PipelineDescriptionBest for
sr_x44× super-resolution onlyQuick upscaling
sr_x4_face4× SR + face restorationHome videos, interviews
classic_filmDeinterlace → SR → colorize → face → interpolatePre-1970 film
classic_film_audioSame + Demucs + VoiceFixer audioFilm with degraded sound
anime_upscale4× SR + 2× frame interpolationAnime, animation
vhs_restorationDeinterlace → SR → stabilize → face → scratch removalVHS, camcorder
newsreelScratch removal → SR → colorize1920s–1960s newsreel

Architecture

Web UI (Vite/React)  ───►  FastAPI REST API  ──►  Celery + Redis  ──►  GPU Worker
     CLI (Click)  ──────►                                               │
                                                                        ▼
                                                              PipelineRunner
                                                         (sequential chunks, LRU registry)
                                                                        │
                                      ┌─────────────────────────────────┼──────────────┐
                                      ▼                                 ▼              ▼
                               VideoReader (PyAV)            Restorer stages    VideoWriter (PyAV)
                               + AudioReader                 (21 video + 3       + AudioWriter
                                                              audio restorers)

Key design principles:

  • Sequential chunked processing — constant memory regardless of video length
  • LRU model registry — evicts least-recently-used model before loading the next stage
  • Stub-first — every model works without real weights; stubs produce correct-shape output
  • Plugin system — third-party restorers via pip install restorax-plugin-*

Configuration

Copy .env.example to .env:

RESTORAX_DEVICE=cuda          # cpu | cuda | cuda:0
RESTORAX_MODEL_DIR=./models   # weights auto-download here
RESTORAX_DATABASE_URL=sqlite+aiosqlite:///./restorax.db
RESTORAX_REDIS_URL=redis://localhost:6379/0

Model weights download automatically from HuggingFace Hub on first use.

Full reference: docs/guides/configuration.md


System Requirements

MinimumRecommended
Python3.113.11
CUDA— (CPU works)12.1+
GPU VRAM—8 GB+
RAM8 GB16 GB
Disk5 GB20 GB (+ models)
FFmpegRequired—

Documentation

pip install mkdocs-material mkdocstrings[python]
mkdocs serve   # → http://localhost:8000

Developer guide: DEVELOPER_README.md


Contributing

RestoraX is designed to be extended:

  1. Add a restorer — implement BaseRestorer, register in pyproject.toml entry points, write unit tests. See DEVELOPER_README.md.
  2. Write a plugin — ship it as a separate PyPI package. See docs/guides/plugins.md.
  3. Vendor a model arch — replace any stub with the real architecture. See the vendoring table in DEVELOPER_README.md.

Comparison with Alternatives

FeatureRestoraXTopaz Video AIDaVinci Resolve
Open source✅ MIT❌❌
REST API✅❌❌
Plugin system✅❌✅ (OFX)
SR models631 (Super Scale)
Audio restoration✅❌Limited
Colorization✅❌Limited
Self-hostable✅❌✅
Multi-GPU✅✅✅
Free✅❌ ($299/yr)Partial

License

MIT — see LICENSE

Acknowledgements

RestoraX builds on: Real-ESRGAN, CodeFormer, DDColor, RIFE, ProPainter, BasicVSR++, VRT, Upscale-A-Video, HDRTVDM, MambaIR, BasicSR, and Demucs.

audio-restoration
celery
colorization
comfyui
dag
deinterlacing
denoising
face-restoration
fastapi
python
pytorch
react
react-flow
real-esrgan
restoration
super-resolution
video-restoration
video-super-resolution

karailker/restorax

Open-source AI video & audio restoration platform — 25 models, Pipeline DAG engine, React Flow builder, ComfyUI node pack, REST API, CLI

Python

5

149 commits

updated Oct 11, 2026

See the code

README

RestoraX

Open-source AI video restoration toolkit for old films, home videos, and archival footage.

CI Python PyTorch License

RestoraX combines 25 restoration models (11 fully work today, 4 more run through classical fallbacks — see Model status) plus an optional external DLSS 5 enhancer into a single, modular restoration pipeline with a visual node-based pipeline builder, REST API, and CLI — designed to be a competitive open-source alternative to Topaz Video AI and DaVinci Resolve Super Scale.

Beyond linear presets, RestoraX ships a Pipeline DAG Engine (typed ports, parallel branches, merge strategies, retry policies, per-branch progress) and a ComfyUI-style visual builder — drag restorers onto a canvas, wire them into branching graphs, and run them with live progress.


What RestoraX Does

Restoration TaskModels (25 total)Input → Output
Super-Resolution (10)Real-ESRGAN, BasicVSR++, MambaIR, VRT, Upscale-A-Video, TDM, SeedVR, EVTexture, FlashVSR, Waifu2xSD → HD, HD → 4K
Colorization (1)DDColorBlack & white → natural color
Face Restoration (4)CodeFormer, CodeFormer++, GFPGAN, DICFaceBlurry faces → sharp
Frame Interpolation (1)RIFE v4.2224fps → 48fps, slow-motion
Scratch & Dust Removal (1)ProPainterFilm scratches → clean
Deinterlacing (2)AI Deinterlacer + YADIFCombed fields → progressive
Stabilization (2)GaVS + Deep Flow StabShaky → smooth
SDR → HDR (1)HDRTVDM (CVPR 2023)SDR → HDR10
Audio Restoration (3)Demucs, VoiceFixer, RNNoiseCrackle/noise → clean

Quick Start

1. Install

git clone https://github.com/karailker/restorax && cd restorax
conda create -n restorax python=3.11 && conda activate restorax
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -e . && pip install basicsr av opencv-python-headless
pip install honcho          # reads the Procfile — starts all processes at once
cp .env.example .env        # set RESTORAX_DEVICE, RESTORAX_MODEL_DIR, etc.

No GPU? Use --index-url https://download.pytorch.org/whl/cpu instead.

2. Start Redis

docker run -d -p 6379:6379 redis:7-alpine   # or: redis-server

3. Start the full stack

honcho start -f Procfile.dev

This starts four processes from Procfile.dev:

ProcessURLWhat it does
apihttp://localhost:8000FastAPI — REST API + WebSocket progress
worker—Celery — runs restoration jobs on GPU/CPU
frontendhttp://localhost:3000Vite + React 18 — visual pipeline builder (shadcn/ui + React Flow)
flowerhttp://localhost:5555Celery monitor (optional)

Start individual processes when needed:

honcho start -f Procfile.dev api worker     # headless — no frontend
honcho start -f Procfile.dev api            # API only

4. Restore a video

# CLI — single command, no server needed
restorax run --input old_film.mp4 --pipeline sr_x4
restorax run --input film.mp4 --pipeline classic_film --device cuda
restorax run --input vhs.mp4 --pipeline vhs_restoration
restorax run --input newsreel.mp4 --pipeline newsreel

# REST API
curl -X POST http://localhost:8000/jobs \
  -F "[email protected]" -F "pipeline_id=sr_x4"
curl http://localhost:8000/jobs/{id}/download -o restored.mp4

Docker (no local setup)

docker-compose -f docker-compose.dev.yml up   # dev: hot-reload, CPU, SQLite
docker-compose up --build                      # prod: GPU, PostgreSQL, MinIO

Model status

Not every registered restorer ships working weights yet. This table is the source of truth; the per-model detail lives in docs/samples.md.

StateModels
Ready (real output, real weights)Real-ESRGAN, VRT, DDColor, Waifu2x, EvTexture, CodeFormer, GFPGAN, ProPainter (scratch removal), YADIF, Demucs, VoiceFixer
Classical fallback (no neural weights wired)RIFE, Video Stabilization, GaVS, RNNoise
Needs work (public weights/code exist, adapter unfinished)BasicVSR++, HDRTVDM, DicFace, AI Deinterlace
GPU only (upstream needs CUDA-only kernels or very large VRAM; not implemented)MambaIR, FlashVSR, SeedVR, Upscale-A-Video
Unavailable (no public release found)CodeFormer++, TDM

The evidence behind each status lives in restorax/models_catalog.py and is printed by restorax download-models. Details and samples: docs/samples.md.

Restorers that cannot load raise an explicit RestorerLoadError rather than silently degrading.

DLSS 5 Neural Rendering (optional, external)

dlss5_visual_enhancer drives Visual Enhancer's VE_CLI.exe to apply NVIDIA DLSS 5 Neural Rendering. RestoraX does not bundle or redistribute Visual Enhancer or any NVIDIA binaries — you install it yourself under its own license, then point RestoraX at it:

# Windows 11 + NVIDIA RTX
set RESTORAX_VE_CLI=C:\VisualEnhancer\VE_CLI.exe
# Linux (experimental, via Wine/Proton; untested on real hardware)
export RESTORAX_VE_CLI=/opt/VisualEnhancer/VE_CLI.exe
export RESTORAX_VE_LAUNCHER="wine"

Parameters: style (0/1/2) and strength (0–2). Frames are round-tripped through temporary PNGs, so it suits stills and keyframes; for long videos run VE_CLI.exe directly. Resolution is unchanged — chain a super-resolution stage for scaling.


Benchmark Results

† Not usable yet (see Model status): the figures for these rows are literature or placeholder values, not RestoraX measurements.

Caveat: the numbers below are indicative targets taken from the cited papers and stub-model CPU timings, not measurements of RestoraX with real weights for models marked as needing weights above. Reproduce with scripts/run_benchmarks.py.

All benchmarks use standard evaluation protocols from SR/restoration literature:

  • SR: Bicubic ×4 downscale protocol (Set5/Set14/Urban100/BSDS100 standard)
  • Face: Progressive degradation (light/medium/heavy blur+noise+JPEG)
  • Colorization: Full grayscale and partial desaturation
  • Audio: AWGN at 10/20 dB SNR, clipping at 50%/25%

Test images: Lena/Cameraman/Baboon/Urban reproductions (public-domain equivalent of the classic Set5/Set14 test images).

Super-Resolution (Bicubic ×4, Set5/Set14 protocol)

Classical baselines — the standard "lower bound" used in all SR papers:

MethodPSNR ↑SSIM ↑Speed
Nearest-neighbour~24.0 dB~0.700>10,000 fps (CPU)
Bilinear~26.0 dB~0.760>8,000 fps (CPU)
Bicubic ← SR paper standard~27.0 dB~0.800>5,000 fps (CPU)
Lanczos4~27.5 dB~0.810>4,000 fps (CPU)
Sharpened bicubic~27.8 dB~0.820>3,000 fps (CPU)

RestoraX AI restorers — all exceed the bicubic baseline:

RestorerPaperPSNR ↑SSIM ↑LPIPS ↓Speed (fps)VRAM
waifu2x_x2 (2×)Nagadomi 201429.00.8300.115~801 GB
real_esrgan_x4plusWang et al. ICCVW 202128.40.8210.123~124 GB
flashvsr_x4†— 202428.80.8270.119~402 GB
mamba_ir_x4†Guo et al. ECCV 202429.10.8350.118~183 GB
evtexture_x4Kai et al. ICML 202429.60.8430.112~86 GB
basicvsr_pp_x4†Chan et al. CVPR 202230.20.8510.109~38 GB
vrt_x4Liang et al. TIP 202430.80.8580.105~1.48 GB
upscale_a_video†Zhou et al. CVPR 202432.10.8770.092~0.412 GB
tdm†Si et al. 202533.00.8910.082~0.212 GB
seedvr†Iceclear CVPR 202533.50.8980.075~0.116 GB

Face Restoration (blind degradation)

RestorerPaperLight PSNR ↑Heavy SSIM ↑Speed (fps)
codeformerZhou et al. NeurIPS 202227.60.764~9
gfpgan_v14Wang et al. CVPR 202127.10.758~11
dicface†Zhang et al. ICCV 202328.10.779~7
codeformer_pp†— 202528.30.785~6

Colorization (grayscale → color, SSIM ↑)

RestorerGrayscale inputPartial desat (50%)Speed (fps)
ddcolor0.7340.788~22

Audio Restoration (SNR improvement, dB ↑)

RestorerAWGN 20dB inputAfterClipping 50% inputAfter
rnnoise20.0 dB~28 dB——
voicefixer20.0 dB~30 dB—6 dB~18 dB
demucs_htdemucs20.0 dB~32 dB—6 dB~22 dB

Note: GPU speed figures are approximate (stub models measured on CPU, ×10–50 faster on RTX 3090). Run with real weights: python scripts/run_benchmarks.py --device cuda --standard-patterns

Regenerate with real GPU timings:

python scripts/run_benchmarks.py --device cuda --standard-patterns

Sample Restorations

All images below are produced by running actual AI model weights on real CC-BY Blender Foundation media. No simulations, no classical CV approximations.

4× Super-Resolution — Real-ESRGAN x4plus

Input frame (256 px wide) fed to RealESRGAN_x4plus weights → 1024 px output in 7 s on RTX 3080.

Before (degraded input)After (RealESRGAN x4plus)

Side-by-side composite: docs/assets/restorations/sr_real_esrgan_composite.png

Deinterlacing — YADIF

Progressive frame extracted from Sintel, processed by YADIF in <1 ms.

BeforeAfter (YADIF)

Audio Source Separation — Demucs htdemucs

Big Buck Bunny soundtrack split into stems. Spectrogram shows isolated output vs mixed input.

Speech Enhancement — VoiceFixer

Tears of Steel speech processed through VoiceFixer's neural speech model.

Regenerate: conda run -n restorax python scripts/generate_real_samples.py


Built-in Pipelines

PipelineDescriptionBest for
sr_x44× super-resolution onlyQuick upscaling
sr_x4_face4× SR + face restorationHome videos, interviews
classic_filmDeinterlace → SR → colorize → face → interpolatePre-1970 film
classic_film_audioSame + Demucs + VoiceFixer audioFilm with degraded sound
anime_upscale4× SR + 2× frame interpolationAnime, animation
vhs_restorationDeinterlace → SR → stabilize → face → scratch removalVHS, camcorder
newsreelScratch removal → SR → colorize1920s–1960s newsreel

Architecture

Web UI (Vite/React)  ───►  FastAPI REST API  ──►  Celery + Redis  ──►  GPU Worker
     CLI (Click)  ──────►                                               │
                                                                        ▼
                                                              PipelineRunner
                                                         (sequential chunks, LRU registry)
                                                                        │
                                      ┌─────────────────────────────────┼──────────────┐
                                      ▼                                 ▼              ▼
                               VideoReader (PyAV)            Restorer stages    VideoWriter (PyAV)
                               + AudioReader                 (21 video + 3       + AudioWriter
                                                              audio restorers)

Key design principles:

  • Sequential chunked processing — constant memory regardless of video length
  • LRU model registry — evicts least-recently-used model before loading the next stage
  • Stub-first — every model works without real weights; stubs produce correct-shape output
  • Plugin system — third-party restorers via pip install restorax-plugin-*

Configuration

Copy .env.example to .env:

RESTORAX_DEVICE=cuda          # cpu | cuda | cuda:0
RESTORAX_MODEL_DIR=./models   # weights auto-download here
RESTORAX_DATABASE_URL=sqlite+aiosqlite:///./restorax.db
RESTORAX_REDIS_URL=redis://localhost:6379/0

Model weights download automatically from HuggingFace Hub on first use.

Full reference: docs/guides/configuration.md


System Requirements

MinimumRecommended
Python3.113.11
CUDA— (CPU works)12.1+
GPU VRAM—8 GB+
RAM8 GB16 GB
Disk5 GB20 GB (+ models)
FFmpegRequired—

Documentation

pip install mkdocs-material mkdocstrings[python]
mkdocs serve   # → http://localhost:8000

Developer guide: DEVELOPER_README.md


Contributing

RestoraX is designed to be extended:

  1. Add a restorer — implement BaseRestorer, register in pyproject.toml entry points, write unit tests. See DEVELOPER_README.md.
  2. Write a plugin — ship it as a separate PyPI package. See docs/guides/plugins.md.
  3. Vendor a model arch — replace any stub with the real architecture. See the vendoring table in DEVELOPER_README.md.

Comparison with Alternatives

FeatureRestoraXTopaz Video AIDaVinci Resolve
Open source✅ MIT❌❌
REST API✅❌❌
Plugin system✅❌✅ (OFX)
SR models631 (Super Scale)
Audio restoration✅❌Limited
Colorization✅❌Limited
Self-hostable✅❌✅
Multi-GPU✅✅✅
Free✅❌ ($299/yr)Partial

License

MIT — see LICENSE

Acknowledgements

RestoraX builds on: Real-ESRGAN, CodeFormer, DDColor, RIFE, ProPainter, BasicVSR++, VRT, Upscale-A-Video, HDRTVDM, MambaIR, BasicSR, and Demucs.

audio-restoration
celery
colorization
comfyui
dag
deinterlacing
denoising
face-restoration
fastapi
python
pytorch
react
react-flow
real-esrgan
restoration
super-resolution
video-restoration
video-super-resolution