
У кошачьих лапок, женской анатомии и квантованных Checkpoint есть одно общее - все они начинают «страдать», если генератору не хватает шагов и VRAM.
В этой статье мы рассмотрим сравнение моделей Flux dev Q8_0.GGUF с новой, недавно вышедшей в открытый доступ комьюнити версией Flux Kontext dev Q8_0.GGUF и Flux Kontext dev bnb-nf4 + Hyper Flux.1 dev-8steps Lora и с Flux Kontext dev.safetensors для генерации одиночных изображений и совмещения одного изображения с другим.
Примечание 1: статья написана 50/50 в формате (сравнения моделей/образовательное обучение) + щепотка юмора.
Примечание 2: в статье много ссылок на исходные материалы, ресурсы, модели.
Примечание 3: статья рассчитана «для самых маленьких» поэтому всё объяснено максимально подробно.
Flux Kontext dev — свежая линейка community‑чекпоинтов от компании Black Forest Labs, построенных на архитектуре Stable Diffusion и заточенных под слияние текстовых и визуальных подсказок «в один кадр». В паре с WebUI Forge она превращает локальный ПК в мини‑студию: drag‑and‑drop два изображения, жмём Generate — и вот уже ваша девушка обнимает котика, будто всю жизнь занималась рекламой Whiskas)
Почему локально?
Несмотря на обилие различных «облачных» нейронок и наличия у большинства из них бесплатных (пробных) планов, которые обновляются если не каждый день, то каждую неделю точно – у локальных «генераторов» есть достаточно существенные плюсы:
во-первых мы можете сгенерировать абсолютно всё, что придёт вам в голову – вообще без ограничений, отсутствие цензуры полностью;
во-вторых - независимость от интернета – генерируйте в поезде, в дороге или в лесу)), главное, чтобы рядом была розетка или генератор;
в-третьих – скорость – если у вас хорошая видеокарта можно получить гораздо большую скорость, чем есть скажем у ChatGPT или Midjourney;
в-четвёртых – стабильность и контроль – контролируйте абсолютно все параметры – вы и только вы отвечаете за стабильность и качество результата, зато если правильно всё настроите, то можно запустить 1 скрипт и отправить хоть 100500 генераций на ночь, пока вы будете спать;
в-пятых – приватность - картинки котиков (и не только) остаются в вашей VRAM, а не на серверах OpenAI).
Что именно мы будем сравнивать?
Скорость и VRAM‑пик на четырёх конфигурациях моделей.
Качество: анатомия рук/лап, текстура кожи/шерсти, сохранение брендинга на флаконе.
Стабильность: сколько раз из 10 прогоны не уходят в «шестипалую девочку».
И — да, почему «девушки + котики»? Потому что этот дуэт гарантированно собирает лайки, повышает CTR и оживляет даже самое скучное техническое сравнение ?.
Обозначу вначале своё «железо» для лучшего понимания различных настроек. Все эксперименты и тестирование проводилось на двух «компах»:
Системный блок с: RTX 3060 12 GB VRAM / 64 GB DDR4 / Intel i5‑7600K @ 4.2 GHz / NVMe SSD; Windows 10 Home;
Ноутбук с: RTX 4070 8 GB VRAM / 32 GB DDR4 / Intel i9‑14900HX / NVMe SSD; Windows 10 Home.
WebUI Forge последняя версия, Python 3.10.6, CUDA 12.1.
Sampler: Euler, Schedule type = Simple; steps: 24 (GGUF) / 10 (NF4 + LoRA); Distilled CFG = 3.5; CFG = 1.
Начнём экспериментировать)
Установка моделей и расширений
В самом начале нам нужно всё это установить. Предположим у вас уже есть (установлен) Forge, но если нет вам нужно его скачать этой ссылке: https://github.com/lllyasviel/stable-diffusion-webui-forge - следуйте инструкции по установке.
Кроме этого, вам потребуется загрузить 8 файлов – готовьте примерно 40гб свободного пространства на SSD-диске, лучше NVMe m.2:
-
Вначале загрузим обычный Flux.1-dev – у Flux Kontext dev мной замечена небольшая пластиковость кожи и потеря реалистичности некоторых объектов, поэтому лучше держать на своём компе две версии Flux.
Проанализируйте возможности вашей системы, и загрузите нужный Checkpoint – то на чём будет работать и что-то генерировать наш алгоритм нейросети - в формате GGUF: https://huggingface.co/city96/FLUX.1-dev-gguf/tree/main или загрузить FP8.safetensors: https://huggingface.co/XLabs-AI/flux-dev-fp8/tree/main - чем больше checkpoint – тем больше данных и соответственно больше точность генерации. Однако, если у вас 8-12гб VRAM я всё же советую использовать квантованный Q8_0.GGUF поскольку при его использовании я не заметил никаких проблем в количестве пальцев рук и других артефактов. Если же вам повезло и у вас стоит 3090 или 4090 или 5090 – то вы можете загрузить полноценный FP16.safetensors - https://huggingface.co/black-forest-labs/FLUX.1-dev/tree/main
Примечание 4: что такое GGUF и чем он отличается от safetensors?
В теории:
GGUF = «Grokking GGML Universal Format» – контейнер, придуманный ggml-/llama.cpp-экосистемой. Содержит квантованные (8/6/5/4-бит) блоки весов + расширенные метаданные (tokenizer, линейные слои SD-UNet и т. д.). GGUF спроектирован под постраничное чтение. Лоадер (например, exllama-v2 – умеет разбивать веса на tiles, детально управлять размещением (GPU-cache, CPU-swap) и перезаписывать слои UNet «на лету») может держать часть блоков в GPU, а «холодные» – в RAM, подтягивая их по PCIe только при необходимости («Горячие» (hot) участвуют в вычислениях почти на каждом шаге (ранние и поздние блоки UNet). «Холодные» (cold) нужны реже). Позволяет запускать 4–8-бит модели на 6-8 GB картe.
Safetensors = Контейнер-файл (альтернативный .pt/.ckpt) для хранения тензоров PyTorch. Внутри – обычные FP16 (или FP32) веса, размещённые последовательно + JSON-метаданные. Safetensors грузится целиком в GPU. Если VRAM не хватает – PyTorch/драйвер либо фолбекнут (SysMem Fallback - возможность драйвера NVIDIA (начиная с 535.xx) автоматически «разливать» переполненные GPU-буферы в системную память) оставшиеся страницы в ОЗУ, либо кинут CUDA out-of-memory.
На практике:
safetensors: torch.load() - вся модель размечается как CUDA-тензор и за один проход копируется в VRAM. Если памяти нет – CUDA OOM (нехватка памяти) или автоматический spill (медленно).
GGUF + exllama-v2: файл memory-map; лоадер читает только заголовок, строит индексы. Далее задаётся GPU cache size (скажем, 5 GB из 8). Часть блоков сразу едет в VRAM, остальные остаются «холодными».
safetensors: все веса уже в VRAM – обращаемся к ним без PCIe.
GGUF: при переходе к, например, mid-blocks UNet, лоадер проверяет, есть ли нужные тензоры в GPU-кэше. Нет - вытесняет самый «старый» блок, загружает новый из RAM (1-2 мм сек).
Плюсы / минусы:
GGUF - даёт экономию VRAM (можно работать на 4-8 GB), но платим большим количеством времени на «распаковку» модели и загрузку.
Safetensors - быстрее на полноценных 12–24 GB картах и проще: поддерживается «всем», нет зависимости от exllama. Но если памяти мало, падает или резко тормозит скорость.
После того как загрузили нужную модель помещаем её по пути \webui\models\Stable-diffusion\Flux – последняя папка «Flux» необязательна, но если вы используете модели других поколений или компаний будет полезно создать для каждой отдельную папку чтобы не запутаться.
Следующим этапом загрузим текстовые энкодеры: нужно загрузить этот файл https://huggingface.co/comfyanonymous/flux_text_encoders/blob/main/clip_l.safetensors и вот этот - https://huggingface.co/hfmaster/models-moved/blob/0cd2fcc2a918ea05bdb0ae06739701c31fa499ee/flux/t5xxl_fp8_e4m3fn.safetensors и vae - https://huggingface.co/lovis93/testllm/blob/ed9cf1af7465cebca4649157f118e331cf2a084f/ae.safetensors
Текстовые енкодеры нужно поместить в папку по пути - webui\models\text_encoder а vae - webui\models\VAE.
-
И наконец, загрузим Flux Kontext dev. На выбор предлагаю FP16, FP8, NF4 и GGUF. Я опять же советую, если у вас 8-12гб VRAM использовать Q8_0.GGUF, но вы можете попробовать любую модель:
FP16: https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev/tree/main
NF4: https://huggingface.co/AcademiaSD/Flux.1-Kontext-Dev_bnb-nf4.safetensors/tree/main и дополнительно, именно для этой модели, загрузить Lora – дополнительная модель для уточнения деталей: https://huggingface.co/ByteDance/Hyper-SD/blob/main/Hyper-FLUX.1-dev-8steps-lora.safetensors (Lora помещаем по пути webui\models\Lora)
И разные версии GGUF: https://huggingface.co/QuantStack/FLUX.1-Kontext-dev-GGUF/tree/main
Последним штрихом загрузим 3 расширения:
Block Cache: https://github.com/DenOfEquity/sd-forge-blockcache - для оптимизации и ускорения генерации с минимальной потерей качества;
Flux-Kontext: https://github.com/DenOfEquity/forge2_flux_kontext - для основной работы с Flux-Kontext dev;
И по желанию можете загрузить расширение https://github.com/muerrilla/sd-webui-detail-daemon - для увеличения количества деталей.
Все расширения можно загрузить по соответствующим ссылкам, скопировав их URL и поместив его в качестве загрузки расширения по ссылке внутри WebUI Forge – Extensions – Install from URL:

