#!/usr/bin/env python3 """Take CF-flux JPEGs (name_1.jpg) → MB bg_remove_local → autocrop → public/assets/gen/_cut.png. Usage: python3 tools/cf_cut.py """ import pathlib, sys sys.path.insert(0, str(pathlib.Path(__file__).parent)) from mb_gen import ROOT, run_batch, upload, beat from PIL import Image indir = pathlib.Path(sys.argv[1]) gen = ROOT / "public/assets/gen" jobs = [] for jpg in sorted(indir.glob("*_1.jpg")): name = jpg.stem[:-2] jobs.append((f"{name}_cut", "bg_remove_local", upload(jpg), {"resolution": 1024, "background": "transparent"})) beat(f"uploaded {name}") results = run_batch(jobs, gen) for label in results: p = gen / f"{label}.png" im = Image.open(p).convert("RGBA") bbox = im.split()[-1].getbbox() if bbox: l, t, r, b = bbox im.crop((max(0, l - 8), max(0, t - 8), min(im.width, r + 8), min(im.height, b + 8))).save(p) beat(f"done: {len(results)} sprites cut + cropped into {gen}")