Как выбрать сэмплер и планировщик

<!-- lesson: samplers -->

Урок «samplers» в группе Картинки: модели списка уроков. Шагов: 10.

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

Поставите рядом два сэмплера, которые отличаются одной настройкой, и научитесь выбирать сравнением.

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

  • Урок продолжает Первая картинка из текста. Карточка говорит об этом; это подсказка, а не замок.
  • Ноды: Load Checkpoint, CLIP Text Encode (Prompt), Empty Latent Image, KSampler, VAE Decode, Save Image / Preview Image, Preview Image / Save Image.
  • Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.

Шаги

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

  1. Две настройки, один способ выбора (чтение)

    Сэмплер (sampler_name) это способ, которым каждый шаг убирает шум. Планировщик (scheduler) решает, сколько шума остаётся перед каждым шагом. Вместе они меняют вид картинки, её детали и то, сколько шагов ей нужно.

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

  2. Нужен граф с картинкой

    Этот урок продолжает граф из урока «Первая картинка из текста». На холсте должны быть Load Checkpoint, две ноды CLIP Text Encode (Prompt), Empty Latent Image, KSampler, VAE Decode и Save Image со связями между ними.

    Если их нет, сначала пройдите тот урок.

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

    Добавьте вторую ноду KSampler и подключите к ней то же, что к первой:

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

    Оба сэмплера начинают с одного пустого латента и одного промпта.

  4. Сделайте всё одинаковым

    В ноде KSampler поставьте seed, steps, cfg и scheduler такими же, как в первом сэмплере.

    Сид это число, из которого делается начальный шум. С одним сидом оба начинают с одного и того же шума, и любая разница в результате идёт от той одной настройки, которую вы меняете.

  5. Поменяйте только сэмплер

    В ноде KSampler выберите другой sampler_name. Например, в первом euler, а во втором dpmpp_2m.

  6. Покажите второй результат

    Добавьте ноду VAE Decode и ноду Preview Image. Выход ноды KSampler идёт во вход samples ноды VAE Decode, выход VAE ноды Load Checkpoint в её вход vae, а её выход во вход images ноды Preview Image.

    Теперь один запуск даёт две картинки рядом.

  7. Закрепите сид и запустите (чтение)

    Под полем seed у каждого сэмплера есть выбор, что делать после запуска. Поставьте fixed в обоих, иначе ComfyUI меняет сид после каждого запуска, и сравнение ломается.

    Сохраните граф, запустите в ComfyUI и посмотрите на две картинки: резкость, цвет, мелкие детали, насколько точно выполнен промпт. Потом попробуйте во второй ноде третий сэмплер, и так далее.

  8. Потом планировщик (чтение)

    Теперь дайте обоим сэмплерам один sampler_name и поменяйте во втором только scheduler.

    • normal и simple: ровные шаги;
    • karras и exponential: больше шагов в конце, на мелкие детали;
    • sgm_uniform: с ним работают с SD 3.5;
    • beta: больше шагов в начале и в конце.

    При 20 шагах и больше разница часто мала, при малом числе шагов велика.

  9. С чего начать для каждого семейства (чтение)

    Пары из собственных шаблонов ComfyUI, хорошее начало:

    • SD 1.5 и SDXL: dpmpp_2m с karras, от 20 до 30 шагов; Pony и Illustrious: euler_ancestral;
    • Flux.1, Flux.2, Qwen-Image: euler с simple;
    • SD 3.5: euler с sgm_uniform;
    • Z-Image: res_multistep с simple;
    • турбо и дистиллированные модели: ровно то, что в их шаблоне, некоторые берут lcm.

    Сэмплеры со словами «ancestral» или «sde» в имени добавляют свежий шум на каждом шаге: картинка не успокаивается с ростом шагов и выходит разнообразнее.

  10. Готово (чтение)

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

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

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

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

  • Шаг 2, Нужен граф с картинкой:
    • нода Load Checkpoint.
    • нода CLIP Text Encode (Prompt).
    • нода CLIP Text Encode (Prompt).
    • нода Empty Latent Image.
    • нода 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 или ModelSamplingSD3).
    • CONDITIONING ноды CLIP Text Encode (Prompt) (промпт) во вход positive ноды KSampler (первый сэмплер).
    • CONDITIONING ноды CLIP Text Encode (Prompt) (негатив) во вход negative ноды KSampler (первый сэмплер).
    • LATENT ноды Empty Latent Image во вход latent_image ноды KSampler (первый сэмплер).
    • LATENT ноды KSampler (первый сэмплер) во вход samples ноды VAE Decode (первый результат).
    • VAE ноды Load Checkpoint во вход vae ноды VAE Decode (первый результат).
    • IMAGE ноды VAE Decode (первый результат) во вход images ноды Save Image или Preview Image.
  • Шаг 3, Добавьте второй сэмплер:
    • нода KSampler.
    • MODEL ноды Load Checkpoint во вход model ноды KSampler (второй сэмплер) (можно через Load LoRA или LoraLoaderModelOnly или ModelSamplingSD3).
    • CONDITIONING ноды CLIP Text Encode (Prompt) (промпт) во вход positive ноды KSampler (второй сэмплер).
    • CONDITIONING ноды CLIP Text Encode (Prompt) (негатив) во вход negative ноды KSampler (второй сэмплер).
    • LATENT ноды Empty Latent Image во вход latent_image ноды KSampler (второй сэмплер).
  • Шаг 4, Сделайте всё одинаковым:
    • seed ноды KSampler (второй сэмплер) равно полю seed ноды KSampler (первый сэмплер).
    • steps ноды KSampler (второй сэмплер) равно полю steps ноды KSampler (первый сэмплер).
    • cfg ноды KSampler (второй сэмплер) равно полю cfg ноды KSampler (первый сэмплер).
    • scheduler ноды KSampler (второй сэмплер) равно полю scheduler ноды KSampler (первый сэмплер).
  • Шаг 5, Поменяйте только сэмплер:
    • sampler_name ноды KSampler (второй сэмплер): не тот же файл, что в поле sampler_name ноды KSampler (первый сэмплер).
  • Шаг 6, Покажите второй результат:
    • нода VAE Decode.
    • нода Preview Image или Save Image.
    • LATENT ноды KSampler (второй сэмплер) во вход samples ноды VAE Decode (второй результат).
    • VAE ноды Load Checkpoint во вход vae ноды VAE Decode (второй результат).
    • IMAGE ноды VAE Decode (второй результат) во вход images ноды Preview Image или Save Image.

См. также

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

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