Архитектура и ключевые особенности
Разработчики представили пакет нод ComfyUI-Iris, позволяющий интегрировать модель Iris-3B в среду ComfyUI. В отличие от традиционных диффузионных моделей, Iris предсказывает RGB-пиксели напрямую. Архитектура использует нативные операции ComfyUI, включая управление вниманием (attention), памятью и патчеры моделей. Ключевое отличие — полное отсутствие VAE (Variational Autoencoder) и конвейера diffusers, что упрощает структуру и снижает накладные расходы.
Модель опирается на текстовый энкодер Qwen3-VL-4B (36 слоев, ширина скрытого состояния 2560). При загрузке ноды не скачивают дополнительные файлы, а используют уже существующие зависимости ComfyUI. Для корректной работы требуется ComfyUI версии 0.37.0+ и Comfy Kitchen 0.2.35+ для поддержки Qwen3-VL-4B, взвешенной RMSNorm/RoPE и GQA-внимания.
Технические параметры и совместимость
Пакет поддерживает различные форматы весов, включая оригинальные чекпоинты, FP16 и нативный смешанный INT8 ConvRot. Модель обрабатывает 12-слойное условие с 300 позициями. Поддерживаются тонкие настройки (fine-tunes), включая «еретические» варианты, при условии сохранения структуры энкодера. Размерность изображений округляется до ближайшего числа, кратного 16, с использованием билинейной интерполяции при необходимости.
| Значение / Описание | |
|---|---|
| Базовая модель | Iris-3B (DiT) |
| Текстовый энкодер | Qwen3-VL-4B (36 слоев, 2560 hidden width) |
| Формат вывода | Прямой RGB (Pixel-space), без VAE |
| Требования к ComfyUI | v0.37.0+ и Comfy Kitchen 0.2.35+ |
| Поддерживаемые форматы весов | FP16, INT8 ConvRot (mixed precision) |
| Стандартные настройки генерации | 1024×1024, 100 шагов, CFG 3, dpmpp_2m |
Работа с ноды и сэмплинг
Основная нода Iris KSampler (Pixels) принимает модель, текстовые подсказки (positive/negative) и опционально исходное изображение для режима Image-to-Image. Параметр denoise по умолчанию равен 1; значение 0 возвращает исходное изображение после округления размеров, а промежуточные значения сохраняют часть исходной информации. Также доступна продвинутая нода Iris Sampler Custom Advanced (Pixels), возвращающая два выхода: output и denoised_output, что позволяет гибко управлять процессом сэмплирования без обрезки сигм.
Квантование и оптимизация
Для оптимизации памяти и скорости разработчики предоставили скрипт quantize.py, позволяющий конвертировать оригинальные веса в FP16 или смешанный INT8 ConvRot прямо на CPU. В формате INT8 ConvRot 128 проекций внимания (Q/K/V/output) хранятся в INT8 с масштабированием FP32, в то время как остальные слои (MLP, нормы, пиксельный заголовок) остаются в FP16. Это консервативная политика квантования, так как некоторые ширины (w1/w3 = 6826) несовместимы с нативными GPU-ядрами INT8 GEMM.
Установка и тестирование
Пакет устанавливается путем размещения директории в ComfyUI/custom_nodes с последующим перезапуском. Исходный код прошел тестирование на CPU (26 тестов), включая проверку паритета с upstream-версией и корректность загрузки квантованных CLIP. На GPU RTX 4090 проверена генерация изображений 64×64 в реальном FP16 и INT8. Для обхода ошибок PyTorch attention в некоторых локальных сборках рекомендуется использовать Comfy Kitchen attention через флаг --use-ck-attention.
Источник: Github ↗
