Если ты внимательно разглядывал сгенерированные картинки от Midjourney, Stable Diffusion или FLUX, то наверняка подмечал характерную деталь: лица и пейзажи выглядят потрясающе, но стоит приблизиться к мелким деталям — порам кожи, фактуре льняной ткани, текстуре дерева или крошечным надписям на этикетках — как в глаза бросается странная замыленность.
Это не случайность, а архитектурное ограничение латентной диффузии (Latent Diffusion Models, LDM). Чтобы видеокарта не задохнулась от миллионов пикселей, автоэнкодер (VAE) сжимает картинку в 8 или 16 раз в компактное «латентное» пространство признаков. Нейросеть генерирует изображение там, а потом пытается разжать его обратно в пиксели. На этом этапе неизбежно теряется микрогеометрия: текст плывет, а тонкие линии превращаются в пластиковую кашу. Ранее мы видели, как разработчики пытались решать проблему текста через сложные сетки, например в модели Qwen-Image 3.0, но команда исследователей speridlabs предложила куда более смелый ход.
Они выложили в открытый доступ модель Iris-3B, которая полностью отказывается от латентного пространства и вариационных автоэнкодеров, генерируя картинку напрямую в честных RGB-пикселях.
Как устроена пиксельная диффузия в 3 миллиардах параметров
Вместо сжатия в латент Iris-3B работает напрямую с пиксельными патчами в исходном разрешении 1024×1024. Как разработчикам удалось заставить модель на 3 миллиарда параметров делать это быстро и без запредельного расхода VRAM?
Секрет кроется в двух инженерных решениях:
- Куррикулумное обучение (Curriculum Scaling): нейросеть обучали поэтапно. Сначала она училась понимать композицию и форму на крошечных разрешениях $256 \times 256$, затем переходила на $512 \times 512$, и лишь на финальном этапе дообучалась честному попиксельному синтезу $1024 \times 1024$.
- Визуально-языковой энкодер Qwen-VL: вместо стандартного текстового энкодера CLIP здесь используется мощный мультимодальный энкодер, понимающий пространственные отношения объектов («чашка стоит справа от ноутбука, надпись выгравирована по центру ручки»).
В итоге одна модель закрывает сразу три прикладные задачи: классический Text-to-Image (T2I), четырехкратный апскейлинг (Super-Resolution 4x) и реставрацию старых или поврежденных снимков (Inpainting).
Практический запуск: генерация и апскейлинг на Python
Благодаря открытым весам на Hugging Face (speridlabs/iris-3b) запустить прямую пиксельную генерацию в PyTorch можно локально на любой видеокарте с 16 ГБ VRAM:
import torch
from PIL import Image
from iris import IrisPixelPipeline
# 1. Загрузка пайплайна прямого пиксельного инференса
device = "cuda" if torch.cuda.is_available() else "cpu"
pipe = IrisPixelPipeline.from_pretrained(
"speridlabs/iris-3b",
torch_dtype=torch.bfloat16,
)
pipe.to(device)
# 2. Промпт с упором на осязаемую физическую микротекстуру
prompt = (
"A close-up studio photograph of an artisanal ceramic coffee mug, "
"rough matte clay texture with tiny mineral speckles, crisp typography reading 'ROAST 2026', "
"sharp focus, macro photography, natural morning daylight."
)
negative_prompt = "blurry, low resolution, plastic skin, compression artifacts, distorted letters"
# 3. Прямой синтез кадра 1024x1024 без VAE-декодера
with torch.inference_mode():
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
height=1024,
width=1024,
num_inference_steps=30,
guidance_scale=4.5,
).images[0]
image.save("ceramic_mug_pixel.png")
А если у тебя уже есть изображение низкого разрешения, тот же чекпоинт работает как первоклассный восстановитель текстур:
from iris import IrisRestorationPipeline
restore_pipe = IrisRestorationPipeline.from_pretrained(
"speridlabs/iris-3b",
torch_dtype=torch.bfloat16
).to("cuda")
low_res_input = Image.open("input_256.png").convert("RGB")
with torch.inference_mode():
upscaled = restore_pipe(
image=low_res_input,
scale_factor=4,
num_inference_steps=20,
).images[0]
upscaled.save("output_1024_restored.png")
Если тебе нужны предметные фотографии товаров для маркетплейсов, этикетки, мокапы электроники или ювелирные изделия, Iris-3B выдает непревзойденную резкость граней и читаемость шрифтов. Никаких артефактов VAE-декодера вокруг букв: пиксели рендерятся строго по сетке.
Честное сравнение с FLUX и слабые стороны
Давай начистоту: пиксельное пространство — это не бесплатный сыр. Без сжатия VAE трансформер вынужден обрабатывать в десятки раз больше токенов. На RTX 4090 один кадр 1024×1024 генерируется за 12–18 секунд, тогда как дистиллированные латентные модели справляются за 3–5 секунд.
Второй компромисс — объемный кинематографический свет. В сложных масштабных сценах (закатный туман над мегаполисом, неоновый дождь в лесу) флагманский FLUX.2 по-прежнему выглядит атмосфернее и глубже за счет богатого латентного распределения. Iris-3B больше тяготеет к бритвенной макро-резкости, чем к киношной дымке.
Тем не менее, появление Iris-3B доказывает: эра монополии латентных автоэнкодеров подошла к концу. Сообщество уже собрало порт iris-3b-metal для Apple Silicon и ноды для ComfyUI, так что протестировать чистые пиксели можно прямо сегодня.
