Промты и параметры генерации изображений: что реально влияет


Если вы подключаете api stable diffusion или другой генератор изображений через API, качество результата чаще всего определяется не длиной описания, а тем, насколько точно заданы ключевые элементы сцены. Хороший промт для генерации изображения сначала фиксирует объект и действие, затем уточняет композицию, свет и визуальный стиль.

При этом один и тот же текст не гарантирует одинаковый результат при работе с разными моделями. Часть приёмов универсальна: последовательная структура описания, конкретные визуальные признаки, явное указание кадрирования. Другие параметры зависят от конкретной операции и её настроек, поэтому их нужно проверять на реальных запросах. Для подключения API ключ можно получить в разделе API; он показывается один раз.

1. Структура промта: объект, действие, свет, стиль

Я обычно начинаю промт с главного объекта, а не со стиля. В первой части должно быть понятно, что именно нужно получить: «красный винтажный велосипед», «стеклянная бутылка на деревянном столе» или «портрет мужчины в тёмном пальто». Затем добавляется действие или состояние: велосипед стоит у стены, бутылка освещена сбоку, человек смотрит в камеру.

Следующий слой — окружение и композиция. Здесь полезно указывать положение объекта в кадре, расстояние до камеры, фон, перспективу и характер освещения. Например, вместо «бутылка, красиво, реалистично» лучше написать: «стеклянная бутылка по центру деревянного стола, камера на уровне предмета, нейтральная стена на заднем плане, мягкий свет из окна слева, неглубокая глубина резкости».

Стиль стоит добавлять после содержательной части. Если сначала перечислить десяток стилистических характеристик, модель может получить много признаков, но недостаточно информации о самой сцене. Для практического промта удобно использовать такую последовательность: объект → действие или состояние → окружение → композиция → свет → стиль → дополнительные визуальные признаки.

Например:

Керамическая чашка с чёрным кофе на светлом деревянном столе,
вид сбоку на уровне стола, чашка расположена немного правее центра,
на заднем плане размытое окно, мягкий утренний свет слева,
естественные материалы, реалистичная фотография, малая глубина резкости,
сдержанная цветовая палитра.

В таком описании каждое предложение отвечает за отдельную группу признаков. Если результат не устраивает, проще понять, какую часть нужно изменить. Это практичнее, чем каждый раз полностью переписывать длинный текст.

Для API важно также разделять содержимое промта и параметры самого запроса. В операции «Картинка по описанию (image)» один запуск стоит 9 ₽. Оплата идёт за запуск, без абонентской платы и минимального платежа.

Операция Цена за запуск Когда относится к работе с изображением
Картинка по описанию 9 ₽ Создание изображения по текстовому описанию
Изменить фото по описанию 35 ₽ Редактирование существующего изображения по описанию
Увеличить качество фото 50 ₽ Увеличение качества изображения
Оживить фото 25 ₽ Создание видео из фотографии
Структура промта для генерации изображения
Структура промта для генерации изображения

2. Что делает соотношение сторон с композицией

Соотношение сторон — это не только размер готового файла. Оно меняет пространство, в котором модель должна разместить объекты. В вертикальном кадре проще построить композицию с человеком в полный рост или с высоким предметом, тогда как широкий формат естественнее подходит для сцены с несколькими объектами по горизонтали.

Поэтому запрос «женщина в полный рост» без указания предполагаемой геометрии кадра может давать разные композиционные решения. В одном результате модель оставит достаточно пространства сверху и снизу, в другом приблизит камеру и обрежет часть фигуры. Если формат изображения задаётся отдельно параметрами конкретной операции, промт лучше согласовывать с ним, а не пытаться описывать формат только словами.

Для пейзажа можно строить описание вокруг горизонтальной композиции: «дорога уходит к горизонту, горы занимают дальний план, большое открытое небо». Для вертикального портрета логика другая: «человек по пояс, лицо в верхней трети кадра, фон с мягким размытием, свободное пространство по направлению взгляда».

Особенно заметна разница, когда в сцене несколько объектов. Допустим, требуется рекламная композиция с продуктом слева и свободным местом справа. Недостаточно написать «продукт на красивом фоне». Положение объектов нужно сделать частью промта: «продукт расположен в левой трети кадра, справа остаётся чистая область фона».