После установки всех моделей и расширений закрываем Forge и консоль (терминал) и перезапускаем всё заново:

Вы увидите такой интерфейс:

Сравнение
Проведём сравнение скорость/качество на генерации одного и того же изображения на одинаковых настройках и seed для задач:
Генерация в Forge FluxKontext Extension = девушка + котик;
Генерация в Forge FluxKontext Extension = девушка + одеколон;
Генерация изображения без расширения, используя разные модели.
Дополнительно, сгенерируем по такому же промту для всех сравнений - изображения с помощью ChatGPT Plus и таким образом, узнаем - вкладываться лучше в видеокарту или подписку.
Генерация в Forge FluxKontext Extension = девушка + котик

Промт на девушку: a beautiful young girl with European features, wearing a short pink sports bra and pink sweatpants for athletic training, big butt, a girl standing on her side posing, the background of a room in an apartment, realistic style, high detail.
Sampler: Euler, Schedule type: Simple, CFG scale: 1, Distilled CFG Scale: 3.5, Seed: 3412026121
Поместим каждое изображение, с помощью drag-and-drop в расширение FluxKontext

Генерация вышла очень хорошей - все пальцы и лапы в норме, изображение чёткое, цвета не рассыпаются, персонаж (и кот и девушка) консистентен. Но есть проблема - это время затраченное на всего 1 изображение = более 5 минут!
Ускорим генерацию добавив расширение Block Cache - загруженное нами ранее и запустим генерацию вновь (нужно нажать нажать на чекбокс чтобы была галочка и раскрыть список):

