mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat: add Ultra quality mode with BiRefNet-matting, rename quality tiers
Ultra quality (People only): - BiRefNet-matting ONNX (928MB) for true alpha matting with per-pixel transparency on hair wisps and fine edges - Custom rembg session class, zero new Python dependencies - Model pre-downloaded in Docker build for immediate availability Quality tier labels: Fast / HD / Max / Ultra (shorter, fits 4-col grid)
This commit is contained in:
@@ -108,6 +108,33 @@ test.describe("Remove Background tool", () => {
|
||||
await expect(page.locator("section[aria-label='Image area'] img").first()).toBeVisible();
|
||||
});
|
||||
|
||||
test("Ultra quality visible for People, hidden for Products", async ({ loggedInPage: page }) => {
|
||||
await page.goto("/remove-background");
|
||||
|
||||
// People is default - Ultra should be visible
|
||||
await expect(page.getByRole("button", { name: "Ultra" })).toBeVisible();
|
||||
|
||||
// Switch to Products - Ultra should disappear
|
||||
await page.getByText("Products").click();
|
||||
await expect(page.getByRole("button", { name: "Ultra" })).not.toBeVisible();
|
||||
|
||||
// Switch back to People - Ultra returns
|
||||
await page.getByText("People").click();
|
||||
await expect(page.getByRole("button", { name: "Ultra" })).toBeVisible();
|
||||
});
|
||||
|
||||
test("Ultra quality processes JPG portrait", async ({ loggedInPage: page }) => {
|
||||
await page.goto("/remove-background");
|
||||
await uploadFile(page, fixturePath("test-portrait.jpg"));
|
||||
|
||||
// Select Ultra quality
|
||||
await page.getByRole("button", { name: "Ultra" }).click();
|
||||
|
||||
await removeBgAndWait(page);
|
||||
await expect(page.locator("section[aria-label='Image area'] img").first()).toBeVisible();
|
||||
await expect(page.locator("text=Background removal failed")).not.toBeVisible();
|
||||
});
|
||||
|
||||
test("HEIC portrait - processes without error", async ({ loggedInPage: page }) => {
|
||||
await page.goto("/remove-background");
|
||||
await uploadFile(page, fixturePath("test-portrait.heic"));
|
||||
|
||||
Reference in New Issue
Block a user