Cum pot să elimin fundalul unei imagini gratuit, fără filigran?
Ce face modelul IS-Net în tab-ul tău de browser, de ce decupajul este întotdeauna un PNG mai mare și cum să reduci dimensiunea acelui PNG, cu numere măsurate.
Fiecare instrument gratuit de eliminare a fundalului face aceleași două promisiuni: fără filigran și fără înregistrare. Aproape toate vor totuși fișierul tău. Acesta este trimis pe un server, un model rulează acolo și o politică de retenție promite ștergerea într-o oră sau într-o zi. Al nostru nu funcționează astfel. Eliminatorul de fundal încarcă modelul IS-Net în tab-ul tău de browser și îl rulează pe propria ta mașină, astfel încât imaginea să nu devină niciodată corpul unei cereri HTTP.
Ce se întoarce este întotdeauna un PNG cu canal alfa, și de obicei este mai mare decât fișierul pe care l-ai încărcat. Asta îi surprinde pe oameni. Transparența are un preț, iar PNG este singurul format larg suportat care o va transporta.
Imaginea părăsește computerul meu?
Nu. Nu există nicio rută API în această bază de cod și nicio acțiune pe server, așa că nu există niciun punct final care să poată primi imaginea ta, chiar și accidental. Singurul trafic de rețea pe care îl face instrumentul este o solicitare de același domeniu pentru greutățile modelului, care se află sub /ml-assets pe propriul nostru domeniu, și le vei descărca doar o dată. După aceea, browserul tău le are în cache. Fișierul tău este citit cu createImageBitmap, predat modelului ca pixeli și scris înapoi ca un Blob care rămâne în tab până când îl descarci sau îl închizi. Nu există nimic de așteptat pentru ștergere mai târziu, deoarece nimic nu ajunge nicăieri. Pagina de confidențialitate este scurtă din acest motiv.
Ce face de fapt modelul IS-Net?
IS-Net este o rețea de segmentare a obiectelor saliente din cercetarea DIS. Citește întreaga imagine și prezice, pe pixel, cât de probabil este ca acel pixel să aparțină singurului lucru despre care este vorba în imagine. Acea predicție devine canalul alfa al PNG-ului de ieșire. Nu știe ce este o persoană sau o sticlă de șampon. Știe despre saliență. De aceea, un singur subiect pe un fundal simplu se decupează curat, în timp ce un grup de oameni pe o stradă aglomerată adesea nu.
Rularea se face cu ONNX Runtime Web și motorul solicită dispozitivul WebGPU. Acolo unde WebGPU lipsește, biblioteca revine la CPU de la sine și va termina totuși, mai încet. Fișierele rulează unul câte unul. Aruncă zece și va trebui să aștepți prin zece treceri de inferență, așa că un lot de fotografii de vacanță este o pauză de cafea.
De ce este PNG-ul decupat mai mare decât JPG-ul pe care l-am încărcat?
JPEG nu transportă canal alfa în niciun mod, așa că un decupaj nu poate rămâne un JPEG. Ieșirea trebuie să fie PNG, care este fără pierderi. Două lucruri se întâmplă simultan. Pixeli decodați sunt stocați exact, artefacte de compresie și tot, iar fiecare pixel câștigă un byte alfa pe care nu l-a avut înainte. Stocarea fără pierderi a detaliilor fotografice este costisitoare. Ca referință, texture.jpg din setul nostru de teste are 3840x2160 și cântărește 538.6 KB, în timp ce alpha.png este 900x606 cu transparență și cântărește 942.4 KB. Asta este aproximativ 1.75x bytes la aproximativ o cincime din numărul de pixeli. Nimeni nu a adăugat nimic la imaginea ta. Acum plătești doar prețurile PNG.
Cum pot face PNG-ul decupat mai mic?
Trimite-l la compresorul de imagini și alege unul dintre cele două moduri PNG. Ambele vor păstra canalul alfa. "PNG fără compresie" rulează oxipng la nivelul 3, care este fără pierderi: aceiași pixeli, mai puțini bytes. "PNG dimensiune fișier mai mic" rulează imagequant, care reduce imaginea la o paletă. Iată ce a făcut fiecare dintre ele cu alpha.png, PNG-ul transparent de 900x606 de mai sus.
| Mod | Ce face | Rezultatul | Schimbare |
|---|---|---|---|
| Fișier sursă | 900x606 PNG cu un canal alfa real | 942.4 KB | de bază |
| PNG fără compresie | oxipng nivel 3, complet fără pierderi | 383.9 KB | -59% |
| PNG dimensiune fișier mai mic | imagequant, reducerea paletei | 98.3 KB | -90% |

