COMRAD404 / HOWTO

Как использовать негативные промпты в Stable Diffusion

Пошаговая инструкция по negative_prompt в Stable Diffusion: как задать нежелательные признаки, зафиксировать seed, включить guidance и проверить эффект через A/B-сравнение на одном и том же запуске.

Понадобится

15–25 минут
  • Аккаунт Stability AI и API key либо готовый локальный пайплайн Stable Diffusion/Diffusers
  • Возможность задавать negative_prompt и фиксировать seed или generator
  • Один базовый prompt для A/B-сравнения
  • Понимание, какую именно проблему вы хотите убрать: размытость, деформации, лишние детали

Чтобы использовать негативные промпты в Stable Diffusion, держите основной запрос в prompt, а нежелательные признаки перечисляйте в negative_prompt. Для честной проверки фиксируйте один и тот же seed или generator и сравнивайте результат A/B, меняя только негативный промпт.

После выполнения этой инструкции вы сможете осознанно убирать типичные артефакты вроде размытости, лишних пальцев или нежелательных деталей через negative_prompt в текущем Stability AI REST API v2beta и в локальных пайплайнах Diffusers.

  • ⏱️ Время: 15–25 минут, если доступ к API или локальный пайплайн у вас уже есть.
  • 🎯 Сложность: начальный.
  • 💰 Стоимость: в Stability AI API расходуются кредиты; на странице pricing указано, что 1 credit = $0.01, при этом цены могут меняться. Для локального Diffusers отдельного тарифа в документации не указано.
  • 🛠️ Что потребуется: аккаунт и API key Stability AI либо готовый локальный пайплайн Stable Diffusion/Diffusers; возможность зафиксировать seed или generator; один и тот же базовый prompt для сравнения.
  • 📌 Актуальная версия: Stability AI Platform REST v2beta — primary API service по release notes на 2026-08-14; старые API остаются в maintenance mode без новых features/parameters. Для Diffusers в source pack подтверждена актуальная документация по Stable Diffusion text2img и Stable Diffusion 3, но номер версии библиотеки не зафиксирован.

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

Редакционное ограничение: официальный источник подтверждает синтаксис weighted negative prompts для DreamStudio только в публикации 2022 года. Поскольку текущий живой интерфейс DreamStudio в source pack не зафиксирован, ниже я даю воспроизводимый сценарий через Stability API и Diffusers, а не через неподтверждённые кнопки UI.

Где поддерживается negative_prompt

Среда Что подтверждено источниками Что важно учесть
Stability AI REST API v2beta В запросах генерации изображений поддерживается поле negative_prompt; рядом доступен seed. Используйте именно REST v2beta; старые API не получают новые параметры.
Diffusers: Stable Diffusion text2img negative_prompt — это текст того, что не нужно включать; guidance включается при guidance_scale > 1; generator позволяет детерминированный запуск. Если вы не зафиксировали generator, сравнение будет менее надёжным.
Diffusers: Stable Diffusion 3 Есть negative_prompt, а также negative_prompt_2 и negative_prompt_3; если они не заданы, используется negative_prompt. В SD3-family negative_prompt игнорируется при guidance_scale < 1.

Пошагово: как использовать негативные промпты в Stable Diffusion

  1. Зафиксируйте один рабочий сценарий.

    Сначала выберите, где именно вы будете тестировать negative prompt: в Stability AI API или в локальном Diffusers. Не переключайтесь между средами в одном эксперименте, иначе вы смешаете различия модели, маршрутизации и параметров.

    Ожидаемый результат: у вас есть один путь запуска, где вы будете менять только текст negative prompt и, при необходимости, силу guidance.

  2. Напишите базовый положительный prompt без отрицаний.

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

    prompt: studio portrait of a person

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

  3. Соберите короткий список нежелательных признаков в negative_prompt.

    Начните с конкретных дефектов, которые вы реально хотите убрать. Официальный пример Stability AI 2022 для weighted negative prompts использовал формулировки вроде disfigured, ugly, too many fingers. Для обычного текстового negative prompt достаточно перечислить нежелательные признаки.

    negative_prompt: blurry, disfigured, extra fingers, ugly

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

  4. Добавьте negative prompt в запрос или вызов пайплайна.

    Для Stability AI API ориентируйтесь на текущую схему запроса из API Reference и включите в тело поле negative_prompt вместе с prompt и seed. Ниже — безопасный фрагмент параметров, а не полный endpoint, потому что точный маршрут и обязательные поля зависят от выбранной модели в живой документации.

    {
      "prompt": "studio portrait of a person",
      "negative_prompt": "blurry, disfigured, extra fingers, ugly",
      "seed": 123456
    }

    Для Diffusers передайте параметр прямо в вызов пайплайна.

    pipeline(
        prompt='studio portrait of a person',
        negative_prompt='blurry, disfigured, extra fingers, ugly',
        guidance_scale=7.5,
        generator=fixed_generator
    )

    Если вы работаете с SD3-family и вам не нужны отдельные негативные каналы, не усложняйте запрос: оставьте только negative_prompt. Параметры negative_prompt_2 и negative_prompt_3 нужны только для SD3-специфичных сценариев; если они не заданы, используется основной negative_prompt.

  5. Зафиксируйте случайность через seed или generator.

    В Stability API используйте seed; в Diffusers — детерминированный generator. Это обязательный шаг, если вы хотите понять, помог ли negative prompt, а не просто получили другую картинку из-за новой случайности.

    Ожидаемый результат: при повторном запуске с тем же prompt и тем же seed вы получаете сопоставимую базу для сравнения.

  6. Проведите A/B-сравнение и меняйте только один параметр.

    Сделайте запуск A без negative prompt и запуск B с negative prompt, оставив одинаковыми prompt, seed/generator и остальные параметры. Смотрите только на те дефекты, которые вы перечислили в негативном запросе.

    Если результат улучшился не полностью, правьте negative prompt точечно: уберите лишние слова, добавьте один новый дефект или уточните формулировку. Не меняйте всё сразу.

    Ожидаемый результат: вы видите, какие именно нежелательные признаки стали слабее или исчезли, и можете связать это изменение именно с negative_prompt.

