Если вы пользовались генераторами изображений или видео, вы наверняка замечали странные руки с шестью пальцами или лица, где глаза смотрят в разные стороны. Почему современные нейросети, способные создавать фотореалистичные пейзажи, так часто ошибаются в анатомии?
Корень проблемы: статистика против анатомии
Диффузные модели, которые лежат в основе генерации изображений, работают не как художник, который знает, что у человека 5 пальцев. Они работают как «статистический компилятор» — смотрят на миллионы примеров и улавливают закономерности. Проблема в том, что на тренировочных данных руки и пальцы часто:
- Частично закрыты другими объектами
- Находятся в движении (смазаны)
- В кадре видны не полностью
- Могут быть в разных позах и ракурсах
Из-за этого модель не может достоверно выучить, что рука — это ровно 5 пальцев в определённом порядке. Она видит «что-то длинное с ответвлениями» и иногда генерирует 6 пальцев, иногда 4, а иногда палец, растущий из запястья.
Современные модели используют латентную диффузию — работают не с пикселями, а со сжатым представлением изображения. В этом сжатом пространстве мелкие детали (вроде количества пальцев) легко теряются. Это как попытаться рассмотреть пальцы на фотографии размером 32×32 пикселя — вы увидите только общую форму.
Почему лица тоже страдают?
С лицами похожая история, но есть нюанс. Человеческий мозг исключительно хорошо распознает лица — у нас для этого есть отдельная зона в височной доле (веретенообразная извилина). Именно поэтому мы замечаем даже малейшие искажения: косые глаза, асимметрию, странную улыбку. Модель же пытается аппроксимировать распределение всех возможных лиц, и в этом распределении "почти правильное лицо" с одним чуть скошенным глазом — допустимый вариант.
Как это исправляют?
Современные модели используют несколько подходов для улучшения анатомической точности:
- Детализированные промпты — указание «5 пальцев на каждой руке» помогает модели не ошибаться.
- Дообучение на чистых датасетах — модели дополнительно тренируют на изображениях, где руки и лица размечены вручную.
- Контрольные сети (ControlNet) — дополнительный вход, который подает модели информацию о позе и форме.
- Апскейлинг с коррекцией — после генерации отдельная нейросеть ищет и исправляет анатомические ошибки.