Textual Inversion

textual inversion — обучение нового «слова» через эмбеддинг

Раздел
Адаптеры
Сокращ.
TI
Обновлено
19.06.26

Textual Inversion (TI) — самая лёгкая техника настройки диффузионной модели: тренируется эмбеддинг одного нового токена в словаре CLIP, веса модели не трогаются. Файл получается ~5–50 КБ, тренировка занимает 30–60 минут на 10–30 примерах. Хорошо подходит для абстрактных стилей и для negative prompt (`easynegative`, `BadHandsv4`). Для точного копирования объектов или лиц слабее, чем LoRA или DreamBooth, но в десятки тысяч раз компактнее.

Коротко

Коротко. Textual Inversion — это «научить модель новому слову». Тренируется только эмбеддинг одного токена в словаре CLIP. Файл ~5–50 КБ, обучение за 30–60 минут. Главное применение в 2026 — негативные эмбеддинги (easynegative для SD 1.5), а не персонажи или сложные стили: для них LoRA сильнее. Любая модель той же базы видит эти токены как обычные слова.

Что это такое

Январь 2022-го. Команда из Tel-Aviv University публикует работу «An Image is Worth One Word»: оказывается, можно научить диффузионную модель новому концепту, не трогая её веса. Достаточно подобрать для одного нового «слова» специальный эмбеддинг — вектор в пространстве CLIP — и модель будет понимать его как обычный токен.

Прорыв был в размере: пока другие методы (DreamBooth) требовали тренировать всю модель и получать гигабайтные файлы, Textual Inversion обучался за полчаса и весил 5–50 КБ.

Технически TI добавляет в словарь CLIP один новый токен (например, <my-token>) и тренирует только его эмбеддинг. Веса остальной модели не трогаются. После обучения вы используете <my-token> в промпте как обычное слово.

К 2026 году TI ушёл на второй план — LoRA выразительнее, тренируется ненамного дольше, файл всего 30–200 МБ. Но в одном применении TI остался стандартом: негативные эмбеддинги для SD 1.5. Файлы easynegative (24 КБ) и BadHandsv4 (50 КБ) подключаются как одно слово в negative и заменяют десяток текстовых тегов.

Как это работает

Внутри CLIP словарь токенов фиксирован — около 50 000 слов. Каждому токену соответствует эмбеддинг — вектор 768 чисел (для SD 1.5) или 2048 (для SDXL). Промпт «cat sitting» превращается в последовательность эмбеддингов из этого словаря.

Textual Inversion добавляет в словарь ОДИН новый токен (плюс несколько «слотов» для лучшего качества). Тренировка:

  1. Берём 10–30 картинок с похожим концептом (тот же стиль, тот же объект).
  2. Инициализируем эмбеддинг для нового токена случайно или от близкого слова.
  3. Сэмплер делает шаги шумоподавления на обучающих картинках.
  4. Loss считается между предсказанным и реальным шумом.
  5. Эмбеддинг подкручивается градиентным спуском так, чтобы предсказание приблизилось к цели.
  6. Веса модели НЕ меняются — только эмбеддинг токена.

После 1000–5000 шагов получается обученный токен. Его эмбеддинг сохраняется в .pt или .safetensors файл ~5–50 КБ.

В Automatic1111 файлы кладутся в embeddings/ и используются как слово в промпте: a photo of <my-token> sitting. В ComfyUI — узел Load Textual Inversion, который подключается к CLIP Text Encoder.

Пример на практике

Иллюстратору надоело каждый раз писать длинный negative для SDXL: blurry, low quality, watermark, text, deformed, extra fingers, bad anatomy, plastic skin, cgi, signature. 10 слов в каждом промпте.

Решение — скачать с CivitAI готовый negative embedding для SDXL (например, ac_neg2 или negativeXL_D) и использовать его одним токеном: в поле negative пишет negativeXL_D — один токен заменяет 10 текстовых тегов.

Качество результата не уступает развёрнутому negative, иногда даже чище — эмбеддинг точнее «знает», от каких признаков уводить.

