Enhancer / README.md
supli6669
fix: harden Hugging Face deployment
d09b963
|
Raw
History Blame Contribute Delete
3.08 kB
---
title: Custom AI Face Enhancer
emoji:
colorFrom: purple
colorTo: pink
sdk: docker
pinned: false
license: apache-2.0
---
# Custom AI Face Enhancer & Restorer
A self-hosted, local AI image enhancement web application built using **Python, Streamlit, PyTorch, and OpenCV**. It integrates the state-of-the-art **CodeFormer** model locally for face restoration with custom blending controls.
This project is configured to run out-of-the-box both **locally** on your CPU/GPU and **hosted on Hugging Face Spaces**.
---
## Key Features
- **Local Execution:** Runs directly on local CPU or NVIDIA GPU (via CUDA) for maximum privacy and processing speed.
- **Fidelity Weight Tuning ($w$):** Control the balance between generating rich realistic details (low $w$) and keeping high resemblance to the original face (high $w$).
- **Custom Blending Softness:** Exposes an adjustable soft mask feathering parameter to ensure smooth, seamless pasting of restored faces back into the upscaled background image.
- **Multiple Face Detectors:** Choose between highly accurate detectors (RetinaFace) or faster detectors for groups (YOLOv5).
- **Dark Mode UI:** Designed with custom glassmorphism and modern Outfit typography.
---
## Local Execution Instructions
### Prerequisites
- Python 3.11
- Git
### Setup
1. Clone this repository to your local machine.
2. Initialize the virtual environment and install dependencies:
```bash
python -m venv .venv
.venv\Scripts\activate # On Windows (PowerShell/CMD)
source .venv/bin/activate # On Linux/macOS
```
3. Run the custom BasicSR package patching script:
```bash
python tools/patch_and_install_basicsr.py
```
4. Install the remaining requirements:
```bash
pip install -r requirements.txt
```
### Running the App
Start the Streamlit server locally:
```bash
streamlit run app.py
```
Open `http://localhost:8501` in your browser. The app will automatically download the pretrained model weights on its first run.
---
## Hugging Face Spaces Deployment
This repository deploys as a **Docker Space**, not a Streamlit SDK Space. The
Dockerfile installs the pinned Python 3.11 CPU runtime and starts Streamlit on
port `7860`.
1. Log in to [Hugging Face](https://huggingface.co/) and create a new Space.
2. Set the Space SDK to **Docker** and select a CPU hardware tier appropriate
for CodeFormer inference.
3. Push this repository to the Space. Keep Git LFS enabled: the tracked
`weights/CodeFormer/codeformer.pth` model is required at build/runtime.
4. Wait for the Space build to complete, then open the Space URL. Additional
optional model files are downloaded by the application only if unavailable.
### GitHub Actions sync
The included workflow syncs `main` to the configured Hugging Face Space and
uploads Git LFS objects first. Add a Hugging Face **write** token as the GitHub
Actions secret `HF_TOKEN`; do not place a token in a Git remote URL or commit it
to the repository. The sync intentionally does not force-push, so resolve any
divergent Space changes before running it again.