Генерация в Stable Diffusion выдаёт фронтальный портрет вместо нужного виде сверху — типичный признак того, что в промпте нет явного указания ракурса, и модель подставляет самый частый ракурс из обучающей выборки. Нейросеть не «понимает» сцену как фотограф: она опирается на текстовые токены, поэтому управление камерой — это прежде всего работа с ключевыми словами.
В этой статье разберём, какие теги задают угол съёмки и план кадра, как их комбинировать, почему ракурс иногда игнорируется и что делать, когда слов недостаточно. Материал применим к Stable Diffusion 1.5, SDXL и большинству fine-tune моделей, поскольку логика тегов у них общая, хотя чувствительность к отдельным словам может отличаться.
Как Stable Diffusion воспринимает ракурс
Модель не строит трёхмерную сцену. Она сопоставляет слова промпта с визуальными паттернами, на которых обучалась: тег from above активирует образы, снятые сверху, а close-up — крупные планы. Если в обучающих данных ракурс встречался редко, результат будет нестабильным.
Отсюда следует практический вывод: чем конкретнее и «популярнее» формулировка, тем надёжнее срабатывание. Слово foreshortening (перспективное сокращение) работает хуже, чем простое from below, просто потому что второе чаще встречалось в подписях к изображениям.
Основные теги планов кадра
План кадра определяет, сколько объекта помещается в изображение. Это первый уровень управления композицией, который стоит задавать всегда.
- 📷
extreme close-up— экстремально крупный план: глаза, губы, деталь объекта. - 🖼️
close-up— крупный план, лицо или предмет целиком. - 👤
portrait,upper body— поясной и портретный план. - 🧍
full body— фигура в полный рост, критично для персонажей. - 🌄
wide shot,landscape— общий план, сцена целиком.
Обратите внимание: без тега плана модель сама решает, сколько объекта показать, и нередко «обрезает» фигуру. Для персонажей в полный рост full body — почти обязательный тег, иначе велика вероятность получить портрет.
Теги углов съёмки и ракурсов
Угол съёмки — второй уровень управления. Он задаётся отдельными токенами, которые можно комбинировать с планом кадра.
- ⬆️
from below— вид снизу, объект выглядит массивнее и доминантнее. - ⬇️
from above— вид сверху; для экстремального варианта используютbird's-eye viewилиtop-down view. - ↔️
from side,profile view— вид сбоку, профиль. - 🔙
from behind— вид со спины. - 🎥
dutch angle— наклон горизонта, эффект тревоги или динамики. - 🐜
worm's-eye view— экстремальный ракурс снизу, «взгляд червя».
Для аниме-моделей семейства Danbooru-тегов (например, Anything, Counterfeit и производных) эти же понятия записываются в стиле booru: from above, from below, from side — синтаксис совпадает, что упрощает перенос промптов.
Таблица ракурсов и их эффекта
| Тег промпта | Ракурс | Визуальный эффект |
|---|---|---|
from above | Сверху | Объект кажется меньше, уязвимее |
from below | Снизу | Монументальность, доминирование |
dutch angle | Наклон камеры | Напряжение, динамика |
bird's-eye view | Вертикально сверху | Карта, схема, панорама сцены |
pov | От первого лица | Эффект присутствия зрителя |
Конкретные формулировки могут работать по-разному в зависимости от модели и её обучающих данных, поэтому имеет смысл тестировать 2–3 синонима и сравнивать результаты на одном и том же seed.
Почему ракурс игнорируется: типичные причины
Частая ситуация: тег from above в промпте есть, а картинка упорно фронтальная. Причин несколько, и все они проверяемы.
Первая — низкий вес тега среди прочих слов. Если промпт перегружен описаниями внешности, одежды и фона, токен ракурса «тонет». Решение — поднять его ближе к началу промпта или усилить синтаксисом весов: (from above:1.3). Вторая возможная причина — конфликт тегов: например, looking at viewer в сочетании с from behind создаёт противоречие, и модель выбирает более «сильный» паттерн.
⚠️ Внимание: чрезмерное усиление веса (значения выше 1.5) нередко ломает анатомию и композицию. Если ракурс появился, но изображение исказилось, снизьте вес и попробуйте альтернативный тег-синоним.
Третья причина — сама модель. Чекпоинты, обученные преимущественно на портретах, плохо знают нестандартные углы. В этом случае никакой промпт не поможет полностью: нужна модель с более разнообразной выборкой или ControlNet.
Как проверить, «знает» ли модель ракурс
Сгенерируйте простой промпт из одного тега ракурса и нейтрального объекта, например "from above, a cup on a table". Если даже на простой сцене ракурс не срабатывает — ограничение в самой модели, а не в вашем промпте.
Пошаговая настройка промпта под ракурс
Порядок действий, который помогает добиться нужного угла без бесконечных перегенераций.
- Определите план кадра и запишите его первым или вторым тегом:
full body,close-upи т.д. - Добавьте тег угла съёмки сразу после плана:
from below,dutch angle. - Проверьте промпт на противоречия: уберите теги, несовместимые с выбранным ракурсом.
- Сгенерируйте серию с фиксированным seed, меняя только вес тега ракурса.
- Если слов недостаточно — переходите к ControlNet с референсом позы или глубины.
☑️ Проверка промпта перед генерацией
Пример собранного промпта:
full body, from below, 1girl, standing, city street, dynamic pose, dramatic lighting
ControlNet и вспомогательные методы
Когда текстовые теги исчерпаны, на помощь приходит ControlNet — расширение, позволяющее задавать композицию через референсное изображение. Модули OpenPose и Depth фиксируют позу и геометрию сцены, что фактически означает фиксацию ракурса камеры.
Рабочий приём — собрать простую 3D-сцену в любом бесплатном редакторе (например, программах для позирования манекенов), снять скриншот с нужного угла и подать его в ControlNet. Модель перенесёт геометрию, а промпт добавит содержание и стиль. Доступность конкретных модулей зависит от версии расширения, поэтому сверяйтесь с документацией вашей сборки AUTOMATIC1111 или ComfyUI.
⚠️ Внимание: ControlNet задаёт геометрию, но не отменяет конфликты в тексте. Если промпт описывает вид спереди, а референс — вид сзади, результат непредсказуем. Текст и референс должны работать в одну сторону.
Типичные ошибки при работе с ракурсами
Первая ошибка — смешение нескольких ракурсов в одном промпте. Конструкция вида from above, from side не даёт «средний» угол: модель выберет один из паттернов или выдаст искажённую перспективу. Выбирайте один угол на генерацию.
Вторая — ожидание фотографической точности от слов вроде 35mm lens или fisheye. Такие теги влияют на стиль искажений, но не гарантируют конкретную оптическую геометрию, поскольку модель оперирует ассоциациями, а не параметрами виртуальной камеры. Для точной перспективы надёжнее связка из тега ракурса и ControlNet.
Третья — игнорирование негативного промпта. Если нежелательный ракурс повторяется из раза в раз, добавьте его в negative prompt: например, from behind в негативе отсечёт генерации со спины. Это мягкий, но рабочий способ сместить распределение в нужную сторону.
FAQ: частые вопросы о ракурсах
Работают ли русские слова для указания ракурса?
Нет. Основные модели Stable Diffusion обучены на англоязычных подписях, поэтому ракурс нужно указывать на английском: from above, from below и т.д.
Как сделать вид строго сверху, как на карте?
Используйте bird's-eye view или top-down view в начале промпта. Для гарантированной вертикальной геометрии дополнительно примените ControlNet Depth с референсом, снятым сверху.
Почему при «from below» ломается лицо персонажа?
Экстремальные углы реже встречались в обучающих данных, и модель хуже восстанавливает лицо в такой перспективе. Помогает снижение веса тега ракурса, включение восстановления лиц (если предусмотрено вашим интерфейсом) или inpainting области лица отдельным проходом.
Можно ли менять ракурс готового изображения?
Да, через img2img с умеренной силой изменения (denoising) и новым тегом ракурса, но результат нестабилен: модель перерисует сцену, а не «повернёт камеру». Для контролируемой смены угла надёжнее ControlNet с новым референсом.
Отличаются ли теги ракурсов для SDXL?
Базовый набор совпадает: from above, from below, close-up работают и в SDXL. Различия — в чувствительности отдельных fine-tune моделей, поэтому проверяйте реакцию конкретного чекпоинта на тестовых промптах.