Почему negative prompt вообще работает

На практическом уровне вы сообщаете модели, какие элементы не стоит включать в изображение. На теоретическом уровне это опирается на classifier-free guidance: метод сочетает conditional и unconditional score estimates. Для пользователя отсюда следует одно полезное правило: negative prompt имеет смысл только тогда, когда guidance действительно участвует в генерации.

Именно поэтому в документации Diffusers отдельно зафиксировано, что guidance включается при guidance_scale > 1, а в SD3-family negative_prompt игнорируется при guidance_scale < 1.

Как проверить, что всё работает

  1. Создайте изображение без negative_prompt.

  2. Создайте второе изображение с тем же prompt, тем же seed или тем же generator, но уже с negative_prompt.

  3. Сравните только целевые дефекты: размытость, деформации, лишние пальцы или другие признаки, которые вы указали в негативном запросе.

  4. Если вы используете Diffusers, проверьте, что guidance не выключен: для text2img нужен режим с guidance_scale > 1; для SD3-family отрицательный промпт игнорируется при guidance_scale < 1.

  5. Если вы используете Stability API, убедитесь, что в фактическом теле запроса действительно присутствуют negative_prompt и seed, а не только в вашем черновике.

Рабочий критерий простой: при неизменном seed картинка с negative prompt должна становиться ближе к вашей цели именно по тем дефектам, которые вы запретили.

Частые ошибки и исправления

  • Ошибка: вы сравниваете два разных запуска с разными seed.

    Решение: фиксируйте один и тот же seed в API или один и тот же generator в Diffusers.
  • Ошибка: в Diffusers negative prompt как будто не влияет на результат.

    Решение: проверьте guidance. Для text2img guidance включается при guidance_scale > 1; в SD3-family negative_prompt игнорируется при guidance_scale < 1.
  • Ошибка: вы пишете в negative prompt всё подряд, включая стиль, сюжет и десятки спорных ограничений.

    Решение: сократите список до конкретных нежелательных признаков и тестируйте изменения по одному.
  • Ошибка: вы ориентируетесь на старый DreamStudio-синтаксис как на гарантированно актуальный интерфейс.

    Решение: используйте подтверждённые текущие параметры API и Diffusers. Синтаксис | <negative prompt>: -1.0 подтверждён официальной публикацией 2022 года, но текущий UI нужно перепроверять отдельно.
  • Ошибка: вы получили сбой в Stability API и считаете, что виноват negative prompt.

    Решение: сначала проверьте базовые условия: есть ли API key, хватает ли кредитов и не упёрлись ли вы в rate limit 150 requests every 10 seconds.

Безопасность и ограничения

  • API key обязателен. Stability AI в getting started указывает, что для работы нужен ключ API.
  • Расходы зависят от кредитов. Платформа пишет, что API usage is based on credits, 1 credit = $0.01, а pricing subject to change. Точный расход проверяйте на актуальной странице pricing для вашей модели.
  • Бесплатный старт ограничен условиями регистрации. Новые аккаунты, созданные через Google, получают 25 free credits; дополнительные кредиты покупаются через Billing.
  • Есть rate limit. В API docs указан лимит 150 requests every 10 seconds. Для пакетных A/B-тестов учитывайте это заранее.
  • Доступность зависит от региона. В условиях Stability AI сказано, что отдельные продукты и функции могут быть недоступны или ограничены в некоторых странах, территориях и регионах.
  • Старые API не подходят для новых экспериментов. По release notes именно REST v2beta является primary API service; старые API остаются в maintenance mode без новых features/parameters.
  • Поведение зависит от модели и пайплайна. Source pack подтверждает поддержку negative_prompt, но не обещает одинаковую силу эффекта во всех моделях и интерфейсах.

