Add BEN2 and BiRefNet-HR as selectable Remove Background models
BEN2 becomes the new default local backend (clean cutouts, strong on hair/fur edges), with BiRefNet-HR available as a high-res/print alternate and U2Net kept as the lightweight fallback. Both are MIT-licensed and download weights from HuggingFace on first use (cached via the existing hf_cache bind mount), unlike U2Net/SAM which need an explicit download script. - config: new BG_REMOVAL_MODEL setting (default "ben2") - tools.py: remove-background-base64 now tries local backends in order (request.model override > BG_REMOVAL_MODEL > ben2/u2net), falling back to rembg's birefnet-general session as a last resort - requirements.gpu.txt / Dockerfile.gpu: add ben2 + transformers deps needed for the new backends, with a build-time smoke test for ben2 - frontend: model dropdown in the Remove Background dialog, threaded through api.js to the new request field Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ro4PwQKvSc3CH19LSN21Ht
This commit is contained in:
@@ -111,7 +111,7 @@ Override the auto-selected model with `HF_MODEL_TXT2IMG`, `HF_MODEL_INPAINT` in
|
||||
- **Prepare for Print** — one-click: AI upscale to target DPI + fit to frame
|
||||
- **Fit to Frame** — resize/crop/AI-extend to standard print sizes
|
||||
- **Expand Canvas (Outpaint)** — AI extends the image in any direction
|
||||
- **Remove Background** — one-click background removal
|
||||
- **Remove Background** — one-click background removal (BEN2 by default, BiRefNet-HR or U2Net selectable)
|
||||
|
||||
### Print presets
|
||||
Frame sizes: 4×6, 5×7, 8×10, 11×14, 16×20, 18×24, 20×24, 24×36 (portrait + landscape)
|
||||
@@ -201,21 +201,27 @@ 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")**
|
||||
**Remove Background fails ("Install ben2, 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:
|
||||
Remove Background tries, in order: the model set by `BG_REMOVAL_MODEL` (default `ben2`), then the other local models, then `rembg` as a last resort. You'll see this error only if all of them fail.
|
||||
|
||||
```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
|
||||
```
|
||||
- **ben2 / birefnet-hr** (GPU image only) download their weights from HuggingFace on first use, cached under `./data/hf_cache`. If that download fails (DNS/firewall, see above), check the logs for the specific error:
|
||||
```bash
|
||||
docker compose -f docker-compose.gpu.yml logs -f | grep -iE "ben2|birefnet"
|
||||
```
|
||||
- **u2net** auto-downloads (~176MB) from GitHub on first use, same as SAM. If that fails too, download it 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"
|
||||
```
|
||||
|
||||
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"
|
||||
```
|
||||
You can also pick a specific model per-edit from the Remove Background dialog's model dropdown, overriding `BG_REMOVAL_MODEL` for that one call.
|
||||
|
||||
**AI models not downloading (container DNS blocked)**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user