Первая картинка из текста

<!-- lesson: image -->

Урок «image» в группе Картинки: первые шаги списка уроков. Шагов: 11.

Чему вы научитесь

Соберёте граф из семи нод, который рисует картинку по промпту.

Что понадобится

  • Файлы моделей, которые урок проверяет:
    • модель для картинок (SD 1.5, SDXL, Pony, Illustrious, Flux и подобные), а не видео-модель: models/checkpoints, например juggernautXL_v9.safetensors.
  • Ноды: Load Checkpoint, CLIP Text Encode (Prompt), Empty Latent Image, KSampler, VAE Decode, Save Image / Preview Image.
  • Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.

Шаги

Слова каждого шага, как их показывает урок. Имена нод выделены.

  1. Как устроен граф (чтение)

    Граф читается слева направо. Каждая нода делает одно дело, а линии между нодами, связи, несут результат дальше.

    В этом уроке семь нод: загрузка модели, два текста, заготовка, сэмплер, превращение в картинку и сохранение.

    Ноду добавляют двойным щелчком в библиотеке слева или кнопкой «Нода» на панели холста. Собираете вы. Приложение смотрит на холст и само отмечает шаг, когда он сделан.

    Если на холсте уже есть другой граф, начните с пустого: «Файл ▸ Новый проект».

  2. Загрузите модель

    Добавьте ноду Load Checkpoint. В поле ckpt_name выберите файл модели.

    Это модель, которая рисует. В одном файле у неё три части, поэтому у ноды три выхода: MODEL рисует, CLIP понимает текст, VAE превращает результат в картинку.

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

  3. Добавьте два текста

    Добавьте две ноды CLIP Text Encode (Prompt). В одной будет то, что вы хотите увидеть. В другой то, чего на картинке быть не должно.

    Нод две, потому что сэмплер принимает эти тексты по разным входам.

  4. Подключите тексты к модели

    Протяните связь от выхода CLIP ноды Load Checkpoint ко входу clip каждой из двух нод с текстом.

    Связь тянут мышью: от точки на правом краю одной ноды к точке на левом краю другой. Так текст попадает к той части модели, которая умеет его читать.

  5. Напишите, что хотите увидеть

    В одной из двух нод с текстом заполните поле text. Например: тихое озеро на рассвете, туман, мягкий свет.

    Вторую оставьте пустой или перечислите в ней лишнее: размытость, искажения. Большинство моделей лучше понимают английский.

  6. Добавьте заготовку

    Добавьте ноду Empty Latent Image. Поля width и height задают размер будущей картинки.

    Размер подбирают под модель. SD 1.5 учили на картинках 512 на 512, SDXL и модели на её основе, Pony и Illustrious, на 1024 на 1024. С другим размером модель рисует хуже: повторяет фигуры, ломает композицию. Приложение подскажет, если размер далёк от вашей модели.

    Модель не рисует с чистого листа. Она начинает с шума такого размера и шаг за шагом убирает его.

  7. Добавьте сэмплер

    Добавьте ноду KSampler.

    Это главная нода графа: здесь шум превращается в изображение. К ней сходится всё, что вы уже добавили.

  8. Подведите к сэмплеру четыре связи

    Ко входам ноды KSampler подключите:

    • ко входу model выход MODEL ноды Load Checkpoint;
    • ко входу positive выход ноды с вашим промптом;
    • ко входу negative выход второй ноды с текстом;
    • ко входу latent_image выход ноды Empty Latent Image.

    Если перепутать positive и negative, модель будет избегать того, что вы описали.

  9. Превратите результат в картинку

    Добавьте ноду VAE Decode. Ко входу samples подключите выход сэмплера, ко входу vae выход VAE ноды Load Checkpoint.

    Сэмплер выдаёт не картинку, а её сжатый вид. Эта нода разворачивает его в пиксели.

  10. Сохраните картинку

Добавьте ноду Save Image и подключите ко входу images выход ноды VAE Decode.

