How it works
Everything happens on your device, in three stages: the browser decodes the picture, a segmentation model finds the subject, and the edges are fitted to the full-size photo. Nothing is sent anywhere.
1. Decoding
The browser's own image decoder opens the file, honouring the orientation stored in a phone photo. Two copies are made: the full picture, and a 1024 by 1024 square stretched copy for the model. The stretch is deliberate, because the model was trained on stretched squares and expects one.
2. The model
The subject is found by BiRefNet lite, an open model released under the MIT licence, running through ONNX Runtime inside a web worker on your graphics card through WebGPU. Before anything is fetched, the page checks what the graphics chip allows: some integrated chips allow fewer buffers per shader than one of the model's kernels needs, and would refuse it. Those devices, and browsers without WebGPU, get U-2-Net instead, under the Apache-2.0 licence, at 320 by 320 pixels on the processor. It is coarser at the edges; the refinement step below recovers much of that, and the stats bar under the picture says which model ran.
On a first visit a very small model, U-2-Netp (4.6 MB), answers within seconds so there is something to look at, and even to download, while the main model gets ready. When the main model is ready its answer replaces the first one.
Every model file is served by getpng.app itself, so the page talks to no other site. U-2-Net's weights are stored compressed, 44 MB instead of 176 MB: each weight is kept as an 8-bit number with one scale per channel and expanded back when the model starts, and on our four sample photographs its cutouts overlap the uncompressed model's by 97% (a portrait with flying hair, where the difference is in single strands) to 99.8% (a product). The browser keeps the files in its cache, so every later picture starts at once and the tool keeps working with no connection at all.
The model answers with a soft alpha: not a yes or no per pixel but a value between, which is what a strand of hair or a blurred edge actually is. That softness is kept.
3. Edges at full resolution
A 1024 pixel answer (or a 320 pixel one) enlarged to a 6000 pixel photo is a blur several pixels wide along every edge. This is the step where other tools stop, or charge. getPNG runs a guided filter instead: in every small window it fits the coarse alpha to the colours of the full-size photo with a linear model, so the cutout lands on the real pixel edges of your picture, following hair against sky and fur against grass, rather than on an enlarged guess. The picture guides its own mask.
The Edge shift and Feather controls work on that refined alpha afterwards and never run the model again, which is why they answer in a fraction of a second on a large picture.
What is not done yet
- A brush for restoring or erasing one area by hand.
- Colour decontamination, which re-estimates the colour of semi-transparent edge pixels so hair does not carry a tint of the old background.
- Batch processing with a ZIP download.
- A separate portrait model, and a non-AI mode for flat graphics and logos.
The facts
- What it does
- Removes the background from a photo or picture and gives back a transparent PNG (or WebP, or a JPG on a colour) at the full resolution of the original.
- Input formats
- JPG, PNG, WebP, AVIF, GIF, BMP and HEIC (iPhone photos). Drag a file anywhere on the page, choose one, or paste it from the clipboard. HEIC is decoded in the browser by libheif, which is fetched from getpng.app the first time a HEIC photo is dropped (about 2 MB, then cached); only the primary photo of the file is used.
- Output
- A transparent PNG at the size of the original; WebP with transparency; or a JPG, PNG or WebP on a colour of your choice. No watermark, no size cap: a 24-megapixel photo comes back as 24 megapixels.
- Where it runs
- Entirely in your browser. The main model runs on your graphics card through WebGPU where the browser has it; a lighter model runs on the processor through WebAssembly otherwise. Nothing is uploaded and there is no server-side processing.
- The models
- BiRefNet lite (MIT licence) at 1024 x 1024 pixels on the graphics card, where the graphics chip can run it; U-2-Net (Apache-2.0 licence) at 320 x 320 on the processor otherwise, with its weights compressed from 176 MB to 44 MB and its cutouts almost unchanged (97 to 99.8 percent overlap with the uncompressed model on the sample photographs). A small U-2-Netp model (Apache-2.0, 4.6 MB) gives a first result within seconds on a first visit while the main model gets ready. All of them are served by getpng.app itself, fetched once and kept in the browser's cache, so later pictures start at once and the tool keeps working with no connection.
- Full resolution
- The model answers at 1024 pixels (320 on the processor). getPNG then fits that answer to the real edges of the full-size picture with a guided filter, so the cutout follows the pixels of your photo rather than a blurred, enlarged mask. This is the step other tools sell as an HD tier.
- Adjusting
- Edge shift grows or shrinks the cutout by up to five pixels; Feather softens the edge; Clean edge colour takes the old background back out of the soft pixels along the edge, which is the coloured rim a cutout from a lawn or a blue wall otherwise keeps. All three apply at full resolution and take a fraction of a second, because the model does not run again.
- Drop shadow
- An optional soft shadow, built from the cutout's own outline rather than from a second pass of the model: strength, softness, distance and direction are yours to set. It is drawn under the subject and saved into the file, so a product shot reads as placed on the page rather than pasted onto it. Softness and distance are shares of the subject, so the same settings look the same on a small picture and a large one.
- Sizes
- One cutout can be saved at several sizes at once: the picture's own size, a tight crop around the subject, and fixed canvases for an Instagram post (1080 x 1080) or story (1080 x 1920), a YouTube thumbnail (1280 x 720), a profile picture (512 x 512) or a square product shot (1600 x 1600). Each canvas is previewed in the panel, and the preview is the file: fit the whole subject inside a margin you choose, or fill the canvas and let the rest fall outside it, then drag the subject where you want it. It is never enlarged past its own pixels, so a small subject is placed at its own size rather than blown up. Ask for more than one and they arrive as a single ZIP.
- Backgrounds
- Transparent, white (exactly #FFFFFF), black, or any colour from a colour picker. The preview shows the cutout over the background you pick, and the compare view puts the original beside it.
- Converters
- The converter pages (WebP, JPG, AVIF, GIF, JFIF and HEIC to PNG; HEIC to JPG; PNG to JPG, to WebP and to ICO) change a file's format in the browser with the browser's own decoder and encoder: many files at once, at full size, saved one by one or together as a ZIP, nothing uploaded. PNG output is lossless, and an ICO holds the picture at 16, 32, 48 and 256 pixels square, each stored as a PNG. Metadata such as EXIF, camera details and GPS location is not carried into the new file, only the first frame of an animation is kept, and a JPG gets a colour of your choice behind transparent areas, because JPG cannot hold transparency.
- Price
- Free. No account, no sign-up, no credits, no watermark, no file limit imposed by us. getPNG is paid for by optional tips on Ko-fi (ko-fi.com/getpng); nothing in the tool is locked behind them.
- Your picture
- It never leaves your device. Removing the background, refining the edges and saving the file all happen inside your browser tab; getPNG has no server that could receive a picture. You can check it: open the browser's network tab while you remove a background and no request carries the image, and after your first picture you can switch the browser to offline and it still works. The page itself is kept on your device too, by a service worker, so it opens with no connection at all: what it stores is this site's own pages, scripts and fonts, never anything of yours.
- Memory
- A very large picture on a phone with little memory is processed at a reduced size rather than crashing the tab, and the page says so when it happens.
- Analytics
- The site keeps its own daily counts: how many backgrounds were removed, on which tool page and with which runtime, how many files were saved in each format, how many files were converted from which format to which, and which passport documents photos were made for. Each is one number per day per item, from a short fixed list, with no identifier attached. It also uses Google Analytics, loaded through Google Tag Manager, to measure visits and pages, as most websites do. Google Analytics also receives which runtime ran the model, which file format a cutout was saved in, whether a sample picture was tried, and on a converter page which format was converted to which. Nothing about your images is collected: no file names, no dimensions, no colours, nothing derived from the picture, and the site's security policy stops any tag from sending data anywhere but Google Analytics.
- Sibling tool
- getSVG (getsvg.app) turns a picture into an editable SVG. A cutout from getPNG is a good input to it: a logo photographed on a wall becomes a clean vector in two steps.