Prompt Weighting

prompt weighting — локальный вес фрагментов текстового условия

Раздел
Промпты
Обновлено
05.09.26

Prompt Weighting усиливает или ослабляет отдельные фрагменты текстового условия до генерации. Запись вроде `(красный шарф:1.2)` работает только там, где интерфейс умеет её разобрать и передать изменённое числовое представление текста модели. Вес меняет влияние концепта, но не задаёт точный размер, положение или обязательное появление объекта.

Коротко

Prompt Weighting — настройка веса отдельных слов и фраз в промпте. Она позволяет немного усилить важную деталь или ослабить то, что отвлекает внимание. Например, запись (red scarf:1.2) повышает вес фразы «красный шарф» — если программа поддерживает такой синтаксис.

Число не задаёт размер шарфа, его положение или вероятность появления. Это настройка текстового условия, а не точная разметка кадра.

Кто понимает скобки

Допустим, на портрете шарф почти потерялся, а кофемашина на фоне получилась слишком заметной. Можно уточнить описание, а можно попробовать изменить вес нужных фраз.

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

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

Что означает коэффициент

В поддерживаемой схеме 1.0 обычно означает нейтральный вес. Значения выше единицы усиливают фрагмент, ниже — ослабляют.

Но 1.2 не означает «на 20% больше внимания» в измеримом смысле. Реализации могут по-разному масштабировать и нормализовать представления текста. На итог также влияют сама модель, текстовый энкодер, остальные слова и настройки генерации.

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

Запись в ComfyUI и AUTOMATIC1111

В документации стандартной ноды ComfyUI CLIPTextEncode описаны такие варианты:

(red scarf:1.2)  — повышенный вес
(red scarf:0.8)  — пониженный вес
(red scarf)     — стандартное усиление 1.1

Если круглые скобки нужны как часть самого текста, их экранируют обратной косой чертой: \(word\).

AUTOMATIC1111 тоже поддерживает явные веса и вложенные круглые скобки. В его обычной схеме ((tuxedo)) соответствует коэффициенту 1.21: два последовательных усиления по 1.1.

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

Что меняется в Diffusers

В Diffusers строка (cat:1.4) не становится взвешенным промптом автоматически во всех способах генерации. Некоторые схемы принимают заранее подготовленные представления через prompt_embeds и, когда требуется, pooled_prompt_embeds.

Документация показывает подготовку таких данных библиотекой sd_embed. Есть и другие решения, например Compel. Их поддержка зависит от архитектуры и конкретной функции: особенно это важно у моделей с несколькими текстовыми энкодерами.

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

Как выглядит аккуратный эксперимент

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

portrait of a woman, red scarf, copper coffee machine in the background

portrait of a woman, (red scarf:1.1), copper coffee machine in the background

portrait of a woman, (red scarf:1.2), copper coffee machine in the background

Это портрет женщины в красном шарфе с медной кофемашиной на фоне. В серии меняется только вес шарфа. Модель, seed, размер и остальные настройки остаются прежними.

Сравнение покажет, появился ли полезный эффект: шарф стал заметнее или вместе с ним покраснели волосы и стена. Если результат подходит только на одном seed, это ещё не надёжное правило для всей серии изображений.

Следующим отдельным опытом можно ослабить кофемашину. Одновременная правка двух весов тоже допустима, но уже сложнее понять, какая из них помогла.

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

Где вес помогает, а где нужен другой инструмент

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

Для точной композиции нужны более прямые средства:

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

И эти инструменты не дают безусловной гарантии, но передают модели пространственную информацию, которой нет в одном коэффициенте.

С чем часто путают

CFG и guidance регулируют использование условий на уровне процесса генерации. Вес фразы меняет часть текстового условия. Их числа нельзя переводить друг в друга.

Negative Prompt задаёт отдельное отрицательное условие в схемах, где оно поддерживается. Взвешивание его фрагмента остаётся мягким воздействием, а не запретом объекта.

Порядок слов влияет через контекст и ограничения длины. Перестановка не равна числовому усилению.

ControlNet передаёт пространственное условие, например карту позы. Вес слова «рука» такую карту не создаёт.

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

С какого числа начать?

Нейтральный вариант 1.0 и небольшие отклонения помогают увидеть реакцию конкретной схемы. Числа в примерах выше — удобные точки сравнения, не универсальные настройки качества.

Почему усилил красный шарф, а покраснел фон?

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

Можно ли взвешивать отрицательный промпт?

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

Почему одинаковые веса дали разные результаты?

Помимо коэффициента важны программа, её версия, энкодеры, модель и вся схема генерации. Сохранённый промпт полезно хранить вместе с настройками или файлом workflow.

Главное

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

Источники