Без неё ComfyUI посчитает картинку, но никуда её не положит.

  1. Граф готов (чтение)

Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.

Что попробовать в сэмплере:

  • seed: другое число даёт другую картинку по тому же промпту;
  • steps: больше шагов, чище картинка и дольше ожидание. Обычно хватает 20-30;
  • cfg: насколько строго модель следует тексту. Обычно 5-8.

Что проверяет урок

Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:

  • Шаг 2, Загрузите модель:
    • нода Load Checkpoint.
    • в поле ckpt_name ноды Load Checkpoint стоит файл такого вида: модель для картинок (SD 1.5, SDXL, Pony, Illustrious, Flux и подобные), а не видео-модель; такой файл лежит в models/checkpoints, например juggernautXL_v9.safetensors.
  • Шаг 3, Добавьте два текста:
    • нода CLIP Text Encode (Prompt).
    • нода CLIP Text Encode (Prompt).
  • Шаг 4, Подключите тексты к модели:
    • 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).
  • Шаг 5, Напишите, что хотите увидеть:
    • text ноды CLIP Text Encode (Prompt) (промпт): не меньше 3 знаков и 2 настоящих слов.
  • Шаг 6, Добавьте заготовку:
    • нода Empty Latent Image.
    • только совет, шаг его не ждёт: width и height ноды Empty Latent Image около размера, на котором учили модель из поля ckpt_name ноды Load Checkpoint.
  • Шаг 7, Добавьте сэмплер:
    • нода KSampler.
  • Шаг 8, Подведите к сэмплеру четыре связи:
    • MODEL ноды Load Checkpoint во вход model ноды KSampler (можно через Load LoRA или LoraLoaderModelOnly).
    • CONDITIONING ноды CLIP Text Encode (Prompt) (промпт) во вход positive ноды KSampler.
    • CONDITIONING ноды CLIP Text Encode (Prompt) (негатив) во вход negative ноды KSampler.
    • LATENT ноды Empty Latent Image во вход latent_image ноды KSampler.
  • Шаг 9, Превратите результат в картинку:
    • нода VAE Decode.
    • LATENT ноды KSampler во вход samples ноды VAE Decode.
    • VAE ноды Load Checkpoint во вход vae ноды VAE Decode.
  • Шаг 10, Сохраните картинку:
    • нода Save Image или Preview Image.
    • IMAGE ноды VAE Decode во вход images ноды Save Image или Preview Image.

Частые ошибки

  • Перепутаны positive и negative: картинка избегает того, что вы написали.
  • CLIP подключён только к одной текстовой ноде.
  • Оставили 512×512 по умолчанию с моделью SDXL: урок только советует размер выбранной модели в «Осталось сделать» и не держит шаг; для SDXL нужно 1024×1024. См. Размер и пропорции.

Что дальше

Этот урок продолжают: Как читать чужой workflow, Когда граф не помещается в видеокарту, Промпт: как модель его читает, Настройки сэмплера, Доводка второй моделью, SDXL как следует, Как выбрать сэмплер и планировщик, Какой загрузчик для какого файла, Картинка-образец через IP-Adapter, Исправление лиц и рук детейлером, Два варианта промпта и один переключатель, Картинка из картинки, Увеличение моделью, ControlNet: рисунок по контурам картинки, LoRA для картинок, Удаление фона, Музыка из текста: ACE-Step 1.5, Звук из текста: Stable Audio, Картинка в 3D-модель: Hunyuan3D 2, Тот же персонаж на новой картинке: FLUX.1 Kontext, То же лицо по одному фото: IP-Adapter FaceID.

См. также

Страница перенесена из wiki репозитория приложения (docs/wiki/lessons/Image.ru.md, ревизия b8e3f71). То же руководство встроено в приложение: «Справка ▸ Руководство».

Чтобы обновить её, выполните npm run import, а затем npm run build в папке сайта.