LaMa - Когда нейросеть стирает лишнее, а вы – восхищаетесь результатом
Репозиторий давно не обновлялся
Последнее обновление было 1 год назад.
Представьте ситуацию: вы сделали идеальный кадр, но на заднем плане затесался случайный прохожий, или на старой семейной фотографии появилась досадная царапина. Что делать? Доставать Photoshop, тратить часы на кропотливое замазывание дефектов вручную? А если таких фотографий десятки или сотни? Знакомая головная боль, не правда ли?
Сегодня мы поговорим о проекте, который превращает эту рутину в настоящую магию. Встречайте – LaMa (Large Mask Inpainting with Fourier Convolutions), нейросеть для инпейнтинга изображений, разработанная командой российских исследователей. Это не просто ещё один инструмент для удаления объектов, это прорыв, который меняет правила игры, особенно когда речь идёт о высоком разрешении и сложных задачах.
Что такое LaMa и почему она так хороша?
Суть инпейнтинга – заполнение пропущенных или закрытых частей изображения максимально реалистично, без видимых артефактов. И LaMa справляется с этой задачей феноменально. Её главная особенность – удивительная устойчивость к разрешению (resolution-robustness). Представьте: модель обучали на изображениях размером всего 256x256 пикселей, а она легко масштабируется и выдает превосходные результаты на картинках до 2000x2000 пикселей! Это как если бы вы научили художника рисовать миниатюры, а он вдруг начал создавать огромные фрески, не теряя ни единой детали.

Проект был представлен Романом Суворовым, Елизаветой Логачевой, Антоном Машихиным и другими соавторами, и быстро завоевал признание благодаря своей эффективности. Если вы когда-либо сталкивались с необходимостью быстро и качественно "стереть" что-то с картинки, LaMa – ваш новый лучший друг.
Ключевые фишки LaMa, которые вас удивят
Давайте разберёмся, что делает LaMa такой особенной:
1. Масштабируемость без потери качества
Как я уже упомянул, это одна из главных "суперсил" LaMa. Большинство моделей инпейнтинга "заточены" под конкретное разрешение. Попробуйте подать им изображение в 4K после обучения на 256x256, и вы получите либо артефакты, либо размытие. LaMa же благодаря своему архитектурному подходу с Фурье-свёртками сохраняет целостность и детализацию даже при значительном увеличении разрешения входного изображения. Это снимает огромное количество ограничений для разработчиков и дизайнеров.
2. Мастерство в работе с большими и сложными масками
Не просто удалить маленькую точку, а восстановить значительную часть изображения – вот где LaMa показывает себя во всей красе. Она отлично справляется с крупными областями, которые нужно "дорисовать", и даже с такими коварными элементами, как периодические структуры (например, узоры на обоях, кирпичная кладка, решётки). Там, где большинство других алгоритмов начинают "плыть" или генерировать повторяющиеся, неестественные паттерны, LaMa демонстрирует удивительную правдоподобность.
3. Магия Фурье-свёрток
В основе этой уникальной способности лежат Фурье-свёртки. Не будем глубоко вдаваться в математические дебри, но если коротко: обычные свёртки обрабатывают информацию локально, "смотря" на пиксели вокруг. Фурье-свёртки позволяют модели "видеть" изображение не только в пространственной, но и в частотной области. Это помогает лучше понимать глобальные паттерны, повторяющиеся текстуры и общую структуру изображения, что критически важно для реалистичного заполнения больших областей и сохранения целостности картинки.
4. Доступность и сторонние интеграции
Разработчики позаботились о том, чтобы попробовать LaMa было максимально просто. Начать можно прямо в браузере с помощью Google Colab. А активное сообщество уже создало множество сторонних инструментов и интеграций:
- cleanup.pictures и lama-cleaner: онлайн-сервисы и self-host версии для быстрого удаления объектов.
- Telegram-бот @MagicEraserBot: стирайте лишнее прямо в мессенджере.
- simple-lama-inpainting: простой pip-пакет для интеграции в ваши Python-проекты.
- CoreMLaMa: для пользователей Apple-устройств, конвертация в формат Core ML.
- Inpaint Anything и LaMa with MaskDINO: проекты, объединяющие LaMa с мощными инструментами сегментации для ещё более точного и автоматизированного удаления объектов.

