rembg
Daniel Gatis, автор проекта · лицензия MIT
Убирает фон с фотографий: агент отдаёт папку снимков и получает PNG с прозрачным фоном. Локальные модели, в том числе проверенная u2net, обрабатывают снимки на вашем компьютере.
✓ Проверено 19.10.2026: Ubuntu 24.04 в одноразовом контейнере Docker на сервере, от root, без видеокарты: Python 3.12.3, uv 0.12.23, rembg 2.0.85 командой uv tool install "rembg[cpu,cli]==2.0.85", ONNX Runtime 1.31.0, модель u2net. Что именно проверяли
Какую задачу решает
Консольная программа, которая убирает фон с фотографий нейросетевой моделью. Локальные модели работают на компьютере, облачная withoutbg отправляет картинки в сервис withoutBG. Агент отдаёт ей снимок или целую папку и получает PNG с прозрачным фоном, маску или картинку на белом фоне. Так готовят фото товаров, портреты и логотипы для сайта и карточек на площадках.
- Команда rembg p обрабатывает папку целиком. В прогоне три тестовых снимка превратились в три PNG с прозрачным фоном, текстовый файл в той же папке программа пропустила, а при повторном запуске готовые файлы не тронула. Вложенные папки команда тоже обходит, но результат кладёт в одну папку по имени файла: структура подпапок теряется. При совпадении имён следующий снимок пропускается, потому что PNG с таким именем уже есть.
- Команда rembg i работает с одним файлом: ключ -om даёт чёрно-белую маску, с -bgc 255 255 255 255 фон получается белым. Без пути результата и с перенаправлением вывода PNG уходит в стандартный вывод.
- В справке версии 2.0.85 двадцать имён моделей, нужную выбирает ключ -m. В прогоне работала u2net: файл 175 997 641 байт, сумма md5 совпала с записанной в исходном коде программы.
- С заранее скачанной моделью и переменной ORT_DISABLE_TELEMETRY=1 задача в прогоне не открыла ни одного внешнего соединения.
Пример результата
Говоришь агенту
Убери фон со всех фото в папке photos моделью u2net и сложи PNG с прозрачным фоном в папку cutout.
Что получится
Мы прогнали этот сценарий на трёх тестовых снимках 400x400, которые скрипт нарисовал сам: предмет на однотонном фоне. Модель u2net скачали заранее командой rembg d u2net. Команда rembg p -m u2net photos cutout за 6,6 с на весь запуск создала cutout/cup.png, box.png и bottle.png, текстовый файл из папки пропустила. Все три файла RGBA, углы прозрачные, цвет предмета сохранился. Совпадение с нарисованной маской предмета (IoU) 0,996-0,997. Исходные фото не изменились.
Паспорт
- Кто делает
- Daniel Gatis, автор проекта
- Исходный код
- github.com/danielgatis/rembg
- Лицензия
- MIT
- Версия
- 2.0.85 на 19.10.2026
- Системы
- Linux · macOS · Windows
- Где работает
- На компьютере, на сервере и в контейнере
- Цена
- Бесплатно
- Проверка
- Проверено 19.10
Установить агентом
Установи программу «rembg». Работай по шагам и после каждого коротко говори, что сделал.
Что это за программа (каталог smyslokod.ru, официальные источники сверены 19.10.2026):
- исходный код: https://github.com/danielgatis/rembg
- инструкция по установке: https://github.com/danielgatis/rembg/blob/v2.0.85/README.md#installation
- актуальная версия на 19.10.2026: 2.0.85
- лицензия: MIT
- для работы нужно (обязательно): Python 3.11-3.13 - программа написана на Python, README называет версии от 3.11 до 3.13
- для работы нужно (очень желательно): uv - через uv программа встаёт в своё окружение и не задевает другие проекты на Python
Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Если ставишь из PyPI (пакет rembg), то только в отдельное окружение: uv tool install или pipx. В окружение проекта и в системный Python не ставь.
5. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
6. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
7. Всегда называй модель ключом -m.
8. Модель bria-rmbg (1 024 331 469 байт, коммерческое использование по договору с BRIA) ставь только после «да» человека.
9. Запускай rembg с переменной ORT_DISABLE_TELEMETRY=1 в окружении команды.
10. Ключ -d и модель withoutbg включай, только если человек это явно разрешил.
11. Переменную WITHOUTBG_API_KEY человек задаёт сам в окружении. В чате её не спрашивай и в команды не вставляй.
12. После rembg i проверь, что файл результата больше нуля байт.
13. Сервер rembg s запускай с --host 127.0.0.1.
Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
- на компьютере: убрать фон с пачки снимков на своём компьютере.
- на сервере: команда rembg s поднимает HTTP-сервер с запросом /api/remove. По умолчанию он слушает все адреса на порту 7000, сервер мы не запускали.
- в контейнере: мы проверяли в контейнере Ubuntu 24.04 от root. У проекта есть и свой образ Docker danielgatis/rembg, его мы не запускали.
1. Проверь, не стоит ли программа уже: rembg --version ; uv tool list. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Проверь, что есть всё нужное для работы: Python 3.11-3.13, uv. Чего нет, внеси в план отдельным пунктом. Проверь свободное место на диске: нужно Окружение программы в прогоне заняло 653 030 816 байт, ещё 655 733 681 байт осталось в кэше uv. Модели ложатся отдельно от окружения, в папку models внутри папки данных rembg. По исходному коду это ~/.rembg, а при заданных REMBG_HOME, XDG_DATA_HOME или U2NET_HOME - другая папка. В прогоне это был ~/.rembg/models: u2net - 175 997 641 байт, модель по умолчанию bria-rmbg - 1 024 331 469 байт по заголовку ответа GitHub. Команда rembg d без имени модели скачивает все локальные модели..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
Способы из официальных источников:
- macOS, Windows и Linux, uv: uv tool install "rembg[cpu,cli]==2.0.85" (Та же команда, что для Linux. Формулы rembg в Homebrew нет. На Mac мы не проверяли.)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
- rembg --version: программа запускается без ошибки;
- Скачай модель u2net командой rembg d u2net и сверь её сумму md5. Во временной папке нарисуй три снимка с предметом на однотонном фоне и маски предметов, положи рядом текстовый файл. Убери фон со всей папки командой rembg p -m u2net, проверь, что вышли три PNG с прозрачным фоном и предмет совпадает с маской. Сделай маску -om и белый фон -bgc, проверь код выхода на отсутствующем файле и что исходные снимки не изменились. Делай это во временной папке и не трогай мои файлы.
uv tool install "rembg[cpu,cli]==2.0.85"
export PATH="$HOME/.local/bin:$PATH" ORT_DISABLE_TELEMETRY=1; rembg --version
rembg d u2net
md5sum ~/.rembg/models/u2net/u2net.onnx
mkdir -p /work/rembg-test && cd /work/rembg-test || exit 1
"$(uv tool dir)/rembg/bin/python" -c "from PIL import Image,ImageDraw as D;import os;[os.makedirs(d,exist_ok=True) for d in('photos','masks')];g=lambda n,b,fg,i,m:(D.Draw(i).rounded_rectangle(b,30,fill=fg),D.Draw(m).rounded_rectangle(b,30,fill=255),i.save('photos/'+n+'.jpg',quality=92),m.save('masks/'+n+'.png'));[g(n,b,fg,Image.new('RGB',(400,400),bg),Image.new('L',(400,400),0)) for n,bg,fg,b in(('cup',(225,232,240),(200,40,40),(110,70,290,330)),('box',(240,228,205),(30,110,60),(90,110,310,300)),('bottle',(250,250,250),(30,60,170),(160,40,240,360)))]"
printf 'not an image\n' > photos/notes.txt
sha256sum photos/* > photos.sum
rembg p -m u2net photos cutout
ls cutout
rembg i -m u2net -om photos/cup.jpg cup-mask.png
rembg i -m u2net -bgc 255 255 255 255 photos/box.jpg box-white.png
"$(uv tool dir)/rembg/bin/python" -c "import numpy as n;from PIL import Image as I;[print(k,round(((a:=n.array(I.open('cutout/'+k+'.png'))[:,:,3]>128)&(b:=n.array(I.open('masks/'+k+'.png'))>128)).sum()/(a|b).sum(),3)) for k in('cup','box','bottle')]"
sha256sum -c photos.sum
rembg i -m u2net nope.jpg nope.png; echo "код $?"
uv tool uninstall rembg
rm -rf ~/.rembg
- если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS, Windows и Linux, uv: uv tool uninstall rembg; macOS и Linux, скачанные модели в папке по умолчанию: rm -rf ~/.rembg; Windows, скачанные модели в папке по умолчанию: Remove-Item -Recurse -Force $env:USERPROFILE\.rembg).
Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/rembg#problemyПромпт собран из официальных инструкций, сверенных 19.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.
Как ставят вручную
Способы из официальных источников, у каждого ссылка на первоисточник.
macOS, Windows и Linux · uv · источник
uv tool install "rembg[cpu,cli]==2.0.85"
Та же команда, что для Linux. Формулы rembg в Homebrew нет. На Mac мы не проверяли.
Как удалить
- macOS, Windows и Linux, uv:
uv tool uninstall rembg - macOS и Linux, скачанные модели в папке по умолчанию:
rm -rf ~/.rembg - Windows, скачанные модели в папке по умолчанию:
Remove-Item -Recurse -Force $env:USERPROFILE\.rembg
Что нужно для работы
- Python 3.11-3.13 (обязательно) - программа написана на Python, README называет версии от 3.11 до 3.13
- uv (очень желательно) - через uv программа встаёт в своё окружение и не задевает другие проекты на Python
Системы
- Linux - нужен Python 3.11-3.13. Мы проверяли Ubuntu 24.04 на x86_64 с Python 3.12.3, без видеокарты.
- macOS - ставится той же командой uv. Движок для видеокарт NVIDIA onnxruntime-gpu на macOS недоступен: pyproject.toml проекта исключает его для этой системы, там ставят вариант rembg[cpu,cli]. На Mac мы не проверяли.
- Windows - ставится той же командой uv. В выпуске на GitHub есть и установщик rembg-cli-cpu-installer.exe. На Windows мы не проверяли.
Где запускать
Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.
- На компьютере - убрать фон с пачки снимков на своём компьютере.
- На сервере - команда rembg s поднимает HTTP-сервер с запросом /api/remove. По умолчанию он слушает все адреса на порту 7000, сервер мы не запускали.
- В контейнере - мы проверяли в контейнере Ubuntu 24.04 от root. У проекта есть и свой образ Docker danielgatis/rembg, его мы не запускали.
Сколько ресурсов нужно
- Место на диске
- Окружение программы в прогоне заняло 653 030 816 байт, ещё 655 733 681 байт осталось в кэше uv. Модели ложатся отдельно от окружения, в папку models внутри папки данных rembg. По исходному коду это ~/.rembg, а при заданных REMBG_HOME, XDG_DATA_HOME или U2NET_HOME - другая папка. В прогоне это был ~/.rembg/models: u2net - 175 997 641 байт, модель по умолчанию bria-rmbg - 1 024 331 469 байт по заголовку ответа GitHub. Команда rembg d без имени модели скачивает все локальные модели.
- Память
- Один запуск rembg i с моделью u2net в прогоне занял до 858 792 КиБ памяти, по замеру getrusage.
- Видеокарта
- Видеокарта для работы не нужна. Для видеокарт NVIDIA и AMD есть варианты rembg[gpu] и rembg[rocm], мы их не проверяли.
- Сеть
- При установке uv качает пакеты с pypi.org и files.pythonhosted.org: в прогоне это Fastly: 151.101.0.223, 151.101.64.223, 151.101.128.223 и 151.101.192.223, порт 443. Ещё netwatch записал эти четыре IPv4 и IPv6 Fastly 2a04:4e42::223, 2a04:4e42:200::223, 2a04:4e42:400::223 и 2a04:4e42:600::223 с портом 0: так getaddrinfo в glibc выбирает адрес источника, connect без отправки данных. Модель u2net в прогоне программа скачала с GitHub: github.com (140.82.121.3) и release-assets.githubusercontent.com (185.199.108.133-185.199.111.133), порт 443. Дальше она бралась из папки моделей, пока файл там лежит. Модуль ONNX Runtime 1.31.0 по умолчанию шлёт телеметрию Microsoft. В прогоне без ORT_DISABLE_TELEMETRY=1 процесс с ONNX Runtime за 40 секунд открыл соединения с 20.42.65.85 и 20.42.65.89 на порту 443, с переменной - ни одного. Сама задача с готовой моделью и переменной в сеть не выходила. DNS контейнера - 127.0.0.11. Доступ из России мы не проверяли.
Скачивание u2net заняло 30 с. Папку из трёх снимков 400x400 программа обработала за 6,6 с в контейнере с тремя ядрами, повторный запуск по той же папке занял 2,3 с.
Лицензия и платные замены
Лицензия MIT. Саму программу можно использовать бесплатно, в том числе в работе. У каждой модели своя лицензия: модель по умолчанию bria-rmbg для коммерческого использования требует платного договора с BRIA, у u2net лицензия Apache-2.0. Текст лицензии
Цена: Бесплатно. Бесплатно, лицензия MIT. Лицензию модели проверяйте отдельно.
Платные замены
- Photoroom API - Облачный сервис удаления фона. На странице тарифов запрос Remove Background API в плане Basic стоит 0,02 доллара за картинку, картинки уходят на серверы сервиса. Спонсор проекта rembg.
- remove.bg - Сайт и API, которые убирают фон в облаке: картинки уходят на серверы remove.bg. Суммы тарифов мы не сверяли.
Бесплатные замены
- ImageMagick - Консольная программа для картинок. Ключами -fuzz и -transparent делает прозрачным заданный цвет, без нейросети, поэтому годится для однотонного фона.
О чём помнить
- Безопасность. Агент запускает rembg в терминале сам (exec). Программа читает картинки по путям, которые ей дали, команда p обходит папку вместе со всеми вложенными папками (read). Результат она пишет по пути, который задаёт агент, с правами пользователя (write). Ключ -d у rembg p после обработки удаляет исходные файлы, в прогоне так исчезли обе копии снимков (acts). При первом запуске модели программа качает её файл с GitHub в ~/.rembg (acts). Модель withoutbg по README отправляет картинки в облачный сервис withoutBG и требует ключа в переменной WITHOUTBG_API_KEY, её мы не запускали. Ключ человек задаёт сам в окружении программы, агент его не запрашивает и не принимает в чате.
- Модуль ONNX Runtime 1.31.0, который ставится вместе с rembg, по умолчанию отправляет Microsoft телеметрию: так написано в его Privacy.md. В отдельной пробе процесс rembg d отправил запрос DNS на mobile.events.data.microsoft.com и открыл соединение на порт 443. Отключает её переменная ORT_DISABLE_TELEMETRY=1, заданная до запуска, мы проверили это на Linux. Вызов disable_telemetry_events() по тому же документу отключает только часть событий, и в нашей пробе соединение после него всё равно было.
- Без ключа -m программа берёт модель bria-rmbg. Её файл весит 1 024 331 469 байт, а коммерческое использование по README требует платного договора с BRIA. На странице модели на Hugging Face лицензия некоммерческая, CC BY-NC 4.0.
- Текстовый файл rembg i в прогоне отклонила с кодом 1 и оставила пустой файл результата 0 байт. Команда rembg p такой файл в папке пропустила без сообщения.
- Команда uv tool uninstall rembg удаляет окружение программы. Скачанные модели остаются в папке данных rembg, обычно ~/.rembg. Перед удалением проверь переменные REMBG_HOME, XDG_DATA_HOME и U2NET_HOME: если одна из них задана, модели лежат в другой папке.
- Сервер rembg s по умолчанию слушает все адреса (0.0.0.0) на порту 7000, так задано в исходном коде. По README запрос /api/remove?url= заставляет его скачать картинку по адресу. Сами мы его не запускали.
Частые проблемы
Error: Invalid value for '[INPUT]': 'nope.jpg': No such file or directory, код 2
Входного файла по этому пути нет. Проверь путь. Папку целиком обрабатывает команда rembg p.
PIL.UnidentifiedImageError: cannot identify image file, код 1, файл результата 0 байт
На вход попал файл, который не картинка. Удали этот файл и передай настоящую картинку.
Error: Invalid value for '-m' / '--model': '...' is not one of ..., код 2
Такой модели в этой версии нет, список выводит сама ошибка. Возьми имя из списка, например u2net.
Проверка
✓ Проверено 19.10.2026: Ubuntu 24.04 в одноразовом контейнере Docker на сервере, от root, без видеокарты: Python 3.12.3, uv 0.12.23, rembg 2.0.85 командой uv tool install "rembg[cpu,cli]==2.0.85", ONNX Runtime 1.31.0, модель u2net.
- Когда
- 19.10.2026
- Среда
- Ubuntu 24.04 в одноразовом контейнере Docker на сервере, от root, без видеокарты: Python 3.12.3, uv 0.12.23, rembg 2.0.85 командой uv tool install "rembg[cpu,cli]==2.0.85", ONNX Runtime 1.31.0, модель u2net
- Объём
- Установили и прогнали задачу на тестовых данных
- Что именно сделали
- Одноразовый контейнер Ubuntu 24.04 без данных и ключей, rembg в нём не было. Команда uv tool install "rembg[cpu,cli]==2.0.85" поставила 82 пакета за 5,6 с, окружение заняло 653 030 816 байт. rembg --version вывела rembg, version 2.0.85.
- Проверили телеметрию ONNX Runtime 1.31.0: в её библиотеке есть адрес mobile.events.data.microsoft.com. Процесс с ONNX Runtime без переменной за 40 с открыл два соединения на порт 443 (20.42.65.85 и 20.42.65.89), с ORT_DISABLE_TELEMETRY=1 ни одного. Дальше всё шло с этой переменной.
- Команда rembg d u2net скачала модель с GitHub за 30 с в ~/.rembg/models/u2net: 175 997 641 байт, md5sum дала 60024c5c889badc19c04ad937298a77b, как записано в исходном коде rembg.
- Скрипт сам нарисовал три снимка 400x400 (красный, зелёный и синий предмет на светлом однотонном фоне), маски предметов для сверки и положил в папку текстовый файл. Суммы sha256 исходников записали.
- Сценарий примера: rembg p -m u2net photos cutout за 6,6 с создала cutout/cup.png, box.png и bottle.png, текстовый файл пропустила. Скрипт проверил: RGBA 400x400, углы прозрачные, цвет предмета совпал с нарисованным, совпадение с маской (IoU) 0,9956, 0,9958 и 0,9965. Повторный запуск за 2,3 с готовые файлы не тронул.
- rembg i -om дала маску в оттенках серого, совпадающую с нарисованной. С -bgc 255 255 255 255 фон стал белым. Без пути результата и с перенаправлением вывода PNG ушёл в стандартный вывод, файл .out.png не появился. Чтение из канала дало тот же результат.
- rembg p -d на копии двух снимков создала два PNG и удалила оба исходника. Один запуск rembg i занял до 858 792 КиБ памяти. Коды выхода: нет файла и неизвестная модель - 2, нет папки у rembg p - 2, текстовый файл на входе rembg i - 1, файл результата остался пустым, 0 байт.
- Задача с готовой моделью ни одного внешнего соединения не открыла. Исходные снимки не изменились, sha256sum -c прошла. uv tool uninstall rembg удалила программу, после hash -r команды rembg нет. Модели удалили командой rm -rf ~/.rembg.
- Отдельно все 17 команд taskCommands карточки выполнили подряд в одной оболочке с чистого места, каждая завершилась с кодом 0, IoU снова 0,996-0,997. Значок вырезали из logo.png репозитория. Все проверки скрипт делал сам и только после них печатал TASK_OK.
| Дата | Версия | Объём | Где | Итог |
|---|---|---|---|---|
| 19.10.2026 | 2.0.85 | задача | контейнер, Linux | получилось |
«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.
Похожие программы
Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.