Читать  Лимиты бесплатных API нейросетей: что упирается раньше денег

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

3. Повторяемость: как получить похожие картинки серией

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

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

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

Для серии можно менять только описание вазы: форму, цвет или декоративный элемент. Так проще отделить влияние изменения объекта от случайных различий между результатами.

Если сервис или конкретная модель предоставляет параметр, отвечающий за случайность или seed, его можно фиксировать для экспериментов. Но нельзя автоматически переносить такое предположение на любую модель: в предоставленной документации API нет утверждения, что все операции генерации изображений используют одинаковый набор параметров или поддерживают единый механизм seed.

Есть и более простой способ повысить сопоставимость — не менять одновременно несколько факторов. Если в одном запросе вы меняете стиль, освещение, ракурс и фон, невозможно понять, что именно повлияло на новый результат. Для тестирования лучше менять одну переменную за раз.

При работе через API удобно сохранять исходный текст запроса рядом с результатом и идентификатором задачи. После запуска операция возвращает задачу, а состояние и результат можно получить через GET /tasks/{id}. Если ожидание ответа не хочется реализовывать через постоянный опрос, у операции есть необязательный параметр callback_url: после готовности задачи сервис отправляет POST на указанный адрес.

Соотношение сторон изображения и композиция
Соотношение сторон изображения и композиция

4. Негативные подсказки и их пределы

Негативный промт — это способ явно перечислить нежелательные признаки, если конкретная модель или операция поддерживает такой механизм. Типичный пример: «лишние пальцы, искажённые руки, текст, водяные знаки». Но сам факт добавления такого списка не означает, что результат автоматически станет точнее.

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

Есть и предел универсальности. Нельзя считать один набор негативных слов обязательным для любого генератора. Конкретная модель может по-разному интерпретировать одинаковые формулировки, а сама операция может вообще не иметь отдельного параметра для негативного промта.

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

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

Негативные подсказки:
текст, логотип, водяной знак, лишние предметы в кадре.

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

5. Типичные ошибки описания и как они выглядят

Первая ошибка — слишком общие слова. Формулировка «красивая современная фотография» почти не определяет содержание сцены. Если не указать объект, его положение, фон и свет, модель сама заполнит эти пробелы.

Вторая ошибка — перечисление несовместимых характеристик. Например, «минималистичная студийная фотография с очень насыщенным сложным фоном, сильной глубиной резкости и мягким размытием всего окружения» содержит несколько направлений, которые конкурируют друг с другом. Чем больше противоречий, тем труднее контролировать результат.

Третья ошибка — попытка решить композиционную проблему исключительно стилевыми словами. «Кинематографичный», «премиальный» и «фотореалистичный» не говорят модели, где находится главный объект. Если нужен объект в правой трети, это следует написать непосредственно.

Читать  Оживить фото через API: из снимка — короткое видео

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

Пятая ошибка — одновременное изменение нескольких параметров при тестировании. Если вы хотите понять, что даёт другой формат кадра, не меняйте в том же эксперименте объект, стиль и освещение. Иначе сравнение становится малоинформативным.

При подключении api stable diffusion через собственный код полезно сохранять входные параметры каждого запуска. Сам API предоставляет отдельные маршруты для получения списка операций и цен, проверки баланса, загрузки файлов, запуска операций и проверки задач. Это позволяет отделить проблемы промта от проблем конкретного этапа обработки.

Серия похожих изображений по одному промту
Серия похожих изображений по одному промту

6. Готовые заготовки промтов под частые задачи

Для предметной фотографии можно использовать следующую основу:

Предметная фотография [ОБЪЕКТ],
[ПОЛОЖЕНИЕ ОБЪЕКТА] на [ПОВЕРХНОСТЬ],
[ФОН], [ПОЛОЖЕНИЕ ИСТОЧНИКА СВЕТА],
камера на уровне объекта, [ГЛУБИНА РЕЗКОСТИ],
реалистичные материалы, естественные детали,
[НУЖНЫЙ ВИЗУАЛЬНЫЙ СТИЛЬ].

Для портрета структура может быть такой:

