Как подключить обученную LoRA в ComfyUI: SDXL и FLUX
Обученному адаптеру нужны совместимая база и workflow, который действительно использует изменённую модель. Положить .safetensors в папку — только первый шаг. Здесь есть SDXL-граф для рецепта обучения SDXL и отдельные инструкции для FLUX.1 dev.
SDXL: файлы в активной установке
Используйте существующее окружение ComfyUI SDXL или ручную установку. Пресет устанавливает RealVisXL, а пример обучения использует SDXL base 1.0. Добавьте базу обучения и явно выберите её для первой оценки.
Пути ниже предполагают активную установку ComfyUI в /workspace/ComfyUI и обучение на том же инстансе. Если обучали на другом сервере, сначала перенесите два файла в соответствующие папки. Проверьте путь до копирования: у другой установленной ComfyUI каталоги могут отличаться.
/workspace/ComfyUI/
models/checkpoints/sd_xl_base_1.0.safetensors
models/loras/mug-sdxl-v1.safetensors
Копируйте выбранный адаптер, а не папку состояния. Для сравнения версий используйте разные имена, например mug-sdxl-step600.safetensors. Не перезаписывайте уже загруженную LoRA под тем же именем: если в памяти могли остаться старые веса, перезапустите ComfyUI.
Официальная база находится в репозитории SDXL base 1.0. Веса не включены в workflow.
Импортируйте canvas JSON
Скачайте sdxl-lora.json и откройте его в ComfyUI. Это формат редактора/canvas. Отдельный sdxl-lora.api.json предназначен для HTTP-запросов и имеет другую структуру.
Все узлы встроенные, custom nodes и менеджер расширений для графа не нужны. Начальные параметры: 1024 × 1024, batch 1, 25 шагов генерации, CFG 5, DPM++ 2M/Karras. Это настройки проверки, а не параметры обучения или измеренное качество.
Выберите реальные файлы базы и адаптера в выпадающих списках. Если список устарел, обновите список моделей или перезапустите сервер, затем загрузите workflow. Сам JSON не устанавливает отсутствующие веса.
Проверьте связи LoRA
Load Checkpoint передаёт MODEL и CLIP в Load LoRA (LoraLoader). MODEL из LoRA Loader идёт в sampler, CLIP — в оба энкодера промптов. VAE по-прежнему берётся напрямую из загрузчика чекпоинта.
В примере обучается только U-Net, поэтому заданы model strength 0.8 и CLIP strength 0.0. Для адаптера с обученными текстовыми энкодерами автор может указать другую силу CLIP. Расширение файла этого не определяет.
Положительный промпт содержит ohwxmug ceramic mug. Замените на свой триггер и класс, если меняли датасет. Запись <lora:name:weight> из A1111 внутри CLIPTextEncode не загружает адаптер в этом workflow.
Сравните эффект до добавления других узлов
Получите базовый результат при нулевом model strength, затем повторите тот же промпт и seed с 0.5, 0.8 и 1.0 для перспективного чекпоинта. CLIP strength для этого адаптера оставьте нулевым. Таблица оценки помогает отдельно оценить объект и управляемость сцены.
При диагностике первого результата не добавляйте ControlNet, другие LoRA, восстановление лиц и апскейлер. Когда базовое сравнение работает, добавляйте по одному компоненту. Генерация с RealVisXL или другой SDXL-базой — отдельный эксперимент, даже если адаптер загружается без ошибки.
При необходимости используйте API-клиент
Сохраните API-граф и run-workflow.py в одной локальной папке. Поднимите SSH-туннель к ComfyUI по руководству API или запускайте клиент на самом инстансе. Сервер должен быть доступен по loopback-адресу.
python run-workflow.py sdxl-lora.api.json --check
python run-workflow.py sdxl-lora.api.json --count 1
Первая команда проверяет узлы и наличие моделей в списках без постановки задачи. Она не проверяет совместимость тензоров LoRA, вместимость в VRAM и не генерирует изображение. Вторая запускает настоящую задачу. Помимо ответа клиента смотрите серверный лог на отсутствующие или несовпавшие ключи адаптера: готовая картинка не доказывает применение всех нужных весов.
Клиент сообщает об ошибках запроса/выполнения и не отправляет неудачную задачу повторно автоматически. Его timeout не отменяет удалённую задачу и не завершает аренду GPU.
У FLUX.1 dev другая загрузка модели
Рецепт FLUX создаёт адаптер FLUX.1 dev. Возьмите официальный пример ComfyUI для FLUX.1 dev, а не SDXL-граф с этой страницы и не schnell workflow сайта.
| Файл | Папка ComfyUI | Загрузчик |
|---|---|---|
flux1-dev.safetensors |
models/diffusion_models/ |
Load Diffusion Model |
clip_l.safetensors, t5xxl_fp16.safetensors |
models/text_encoders/ |
DualCLIPLoader, тип flux |
ae.safetensors |
models/vae/ |
Load VAE |
mug-flux1-dev-v1.safetensors |
models/loras/ |
Load LoRA |
Подайте diffusion MODEL и CLIP из двойного загрузчика в Load LoRA; его выходы используйте в путях модели и текстового кодирования исходного dev workflow. Сохраните FLUX latent, sampling и guidance этого графа. Текстовые энкодеры в примере заморожены, поэтому CLIP strength здесь также нулевой. Training guidance 1.0 не означает, что нужно заменить им значение guidance при генерации.
Скачиваемый граф структурно проверен по ComfyUI fb2315f11db0ebfaafa9099a5df5227dc6bb42bc; inference на GPU и оценка качества не проводились. Сохраняйте workflow, сведения о моделях и результат по руководству хранения. Все руководства по LoRA.
Готовы запустить?
Запустить GPU-сервер