Изображение сгенерировалось в 2 раза быстрее.
Ниже вы можете увидеть таблицу сравнения нескольких моделей с различными параметрами Block Cache. Наиболее оптимальными в соотношении качество/время генерации - это flux1-kontext-dev-Q8_0 + First Block Cache: 0.14 и Steps: 20.

Так же проведём сравнение генерации созданное с помощью flux1-kontext-dev-Q8_0 + First Block Cache: 0.14 и Steps: 20 с ChatGPT Plus:

Как видно на данном этапе открытая dev модель от Black Forest Labs очень близко "подошла" к закрытой модели от OpenAI: были добавлены часы, которые были на исходном изображении, но при этом изменены черты лица.
Генерация в Forge FluxKontext Extension = девушка + одеколон
Теперь совместим одеколон и девушку, для возможного использования изображений в рекламе.
Я сфотографировал 2 мужских духов на зелёном фоне хромакея и сгенерировал новую девушку.

Промт для девушки: a beautiful young brunette girl of European appearance with a big booty and big breasts in an evening blue jumpsuit with a cutout at the hips, stands and defiantly poses half-side in black open shoes, white studio background, realistic photo, high detail.
Поместим девушку и каждый от флаконов по отдельности в расширение FluxKontext:

Используя тот же самый промт я сгенерировал такое же изображение в ChatGPT Plus, вашему вниманию таблица сравнения ниже:

Как не странно, но платная закрытая модель проигрывает модели с открытыми весами)
Лицо девушки в ChatGPT Plus - было изменено + на втором кадре заметна обрезка сверху, так же изменена структура волос и причёска в общем, вырез на комбинезоне и лицо девушки на 1 кадре. Да, Flux Kontext Dev приблизил девушку и обрезал её по бёдра, но для нас в данном случае главное реклама товара и полное совпадение главного героя для возможно дальнейшего создания видео на основе изображений.
Генерация изображения без расширения, используя разные модели
Мною замечена одна неприятная деталь в некоторых случая модель Flux Kontext Dev выдаёт не реалистичную, "пластиковую" кожу по сравнению с прошлой Flux dev, таблица сравнения дана ниже:

