Содержимое
Продолжаем "революционировать" в SD. А точнее - в недавнем Segment Anything. Туда, как и обещали авторы, добавили ещё один инструмент - Grounding DINO! Давайте разберём зачем вообще нужен этот Динозаврик. А поможет он ещё более чётко работать с масками и размечать датасеты под обучения. Кто уже попробовал Сегментацию могли заметить, что очень мелкие детали довольно сложно "поймать" маской. Выделить глаза или уши, например, та ещё задача. Или, если у вас на картинке много лиц, а заинпаинтить по маске надо только одно - придётся вручную править маску. Но Dino решает эти проблемы очень легко! Обновив расширение в блоке сегмент появится дополнительные опции для включения новой фитчи и промта под неё. И, например, вписав в промт Граудинга "eyes" можно поймать глаза вообще не проставляя точки позитива и негатива! В этом случае текстбокс сработает заместо этих точек. Плюс ко всему, этот инструмент ещё и разделит глаза на разные выделения, и в маску можно отправить только один глаз для инпаинта. Ну или это применимо для одного лица из множества, как я писал выше. Как пользоваться показано на картинках выше. Пройдёмся пошагово: 1) Раскрываем блок Сегментирования в и2и (не забывайте выбрать чекпоинт, H - самый крутой, как мы помним), выбираем нужную картинку, выставляем галочку Enable GroundingDINO и ниже - I want to preview GroundingDINO detection. У Дино тоже есть свои веса, не забываем выбирать и их (скачаются автоматически). Вписываем то, что нужно найти, и обращаем внимание на ползунок Threshold - это будет ваш любимый ползунок. Он позволяет редактировать силу отсейки результатов, погоняв его туда-сюда легко получить нужное. 2) Далее - нажимаем под загруженной картинкой кнопку Генерации, смотрим что повыделял нам Dino. Если результат примерно нужный (два уха - две области выделения, примерно на тех местах), идём дальше, если нет - играем с ползунком отсейки. Выше несколько картинок, показывающие различные значения. Если слишком маленькое значение - полезут лишние коробочки, если слишком высокое- не появится ничего. Каждый раз это значение индивидуально. 3) Крутим ещё ниже (да, расширение получилось монструозное по длине). Там у нас будет выбор, какие квадраты передать в Сегментацию (отмечаются галочками), и, собственно, дальше всё как в предыдущий раз. Нажимаем Превью, чуть-чуть ждём, выбираем понравившуюся маску, выставляем галку Копировать в инпаинт-маску, и в самом низу появилась удобная кнопочка - Switch to Inpaint Upload - которая передаст нашу маску и изначальное изображение на нужную подвкладку. 4) Наконец, возвращаемся в самый верх. Там вы видим, что на нужную вкладку нас переключило, но маски и картинки, опять, не видно. Но это не беда, нажав на "генерацию" мы увидим что нужные данные подрузились и работают как надо. Не забывайте написать промт и использовать инпаинтные модели, для лучших результатов. 5) Так же, в сегментации появилась ещё одна полезная галочка - Расширить маску. Полезно, когда нужно выбрать область чуть больше, чем выделилась. Например, на скрине выше я выделил по маске глаз кролика, расширил маску, и сделал ему глазки побольше и сместил их относительно оригинала. В общем и частном получился отличный инструмент для генерации масок. Поначалу выглядит сложно, но попробуйте - это очень легко и быстро на практике. Ещё раз ссылка на расширение, если вы её потеряли. На страничке есть несколько поясняющих видео. Пара уточнений по установке. Во-первых, обновление/установка его займёт какое-то время, потому что Динозаврику нужно скомпилировать ядро под вашу систему. Соответственно, требования как и у иксформесов - установленный С++ компилятор и Cuda. Во-вторых, я ставил на начальных билдах и в них нужно было что бы версия Куды-торча совпадала с версией установленной в системе Куды. В автоматике, по умолчанию, Куда-торч ставится 11.7 и мне пришлось сносить свою системную 12.0 Куду и ставить 11.7 что бы всё заработало. Возможно, в текущей версии это уже поправили, но имейте ввиду - будут ошибки при перезапуске, вы знаете что делать.