Как ИИ вообще рисует картинку
Сначала - одна интуиция, без которой дальше всё будет казаться магией. Разберём простыми словами, что происходит внутри, когда жмёшь «сгенерировать».
Что такое «диффузионная модель»
Почти все нейросети, которые рисуют картинку по тексту, устроены одинаково. В сердце - диффузионная модель. Это нейросеть, которую натренировали на миллионах пар «картинка + подпись». Во время обучения ей брали нормальную картинку, постепенно забивали её шумом - той самой «рябью», как на старом телевизоре без сигнала, - и заставляли учиться убирать этот шум обратно. Так сеть освоила один-единственный навык: взять зашумлённую картинку и сделать её чуть чище, в сторону того, что описано в тексте.
Дальше - весь фокус. Если повторить этот навык десятки раз, но стартовать не со «слегка зашумлённой картинки», а с чистого шума, - из шума постепенно проступит осмысленная картинка. Ровно это и происходит при каждой генерации. Видно на полоске ниже: одна модель, один seed, слева направо растёт число шагов чистки.




Один seed, одна модель (SDXL). Картинка не «рисуется мазками», а проявляется из шума по мере чистки - это и есть диффузия.
Представь скульптора перед глыбой мрамора. В глыбе «уже есть» статуя - надо просто убрать лишнее. Диффузионная модель так же: ей дают глыбу случайного шума (телевизионная «рябь») и текст-заказ («рыцарь на коне»), а она за несколько десятков шагов скалывает шум так, чтобы проступила именно та картинка, которую описал текст.
Три вещи, которые происходят на самом деле
- Текст переводится в числа. «Рыцарь на коне» человек понимает, а модель - нет. Специальный переводчик (text encoder, он же CLIP) превращает фразу в вектор чисел - «смысл» промпта на языке модели. Это будущая глава 7.
- Модель много раз чистит шум. Стартует с чистого шума и за N шагов (обычно 20-35) убирает «неправильный» шум, ориентируясь на текст. Как именно делать эти шаги - задаёт sampler (глава 9). Сама «насмотренность» - это веса диффузионной модели / checkpoint (глава 6).
- Результат разворачивается в пиксели. Ради скорости вся чистка идёт не над картинкой 1024×1024, а над её сжатой версией - latent. В самом конце декодер (VAE) разворачивает latent обратно в нормальные пиксели (глава 8).
Вот и вся магия. Запомни этот порядок - текст → шум → чистка по тексту → разворот в пиксели - и ты уже понимаешь, зачем в графе именно те ноды, что там есть.
Картинка 1024×1024 - это миллионы пикселей, и чистить шум прямо по ним медленно и прожорливо по памяти. Поэтому модель работает в сжатом виде - latent: у SDXL холст 1024×1024 ужимается в сетку примерно 128×128 - в 8 раз меньше по каждой стороне, то есть в ~64 раза меньше «клеток». Меньше данных → быстрее. VAE - это «архиватор», который жмёт пиксели в latent на входе и разжимает обратно на выходе. Отсюда и Empty Latent в начале графа, и VAE Decode в конце.
Важное следствие: «шум» - это не баг, это управление
Раз всё начинается с шума, то у тебя есть рычаги:
- Seed - какое именно случайное зерно шума взять. Тот же seed + те же настройки = та же картинка. Меняешь seed - новый вариант той же идеи.
- Denoise - сколько шума вообще подмешать.
1.0= стартуем с полного шума (генерация с нуля, txt2img).0.5= берём готовую картинку, портим её наполовину шумом и перечищаем - так работает img2img (перекрас твоего скриншота в стиль). - Steps - сколько шагов чистки. Мало = грязно/недорисовано, много = чище, но дольше (и после ~30 обычно уже без разницы).
Эти три ручки живут в ноде KSampler - сердце любого графа. Всё остальное вокруг него - это «что подать на вход» и «что сделать с результатом».