Разборы

Обзор нейросети FLUX: как генерировать картинки по тексту и фото

Выбираем подходящую модель, пишем промпт и создаём изображения
Знакомимся с нейросетью FLUX

FLUX — новая нейросеть для генерации картинок по текстовому запросу от разработчиков популярной Stable Diffusion. Отличается высокой точностью, способностью работать со сложными сценами и создавать реалистичные изображения. У FLUX есть 3 модели разного предназначения, доступные через сторонние сервисы. Разбираем версии нейросети, объясняем фишки и рассказываем, как работать с программой.

Модели FLUX

FLUX.1 [pro] — лучшая версия, доступна через Partners Replicate, fal.ai и mystic. Точнее всех следует промпту, выдает максимально детализированные картинки высокого качества. Подходит для коммерческого использования. Генерация каждой картинки обойдется в $0,05.

FLUX.1 [dev] — модель доступна на HuggingFace, Replicate, fal.ai, mystic, deepinfra и hyperbolic. Качество и точность не уступают pro-версии, но «эффективность выше, чем у стандартной версии того же размера». Генерации нельзя использовать в коммерческих целях. Можно работать бесплатно, при генерации через API за каждую картинку нужно платить $0,03.

FLUX.1 [schnell] — самая быстрая модель для локальной разработки и персонального использования. Следует промптам хуже остальных и выдает картинки более низкого качества. Доступна на HuggingFace, Replicate, fal.ai, mystic и deepinfra. При генерации по API нужно заплатить $0,003.

Как писать промпты

Принцип работы с FLUX такой же, как с другими нейросетями для генерации картинок. Чтобы получить изображение, нужно написать текстовый запрос. Можно задать пару параметров, и программа сама додумает детали. Либо расписать подробно: главный объект, стиль, оформление фона, эффекты, дополнительные элементы, качество графики и т.д.

Как составлять запросы к нейросетям

Пример простого запроса «Фотография сарая на поле» с сайта Black Forest Labs — разработчика FLUX.

Картинка, созданная в FLUX
Сарай на поле

А вот так выглядит изображение, сгенерированное по более сложному промпту: «Подробный кинематографический рендеринг старого пыльного детального ЭЛТ-монитора на деревянном столе в тусклой комнате с предметами вокруг, грязной грязной комнате. На экране мягко светятся буквы FLUX. Высокодетализированная визуализация твердой поверхности».

Картинка, созданная в FLUX
Изображение со множеством деталей

Как сгенерировать изображение

Модель [pro] доступна только платно, поэтому мы покажем принцип работы на оставшихся двух. С [pro] можно работать по аналогии. 

Работать будем через платформы HuggingFace и Replicate. У остальных сервисов интерфейс похожий, поэтому на них останавливаться не будем. 

Перейти на сторонний ресурс можно с сайта нейросети.

Сайты, дающие доступ к FLUX
HuggingFace — желтая иконка, Replicate — красная

Как работать с FLUX [dev] в HuggingFace

Сначала нужно войти или зарегистрироваться на платформе HuggingFace. После регистрации можно пользоваться моделькой. Писать запрос можно в строке Text to Image справа, либо сначала кликнуть на Use this model. Нейронка откроется в новом окне, где не будет лишней информации.

Главная страница HuggingFace
Справа — поле для ввода промптов

Чтобы сгенерировать картинку, в поле для ввода промпта нужно ввести текст. Я для примера сгенерировала розовый пончик.

промпт и изображение во FLUX.1 [dev]
Запрос: «Розовый пончик на тарелке, праздничная атмосфера»

Чтобы сгенерировать картинку в конкретном стиле, нужно указать это в запросе. Например, я попросила нейросеть создать чашку кофе в пикселях.

Из примечательного: у FLUX есть библиотека моделей, где можно скопировать стиль. Ссылки на исходники — прямо под полем для промпта. Нас интересует раздел Adapters, для него ссылкой указано количество моделей — 2594 models.

Бесплатные модели во FLUX.1 [dev]
Тысячи бесплатных моделей

В открывшейся библиотеке можно кликнуть на понравившийся стиль и посмотреть референсы.

Модели FLUX в HuggingFace
Список моделей

Для примера я взяла стиль The Point и сгенерировала картинку. Ниже — референс и результат.

Стиль The Point во FLUX.1 [dev]
Ретрофутуризм от нейросети
Изображение на основе готового стиля во FLUX.1 [dev]
В конце промпта добавлен pnt style, чтобы получилась похожая на исходник картинка

Как работать c FLUX [schnell] в HuggingFace

Так же, как и с FLUX [dev]. Для сравнения возможностей двух версий я отправила такие же самые запросы в [schnell]. Вот что получилось.

Изображение, сгенерированное во FLUX.1 [schnell]
Запрос выполнен точно. Разве что картинка кажется более искусственной

Для второй картинки нужен был пиксельный стиль. Выяснилось, что по этому параметру [schnell] явно уступает [dev].

Пиксельная картинка во FLUX.1 [schnell]
Максимально простое изображение

И бесплатных стилистических моделей в этой версии в разы меньше.

Бесплатные модели во FLUX.1 [schnell]
Меньше сотни шаблонов

Как попробовать FLUX [dev] в Replicate

