ну што мабойс, начинаем неделю с оптимизации работы
когда мне в работе нужны вырезанные картинки, я как правило иду на removebg, сервисов таких масса, но проблема почти везде одна и та же:
- либо нет пакетной обработки
- либо бесплатная версия шакалит качество
- либо ограничения по количеству
- либо нужно грузить все руками и тратить время на рутину(а мы ленивые)
в какой-то момент задумался: а это же по сути нейросеть, значит скорее всего можно гонять локально прямо на пк. покопался, потестил. можно
теперь у меня это работает вообще без сайтов, локально, пакетно, без пережатия качества, мам, пап и кредитов
сделал себе 2 bat-скрипта:
pipeline - просто берет все картинки из папки и прогоняет через несколько ai-моделей удаления фона сразу: isnet, birefnet, human_seg и alpha matting.
вот его код:
@echo off
chcp 65001 >nul
color 0A
setlocal enabledelayedexpansion
set OUT_DIR=output
if not exist "%OUT_DIR%" mkdir "%OUT_DIR%"
if not exist "%OUT_DIR%\temp" mkdir "%OUT_DIR%\temp"
echo.
echo === AI Background Removal Pipeline ===
echo.
for %%f in (*.png *.jpg *.jpeg *.webp) do (
echo.
echo =====================================
echo Processing: %%f
echo =====================================
rembg i -m isnet-general-use "%%f" "%OUT_DIR%\%%~nf_isnet.png"
rembg i -m birefnet-general "%%f" "%OUT_DIR%\%%~nf_birefnet.png"
rembg i -m u2net_human_seg "%%f" "%OUT_DIR%\%%~nf_human.png"
rembg i -a -af 250 -ab 5 -ae 5 "%%f" "%OUT_DIR%\%%~nf_alpha.png"
echo Done: %%f
)
echo.
echo === FINISHED ===
pausewatcher - уже более удобная штука для потока: он просто постоянно мониторит папку и как только ты кидаешь туда картинку - автоматически удаляет фон и раскладывает все по папкам
вот его код:
@echo off
chcp 65001 >nul
color 0A
setlocal enabledelayedexpansion
set OUT_DIR=output
set CUT_DIR=cut
set CHECK_DELAY=3
if not exist "%OUT_DIR%" mkdir "%OUT_DIR%"
if not exist "%CUT_DIR%" mkdir "%CUT_DIR%"
echo.
echo === AI Background Removal Watcher ===
echo Monitoring folder every %CHECK_DELAY% seconds...
echo Put images here: png / jpg / jpeg / webp
echo.
:watch_loop
set FOUND=0
for %%f in (*.png *.jpg *.jpeg *.webp) do (
if exist "%%f" (
set FOUND=1
echo.
echo =====================================
echo Processing: %%f
echo =====================================
rembg i -m isnet-general-use "%%f" "%OUT_DIR%\%%~nf_isnet.png"
rembg i -m birefnet-general "%%f" "%OUT_DIR%\%%~nf_birefnet.png"
if exist "%OUT_DIR%\%%~nf_isnet.png" (
move /Y "%%f" "%CUT_DIR%\%%f" >nul
echo Moved original to: %CUT_DIR%\%%f
) else (
echo ERROR: %%f was not processed correctly
)
echo Done: %%f
)
)
if "%FOUND%"=="0" (
echo No new images found...
)
timeout /t %CHECK_DELAY% /nobreak >nul
goto watch_loop для тех, кто вообще не шарит как это поставить, буквально пошагово:
- установить python(галочку add python to PATH обязательно прожмите)
- открыть cmd: жмем ctrl+R, вводим cmd. enter
- по очереди вставить команды:
pip install rembg
pip install onnxruntime - создать папку в удобном месте
- внутри создать txt-файл и вставить в него один из скриптов
- сохранить файл и поменять расширение с .txt на .bat
- закидываете в папку со скриптом картинки и запускаете его
если нужен именно потоковый режим - используете watcher если разово обработать пачку - pipeline
мне это за последние несколько дней ощутимо ускорило работу, надеюсь и вы поймете как с помощью этого ускорить свою работу 👁
если будут сложности - пишите в комменты



Дискуссия