Промт на девушку с пышными формами: Beautiful buxom woman with curvy curves, sitting on a laminate floor, white brick wall, blonde hair in soft waves, blue claws jeans, white T-shirt, silver chain with a cross, bracelets, watches, rings, soft lighting, portrait, relaxed pose, thoughtful expression, photorealism, 4k.
Steps: 24, Sampler: Euler, Schedule type: Simple, CFG scale: 1, Distilled CFG Scale: 3.5, Seed: 2563602559
Итог сравнения
NF4‑квантование снижает точность весов, что первым делом бьёт по low‑level geometry (пальцы, когти, мех). Hyper Flux.1 сокращает шаги, форсируя denoiser «догрызать» детали за меньшее число итераций, что в свою очередь провоцирует усиление локальных искажений (мои эксперименты подтверждаются так же данной статьёй в «sandnear»: https://sandner.art/fluxturbo-vs-hyperflux-loras-generate-flux1-dev-image-in-4-9-steps/?utm_source=chatgpt.com ).
FP8 теряет при генерации некоторое количество деталей, а «Пластиковая» кожа в Kontext‑ветке решается Skin‑Detail LoRA.
ChatGPT Plus теряет консистентность в лицах персонажей и к тому же каждое обращение в случае с API – стоит денег, а в случае с обычным обращением - невозможно автоматизировать для пакетной обработки.
Самым лучшим вариантом использования для генерации фотореалистичных людей + какие-либо объекты = изначальная генерация в Flux 1-dev и затем доработка в Flux Kontext dev.
Следующим этапом можно объединить платные технологии - ChatGPT Plus по API с ComfyUI и таким образом существенно ускорить, и автоматизировать процессы.
Сравнение квантования GGUF / safetensors: от Q8 до Q4
Формат |
Вид «квантовки» |
Экономия VRAM |
Визуальная разница с FP16 |
Когда применять |
FP16.safetensors |
Полная 16‑бит float |
1 × |
Эталон |
12 GB+ VRAM; максимум качества |
Q8_0.GGUF |
8‑бит int, блоковая |
~0.6 × |
Почти неотличима (< 1 % артефактов) |
8–12 GB VRAM; продакшн‑ рендер |
Q6_0.GGUF |
6‑бит int, блоковая |
~0.45 × |
Лёгкое сглаживание микротекстур; анатомия в норме |
6–8 GB VRAM; баланс speed/quality |
Q5_0.GGUF |
5‑бит int, блоковая |
~0.35 × |
Потеря чёткости тонких линий; кожа чуть восковая |
< 8 GB VRAM; быстрые черновики, ноуты |
FP8 |
8‑бит float |
~0.5 × |
Мягкость, падение деталей ≈ 3‑5 % |
Экономия времени важнее деталей |
FP4 / Q4_0 |
4‑бит float / int |
~0.25 × |
Блюр текстуры, геометрия ломается |
< 6 GB VRAM; только превью |
Если дочитали до конца — точно любите котиков и быстрые генерации)
Эта статья дополняет мою книгу «Stable Diffusion: 22 урока для начинающих» от издательства БХВ Петербург на тему «Flux Kontext, TeaCache и GGUF», которое будет бесплатно обновляться вместе с релизами моделей.
Если хотите «ловить» каждый день актуальную информацию в сфере AI, 3D и графики и ещё больше экспериментов, промптов и закулисных «факапов» заглядывайте в мой Telegram‑канал: https://t.me/photoudzen и на YouTube‑канал: https://youtube.com/@dmitriidak Там будет ждать короткий видеоурок по установке Forge + Flux и живое сравнение моделей в реальном времени.
Лайк, подписка и вам комплимент дня – «Пусть ваш код компилируется с первого раза, а дизайн собирает лайки быстрее, чем TeaCache успевает прогреть модель — удачного дня и вдохновения!)»
Комментарии (6)
Bunyaz39
12.07.2025 17:45WebUI Forge реально бодро идёт на 4070. Удивлён
Dmitrii_DAK Автор
12.07.2025 17:45Да, иногда даже быстрее чем на 3060 - сказывается CUDA-ядра, такт и Tensor-Core нового 4-го поколения. 4070 на Ada 4 068 CUDA 1.98 GHz против 3 584 CUDA 1.78 GHz у 3060 12гб)
Barnaby
12.07.2025 17:45Ну прикольно, но нейронке не хватает фантазии, поменять их местами она уже не может.
Q5_K-S, RXT 3080, 112 sec comfyUI
Dmitrii_DAK Автор
12.07.2025 17:45Пропишите промт, что кот держит в руках девушку, но в таком случае лучше сгенерировать в начале антропоморфного кота с мускулами и потом уже "соединять" с девушкой или маленькой девочкой как в вашем случае.
Лучше используйте Q8_0 или хотя бы Q_6 для генерации - возможно это займёт гораздо больше времени (хотя ComfyUI лучше оптимизирован), но не будет таких больших проблем с руками и ногами
Moog_Prodigy
А куда ложить Flux Kontext dev файлик?
Dmitrii_DAK Автор
\webui\models\Stable-diffusion\Flux - последнюю папку "\Flux" - я добавил для удобства так как кроме Flux использую много разных специализированных моделей SDXL