Портрет [ЧЕЛОВЕК/ПЕРСОНАЖ], [ПЛАН: крупный/по пояс/в полный рост],
[ПОЛОЖЕНИЕ ГОЛОВЫ И ВЗГЛЯДА], [ОДЕЖДА],
[ФОН], мягкий свет справа, естественная текстура кожи,
реалистичная фотография, малая глубина резкости.

Для интерьерной сцены полезно сначала зафиксировать геометрию помещения:

Фотография интерьера [ТИП ПОМЕЩЕНИЯ],
камера из [ТОЧКА СЪЁМКИ], [ГЛАВНЫЙ ОБЪЕКТ] в центре композиции,
[ВТОРОСТЕПЕННЫЕ ОБЪЕКТЫ] по бокам,
естественный свет из окна слева, реалистичные материалы,
спокойная цветовая палитра, фотографическая перспектива.

Эти заготовки не являются универсальным синтаксисом конкретной модели. Их смысл в другом: они заставляют описывать сцену по отдельным категориям, которые проще проверять и менять.

Если запрос отправляется непосредственно в API, базовый вызов можно построить через маршрут POST /generate. Авторизация передаётся в заголовке Authorization с Bearer-ключом. Например, общий каркас curl-запроса выглядит так:

curl -X POST "https://genius-bot.ru/wp-json/genius/v1/generate" \
  -H "Authorization: Bearer <ключ>" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "image",
    "prompt": "Предметная фотография керамической чашки на деревянном столе, мягкий свет слева, реалистичная фотография"
  }'

Конкретный набор полей запроса должен соответствовать документации выбранной операции. Из справки API известно, что маршрут запуска — POST /generate, а сама операция «Картинка по описанию (image)» стоит 9 ₽ за запуск.

Для Python логика подключения выглядит аналогично. Например, через requests можно отправить POST на тот же маршрут:

import requests

BASE_URL = "https://genius-bot.ru/wp-json/genius/v1"
API_KEY = "<ключ>"

payload = {
    "operation": "image",
    "prompt": (
        "Стеклянная бутылка на светлом деревянном столе, "
        "мягкий свет из окна слева, нейтральный фон, "
        "реалистичная предметная фотография"
    )
}

response = requests.post(
    f"{BASE_URL}/generate",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json=payload,
)

response.raise_for_status()
print(response.json())

После запуска состояние задачи можно получать через GET /tasks/{id}. Для сценария с webhook вместо регулярного опроса можно передать callback_url, если это предусмотрено запросом конкретной операции.

Если нужно сначала посмотреть доступные операции и их цены, используется GET /services. Остаток баланса проверяется через GET /balance. Для первого ключа на баланс начисляется 50 ₽, что позволяет сделать несколько пробных запусков операции стоимостью 9 ₽, но расход зависит от количества фактических запусков.

Ограничение частоты для ключа составляет не более 60 запросов в минуту. Это важно учитывать при пакетной генерации: очередь из большого количества изображений не стоит отправлять одним мгновенным burst-запросом без контроля частоты.

Отдельно API поддерживает совместимый с OpenAI формат для POST /chat/completions и GET /models. Для текстового чата указаны тарифы 40 ₽ за миллион токенов запроса и 400 ₽ за миллион токенов ответа. Эти маршруты относятся к чату, поэтому их не следует смешивать с параметрами операции генерации изображения.

Частые вопросы

Нужно ли делать промт максимально длинным?

Нет. Полезнее последовательно описать объект, действие или состояние, композицию, окружение, свет и стиль. Добавляйте только те детали, которые должны влиять на изображение.

Меняет ли соотношение сторон сам объект?

Оно прежде всего меняет доступную область композиции. Из-за этого модель может по-другому кадрировать сцену, менять расстояние до объекта или перераспределять свободное пространство.

Всегда ли нужен негативный промт?

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

Читать  Озвучка видео через TTS API: как встроить в конвейер монтажа

Как получать похожие изображения в серии?

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

Сколько стоит генерация изображения через API?

Операция «Картинка по описанию (image)» стоит 9 ₽ за один запуск. Оплата производится за запуск, без абонентской платы и минимального платежа.

Где получить ключ API?

Ключ выдаётся после входа в разделе API и показывается один раз. Для запросов используется заголовок Authorization: Bearer <ключ>.

API для разработчиковОзвучка, музыка, видео и картинки одним ключом. Пробный баланс при выпуске.
Получить ключ