MOSS-Image Few-Step LoRA: rapid-moss за 4 шага и DMD за 8 шагов
Два LoRA от сообщества сокращают MOSS-Image-SFT с 50 шагов до 4 или 8 проходов сети, а 4-шаговый rapid-moss идёт с нодой ComfyUI.
Слева направо: 50-шаговый учитель, 8-шаговый checkpoint, запущенный на 4 шага, и 4-шаговый адаптер rapid-moss. Тот же seed, оценочные промпты никогда не использовались в обучении. Источник: darask0
Почему цикл выборки сокращается
MOSS-Image-SFT рендерит одно изображение за 50 шагов с CFG 3, а CFG удваивает прямой проход, поэтому одна картинка стоит около 100 вычислений DiT. 8-шаговый checkpoint заменяет этот цикл на data-space DMD (arXiv 2610.12102): генератор выполняет от четырёх до восьми итераций по собственной чистой оценке из фиксированного тензора шума, без CFG и без расписания таймстепов.
4-шаговый адаптер продолжает этот checkpoint и ограничивает его четырьмя итерациями, обученными с DMAD (arXiv 2610.02188). LoRA-критик на замороженном учителе отделяет образцы учителя от образцов студента, а студент минимизирует отрицательный логит критика. Автор обучал на 3 199 промптах с одним образцом учителя на каждый и опубликовал checkpoint на 500-й итерации до того, как более поздние итерации начали ухудшать следование промпту.
Время DiT на одно изображение 1024² на одной H100:
| Checkpoint | Время DiT | Проходы DiT |
|---|---|---|
| MOSS-Image-SFT (50 шагов, CFG 3) | 16.2 s | 100 |
| lodestones 8-step DMD | 1.54 s | 8 |
| rapid-moss 4-step DMAD | 0.81 s | 4 |
Замеры охватывают только трансформер, но не текстовый энкодер Qwen3.5-9B и не VAE. Внутри ComfyUI на RTX PRO 6000 автор замерил от 4.5 до 6.9 секунды для изображения 1024² с учётом кодирования и декодирования текста.
Нода ComfyUI
Оба адаптера представляют собой fp32-дельты LoRA, величина которых меньше шага округления bf16, поэтому их слияние в bf16-веса уничтожает большую часть дистилляции. Это исключает LoraLoaderModelOnly, fuse_lora из diffusers и любой рабочий процесс, который загружает заранее объединённые веса. Входящая в комплект нода MOSS-Image Few-Step Adapter (rapid-moss) вместо этого добавляет LoRA в fp32 во время выполнения, заменяет fp32-путь времени и возвращает согласованную тройку MODEL, SAMPLER и SIGMAS.
Выходы нужно соединять вместе как набор: MODEL в BasicGuider без CFG, затем SAMPLER и SIGMAS в SamplerCustomAdvanced, затем VAE Decode. Euler, sgm_uniform, ModelSamplingSD3 со сдвигом 5 и пропуском слоя 22 — всё это настройки для 50-шагового учителя, и добавлять их здесь не следует. Шаги идут от 1 до 4 для rapid-moss и от 1 до 8 для 8-шагового checkpoint, а сила 1.0 рекомендуется по умолчанию.
Включено два рабочих процесса. Нативный использует стандартные загрузчики ComfyUI: moss_image_sft_bf16.safetensors из Comfy-Org/MOSS-Image, CLIPLoader с типом moss_image и VAE FLUX.2.
Второй рабочий процесс сохраняет собственный HF Loader ноды moss-image от OpenMOSS и указывает на локальный каталог Diffusers:
comfyui/rapid-moss/ из репозитория модели в ComfyUI/custom_nodes/rapid-moss/ и перезапустите.
2. Поместите lora.safetensors, time_embedding.safetensors и dataspace.safetensors в ComfyUI/models/rapid_moss/rapid-moss-4step/. Каждая подпапка в models/rapid_moss/ становится пунктом в меню adapter ноды, поэтому 8-шаговые файлы идут во вторую папку.
3. Загрузите рабочий процесс, выберите адаптер и укажите в качестве базовой модели диффузии веса SFT в bf16 или fp32.
Результаты бок о бок
На 17 оценочных промптах автор сообщает о большей детализации фона и более живой композиции, чем у 8-шагового checkpoint, запущенного на четыре шага, а также об исправлении удвоенного «夏» на вертикальном постере, при этом японский текст на стикерах, вывесках и речевых пузырях остаётся точным.
Учитель, 8-шаговый checkpoint на 4 шагах и 4-шаговый адаптер. Источник: darask0
То же сравнение трёх вариантов на втором промпте. Источник: darask0
Автор также перечисляет регрессии, не сглаживая их: на обложках лайт-новелл появляются посторонние латинские надписи, запрос JSON-раскладки для манги из двух панелей добавил незапрошенного второго человека в нижнюю панель, а мелкий текст на магазинных занавесках и в пузырях манги по-прежнему не удаётся. Качество остаётся ниже 50-шагового учителя.
Нода rapid-moss внутри ComfyUI, где fp32-адаптер подключён к BasicGuider и SamplerCustomAdvanced. Источник: darask0
8-шаговый checkpoint сам по себе
lodestones опубликовал более ранний 8-шаговый checkpoint 16 октября как незавершённую работу. Он состоит только из файлов: lora.safetensors с силой 1.0 или lora_latest.safetensors с 0.7, плюс те же time_embedding.safetensors и dataspace.safetensors. Его собственная карточка указывает на стандартный загрузчик LoRA ComfyUI для 8-шаговых весов, тогда как нода rapid-moss может управлять обоими адаптерами через fp32-путь, который нужен 4-шаговой дельте.
Для тех, кто запускает адаптеры вне ComfyUI, inference.py в репозитории 4-шагового адаптера напрямую воспроизводит сэмплер: держите исходный тензор шума фиксированным, смешивайте его с текущей оценкой через матрицу 128x128 в dataspace.safetensors и читайте коды шагов из того же файла.
Доступность
- 4-шаговый адаптер: darask0/MOSS-Image_4-step_adapter_lora вместе с кодом обучения, логами, оценочными промптами и нодой ComfyUI.
- 8-шаговый checkpoint: lodestones/MOSS-Image-SFT-8-steps-dmd с публичным демо Space.
- Базовая модель: OpenMOSS-Team/MOSS-Image-SFT и перепаковка для ComfyUI в Comfy-Org/MOSS-Image.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.