Como funciona
Da sua foto a um PNG transparente, sem sair do seu dispositivo
O Backgrounds Remover roda um modelo de segmentação dentro da aba do navegador. Veja cada etapa, o que é baixado e quanto tempo leva.
Três etapas, todas dentro do navegador
1. O navegador abre a imagem
O arquivo é lido pela File API e decodificado pelo próprio decodificador de imagens do navegador, dentro de um Web Worker. A imagem nunca é enviada.
2. O modelo de IA encontra o objeto
Os pixels vão para um motor WebAssembly que roda o modelo IS-Net, que dá a cada pixel uma nota de primeiro plano ou fundo.
3. Você recebe um PNG transparente
Essa nota vira o canal alfa dos pixels originais. O PNG transparente no tamanho da sua imagem é codificado no worker; para branco, uma cor ou um tamanho quadrado, o próprio script da página, na sua aba, monta e codifica o arquivo antes de você salvar.
O modelo: IS-Net
O recorte vem do IS-Net, um modelo publicado pelos autores do projeto de pesquisa DIS (Dichotomous Image Segmentation) na ECCV 2022. Ele analisa uma versão de 1024 x 1024 da sua imagem e prevê, para cada pixel, a probabilidade de ele pertencer ao objeto principal. Essa previsão é redimensionada de volta para o tamanho da imagem e usada como transparência, então bordas suaves, como cabelo, mantêm transparência parcial em vez de um contorno duro.
O motor: ONNX Runtime compilado para WebAssembly
O modelo roda no ONNX Runtime, o motor de inferência de código aberto da Microsoft, que nós compilamos a partir do código-fonte para WebAssembly junto com o nosso próprio pré-processamento e pós-processamento em C++. Não há nenhum runtime pronto de terceiros. Existem quatro versões, e a página escolhe uma quando você começa:
- WebGPU quando o navegador expõe um adaptador gráfico. Esta versão também é WebAssembly, e a matemática pesada do modelo roda na GPU.
- CPU com várias threads quando o WebGPU não está disponível. A página envia os cabeçalhos de isolamento entre origens que as threads do WebAssembly exigem e usa uma thread por núcleo lógico (thread de hardware).
- Versões com uma única thread das duas anteriores, usadas automaticamente se o navegador não consegue rodar threads. A versão para CPU com uma única thread é mais lenta (29,9 s no benchmark abaixo, contra 13,8 a 16,0 s com quatro threads; a versão WebGPU com uma única thread não foi cronometrada); nos nossos testes, o recorte da versão para CPU com uma única thread fica a no máximo 3 níveis de 255 do resultado esperado, o mesmo limite que a versão para CPU com várias threads cumpre.
Se a placa de vídeo não conseguir iniciar o modelo, a página muda sozinha para a versão de CPU.
Por que sua imagem nunca é enviada
A decodificação, o modelo e o PNG transparente no tamanho da sua imagem rodam em um Web Worker na sua aba; colocar o objeto sobre branco, uma cor ou um tamanho quadrado é feito pelo próprio script da página, na mesma aba. O servidor não tem nenhum endpoint que aceite imagens. Veja o que o site recebe, o que fica no seu navegador e como conferir você mesmo.
A primeira execução baixa o modelo
O arquivo do modelo tem 176 MB. Ele é servido em partes menores que 25 MB, e cada parte é conferida com uma impressão digital SHA-256 antes do uso, então um download corrompido é rejeitado em vez de gerar um resultado quebrado. As partes verificadas ficam no Cache Storage do navegador, e as próximas imagens, e as próximas visitas enquanto o navegador as mantiver, não precisam baixá-las de novo.
Quanto tempo leva
Estes números vêm do benchmark do próprio motor em um servidor na nuvem com 4 CPUs virtuais (quatro threads) e 15 GB de memória, no Chrome headless, com as versões para CPU. São uma referência, não uma promessa: o seu tempo depende do processador, e os tempos com WebGPU em placas de vídeo reais ainda não foram medidos. A linha de memória foi medida no mesmo tipo de servidor, no Chromium para desktop, com uma aba nova para cada foto.
| O que | Medido |
|---|---|
| Download do modelo de IA (primeiro uso) | 176 MB |
| Download do motor WebAssembly (versão para CPU) | 11,3 MB |
| Execução completa no Chrome, 4 threads, imagem 512 x 512 | 13,8 s |
| Execução completa no Chrome, 4 threads, imagem 451 x 300 | 16,0 s |
| Execução completa no Chrome, versão para CPU com uma única thread, imagem 640 x 427 | 29,9 s |
| Pico de memória da aba do navegador, foto comum (Chromium para desktop, 4 threads) | cerca de 1,2 GB |
| Pico de memória da aba do navegador, foto de 16 megapixels (Chromium para desktop, 4 threads) | cerca de 1,6 GB |
Limites que vale conhecer
- Imagens com mais de 16 megapixels são reduzidas antes, então a imagem baixada tem no máximo 16 megapixels. As opções quadradas de Tamanho recortam em volta do objeto; 1080 x 1080 e 2048 x 2048 ampliam um recorte menor, o que pode deixá-lo sem nitidez.
- Na nossa medição no Chromium para desktop, em um computador com 4 CPUs virtuais, a aba do navegador usou cerca de 1,2 GB de memória com uma foto comum e até cerca de 1,6 GB com uma foto de 16 megapixels. Processar muitas fotos grandes na mesma visita pode levar a aba a cerca de 2 GB. Celulares e tablets com pouca memória livre podem falhar; a página avisa quando consegue detectar isso, e em alguns celulares o que acontece é que o navegador recarrega a aba.
- O modelo mantém o objeto mais proeminente. Cabelo fino, pelos, vidro e fumaça podem sair imperfeitos, e cenas cheias com vários objetos podem manter ou descartar partes que você não esperava.
- O resultado é um PNG com fundo transparente, branco ou de uma cor personalizada, ou um JPG quando o fundo é branco ou colorido (um JPG não pode ser transparente). Colocar o objeto sobre outra foto é trabalho para o seu editor de imagens, assim como o acabamento das bordas: veja como limpar halos e bordas serrilhadas.
Em que testamos
Além das fotos de teste usadas para conferir a precisão do motor, passamos três imagens de teste típicas pelo motor do site (a versão para CPU) em 17 de setembro de 2026 e olhamos cada borda sobre um fundo quadriculado:
- Um logo chapado sobre branco: bordas limpas, e o vão fechado dentro do sinal de visto também ficou transparente. Veja logo com fundo transparente.
- Uma assinatura em tinta azul sobre papel texturizado: o traço principal, mais grosso, saiu limpo, mas um sublinhado fino e claro quase sumiu. Use uma caneta de traço grosso; veja assinatura com fundo transparente.
- Um retrato de estúdio: as bordas do cabelo mantiveram a transparência parcial, com um pouco de fundo sobrando ao lado de um objeto grande e escuro na borda da imagem. Veja fundo para foto de perfil.
Os componentes de código aberto e suas licenças estão na página de créditos de código aberto.
Teste com a sua própria foto
Roda no seu navegador. Sua imagem nunca sai do seu dispositivo.