Что делать дальше

  • Если у вас ещё нет локальной среды, сначала поднимите её по инструкции Как установить Stable Diffusion локально (Windows/macOS).
  • Если хотите тестировать формулировки более системно, посмотрите Как использовать few-shot промптинг: принцип контрольных примеров полезен и для серии prompt/negative_prompt-экспериментов.
  • Перед продакшен-использованием ещё раз проверьте release notes и pricing в официальной документации Stability AI: это важно из-за возможных изменений моделей, роутинга и стоимости.

Источники

Вопросы и ответы

Можно ли использовать negative prompt в текущем Stability AI API?

Да. В текущем REST v2beta Stability AI поле negative_prompt поддерживается в запросах генерации изображений. Для воспроизводимости рядом доступен параметр seed.

Почему negative prompt не даёт заметного эффекта?

Сначала проверьте метод сравнения: одинаковые ли у вас seed или generator. Затем проверьте guidance: в Diffusers guidance включается при guidance_scale > 1, а в SD3-family negative prompt игнорируется при guidance_scale < 1.

Нужны ли параметры negative_prompt_2 и negative_prompt_3?

Только в SD3-family. Если они не заданы, документация говорит, что используется обычный negative_prompt. Для большинства базовых тестов достаточно одного поля.

Можно ли опираться на старый синтаксис weighted negative prompts из DreamStudio?

Только как на подтверждённый исторический пример из официальной публикации 2022 года. Текущий интерфейс DreamStudio в source pack не зафиксирован, поэтому перед использованием такого синтаксиса в UI его нужно перепроверять отдельно.

Сколько это стоит?

Для Stability AI API расчёт идёт в кредитах. На странице pricing указано, что 1 credit = $0.01, но стоимость зависит от модели и может меняться. Новые аккаунты, созданные через Google, получают 25 free credits.

Шаги

HOW-TO
  1. Выберите одну среду для теста

    | Решите, где будете работать: в Stability AI REST API v2beta или в локальном Diffusers. Не смешивайте среды в одном эксперименте.

  2. Сформулируйте базовый prompt

    | Опишите желаемое изображение в prompt без отрицаний. Нежелательные признаки не добавляйте в это поле.

  3. Соберите короткий negative_prompt

    | Перечислите 3–6 конкретных дефектов, которые хотите убрать, например blurry, disfigured, extra fingers.

  4. Передайте параметр negative_prompt

    | В Stability API добавьте поле negative_prompt в тело запроса вместе с prompt и seed. В Diffusers передайте negative_prompt в вызов пайплайна; в SD3 при необходимости можно использовать negative_prompt_2 и negative_prompt_3.

  5. Зафиксируйте случайность

    | В API задайте один и тот же seed, а в Diffusers используйте детерминированный generator. Без этого сравнение будет нечестным.

  6. Сделайте A/B-сравнение

    | Запустите генерацию без negative_prompt и с negative_prompt при одинаковых остальных параметрах. Оцените только те дефекты, которые вы запретили.

Источники

SOURCES

Вопросы и ответы

FAQ
Можно ли использовать negative prompt в текущем Stability AI API?

Да. В текущем REST v2beta Stability AI поле negative_prompt поддерживается в запросах генерации изображений. Для воспроизводимости рядом доступен параметр seed.

Почему negative prompt не даёт заметного эффекта?

Сначала проверьте, одинаковые ли у вас seed или generator. Затем проверьте guidance: в Diffusers guidance включается при guidance_scale > 1, а в SD3-family negative prompt игнорируется при guidance_scale < 1.

Нужны ли параметры negative_prompt_2 и negative_prompt_3?

Только в SD3-family. Если они не заданы, документация говорит, что используется обычный negative_prompt. Для большинства базовых тестов достаточно одного поля.

Можно ли опираться на старый синтаксис weighted negative prompts из DreamStudio?

Только как на подтверждённый исторический пример из официальной публикации 2022 года. Текущий интерфейс DreamStudio в source pack не зафиксирован, поэтому перед использованием такого синтаксиса в UI его нужно перепроверять отдельно.

Сколько это стоит?

Для Stability AI API расчёт идёт в кредитах. На странице pricing указано, что 1 credit = $0.01, но стоимость зависит от модели и может меняться. Новые аккаунты, созданные через Google, получают 25 free credits.

Читайте также

LINKS