Auto-download U2Net model on startup; remove dead PyTorch U2Net module
U2Net only ever downloaded lazily on the first Remove Background click, unlike SAM which retries on every container start. If that one attempt failed (DNS/firewall) the model was never fetched again, surfacing as "No background removal method available. Install u2net or rembg." Mirrors the existing SAM auto-download/AUTO_DOWNLOAD_SAM pattern for U2Net, and documents manual host-side recovery in the README. Also deletes backend/app/services/u2net_model.py (hand-written U2NET/U2NETP PyTorch classes) — unused since tools.py switched to cv2.dnn.readNetFromONNX for background removal.
This commit is contained in:
@@ -201,6 +201,22 @@ docker compose -f docker-compose.gpu.yml logs | grep -i sam
|
||||
|
||||
If Docker created `./data/` as root and you can't write there without `sudo`, you can also use root's curl as above — the container reads the file regardless of owner.
|
||||
|
||||
**Remove Background fails ("Install u2net or rembg")**
|
||||
|
||||
The U2Net model auto-downloads (~176MB) from GitHub on first use, same as SAM. If that download fails (DNS/firewall, see above) and `rembg` isn't installed either, you'll see this error. Fix it the same way — download directly on the host:
|
||||
|
||||
```bash
|
||||
mkdir -p ./data/models
|
||||
sudo curl -L -o ./data/models/u2net.onnx \
|
||||
https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net.onnx
|
||||
```
|
||||
|
||||
The file is ~176 MB. Once it exists at `./data/models/u2net.onnx`, the next "Remove Background" click picks it up — no rebuild or restart needed. Verify with:
|
||||
```bash
|
||||
docker compose logs -f | grep -i u2net
|
||||
# Should show: "U2Net model loaded successfully with OpenCV DNN"
|
||||
```
|
||||
|
||||
**AI models not downloading (container DNS blocked)**
|
||||
|
||||
If you ran `./install-local-gpu.sh`, this is already permanently fixed. Otherwise, the container's host firewall is blocking outbound DNS from the Docker bridge — apply the fix manually (does **not** affect container isolation):
|
||||
|
||||
Reference in New Issue
Block a user