EnglishРусский Map

CutItOut

title
CutItOut
type
toolbox
summary
Инструмент для удаления фона в браузере: запускает U2-Net в WebAssembly, так что изображения не покидают устройство
tags
typescript, webassembly, image-processing, local-ai, privacy
language
TypeScript
license
Apache-2.0
created
2026-07-23
updated
2026-07-23
lang
ru
translation_of
cut-it-out
source_updated
2026-07-23
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

CutItOut вырезает фон из изображения и возвращает прозрачный PNG в полном разрешении. Вся работа происходит прямо во вкладке браузера, без загрузки на сервер и без создания аккаунта, ради чего инструмент и создавался: коммерческие аналоги требуют отправки картинки к себе, а большинство из них ещё и добавляет водяные знаки или урезает итоговое разрешение.

Как это работает

Модель сегментации - U2-Net, детектор ключевых объектов (salient-object detector), запускаемый через библиотеку @imgly/background-removal. Эта библиотека поставляет модель в формате ONNX и исполняет её с помощью ONNX runtime, скомпилированного в webassembly, поэтому инференс происходит прямо на странице. Сервера инференса нет, так что стоимость хостинга равна стоимости любого статического сайта, а гарантия приватности обеспечена архитектурно, а не обещаниями в политике конфиденциальности: байты никогда не покидают устройство.

Остальная часть проекта - интерфейс редактирования поверх маски, созданной моделью. Автоматическая сегментация ошибается на краях волос, стекле и низкоконтрастных границах, поэтому здесь предусмотрены волшебная кисть для добавления или удаления областей по схожести цвета, режим восстановления (показывает удалённые пиксели полупрозрачным слоем, пока вы закрашиваете их обратно), а также масштабирование и панорамирование для работы на уровне пикселей. Экспорт происходит в полном разрешении.

Сборка представляет собой приложение на Vite, а на выходе получается директория dist/, которую можно выложить на любой статический хостинг.

git clone https://github.com/Suvink/cut-it-out.git
cd cut-it-out
npm install
npm run dev     # http://localhost:5173
npm run build   # dist/, deployable to Vercel, Netlify, Pages

Ограничения

Модель и рантайм должны скачаться до обработки первого изображения, поэтому первый запуск на холодном кэше медленный, а офлайн-режим недоступен, пока файлы не загрузятся. Инференс упирается в процессор (CPU-bound WebAssembly); обработка больших изображений на скромном ноутбуке занимает ощутимые секунды. U2-Net - универсальная модель для выделения ключевых объектов, а не специализированная модель для портретного вырезания (matting), поэтому она неплохо справляется с одним чётким объектом, но сбоит на нескольких объектах, тонких волосах и полупрозрачных краях - отсюда и необходимость в ручной кисти.

Почти вся ценность здесь кроется в @imgly/background-removal и весах U2-Net; CutItOut - это просто интерфейс редактирования вокруг них. Это не столько критика инструмента, сколько замечание о том, где кроются риски зависимостей. В репозитории не было коммитов со дня публикации в декабре 2025 года, что для небольшого автономного статического приложения скорее означает "завершено", чем "заброшено", однако улучшения upstream-модели или рантайма сами по себе сюда не попадут.

Репозиторий: github.com/Suvink/cut-it-out - ~435 звёзд, Apache-2.0, TypeScript.