
Как я сделал Smart Select для Krita: локальное AI-выделение объектов по лассо
BMFreed 35 минут назад Как я сделал Smart Select для Krita: локальное AI-выделение объектов по лассо Средний 5 мин 1.2K Софт Программирование * Обработка изображений * Open source * Кейс Из песочницы Я недавно начал...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: BMFreed 35 минут назад Как я сделал Smart Select для Krita: локальное AI-выделение объектов по лассо Средний 5 мин 1. 2K Софт Программирование * Обработка изображений * Open source * Кейс Из песочницы Я недавно начал пользоваться Krita, и после Фотошопа основной болью для меня было отсутствие удобного инструмента для умного выделения объектов. Мне захотелось попробовать сделать плагин, который будет реализовывать такую функцию, используя локальную модель.
Пользователь обводит объект лассо. Нажимает кнопку Select object with AI. Плагин локально строит мягкую alpha-маску.
Технические детали
Krita получает обычное выделение, с которым дальше можно работать штатными инструментами. Назвать плагин я решил Krita Smart Select. Репозиторий: это нужноОбычное лассо хорошо работает, когда границы простые.
Но как только появляютсяволосы, прозрачные поверхности, мягкие края, стекло, сложный фон или мелкиедетали, ручное выделение быстро превращается в боль. Мне хотелось сделать инструмент, который на основе выделенной пользователем области сам понимает, как «вырезать» объект из окружения:ДоПосле (внимание на очки)Пример с волосами - доПослеКак выглядит пользовательский сценарийВ текущей версии сценарий такой:1. Выбираем инструмент Smart Select.
Обводим объект обычным лассо. При необходимости редактируем область выделения стандартными действиями Krita: replace, add, subtract, intersect. Нажимаем Select object with AI.
Отраслевые последствия
Получаем soft selection внутри выбранной области. Результат жёстко ограничивается исходным пользовательским выделением иalpha-каналом документа. То есть модель не может внезапно выделить объект запределами области, которую пользователь сам разрешил.
Почему не SAMИзначально я экспериментировал с SAM2 и MAM refinement-пайплайном. Набумаге это выглядело логично: SAM строит маску, matting-модель уточняет края. На практике оказалось, что для пользовательского инструмента это слишкомкапризно:- SAM может недобрать или перебрать объект;- refinement может улучшить края, а может и ухудшить.
И не всегда исправляет плохой prior;- нужно подбирать prompt-стратегию;- pipeline становится сложным и плохо предсказуемым. В итоге я стал копать в другую сторону — начал искать модель, которая выполнит поставленную задачу с минимумом настроек (вставил и завёл), но при этом куда эффективнее, чем SAM+MAM. Звучит как довольно амбициозный запрос, но модель такую я в итоге всё же нашёл, и это ZhengPeng7/BiRefNet_HR-matting.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





