From 0b54e4ca06a172b467418a17aa91a435f4daa823 Mon Sep 17 00:00:00 2001 From: Joseph Date: Mon, 29 Jun 2026 14:56:04 +0700 Subject: [PATCH] =?UTF-8?q?Product=20Image=20Studio=20Option=201:=20t?= =?UTF-8?q?=C3=A1ch=20n=E1=BB=81n=20+=20gh=C3=A9p=20frame/watermark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flask + rembg (u2net/isnet/birefnet) + Pillow + OpenCV. Tab Tách nền (camera, so sánh 3 mức, polygon crop, cache) + Tab Ghép Frame (danh sách frame/watermark, tỉ lệ object, nền màu/trong suốt). UI responsive. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 16 + README.md | 40 +++ assets/.gitkeep | 0 assets/frame.png | Bin 0 -> 134173 bytes assets/frame/.gitkeep | 0 assets/watermark.png | Bin 0 -> 37014 bytes assets/watermark/.gitkeep | 0 cache/.gitkeep | 0 objects/.gitkeep | 0 output/.gitkeep | 0 requirements.txt | 6 + run.sh | 29 ++ server.py | 443 ++++++++++++++++++++++++ static/index.html | 688 ++++++++++++++++++++++++++++++++++++++ 14 files changed, 1222 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 assets/.gitkeep create mode 100644 assets/frame.png create mode 100644 assets/frame/.gitkeep create mode 100644 assets/watermark.png create mode 100644 assets/watermark/.gitkeep create mode 100644 cache/.gitkeep create mode 100644 objects/.gitkeep create mode 100644 output/.gitkeep create mode 100644 requirements.txt create mode 100755 run.sh create mode 100644 server.py create mode 100644 static/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f3e276e --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Python +__pycache__/ +*.pyc +.venv/ +venv/ + +# Model cache rembg +.u2net/ + +# Dữ liệu runtime (giữ thư mục, bỏ nội dung) +cache/* +output/* +objects/* +assets/frame/* +assets/watermark/* +!**/.gitkeep diff --git a/README.md b/README.md new file mode 100644 index 0000000..9392846 --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# Product Image Studio — Tách nền & Ghép Frame + +Công cụ web xử lý ảnh sản phẩm cho ecom: **tách nền** + **ghép frame/watermark**, chạy local, miễn phí. +Stack: **Flask + rembg (U²-Net/ISNet/BiRefNet ONNX) + Pillow + OpenCV**. + +## Tính năng +**Tab 1 — Tách nền** +- Xóa nền AI (chọn model: u2net / isnet / birefnet), chống cháy sáng giữ chi tiết mép. +- Chụp ảnh trực tiếp từ camera, hoặc upload nhiều ảnh / kéo-thả. +- So sánh 3 mức chất lượng (low/medium/high) chạy song song. +- Vùng chọn đa điểm (polygon) ôm sát object, chỉnh tự do để cắt ngoài vùng. +- Review zoom + lật ảnh gốc; cache cutout để tinh chỉnh không xử lý lại. +- Lưu object (1:1 trong suốt) vào thư viện. + +**Tab 2 — Ghép Frame** +- Danh sách nhiều frame & watermark, chọn là preview đổi ngay. +- Chỉnh tỉ lệ object, vị trí/độ mờ/cỡ watermark, viền. +- Nền: trong suốt hoặc bảng màu / màu tùy chọn. +- Lưu ra file (PNG nếu trong suốt, JPG nếu nền màu). + +UI responsive cho desktop / tablet / mobile. + +## Chạy nhanh +```bash +./run.sh +``` +Script tự tạo virtualenv, cài dependencies và khởi động server tại . +Lần đầu sẽ tải model ONNX (~170MB), sau đó chạy offline. + +### Thủ công +```bash +python3 -m venv .venv && source .venv/bin/activate +pip install -r requirements.txt +python server.py +``` + +## Ghi chú +- Apple Silicon: server ép `CPUExecutionProvider` (CoreML biên dịch u2net bị treo). +- `cache/`, `output/`, `objects/`, `assets/` là dữ liệu runtime (đã gitignore). +- Camera trực tiếp cần `localhost` hoặc HTTPS; qua IP LAN sẽ tự dùng camera gốc của máy. diff --git a/assets/.gitkeep b/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/frame.png b/assets/frame.png new file mode 100644 index 0000000000000000000000000000000000000000..9e770fa5adbc803265ed66aadbb16bcd84cbf419 GIT binary patch literal 134173 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 z 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ð2HC%IzFyg$~1Ktne;YR}hGS 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 P0}yz+`njxgN@xNACDlNV literal 0 HcmV?d00001 diff --git a/assets/watermark/.gitkeep b/assets/watermark/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/cache/.gitkeep b/cache/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/objects/.gitkeep b/objects/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/output/.gitkeep b/output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2ab65b3 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +flask>=3.0 +rembg>=2.0.50 +pillow>=10.0 +onnxruntime>=1.16 +opencv-python-headless>=4.8 +numpy>=1.24 diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..993b874 --- /dev/null +++ b/run.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Setup + chạy server tách nền / ghép frame (Option 1 - Python/rembg) +# Dùng: ./run.sh +set -euo pipefail +cd "$(dirname "$0")" + +PY="${PYTHON:-python3}" +command -v "$PY" >/dev/null 2>&1 || { echo "✗ Không tìm thấy python3. Cài Python 3.9+ trước."; exit 1; } + +if [ ! -d .venv ]; then + echo "→ Tạo virtualenv (.venv)…" + "$PY" -m venv .venv +fi + +# shellcheck disable=SC1091 +source .venv/bin/activate + +echo "→ Cài / cập nhật dependencies…" +python -m pip install -q --upgrade pip +python -m pip install -q -r requirements.txt + +echo "" +echo "──────────────────────────────────────────────" +echo " Server: http://localhost:8001" +echo " Lần đầu sẽ tự tải model ONNX (~170MB)." +echo " Dừng: Ctrl+C" +echo "──────────────────────────────────────────────" +echo "" +exec python server.py diff --git a/server.py b/server.py new file mode 100644 index 0000000..b65ecbd --- /dev/null +++ b/server.py @@ -0,0 +1,443 @@ +""" +Option 1 — Tách nền + Ghép Frame/Watermark cho ảnh sản phẩm +Stack: Flask + rembg (U^2-Net ONNX, local) + Pillow + OpenCV + +Kiến trúc 2 giai đoạn: + • Tab 1 (Tách nền): xóa nền → object 1:1 trong suốt → LƯU vào thư viện (trả name). + • Tab 2 (Ghép Frame): chọn object + frame + watermark (danh sách) → SAVE render ra file. +""" +import io +import os +import re +import json +import time +import uuid +import hashlib +import threading +from concurrent.futures import ThreadPoolExecutor + +from flask import Flask, request, jsonify, send_from_directory, send_file +from rembg import remove, new_session +from PIL import Image, ImageOps, ImageEnhance, ImageFilter, ImageChops, ImageDraw + +BASE = os.path.dirname(os.path.abspath(__file__)) +ASSETS = os.path.join(BASE, "assets") # assets/frame/*.png, assets/watermark/*.png +OBJECTS = os.path.join(BASE, "objects") # object đã tách nền (thư viện Tab 1) +OUTPUT = os.path.join(BASE, "output") +CACHE = os.path.join(BASE, "cache") # cutout sau remove-bg, tái dùng +for d in (os.path.join(ASSETS, "frame"), os.path.join(ASSETS, "watermark"), OBJECTS, OUTPUT, CACHE): + os.makedirs(d, exist_ok=True) + +app = Flask(__name__, static_folder="static", static_url_path="") + +# ============================ MODEL / SESSION ============================ +SESSIONS = {} +SESSION_LOCK = threading.Lock() +ALLOWED_MODELS = {"u2net", "isnet-general-use", "birefnet-general-lite"} +COMPARE_PRESETS = { + "low": {"model": "u2net", "anti_blowout": False, "recover": 0}, + "medium": {"model": "isnet-general-use", "anti_blowout": True, "recover": 2}, + "high": {"model": "birefnet-general-lite", "anti_blowout": True, "recover": 3}, +} + + +def get_session(model: str): + if model not in ALLOWED_MODELS: + model = "u2net" + with SESSION_LOCK: + if model not in SESSIONS: + print(f"[model] đang khởi tạo '{model}'…", flush=True) + t = time.time() + # Ép CPUExecutionProvider: CoreML trên Apple Silicon biên dịch u2net → treo. + try: + SESSIONS[model] = new_session(model, providers=["CPUExecutionProvider"]) + except TypeError: + os.environ["ONNXRUNTIME_EXECUTION_PROVIDERS"] = "[CPUExecutionProvider]" + SESSIONS[model] = new_session(model) + print(f"[model] '{model}' sẵn sàng sau {time.time() - t:.1f}s", flush=True) + return SESSIONS[model] + + +# ============================ REMOVE BACKGROUND ============================ +def remove_object(src, opt): + """Xóa nền, tối ưu chống cháy sáng để không mất góc/chi tiết mép.""" + rgba = src.convert("RGBA") + session = get_session(opt["model"]) + if not opt["anti_blowout"]: + return remove(rgba, session=session, post_process_mask=True) + work = ImageEnhance.Contrast(src.convert("RGB")).enhance(1.5) + work = ImageEnhance.Brightness(work).enhance(0.85) + mask = remove(work, session=session, only_mask=True, post_process_mask=True) + r = int(opt["recover"]) + if r > 0: + k = r * 2 + 1 + mask = mask.filter(ImageFilter.MaxFilter(k)).filter(ImageFilter.MinFilter(k)) + out = rgba.copy() + out.putalpha(mask) + return out + + +def get_cut(src, img_hash, opt): + """Cutout sau xóa nền, tái dùng cache theo (ảnh + model/anti/recover).""" + key = f"{img_hash}-{opt['model']}-{int(opt['anti_blowout'])}-{opt['recover']}" + path = os.path.join(CACHE, key + ".png") + if os.path.exists(path): + return Image.open(path).convert("RGBA"), True + cut = remove_object(src, opt) + cut.save(path) + return cut, False + + +def fit_square(cut, obj_scale, bg): + """Crop sát object rồi đặt vào canvas vuông 1:1.""" + bbox = cut.getbbox() + if bbox: + cut = cut.crop(bbox) + w, h = cut.size + side = max(1, int(round(max(w, h) / max(0.05, obj_scale)))) + fill = (255, 255, 255, 255) if bg == "white" else (0, 0, 0, 0) + canvas = Image.new("RGBA", (side, side), fill) + canvas.alpha_composite(cut, ((side - w) // 2, (side - h) // 2)) + return canvas + + +def object_polygon(cut, max_pts=48): + """Đường viền (polygon chuẩn hoá 0..1) ôm sát object, suy từ alpha.""" + W, H = cut.size + rect = [[0, 0], [1, 0], [1, 1], [0, 1]] + try: + import cv2 + import numpy as np + except Exception: # noqa: BLE001 + bb = cut.getbbox() + if not bb: + return rect + x0, y0, x1, y1 = bb + return [[x0 / W, y0 / H], [x1 / W, y0 / H], [x1 / W, y1 / H], [x0 / W, y1 / H]] + alpha = np.array(cut.getchannel("A")) + _, binimg = cv2.threshold(alpha, 10, 255, cv2.THRESH_BINARY) + cnts, _ = cv2.findContours(binimg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + if not cnts: + return rect + c = max(cnts, key=cv2.contourArea) + peri = cv2.arcLength(c, True) + eps = 0.008 * peri + approx = cv2.approxPolyDP(c, eps, True) + while len(approx) > max_pts: + eps *= 1.3 + approx = cv2.approxPolyDP(c, eps, True) + if len(approx) < 3: + return rect + return [[float(p[0][0]) / W, float(p[0][1]) / H] for p in approx] + + +def apply_poly(cut, poly): + """Giữ alpha bên trong polygon (chuẩn hoá), xóa ngoài.""" + W, H = cut.size + pts = [(p[0] * W, p[1] * H) for p in poly] + mask = Image.new("L", (W, H), 0) + ImageDraw.Draw(mask).polygon(pts, fill=255) + out = cut.copy() + out.putalpha(ImageChops.multiply(cut.getchannel("A"), mask)) + return out + + +def position(pos, canvas, item, margin): + cw, ch = canvas + iw, ih = item + table = { + "northwest": (margin, margin), + "north": ((cw - iw) // 2, margin), + "northeast": (cw - iw - margin, margin), + "center": ((cw - iw) // 2, (ch - ih) // 2), + "southwest": (margin, ch - ih - margin), + "south": ((cw - iw) // 2, ch - ih - margin), + "southeast": (cw - iw - margin, ch - ih - margin), + } + return table.get(pos, table["southeast"]) + + +# ============================ TAB 1: TÁCH NỀN ============================ +def make_object(src, img_hash, opt): + """Xóa nền → (polygon crop nếu có) → object vuông 1:1 TRONG SUỐT (không frame/wm).""" + cut, cached = get_cut(src, img_hash, opt) + polygon = object_polygon(cut) + if opt.get("poly"): + cut = apply_poly(cut, opt["poly"]) + canvas = fit_square(cut, 1.0, "transparent") # lưu ôm sát; tỉ lệ chỉnh ở bước ghép frame + out_name = f"{uuid.uuid4().hex[:12]}.png" + canvas.save(os.path.join(OUTPUT, out_name)) + return out_name, cached, polygon + + +def parse_poly(form): + raw = form.get("poly") + if not raw: + return None + try: + pts = [[max(0.0, min(1.0, float(x))), max(0.0, min(1.0, float(y)))] + for x, y in json.loads(raw)] + except (ValueError, TypeError): + return None + return pts if len(pts) >= 3 else None + + +def build_opt(form): + return { + "model": form.get("model", "u2net"), + "anti_blowout": form.get("anti_blowout", "true") == "true", + "recover": int(form.get("recover", 2) or 0), + "poly": parse_poly(form), + } + + +def save_original(data, filename): + ext = os.path.splitext(filename)[1].lower() + if ext not in (".jpg", ".jpeg", ".png", ".webp"): + ext = ".png" + name = f"orig-{uuid.uuid4().hex[:12]}{ext}" + with open(os.path.join(OUTPUT, name), "wb") as fh: + fh.write(data) + return name + + +def run_compare(src, img_hash, filename, original, base_opt): + def run(level): + opt = dict(base_opt, **COMPARE_PRESETS[level]) + t = time.time() + out, cached, polygon = make_object(src, img_hash, opt) + print(f"[compare] {filename} · {level} ✓ {'cache' if cached else f'{time.time()-t:.1f}s'}", flush=True) + return {"name": filename, "output": out, "original": original, + "ok": True, "level": level, "cached": cached, "polygon": polygon} + + levels = ("low", "medium", "high") + with ThreadPoolExecutor(max_workers=3) as ex: + futures = {lv: ex.submit(run, lv) for lv in levels} + out = [] + for lv in levels: + try: + out.append(futures[lv].result()) + except Exception as e: # noqa: BLE001 + print(f"[compare] {filename} · {lv} ✗ {e}", flush=True) + out.append({"name": filename, "ok": False, "level": lv, "error": str(e)}) + return out + + +@app.post("/api/process") +def process(): + opt = build_opt(request.form) + compare = request.form.get("compare", "false") == "true" + files = request.files.getlist("images") + if not files: + return jsonify(error="chưa chọn ảnh"), 400 + + total = len(files) + print(f"[batch] nhận {total} ảnh · {'so sánh 3 mức' if compare else opt['model']}", flush=True) + results = [] + for i, f in enumerate(files, 1): + t = time.time() + try: + data = f.read() + img_hash = hashlib.sha1(data).hexdigest()[:16] + original = save_original(data, f.filename) + src = ImageOps.exif_transpose(Image.open(io.BytesIO(data))).convert("RGBA") + if compare: + results.extend(run_compare(src, img_hash, f.filename, original, opt)) + else: + out, cached, polygon = make_object(src, img_hash, opt) + results.append({"name": f.filename, "output": out, "original": original, + "ok": True, "level": None, "cached": cached, "polygon": polygon}) + print(f"[{i}/{total}] {f.filename} ✓ {time.time() - t:.1f}s", flush=True) + except Exception as e: # noqa: BLE001 + print(f"[{i}/{total}] {f.filename} ✗ {e}", flush=True) + results.append({"name": f.filename, "ok": False, "error": str(e)}) + print("[batch] hoàn tất.", flush=True) + return jsonify(results=results) + + +@app.post("/api/recrop") +def recrop(): + """Render lại 1 object với vùng chọn polygon, dùng lại ảnh gốc + cache cutout.""" + original = request.form.get("original", "") + path = os.path.join(OUTPUT, os.path.basename(original)) + if not original or not os.path.exists(path): + return jsonify(error="không tìm thấy ảnh gốc"), 404 + opt = build_opt(request.form) + level = request.form.get("level", "") + if level in COMPARE_PRESETS: + opt.update(COMPARE_PRESETS[level]) + with open(path, "rb") as fh: + data = fh.read() + img_hash = hashlib.sha1(data).hexdigest()[:16] + src = ImageOps.exif_transpose(Image.open(io.BytesIO(data))).convert("RGBA") + out, cached, polygon = make_object(src, img_hash, opt) + return jsonify(ok=True, output=out, original=original, level=level or None, + cached=cached, polygon=polygon) + + +# ============================ THƯ VIỆN OBJECT ============================ +def safe_name(name): + name = re.sub(r"[^\w\-]+", "_", (name or "").strip()) + return name[:60] or uuid.uuid4().hex[:8] + + +@app.post("/api/save-object") +def save_object(): + out = os.path.basename(request.form.get("output", "")) + src_path = os.path.join(OUTPUT, out) + if not out or not os.path.exists(src_path): + return jsonify(error="không tìm thấy ảnh đã xử lý"), 404 + name = safe_name(request.form.get("name")) + Image.open(src_path).convert("RGBA").save(os.path.join(OBJECTS, name + ".png")) + print(f"[object] đã lưu '{name}'", flush=True) + return jsonify(ok=True, name=name, url=f"/objects/{name}.png") + + +@app.get("/api/objects") +def list_objects(): + items = [{"name": fn[:-4], "url": f"/objects/{fn}"} + for fn in sorted(os.listdir(OBJECTS)) if fn.endswith(".png")] + return jsonify(items=items) + + +@app.delete("/api/objects/") +def del_object(name): + p = os.path.join(OBJECTS, os.path.basename(name) + ".png") + if os.path.exists(p): + os.remove(p) + return jsonify(ok=True) + + +@app.get("/objects/") +def serve_object(name): + return send_from_directory(OBJECTS, name) + + +# ============================ TAB 2: FRAME / WATERMARK ============================ +def bg_color(bg): + """Trả (r,g,b,255) cho mã hex, hoặc None nếu trong suốt.""" + if not bg or bg == "transparent": + return None + h = bg.lstrip("#") + if len(h) == 3: + h = "".join(c * 2 for c in h) + try: + return (int(h[0:2], 16), int(h[2:4], 16), int(h[4:6], 16), 255) + except (ValueError, IndexError): + return None + + +def asset_file(kind, aid): + return os.path.join(ASSETS, kind, f"{os.path.basename(aid)}.png") + + +@app.post("/api/asset") +def add_asset(): + kind = request.form.get("kind") + if kind not in ("frame", "watermark"): + return jsonify(error="kind không hợp lệ"), 400 + f = request.files.get("file") + if not f: + return jsonify(error="thiếu file"), 400 + aid = uuid.uuid4().hex[:12] + Image.open(f.stream).convert("RGBA").save(asset_file(kind, aid)) + return jsonify(ok=True, id=aid, url=f"/api/asset/{kind}/{aid}") + + +@app.get("/api/asset/") +def list_assets(kind): + d = os.path.join(ASSETS, kind) + items = [] + if os.path.isdir(d): + for fn in sorted(os.listdir(d)): + if fn.endswith(".png"): + aid = fn[:-4] + items.append({"id": aid, "url": f"/api/asset/{kind}/{aid}"}) + return jsonify(items=items) + + +@app.get("/api/asset//") +def get_asset(kind, aid): + p = asset_file(kind, aid) + if not os.path.exists(p): + return jsonify(error="chưa có"), 404 + return send_file(p, mimetype="image/png") + + +@app.delete("/api/asset//") +def del_asset(kind, aid): + p = asset_file(kind, aid) + if os.path.exists(p): + os.remove(p) + return jsonify(ok=True) + + +@app.post("/api/compose") +def compose(): + """Ghép object + frame + watermark → render & LƯU file, trả filename.""" + name = os.path.basename(request.form.get("object", "")) + op = os.path.join(OBJECTS, name + ".png") + if not name or not os.path.exists(op): + return jsonify(error="không tìm thấy object"), 404 + obj = Image.open(op).convert("RGBA") + + obj_scale = float(request.form.get("obj_scale", 100)) / 100 + obj = fit_square(obj, obj_scale, "transparent") # đặt lại tỉ lệ object trong khung + + fill = bg_color(request.form.get("bg", "transparent")) # None = trong suốt + border = int(request.form.get("border", 0) or 0) + frame_id = request.form.get("frame", "") + wm_id = request.form.get("watermark", "") + wm_opacity = float(request.form.get("wm_opacity", 60)) / 100 + wm_pos = request.form.get("wm_pos", "southeast") + wm_scale = float(request.form.get("wm_scale", 25)) / 100 + + if fill: + canvas = Image.new("RGBA", obj.size, fill) + canvas.alpha_composite(obj) + else: + canvas = obj.copy() + + if border > 0: + canvas = ImageOps.expand(canvas, border=border, fill=fill or (0, 0, 0, 0)) + + if frame_id and os.path.exists(asset_file("frame", frame_id)): + frame = Image.open(asset_file("frame", frame_id)).convert("RGBA").resize(canvas.size) + canvas.alpha_composite(frame) + + if wm_id and os.path.exists(asset_file("watermark", wm_id)): + wm = Image.open(asset_file("watermark", wm_id)).convert("RGBA") + tw = max(1, int(canvas.width * wm_scale)) + th = max(1, int(wm.height * tw / wm.width)) + wm = wm.resize((tw, th)) + wm.putalpha(wm.split()[3].point(lambda a: int(a * wm_opacity))) + margin = int(canvas.width * 0.03) + x, y = position(wm_pos, canvas.size, wm.size, margin) + canvas.alpha_composite(wm, (x, y)) + + uid = uuid.uuid4().hex[:12] + if fill: # nền đặc → JPG + out_name = f"{uid}.jpg" + canvas.convert("RGB").save(os.path.join(OUTPUT, out_name), quality=92) + else: # trong suốt → PNG + out_name = f"{uid}.png" + canvas.save(os.path.join(OUTPUT, out_name)) + print(f"[compose] {name} + frame={frame_id or '-'} + wm={wm_id or '-'} → {out_name}", flush=True) + return jsonify(ok=True, output=out_name, url=f"/output/{out_name}") + + +@app.get("/") +def index(): + return send_from_directory("static", "index.html") + + +@app.get("/output/") +def output(name): + return send_from_directory(OUTPUT, name) + + +if __name__ == "__main__": + print("→ Option 1 (Python/rembg) đang khởi động…", flush=True) + get_session("u2net") + print("→ Sẵn sàng tại http://localhost:8001", flush=True) + app.run(host="0.0.0.0", port=8001, debug=False, threaded=True) diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..27f89cd --- /dev/null +++ b/static/index.html @@ -0,0 +1,688 @@ + + + + + +Studio Ảnh Sản Phẩm · Tách nền & Ghép Frame + + + +
+ +
+
+ + +
+
+ +
+ +
+
+ +
+
1 Chất lượng tách nền
+
+
+ + +
+
+ + +
+
Chống cháy sáng
+
So sánh 3 mức (low/med/high)
+
+
+ + +
+
+
2 Tải ảnh sản phẩm
+
📦

Kéo thả ảnh vào đây — hoặc bấm để chọn

Hỗ trợ nhiều ảnh cùng lúc · JPG / PNG / WebP
+ + +
+
+ + +
+
+
+
+
+
+ + +
+
+ +
+
1 Object đã tách nền
+
+

Chưa có object. Sang tab Tách nền, xử lý rồi bấm Lưu.

+
+ + +
+
2 Xem trước (đổi ngay khi chọn frame / watermark)
+
+
+
Chọn 1 object bên trái để bắt đầu.
+ +
+
+
+ +
+
+
+ + +
+
+
3 Frame (chọn để đổi)
+
+
+
+
Watermark
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
⬚ Trong suốt
+
+ + + + + + + + + +
+
+
+ + +
+
+
+
+
+ + +
+ + + + + + + +
+ + + +