Картинка из картинки
Урок «img2img» в группе Картинки: приёмы списка уроков. Шагов: 9.
Чему вы научитесь
Ваша картинка становится новой: та же композиция, заново нарисованная моделью по описанию.
Что понадобится
- Урок продолжает Первая картинка из текста. Карточка говорит об этом; это подсказка, а не замок.
- Ноды: Load Checkpoint, CLIP Text Encode (Prompt), KSampler, VAE Decode, Save Image / Preview Image, Load Image, Scale Image to Total Pixels, VAE Encode.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что такое «картинка из картинки» (чтение)
Здесь модель начинает не с пустого шума, а с вашей картинки. Картинку переводят в сжатый вид, с которым работает модель, в латент; к нему добавляют часть шума, и сэмплер убирает этот шум по вашему описанию.
Сколько шума добавить, задаёт
denoise. При 1 от картинки ничего не остаётся. При 0.3 меняются только мелкие детали. Между ними композиция остаётся, а остальное рисуется заново.Урок добавляет три ноды к графу из урока «Первая картинка из текста».
Нужен граф с картинкой
Этот урок продолжает граф из урока «Первая картинка из текста». На холсте должны быть Load Checkpoint, два текста CLIP Text Encode (Prompt) и CLIP Text Encode (Prompt), KSampler, VAE Decode и Save Image со связями между ними.
Если их нет, сначала пройдите тот урок.
Загрузите свою картинку
Добавьте ноду Load Image и выберите картинку в её поле
image. ComfyUI берёт картинки из своей папкиinput; кнопка на ноде загружает картинку туда.Композиция, цвета и свет результата придут из этой картинки.
Приведите картинку к размеру, который знает модель
Добавьте ноду Scale Image to Total Pixels и подключите выход
IMAGEноды Load Image к её входуimage. В полеmegapixelsпоставьте 1.Модель лучше всего рисует в том размере, на котором её учили. Один мегапиксель это около 1024 × 1024, как раз для SDXL и более новых моделей. Для модели SD 1.5 поставьте 0.25, это 512 × 512. Снимок с телефона во много раз больше, и модель начала бы повторять его части.
Переведите картинку в латент
Добавьте ноду VAE Encode. Ко входу
pixelsподключите выход ноды Scale Image to Total Pixels, ко входуvaeвыходVAEноды Load Checkpoint.Сэмплер работает не с пикселями, а с их сжатым видом. Эта нода сжимает картинку тем VAE, который принадлежит рисующей модели.
Отдайте сэмплеру свою картинку
Подключите выход ноды VAE Encode ко входу
latent_imageноды KSampler. Связь от пустого латента заменится: во вход идёт только одна связь.Пустой латент больше не нужен. Оставьте его или удалите: ComfyUI не запускает ноду, выход которой никуда не идёт.
Решите, сколько рисовать заново
Поставьте
denoiseноды KSampler на 0.6.При 0.6 композиция и крупные формы остаются, а фактуры, лица и стиль следуют описанию. Опустите до 0.4, когда результат должен остаться близким к исходнику. Поднимите до 0.8, когда важна только раскладка.
Описывайте, что должно быть на картинке, а не что поменять: модель не сравнивает, а рисует.
Сравнивайте варианты честно (чтение)
Чтобы увидеть, что делает одна настройка, меняйте только её. Под полем
seedноды KSampler поставьте «control after generate» вfixed: шум тогда одинаков от запуска к запуску, и разницу даёт только то, что вы поменяли. Сrandomizeкаждый запуск начинается с нового шума, и вы сравниваете удачу, а не настройки.Несколько вариантов за один запуск: в графе из текста это
batch_sizeпустого латента, здесь нода Repeat Latent Batch между VAE Encode и KSampler. Каждая картинка пачки получает свой шум из того жеseed.Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Что попробовать:
denoise0.4 и 0.8 при одномseed; рисунок или набросок вместо картинки и описание фотографии.Save Image записывает в сохраняемый PNG весь граф вместе с описаниями: картинка, перетащенная в ComfyUI, снова открывает граф. Прежде чем делиться картинкой, граф которой должен остаться при вас, переведите её в другой формат или запустите ComfyUI с параметром
--disable-metadata, тогда граф в файлы не пишется.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 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 или DifferentialDiffusion или ModelSamplingAuraFlow или ModelSamplingFlux или CFGNorm или IPAdapter Unified Loader или IPAdapter или IPAdapterAdvanced или IPAdapterStyleComposition).CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды KSampler (можно через Apply ControlNet или InpaintModelConditioning или Conditioning (Combine) или ConditioningSetArea или ConditioningSetAreaPercentage или ConditioningSetMask или Apply Style Model или FluxGuidance или ConditioningZeroOut или FluxKontextMultiReferenceLatentMethod).CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды KSampler (можно через Apply ControlNet или InpaintModelConditioning или Conditioning (Combine) или ConditioningSetArea или ConditioningSetAreaPercentage или ConditioningSetMask или Apply Style Model или FluxGuidance или ConditioningZeroOut или FluxKontextMultiReferenceLatentMethod).LATENTноды KSampler во входsamplesноды VAE Decode.VAEноды Load Checkpoint во входvaeноды VAE Decode.IMAGEноды VAE Decode во входimagesноды Save Image или Preview Image.
- Шаг 3, Загрузите свою картинку:
- нода Load Image.
imageноды Load Image: значение выбрано.
- Шаг 4, Приведите картинку к размеру, который знает модель:
- нода Scale Image to Total Pixels.
IMAGEноды Load Image во входimageноды Scale Image to Total Pixels.megapixelsноды Scale Image to Total Pixels: от 0.2 до 2; «Сделать за меня» ставит 1.
- Шаг 5, Переведите картинку в латент:
- нода VAE Encode.
IMAGEноды Scale Image to Total Pixels во входpixelsноды VAE Encode.VAEноды Load Checkpoint во входvaeноды VAE Encode.
- Шаг 6, Отдайте сэмплеру свою картинку:
LATENTноды VAE Encode во входlatent_imageноды KSampler.
- Шаг 7, Решите, сколько рисовать заново:
denoiseноды KSampler: от 0.3 до 0.9; «Сделать за меня» ставит 0.6.
Что дальше
Этот урок продолжают: Инпейнтинг: перерисовать часть картинки.