Ракурсы в Stable Diffusion: как управлять камерой через промпт

Генерация в 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)
Фронтальный портрет
Динамичные нестандартные углы

Таблица ракурсов и их эффекта

Тег промптаРакурсВизуальный эффект
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". Если даже на простой сцене ракурс не срабатывает — ограничение в самой модели, а не в вашем промпте.

Пошаговая настройка промпта под ракурс

Порядок действий, который помогает добиться нужного угла без бесконечных перегенераций.

  1. Определите план кадра и запишите его первым или вторым тегом: full body, close-up и т.д.
  2. Добавьте тег угла съёмки сразу после плана: from below, dutch angle.
  3. Проверьте промпт на противоречия: уберите теги, несовместимые с выбранным ракурсом.
  4. Сгенерируйте серию с фиксированным seed, меняя только вес тега ракурса.
  5. Если слов недостаточно — переходите к ControlNet с референсом позы или глубины.

☑️ Проверка промпта перед генерацией

Выполнено: 0 / 5

Пример собранного промпта:

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 моделей, поэтому проверяйте реакцию конкретного чекпоинта на тестовых промптах.