Как это работает под капотом (немного технических деталей)
LaMa использует архитектуру генеративно-состязательной сети (GAN), но с ключевым отличием. Вместо традиционных свёрточных слоёв здесь применяются те самые Фурье-свёртки. Это позволяет генератору более эффективно обрабатывать глобальную информацию об изображении. Представьте, что обычная свёртка – это как смотреть на мир через маленькое окошко, а Фурье-свёртка – это возможность видеть всю картину целиком, анализируя её основные "строительные блоки" и их повторения. Дискриминатор же обучается отличать "настоящие" изображения от тех, что были сгенерированы, тем самым подталкивая генератор к созданию всё более и более реалистичных результатов.
Где пригодится LaMa: практические сценарии
Возможности LaMa открывают двери для множества интересных применений:
- Фоторетушь и постобработка: Удаление нежелательных объектов (людей, проводов, мусора) с фотографий, ретушь портретов, очистка фонов для e-commerce.
- Реставрация изображений: Автоматическое заполнение повреждённых участков на старых или испорченных фотографиях, устранение царапин, трещин и пятен.
- Дизайн и контент-мейкинг: Быстрое изменение композиции изображения, адаптация под разные форматы без пересъёмки, создание вариантов изображений для маркетинговых кампаний.
- Подготовка данных для машинного обучения: Генерация масок и заполнение их для создания синтетических данных или аугментации существующих датасетов для обучения других моделей.
- B2B решения: Интеграция в фоторедакторы, SaaS-платформы для обработки изображений, системы видеонаблюдения для удаления временных помех или восстановления повреждённых кадров.
Как попробовать LaMa прямо сейчас?
Если вы готовы погрузиться в мир умного инпейнтинга, вот как можно начать:
1. Через Google Colab:
Самый простой способ – открыть готовый Colab-ноутбук и запустить его. Это идеальный вариант для быстрого тестирования без локальной установки.
2. Локальная установка и запуск (Python/Conda/Docker):
Для тех, кто предпочитает работать локально, проект предоставляет подробные инструкции. Обратите внимание: старые ссылки на Yandex Disk для скачивания моделей не работают, используйте Google Drive.
git clone https://github.com/advimman/lama.git
cd lama
# Пример установки через virtualenv
virtualenv inpenv --python=/usr/bin/python3
source inpenv/bin/activate
pip install torch==1.8.0 torchvision==0.9.0
pip install -r requirements.txt
# Скачивание предобученной модели (лучшая модель Places2)
curl -LJO https://huggingface.co/smartywu/big-lama/resolve/main/big-lama.zip
unzip big-lama.zip
# Запуск предсказания
export TORCH_HOME=$(pwd) && export PYTHONPATH=$(pwd)
python3 bin/predict.py model.path=$(pwd)/big-lama indir=$(pwd)/LaMa_test_images outdir=$(pwd)/output
Подробные инструкции по установке через Conda или Docker, а также по обучению модели на своих данных, вы найдёте в README репозитория.
Выводы: стоит ли игра свеч?
Безусловно! LaMa – это не просто ещё один инструмент для инпейнтинга, это настоящий прорыв, который делает сложные задачи удаления объектов доступными каждому. Её способность работать с высоким разрешением и сложными масками, а также уникальный подход с Фурье-свёртками, выделяют её среди конкурентов. Если вы разработчик, фотограф, дизайнер или просто тот, кто часто сталкивается с необходимостью очистки изображений, обязательно попробуйте LaMa. Это может стать вашим новым любимым инструментом в арсенале! А возможность интеграции в сторонние приложения и сервисы делает её ещё более ценной для широкого круга задач.
Не упустите шанс познакомиться с этим проектом поближе – он того стоит!