При переходе на страницу Replicate выдает окошко с просьбой войти через GitHub и добавить метод платежа либо попробовать бесплатно избранные модели (это та же подборка готовых стилей, о которых мы говорили в разделах про HuggingFace). Задать стандартный бесплатный промпт платформа не дает, поэтому пойдем сразу через избранные модели.

Страница FLUX [dev] на Replicate
Информация — в желтом окошке

Протестируем вариант с избранными моделями. Страница с ними откроется, если нажать на featured models. Мы для примера протестируем модель flux-dreamscape.

Избранные модели в Replicate
Можно сгенерировать изображение в заданном стиле

Чтобы картинка получилась в конкретном стиле, в промпт нужно вписать триггерное слово, которое активирует преднастроенный стиль модели. Например, для стиля dreamscape триггерное слово — BSstyle004.  

Триггерное слово для генерации во FLUX
Триггерное слово указано под заголовком

При желании можно настроить, например, ширину и высоту изображения, количество генерируемых картинок, число шагов, которое сделает нейросеть, чтобы выдать изображение, формат картинки (WebP, JPG, PNG).

Параметры генерации в Replicate
Разнообразные настройки

Я оставила стандартные параметры и сделала запрос на птичку в золотой клетке. Вот результат.

Изображение, сгенерированное во FLUX-dreamscape
Запрос: «Маленькая птичка в золотой клетке, теплое освещение» + указание стиля

Как попробовать FLUX [schnell] в Replicate

На той же странице меняем [dev] на [schnell]. Кликаем на выпадающий список в разделе model и выбираем нужную версию.

Выбор модели FLUX
Посмотрим, какая картинка будет у самой простой версии нейросети

Стиль оставили тот же — dreamscape. Картинка получилась попроще, но запрос в точности выполнен.

Изображение, сгенерированное во FLUX [schnell]
Меньше милоты, больше реализма

Возможности FLUX

У FLUX есть 3 интересные фишки для генерации изображений.

Генератор промптов в HuggingFace. Первый столбец — настройки. Можно указать пол, телосложение, прическу, ракурс и детали картинки. Добавить стиль какого-либо фотографа или художника. 

Второй столбец — для сгенерированного текстового запроса. 

Третий — Large Language Model, или большая языковая модель, — это инструмент, создающий длинный текст на основе короткого входного запроса. Например, по промпту она может выдать небольшое описание, что-то вроде отрывка из рассказа.

Генератор промптов FLUX
Гибкая настройка параметров

Для примера выберем: арт, ракурс слегка сверху, среднее телосложение, молодой мужчина, вьющиеся волосы, белая рубашка, подтяжки, бабочка, черные брюки. Картинка — в стиле художника Энди Уорхола.

Настройка параметров в генераторе промптов FLUX
Указываем детали

Нажимаем «Generate Promt».

Генерация промпта во FLUX
Генерируем промпт

В столбце посередине появится готовый запрос, который нужно скопировать. В правом верхнем углу поля есть значок для копирования текста.

Готовый промпта в генераторе FLUX
Все выбранные параметры перечислены в верхнем поле

Протестированный скопированный запрос можно в модели на HuggingFace или Replicate.

Поле для промпта в HuggingFace
Вставляем запрос и создаем картинку

Сгенерированное изображение:

Изображение, созданное с помощью генератора промптов
Готовая картинка

Inpainting. Функция, которая позволяет выделить область изображения и заменить её новым содержимым. На многие запросы для картинок и фото нейросеть выдает ошибку, поэтому для успешной генерации нужно отправлять несколько запросов. 

Интерфейс простой: слева — поле для загрузки картинки, под ним — строчка для промпта, справа — зона для сгенерированного изображения.

Рабочее пространство Inpainting
Три основных элемента

После загрузки картинки нужно нажать на карандаш и выделить область для изменений. В текстовом поле — прописать запрос: как изменить выделенную зону. 

Пример — к мужчине добавили львенка.

Замена области изображения во FLUX
Нейросеть добавила львенка

Controlnet. FLUX умеет генерировать изображение по фото. Для работы с этим инструментом нужно загрузить картинку-референс и добавить промпт. Соответствующие поля расположены слева.

Рабочее пространство Controlnet
Три поля и параметры

Я взяла картинку котенка и сделала несколько пробных запросов. При стандартных настройках нейросеть неохотно добавляет дополнительные элементы и выдает слегка измененную копию. Самая близкая к исходнику генерация получилась при промпте “a playing cat”.

Изображение по фото во FLUX
Исходник и сгенерированная картинка

А вот если увеличить параметр Guidance (следование запросу) до 9 с базовых 4, FLUX точнее выполняет промпт, но сходство ослабевает.

Изображение, сгененированное по фото, во FLUX
Получилось два совсем разных кота

Что в итоге

Модель FLUX.1 [dev] генерирует картинки более высокого качества, реалистичные и детализированные. Версия [schnell] немного уступает, но тоже создает очень достойные изображение, причем существенно быстрее. 

Генератор сложных промптов помогает грамотно составить запрос и предлагает множество готовых параметров, чтобы создавать максимально проработанные изображения. 

Inpainting часто выдает ошибки — причина неизвестна, возможно, нужно точнее отрисовывать границы выделенной области.

Controlnet корректно создает изображение по загруженной картинке. При базовых параметрах получается нейросетевая копия исходника, без дополнительных деталей. А если повысить степень следования запросу, FLUX точнее выполнит промпт, но он может сильно отличаться от исходной картинки.