Кривые лица и деформированные руки на сгенерированных изображениях — та самая проблема, ради решения которой чаще всего устанавливают расширение ADetailer для Stable Diffusion. Плагин работает по принципу «найди и исправь»: специальная детекторная модель находит на картинке лицо, глаза или кисти рук, а затем эта область перерисовывается с повышенным вниманием к деталям. В результате мелкие артефакты генерации устраняются без ручной доработки в графическом редакторе.
Расширение известно также под названием After Detailer и устанавливается в веб-интерфейс Automatic1111 или Forge. В этой статье разберём установку, выбор моделей детекции, ключевые параметры и типичные ошибки, с которыми сталкиваются пользователи при первом запуске.
Что такое ADetailer и как он работает
ADetailer — это расширение, которое добавляет в Stable Diffusion этап постобработки. После основной генерации изображение передаётся детекторной модели на базе YOLO или аналогичного алгоритма. Модель находит заданные объекты — лицо, глаза, руки, человека целиком — и возвращает их координаты в виде ограничивающих рамок.
Далее найденная область обрезается, увеличивается и прогоняется через inpainting с заданным промптом и силой шума. Результат вставляется обратно в исходное изображение. По сути, это автоматизированный inpaint конкретных зон, который избавляет от ручной работы с масками.
Подход особенно эффективен на портретах в полный рост или групповых сценах, где лицо занимает малую часть кадра и модель не успевает прорисовать его качественно за отведённые шаги генерации.
Установка расширения
Установка выполняется стандартным способом через вкладку Extensions в веб-интерфейсе. Откройте раздел Install from URL и вставьте адрес репозитория расширения — его актуальную ссылку следует брать с официальной страницы проекта на GitHub, так как форки и устаревшие копии встречаются часто.
После установки перезапустите интерфейс полностью, а не только через кнопку перезагрузки градио. При первом запуске ADetailer автоматически загрузит модели детекции — это займёт некоторое время и потребует доступа к сети. Загруженные файлы сохраняются в папке models/adetailer внутри директории веб-интерфейса.
☑️ Проверка после установки ADetailer
⚠️ Внимание: если при первом запуске в консоли появляются ошибки загрузки моделей, проверьте доступ к сети и наличие свободного места на диске. Обрыв скачивания оставляет повреждённые файлы, которые нужно удалить из папки models/adetailer и загрузить заново.
Выбор моделей детекции
В выпадающем списке ADetailer model доступно несколько детекторов, каждый из которых заточен под свой тип объектов. Названия моделей содержат подсказку: face — лица, hand — кисти рук, person — фигура человека целиком, eyes — область глаз.
- 🙂 face_yolov8n / face_yolov8s — базовый выбор для исправления лиц, версия «s» точнее, но медленнее
- ✋ hand_yolov8n — детекция кистей рук, помогает с пальцами
- 🧍 person_yolov8n-seg — сегментация всей фигуры, полезна для общей доработки силуэта
- 👁 модели для глаз и мелких зон — точечная доработка при крупных планах
Практический совет: начинайте с одной модели для лиц. Включение сразу нескольких детекторов в разных вкладках ADetailer заметно увеличивает время генерации, а эффект не всегда оправдывает затраты.
Основные параметры настройки
Блок ADetailer содержит заметное количество ползунков, но реально влияют на результат лишь несколько. Разберём ключевые.
- 🎚 Detection confidence threshold — порог уверенности детектора. Слишком низкое значение ловит лишние области, слишком высокое — пропускает нужные лица
- 🖌 Denoising strength — сила перерисовки найденной области. Низкие значения сохраняют сходство с исходником, высокие дают больше свободы модели
- 📐 Inpaint padding — отступ вокруг найденной области, чтобы исправление не обрывалось резко по краю
- 🔲 Mask blur — размытие границы маски для плавного перехода между исправленной зоной и остальным изображением
Отдельного внимания заслуживает поле промпта внутри ADetailer. Если оставить его пустым, используется основной промпт генерации — это нормально для лиц. Но для рук иногда полезно задать отдельное короткое описание, чтобы модель сфокусировалась именно на анатомии кисти.
Сравнение режимов детекции
Ниже — ориентировочная таблица применимости детекторов. Точные названия моделей могут отличаться в зависимости от версии расширения, сверяйтесь со списком в самом интерфейсе.
| Детектор | Объект | Когда использовать | Особенности |
|---|---|---|---|
| face_yolov8n | Лицо | Портреты, групповые сцены | Быстрый, базовая точность |
| face_yolov8s | Лицо | Мелкие лица в кадре | Точнее, но медленнее |
| hand_yolov8n | Кисти рук | Жесты, видимые ладони | Требует аккуратного промпта |
| person_yolov8n-seg | Фигура | Полный рост, одежда | Сегментационная маска |
| mediapipe_face | Лицо | Альтернатива YOLO | Иной алгоритм детекции |
Детектор рук исправляет форму кисти, но не гарантирует правильное число пальцев — если поза сложная, результат стоит проверять визуально на каждой генерации.
Типичные ошибки и их решения
Частая жалоба — ADetailer включён, но лицо не меняется. Возможная причина — слишком высокий порог уверенности детектора: модель просто не находит лицо. Снизьте значение confidence и проверьте в консоли строки вида «N face(s) detected» — они показывают, сколько объектов нашёл детектор.
Вторая ситуация — после обработки лицо выглядит «вставленным» и отличается по тону. Здесь помогает увеличение mask blur и padding, а также снижение силы денойзинга. Крайний случай — несовпадение стиля, когда для inpaint подставляется другая чекпоинт-модель; проверьте, что в настройках ADetailer не выбрана отдельная модель без необходимости.
⚠️ Внимание: ошибки вида RuntimeError с упоминанием ultralytics обычно означают конфликт версий библиотеки. Расширение зависит от пакета ultralytics, и его несовместимая версия ломает детекцию. Проверьте требования на странице расширения и версию пакета в окружении Python.
Почему ADetailer не виден в интерфейсе после установки
Наиболее вероятные причины — неполный перезапуск веб-интерфейса, конфликт с другим расширением или ошибка при загрузке зависимостей. Откройте консоль запуска и найдите строки с упоминанием adetailer: сообщение об ошибке укажет конкретный модуль, который не удалось импортировать.
Ещё одна проблема — сильное замедление генерации. Каждый включённый детектор добавляет полноценный проход inpaint, а на слабой видеокарте это ощутимо. Решение простое: оставить один детектор и снизить разрешение зоны inpaint в дополнительных настройках.
ADetailer в API и пакетной обработке
Расширение работает не только через веб-интерфейс. При вызове генерации через API параметры ADetailer передаются в поле alwayson_scripts внутри JSON-запроса. Это позволяет встроить исправление лиц в автоматизированные конвейеры и скрипты пакетной обработки.
Структура запроса выглядит примерно так — точные поля сверяйте с документацией вашей версии расширения:
"alwayson_scripts": {
"ADetailer": {
"args": [true, {"ad_model": "face_yolov8n.pt", "ad_denoising_strength": 0.35}]
}
}
При пакетной генерации учитывайте, что время обработки каждого изображения вырастет. Для больших партий имеет смысл сначала сгенерировать всё без ADetailer, а затем прогнать исправление только на отобранных кадрах.
FAQ: частые вопросы об ADetailer
Работает ли ADetailer с моделями SDXL?
Да, расширение совместимо с SDXL-чекпоинтами. Детекторные модели не зависят от версии Stable Diffusion — они лишь находят области, а перерисовку выполняет загруженный чекпоинт. Учитывайте только повышенные требования SDXL к видеопамяти.
Нужно ли скачивать модели детекции вручную?
Обычно нет: при первом использовании детектора расширение загружает файл автоматически. Ручная установка требуется лишь при проблемах с сетью — тогда файл помещается в папку models/adetailer.
Почему ADetailer меняет лицо на чужое?
Вероятная причина — слишком высокая сила денойзинга: модель перерисовывает лицо почти с нуля. Снизьте denoising strength и убедитесь, что в поле промпта ADetailer нет описаний, противоречащих исходному изображению.
Можно ли использовать ADetailer в ComfyUI?
В ComfyUI аналогичная функциональность реализуется через отдельные ноды детекции и inpaint — само расширение ADetailer написано под Automatic1111-подобные интерфейсы. В экосистеме ComfyUI есть сторонние пакеты с похожей логикой.
Сколько детекторов разумно включать одновременно?
Для большинства сценариев достаточно одного-двух. Каждый дополнительный детектор добавляет отдельный проход обработки, увеличивая время генерации и нагрузку на видеокарту без гарантированного прироста качества.