Ruta paletei consumă întâi degradele. Logo-urile plate și packshot-urile supraviețuiesc bine. O franjă de păr peste o umbră moale este locul unde apare bandingul, așa că verifică rezultatul la dimensiune completă înainte de a-l trimite. Compresia elimină de asemenea fiecare bucată de metadate: EXIF, GPS, profil ICC și miniatură încorporată. Orientarea supraviețuiește.
Poate să pună un fundal alb în spatele subiectului?
Nu va. Eliminatorul scrie alfa și se oprește acolo. Nu există nicio culoare de umplere și nicio imagine de înlocuire în instrument. Dacă vrei alb în spatele subiectului, rulează PNG-ul final prin PNG la JPG. Orice format țintă fără canal alfa primește transparența compusă pe alb, așa că JPEG și PDF îți oferă un fundal alb fără pași suplimentari. Dacă ai nevoie de decupajul la o dimensiune de pixel diferită, redimensionatorul scrie PNG fără pierderi, așa că alfa supraviețuiește și acelei călătorii. Decupatorul face același lucru pentru PNG, un fișier pe rând, până la 10 MB.
Ce fișiere pot să încarc și câte?
Zece fișiere și 50 MB pe lot. Selectorul acceptă JPEG, PNG, WebP, AVIF, GIF, BMP și ICO. SVG și HEIC sunt refuzate înainte de a începe orice lucru cu modelul, deoarece Chrome nu poate decoda niciunul: SVG este XML fără pixeli, iar HEIC este un container HEIF pe care doar Safari îl redă. Pentru un HEIC de iPhone, rulează mai întâi HEIC la PNG și aruncă rezultatul în eliminator, iar de ce Windows nu poate deschide acel fișier explică ce este în interiorul containerului. Fiecare ieșire păstrează numele de bază al fișierului sursă cu o extensie .png, așa că le vei recunoaște în folderul tău de descărcări, iar mai multe rezultate simultan vin ca background-removed.zip.
De ce a revenit decupajul meu complet gol?
O imagine fără subiect saliant returnează un PNG complet transparent, iar scăderea dimensiunii poate fi chiar interpretată ca o economisire. Verificăm asta, astfel încât să nu trimiti din greșeală un gol. După fiecare rulare, motorul eșantionează canalul alfa la o latură de 1024 px și numără pixeli care stau la alfa 64 sau mai sus. Dacă sub 0.1% din cadru supraviețuiește, cardul îți spune că nu a fost găsit niciun subiect. Peisajele, texturile și fundalurile plate ajung acolo în mod obișnuit. Fișierul este tot al tău pentru descărcare. Pur și simplu nu este un decupaj, iar nicio re-rulare nu-l va transforma într-unul.
Încearcă un fișier înainte de a aștepta zece. Aruncă un singur packshot pe eliminatorul de fundal, descarcă PNG-ul, apoi trimite acel PNG direct la compresor și alege "PNG dimensiune fișier mai mic". Compară cele două dimensiuni și decide care dintre ele ai trimite efectiv. Dacă acel decupaj merge și într-un document, pagina pe care o transformă o singură imagine odată ce devine PDF este măsurată separat.