Другой сценарий — собственный artistic style. Иллюстратор делает 25 эскизов в авторской манере, тренирует TI на kohya_ss за 40 минут. Получает файл myStyle.safetensors 12 КБ. Использует как myStyle, portrait of a girl — модель применяет стиль.

В случае со стилем LoRA даст результат точнее, но TI весит в 8000 раз меньше и можно держать сотни эмбеддингов под рукой.

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

  • Textual Inversion и Embedding — TI это процесс обучения нового эмбеддинга. Сам эмбеддинг — результат, который потом подключается к CLIP. Часто в речи говорят «эмбеддинг» имея в виду TI-файл.
  • Textual Inversion и LoRA — TI обучает только эмбеддинг одного токена (30 КБ); LoRA меняет веса слоёв модели (100 МБ). LoRA выразительнее, TI компактнее.
  • Textual Inversion и DreamBooth — DreamBooth тренирует всю модель (6 ГБ), TI — только один токен. Это два полюса спектра.
  • Textual Inversion и Hypernetwork — Hypernetwork добавляет дополнительный слой к U-Net и был популярен до LoRA. TI работает на стороне CLIP, Hypernetwork на стороне U-Net.

Частые ошибки и заблуждения

  • «TI копирует лицо точно». Не копирует. CLIP не умеет так детально кодировать лица. Для идентичности нужен IP-Adapter FaceID, LoRA или DreamBooth.
  • «Больше шагов тренировки = лучше». До 2000–3000 шагов растёт, после переобучается. Эмбеддинг начинает «прилипать» к датасету и плохо работает в новых промптах.
  • «TI работает на любой модели той же архитектуры». Технически да — easynegative для SD 1.5 работает на любом SD 1.5 тюнинге. Но качество варьируется: на тюнинге, далёком от базовой SD 1.5, эффект может быть слабее.
  • «TI устарел». Не совсем. Для negative-эмбеддингов в SD 1.5 остаётся стандартом. Для positive — да, LoRA победила.
  • «TI требует мощного железа». Нет, тренировка идёт даже на 6 ГБ VRAM. Это самый дешёвый способ настройки.

Связанные термины

  • CLIP — текстовый энкодер, в словарь которого добавляется новый токен TI.
  • LoRA — следующая по тяжести и выразительности техника адаптации.
  • DreamBooth — полная тренировка модели на новом объекте.
  • Embedding — общее понятие, к которому относится TI.
  • Negative Prompt — главное применение TI в 2026 (easynegative, BadHandsv4).
  • Hypernetwork — устаревшая альтернатива TI, работающая на стороне U-Net.

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

Сколько примеров нужно для TI? 10–30 картинок. Меньше — модель не выучит. Больше — обычно не помогает, нужна разнообразность, а не количество.

Сколько шагов тренировать? 1000–3000 для большинства задач. Превышение приводит к переобучению. В kohya_ss и Automatic1111 есть автосейв на каждые 500 шагов — можно проверить разные точки.

TI работает в SDXL? Да, но эмбеддинг будет 2048-мерный вместо 768. Файлы SD 1.5 и SDXL несовместимы. Для SDXL ищите TI с пометкой SDXL на CivitAI.

А в FLUX? Не работает напрямую. FLUX использует T5-XXL вместо CLIP, и архитектура другая. Нужны другие методы (PuLID, LoRA для FLUX).

Где найти готовые TI? CivitAI (раздел «Textual Inversion»), Hugging Face, GitHub-репозитории. Самые популярные — негативные эмбеддинги: easynegative, BadHandsv4, negative_hand для SD 1.5; negativeXL_D для SDXL.

В чём преимущество перед LoRA? Размер (КБ vs МБ), скорость тренировки (минуты vs час), лёгкость комбинирования (много TI в одном промпте без потери качества). Уступает в выразительности.

Главное

Textual Inversion — самая лёгкая техника адаптации диффузионной модели: один новый токен в словаре CLIP, файл в килобайтах, тренировка за полчаса. В 2026 году главное применение — negative-эмбеддинги для SD 1.5: один слово в поле negative заменяет десяток тегов. Для стилей и persistent-объектов LoRA сильнее, для лиц — DreamBooth или IP-Adapter FaceID. TI остаётся в арсенале как самый дешёвый способ начать.