Доводка второй моделью
Урок «refine» в группе Картинки: первые шаги списка уроков. Шагов: 11.
Чему вы научитесь
Готовую картинку перерисует вторая модель: композиция от первой, фактура и стиль от второй.
Что понадобится
- Урок продолжает Первая картинка из текста. Карточка говорит об этом; это подсказка, а не замок.
- Файлы моделей, которые урок проверяет:
- модель для картинок (SD 1.5, SDXL, Pony, Illustrious, Flux и подобные), а не видео-модель:
models/checkpoints, напримерjuggernautXL_v9.safetensors.
- модель для картинок (SD 1.5, SDXL, Pony, Illustrious, Flux и подобные), а не видео-модель:
- Ноды: Load Checkpoint, CLIP Text Encode (Prompt), KSampler, VAE Decode, Save Image / Preview Image, VAE Encode.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что такое доводка (чтение)
Одна модель лучше слушает промпт и строит композицию. Другая лучше рисует кожу, ткань или свой стиль. Доводка берёт лучшее от обеих: первая модель рисует картинку, вторая перерисовывает её поверх.
Вторая модель начинает не с чистого шума. К готовой картинке добавляют часть шума, и модель убирает его по-своему. Чем больше шума добавлено, тем сильнее меняется картинка.
В этом уроке вы пристроите вторую модель к графу с картинкой.
Нужен граф с картинкой
Этот урок продолжает граф из урока «Первая картинка из текста». На холсте должны быть ноды Load Checkpoint, KSampler, VAE Decode и Save Image со связями между ними.
Подойдёт и граф из урока «Две модели в одном графе»: в нём есть та же часть с картинкой.
Если этих нод нет, сначала пройдите первый урок.
Добавьте вторую модель
Добавьте вторую ноду Load Checkpoint и выберите в поле
ckpt_nameдругую модель: ту, чья фактура или стиль вам нужны.Модели могут быть из разных семейств. Между ними пойдёт картинка, а её понимает любая модель.
Дайте второй модели свои тексты
Добавьте две новые ноды CLIP Text Encode (Prompt) и подключите ко входу
clipкаждой выходCLIPвторой модели. В полеtextодной опишите ту же картинку в манере, которую понимает вторая модель.Тексты первой модели сюда подключать нельзя: их читала другая модель. Промпт можно скопировать, если обе модели читают одинаково, и переписать, если по-разному.
Переведите картинку для второй модели
Добавьте ноду VAE Encode. Ко входу
pixelsподключите выходIMAGEноды VAE Decode, ко входуvaeвыходVAEвторой модели.Каждая модель работает со своим сжатым видом картинки. Эта нода сжимает готовую картинку так, как нужно второй модели, поэтому VAE здесь от неё.
Добавьте второй сэмплер
Добавьте вторую ноду KSampler и подключите к ней:
- ко входу
modelвыходMODELвторой модели; - ко входам
positiveиnegativeдва её текста; - ко входу
latent_imageвыход ноды VAE Encode.
Второй сэмплер получает не пустую заготовку, а вашу картинку в сжатом виде.
- ко входу
Задайте силу доводки
В поле
denoiseвторого сэмплера поставьте 0.5.Это число говорит, какую часть картинки модель перерисует. При 1 она рисует с нуля и первая картинка пропадает. При 0.2 меняются только мелкие детали. От 0.3 до 0.5 композиция остаётся, а фактура и лица становятся такими, как рисует вторая модель.
В полях
stepsиcfgпоставьте то, что советует автор второй модели.Сохраните результат
Добавьте ещё по одной ноде VAE Decode и Save Image. Ко входу
samplesноды VAE Decode подключите выход второго сэмплера, ко входуvaeвыходVAEвторой модели. Её выход идёт во входimagesновой ноды Save Image.Теперь граф сохраняет две картинки: до доводки и после. Сравнивайте их, пока подбираете
denoise.Если модели из одного семейства (чтение)
Модели одного семейства работают с одним и тем же сжатым видом картинки. Тогда разворачивать и снова сжимать её не нужно: выход
LATENTпервого сэмплера подключают прямо ко входуlatent_imageвторого. Так теряется меньше деталей.К одному семейству относятся, например, SDXL и модели на её основе: Pony, Illustrious. Или две модели SD 1.5. Семейство файла показывает его карточка во вкладке «Модели».
Между разными семействами так делать нельзя: вторая модель получит числа, которых не понимает, и выдаст шум или ошибку. Через картинку, как в этом уроке, работает всегда.
LoRA в графе с двумя моделями (чтение)
У каждой модели свои LoRA. LoRA первой модели ставят между первой нодой Load Checkpoint и первым сэмплером, LoRA второй между второй нодой Load Checkpoint и вторым сэмплером.
Слова LoRA пишут в промпт той модели, в пути которой она стоит.
Если на первом проходе LoRA задаёт героя, а второй проход его размывает, уменьшите denoise или поставьте во второй путь LoRA того же героя, сделанную для второй модели.
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Что попробовать:
denoise0.3 и 0.5: насколько вторая модель меняет картинку;- поменять модели местами: кто лучше строит композицию, а кто доводит.
Если после картинки идёт видео, ко входу start_image подключите выход IMAGE новой ноды VAE Decode: тогда ролик начнётся с доведённой картинки.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Нужен граф с картинкой:
- нода Load Checkpoint.
- нода CLIP Text Encode (Prompt).
- нода CLIP Text Encode (Prompt).
- нода KSampler.
- нода VAE Decode.
- нода Save Image или Preview Image.
CLIPноды Load Checkpoint (первая модель) во входclipноды CLIP Text Encode (Prompt) (промпт) (можно через Load LoRA или CLIP Set Last Layer).CLIPноды Load Checkpoint (первая модель) во входclipноды CLIP Text Encode (Prompt) (негатив) (можно через Load LoRA или CLIP Set Last Layer).MODELноды Load Checkpoint (первая модель) во входmodelноды KSampler (сэмплер) (можно через Load LoRA или LoraLoaderModelOnly).CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды KSampler (сэмплер).CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды KSampler (сэмплер).LATENTноды KSampler (сэмплер) во входsamplesноды VAE Decode (превращение в кадры).IMAGEноды VAE Decode (превращение в кадры) во входimagesноды Save Image или Preview Image (сохранение).
- Шаг 3, Добавьте вторую модель:
- нода Load Checkpoint.
ckpt_nameноды Load Checkpoint (вторая модель): не тот же файл, что в полеckpt_nameноды Load Checkpoint (первая модель).- в поле
ckpt_nameноды Load Checkpoint (вторая модель) стоит файл такого вида: модель для картинок (SD 1.5, SDXL, Pony, Illustrious, Flux и подобные), а не видео-модель; такой файл лежит вmodels/checkpoints, напримерjuggernautXL_v9.safetensors.
- Шаг 4, Дайте второй модели свои тексты:
- нода CLIP Text Encode (Prompt).
- нода CLIP Text Encode (Prompt).
CLIPноды Load Checkpoint (вторая модель) во входclipноды CLIP Text Encode (Prompt) (промпт второй модели) (можно через Load LoRA или CLIP Set Last Layer).CLIPноды Load Checkpoint (вторая модель) во входclipноды CLIP Text Encode (Prompt) (негатив второй модели) (можно через Load LoRA или CLIP Set Last Layer).textноды CLIP Text Encode (Prompt) (промпт второй модели): не меньше 3 знаков.
- Шаг 5, Переведите картинку для второй модели:
- нода VAE Encode.
IMAGEноды VAE Decode (превращение в кадры) во входpixelsноды VAE Encode.VAEноды Load Checkpoint (вторая модель) во входvaeноды VAE Encode.
- Шаг 6, Добавьте второй сэмплер:
- нода KSampler.
MODELноды Load Checkpoint (вторая модель) во входmodelноды KSampler (сэмплер второй модели) (можно через Load LoRA или LoraLoaderModelOnly).CONDITIONINGноды CLIP Text Encode (Prompt) (промпт второй модели) во входpositiveноды KSampler (сэмплер второй модели).CONDITIONINGноды CLIP Text Encode (Prompt) (негатив второй модели) во входnegativeноды KSampler (сэмплер второй модели).LATENTноды VAE Encode во входlatent_imageноды KSampler (сэмплер второй модели).
- Шаг 7, Задайте силу доводки:
denoiseноды KSampler (сэмплер второй модели): от 0.2 до 0.5; «Сделать за меня» ставит 0.5. Почему: это доля картинки, которую перерисует вторая модель. При 0.5 композиция остаётся, а фактура меняется.
- Шаг 8, Сохраните результат:
- нода VAE Decode.
- нода Save Image или Preview Image.
LATENTноды KSampler (сэмплер второй модели) во входsamplesноды VAE Decode (превращение для второй модели).VAEноды Load Checkpoint (вторая модель) во входvaeноды VAE Decode (превращение для второй модели).IMAGEноды VAE Decode (превращение для второй модели) во входimagesноды Save Image или Preview Image (сохранение второй модели).
Частые ошибки
- Сжать картинку VAE первой модели: вторая модель получит латент, который не может прочесть.
- Подать во второй сэмплер текстовые ноды первой модели.
denoise1: первая картинка теряется целиком.- Передать
LATENTмежду разными семействами: шум или ошибка.