Инструменты ИИ 101
Flux от Black Forest Labs: следующий шаг в текстово-изображающих моделях. Лучше, чем Midjourney?
Black Forest Labs, команда, стоящая за новаторской моделью Stable Diffusion, выпустила Flux – набор моделей последнего поколения, которые обещают переопределить возможности генерации изображений с помощью ИИ. Но действительно ли Flux представляет собой шаг вперед в этой области, и как он сравнивается с лидерами отрасли, такими как Midjourney? Давайте глубоко погрузимся в мир Flux и исследуем его потенциал для изменения будущего искусства и медиа, созданных с помощью ИИ.
Рождение Black Forest Labs
Black Forest Labs не просто еще одна стартап-компания в области ИИ; это мощный центр талантов с опытом разработки фундаментальных моделей генеративного ИИ. Команда включает в себя создателей VQGAN, Latent Diffusion и семейства моделей Stable Diffusion, которые потрясли мир искусства, созданного с помощью ИИ.
С успешным раундом финансирования Series Seed в размере 31 миллиона долларов под руководством Andreessen Horowitz и поддержкой известных бизнес-ангелов, Black Forest Labs позиционирует себя на переднем крае исследований в области генеративного ИИ. Их миссия ясна: разработать и усовершенствовать модели глубокого обучения последнего поколения для медиа, таких как изображения и видео, а также расширить границы творчества, эффективности и разнообразия.
Представление семейства моделей Flux
Black Forest Labs представила набор текстово-изображающих моделей FLUX.1, предназначенных для установления новых стандартов в деталях изображений, соблюдении подсказок, разнообразии стилей и сложности сцен. Семейство Flux состоит из трех вариантов, каждый из которых предназначен для разных случаев использования и уровней доступности:
- FLUX.1 [pro]: флагманская модель, предлагающая лучшую производительность в генерации изображений с высшим уровнем соблюдения подсказок, визуального качества, деталей изображений и разнообразия выходных данных. Доступна через API, она позиционируется как премиум-опция для профессионального и корпоративного использования.
- FLUX.1 [dev]: модель с открытыми весами, дистиллированная для некоммерческих применений. Она предназначена для достижения аналогичного качества и соблюдения подсказок, как и версия pro, при этом будучи более эффективной.
- FLUX.1 [schnell]: самая быстрая модель в наборе, оптимизированная для локальной разработки и личного использования. Она открыта под лицензией Apache 2.0, что делает ее доступной для широкого спектра применений и экспериментов.
Я предоставлю некоторые уникальные и творческие примеры подсказок, демонстрирующие возможности FLUX.1. Эти подсказки подчеркивают сильные стороны модели в обработке текста, сложных композициях и детальных элементах, таких как руки.
- Слияние художественных стилей с текстом: “Создайте портрет Винсента ван Гога в его фирменном стиле, но замените его бороду вихревыми мазками, образующими слова ‘Звездная ночь’ курсивом.”
- Динамическая сцена действия с интеграцией текста: “Супергерой, прорывающийся через страницу комикса. Линии действия и звуковые эффекты должны формировать имя героя ‘FLUX FORCE’ в жирном, динамичном шрифте.”
- Сюрреалистическая концепция с точным размещением объектов: “Крупный план милой кошки с коричневым и белым цветом под солнечным светом окна. Острый фокус на текстуре и цвете глаз. Натуральное освещение для захвата аутентичного блеска и глубины глаз.”
Эти подсказки предназначены для проверки возможностей FLUX.1 в обработке текста, сложных композициях и детальных элементах, а также для демонстрации его потенциала для творческой и уникальной генерации изображений.
Технические инновации за Flux
В основе впечатляющих возможностей Flux лежит ряд технических инноваций, которые отличают его от предшественников и современников:
Модели потока на основе трансформеров в масштабе
Все публичные модели FLUX.1 построены на гибридной архитектуре, сочетающей многомодальные и параллельные блоки трансформеров диффузии, масштабированные до впечатляющих 12 миллиардов параметров. Это представляет собой значительный шаг вперед в размере и сложности модели по сравнению с многими существующими текстово-изображающими моделями.
Модели Flux улучшают предыдущие модели диффузии, включая сопоставление потоков, общий и концептуально простой метод обучения генеративных моделей. Сопоставление потоков обеспечивает более гибкий каркас для генеративного моделирования, при этом модели диффузии являются специальным случаем внутри этого более широкого подхода.
Для улучшения производительности модели и эффективности оборудования Black Forest Labs интегрировала вращающиеся позиционные вложения и параллельные слои внимания. Эти методы позволяют лучше обрабатывать пространственные отношения в изображениях и более эффективно обрабатывать большие объемы данных.
Архитектурные инновации
Давайте разберем некоторые ключевые архитектурные элементы, которые способствуют производительности Flux:
- Гибридная архитектура: Объединяя многомодальные и параллельные блоки трансформеров диффузии, Flux может эффективно обрабатывать как текстовую, так и визуальную информацию, что приводит к лучшему соответствию между подсказками и сгенерированными изображениями.
- Сопоставление потоков: Этот подход позволяет для более гибкого и эффективного обучения генеративных моделей. Он обеспечивает унифицированный каркас, который охватывает модели диффузии и другие генеративные методы, потенциально ведущие к более прочной и универсальной генерации изображений.
- Вращающиеся позиционные вложения: Эти вложения помогают модели лучше понимать и поддерживать пространственные отношения внутри изображений, что крайне важно для генерации связного и детального визуального контента.
- Параллельные слои внимания: Этот метод позволяет для более эффективной обработки механизмов внимания, которые имеют решающее значение для понимания отношений между различными элементами как в текстовых подсказках, так и в сгенерированных изображениях.
- Масштабирование до 12 миллиардов параметров: Огромный размер модели позволяет ей захватить и синтезировать более сложные закономерности и отношения, потенциально ведущие к более высококачественным и разнообразным выходным данным.
Тестирование Flux: новый стандарт в синтезе изображений
Black Forest Labs утверждает, что FLUX.1 устанавливает новые стандарты в синтезе изображений, превосходя популярные модели, такие как Midjourney v6.0, DALL·E 3 (HD) и SD3-Ultra в нескольких ключевых аспектах:
- Визуальное качество: Flux направлен на производство изображений с более высокой верностью, более реалистичными деталями и лучшей общей эстетической привлекательностью.
- Соблюдение подсказок: Модель предназначена для более точного соблюдения заданных текстовых подсказок, генерируя изображения, которые более точно отражают намерения пользователя, особенно для сложных или нюансовых запросов.
- Размер/отношение сторон: Flux поддерживает широкий диапазон соотношений сторон и разрешений, от 0,1 до 2,0 мегапикселей, предлагая гибкость для различных случаев использования.
- Типография: Модель демонстрирует улучшенные возможности генерации и рендеринга текста внутри изображений, что является общей проблемой для многих текстово-изображающих моделей.
- Разнообразие выходных данных: Flux специально донастроен для сохранения всего разнообразия выходных данных от предварительной подготовки, предлагая более широкий спектр творческих возможностей.
Flux vs. Midjourney: сравнительный анализ
Теперь давайте ответим на горящий вопрос: лучше ли Flux, чем Midjourney? Чтобы ответить на это, нам нужно рассмотреть несколько факторов:
Качество изображений и эстетика
И Flux, и Midjourney известны производством высококачественных, визуально потрясающих изображений. Midjourney был отмечен за свой художественный шарм и способность создавать изображения с характерной эстетической привлекательностью. Flux, с его передовой архитектурой и большим количеством параметров, направлен на то, чтобы соответствовать или превосходить этот уровень качества.
Ранние примеры из Flux демонстрируют впечатляющие детали, реалистичные текстуры и сильное понимание освещения и композиции. Однако субъективная природа искусства делает трудным однозначно заявить о превосходстве в этой области. Пользователи могут обнаружить, что каждая модель имеет свои сильные стороны в разных стилях или типах изображений.
Соблюдение подсказок
Одна область, где Flux потенциально превосходит Midjourney, – это соблюдение подсказок. Black Forest Labs подчеркнула свою направленность на улучшение способности модели точно интерпретировать и выполнять заданные подсказки. Это может привести к сгенерированным изображениям, которые более точно соответствуют намерениям пользователя, особенно для сложных или нюансовых запросов.
Midjourney иногда критиковался за творческие вольности с подсказками, что может привести к красивым, но неожиданным результатам. Подход Flux может предложить более точный контроль над сгенерированным выходом.
Скорость и эффективность
С введением FLUX.1 [schnell] Black Forest Labs нацеливается на одну из ключевых преимуществ Midjourney: скорость. Midjourney известен своими быстрыми временами генерации, что сделало его популярным для итеративных творческих процессов. Если Flux сможет соответствовать или превосходить эту скорость, сохраняя при этом качество, это может стать значительным преимуществом.
Доступность и легкость использования
Midjourney получил популярность частично благодаря своему удобному интерфейсу и интеграции с Discord. Flux, будучи новым, может потребовать времени для разработки аналогично доступных интерфейсов. Однако открытая природа моделей FLUX.1 [schnell] и [dev] может привести к широкому спектру инструментов и интеграций, разработанных сообществом, потенциально превосходящих Midjourney в плане гибкости и настроек.
Технические возможности
Передовая архитектура и больший размер модели Flux предполагают, что он может иметь больше сырой мощности в понимании сложных подсказок и генерации сложных деталей. Подход сопоставления потоков и гибридная архитектура могут позволить Flux обрабатывать более широкий спектр задач и генерировать более разнообразные выходные данные.
Этические соображения и смягчение предвзятости
И Flux, и Midjourney сталкиваются с проблемой решения этических проблем в изображениях, сгенерированных с помощью ИИ, таких как предвзятость, дезинформация и проблемы с авторскими правами. Подчеркивание Black Forest Labs прозрачности и их приверженность широкой доступности моделей могут потенциально привести к более прочному общественному контролю и более быстрым улучшениям в этих областях.
Реализация кода и развертывание
Использование Flux с Diffusers
Модели Flux можно легко интегрировать в существующие рабочие процессы с помощью библиотеки Hugging Face Diffusers. Вот пошаговое руководство по использованию FLUX.1 [dev] или FLUX.1 [schnell] с Diffusers:
- Сначала установите или обновите библиотеку Diffusers:
!pip install git+https://github.com/huggingface/diffusers.git
- Затем вы можете использовать
FluxPipeline, чтобы запустить модель:
import torch
from diffusers import FluxPipeline
<p># Загрузите модель
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)</p>
<p># Включите отключение модели CPU (необязательно)
pipe.enable_model_cpu_offload()</p>
<p># Сгенерируйте изображение
prompt = "Кошка, держащая знак, на котором написано привет мир"
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
output_type="pil",
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]</p>
<p># Сохраните сгенерированное изображение
image.save("flux-dev.png")
Этот фрагмент кода демонстрирует, как загрузить модель FLUX.1 [dev], сгенерировать изображение из текстовой подсказки и сохранить результат.
Развертывание Flux в качестве API с LitServe
Для тех, кто хочет развернуть Flux в качестве масштабируемого API-сервиса, Black Forest Labs предоставляет пример использования LitServe, высокопроизводительного движка вывода. Вот разбивка процесса развертывания:
Определите сервер модели:
from io import BytesIO
from fastapi import Response
import torch
import time
import litserve as ls
from optimum.quanto import freeze, qfloat8, quantize
from diffusers import FlowMatchEulerDiscreteScheduler, AutoencoderKL
from diffusers.models.transformers.transformer_flux import FluxTransformer2DModel
from diffusers.pipelines.flux.pipeline_flux import FluxPipeline
from transformers import CLIPTextModel, CLIPTokenizer, T5EncoderModel, T5TokenizerFast
<p>class FluxLitAPI(ls.LitAPI):
def setup(self, device):
# Загрузите компоненты модели
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="scheduler")
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
text_encoder_2 = T5EncoderModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2", torch_dtype=torch.bfloat16)
tokenizer_2 = T5TokenizerFast.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2", torch_dtype=torch.bfloat16)
vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="vae", torch_dtype=torch.bfloat16)
transformer = FluxTransformer2DModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="transformer", torch_dtype=torch.bfloat16)</p>
<p># Квантуйте до 8-битного, чтобы поместиться на L4 GPU
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>
<p># Инициализируйте конвейер Flux
self.pipe = FluxPipeline(
scheduler=scheduler,
text_encoder=text_encoder,
tokenizer=tokenizer,
text_encoder_2=None,
tokenizer_2=tokenizer_2,
vae=vae,
transformer=None,
)
self.pipe.text_encoder_2 = text_encoder_2
self.pipe.transformer = transformer
self.pipe.enable_model_cpu_offload()</p>
<p>def decode_request(self, request):
return request["prompt"]</p>
<p>def predict(self, prompt):
image = self.pipe(
prompt=prompt,
width=1024,
height=1024,
num_inference_steps=4,
generator=torch.Generator().manual_seed(int(time.time())),
guidance_scale=3.5,
).images[0]
return image</p>
<p>def encode_response(self, image):
buffered = BytesIO()
image.save(buffered, format="PNG")
return Response(content=buffered.getvalue(), headers={"Content-Type": "image/png"})</p>
<p># Запустите сервер
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>
Этот код настраивает API LitServe для Flux, включая загрузку модели, обработку запросов, генерацию изображений и кодирование ответов.
Запустите сервер:
</pre> python server.py <pre>
Используйте API модели:
Вы можете протестировать API, используя простой клиентский скрипт:
import requests
import json
<p>url = "http://localhost:8000/predict"
prompt = "робот, сидящий в кресле, рисующий картину на мольберте из футуристического городского пейзажа, поп-арт"</p>
<p>response = requests.post(url, json={"prompt": prompt})
with open("generated_image.png", "wb") as f:
f.write(response.content)</p>
<p>print("Изображение сгенерировано и сохранено как generated_image.png")</p>
Ключевые особенности развертывания
- Безсерверная архитектура: Настройка LitServe позволяет для масштабируемого, безсерверного развертывания, которое может масштабироваться до нуля, когда не используется.
- Частный API: Вы можете развернуть Flux в качестве частного API на своей инфраструктуре.
- Мульти-GPU поддержка: Настройка предназначена для эффективной работы на нескольких GPU.
- Квантование: Код демонстрирует, как квантовать модель до 8-битной точности, позволяя ей работать на менее мощном оборудовании, таком как NVIDIA L4 GPU.
- Отключение CPU: Метод
enable_model_cpu_offload()используется для сохранения памяти GPU, отключая части модели на CPU, когда они не используются.
Практические применения Flux
Универсальность и мощность Flux открывают широкий спектр потенциальных применений в различных отраслях:
- Креативные отрасли: Графические дизайнеры, иллюстраторы и художники могут использовать Flux для быстрого создания концепт-арта, настроений и визуальных вдохновений.
- Маркетинг и реклама: Маркетологи могут создавать пользовательские визуальные элементы для кампаний, контента в социальных сетях и макетов продукта с беспрецедентной скоростью и качеством.
- Разработка игр: Дизайнеры игр могут использовать Flux для быстрой прототипизации окружений, персонажей и активов, оптимизируя процесс до производства.
- Архитектура и дизайн интерьера: Архитекторы и дизайнеры могут генерировать реалистичные визуализации пространств и структур на основе текстовых описаний.
- Образование: Педагоги могут создавать пользовательские визуальные пособия и иллюстрации для улучшения учебных материалов и сделать сложные концепции более доступными.
- Кино и анимация: Художники-стажеры и аниматоры могут использовать Flux для быстрого визуализации сцен и персонажей, ускоряя процесс до визуализации.
Будущее Flux и генерации изображений на основе текста
Black Forest Labs сделала ясным, что Flux – это только начало их амбиций в области генеративного ИИ. Они объявили о планах разработать конкурентоспособные генеративные системы текст-видео, обещая точные возможности создания и редактирования в высоком разрешении и беспрецедентной скорости.
Этот график развития предполагает, что Flux – не просто отдельный продукт, а часть более широкой экосистемы инструментов генеративного ИИ. По мере эволюции технологии мы можем ожидать увидеть:
- Улучшенную интеграцию: Бесшовные рабочие процессы между генерацией изображений на основе текста и видео, позволяющие создавать более сложный и динамичный контент.
- Расширенную настройку: Более тонкий контроль над сгенерированным контентом, возможно, через продвинутые методы инженерии подсказок или интуитивно понятные интерфейсы.
- Генерацию в реальном времени: По мере того, как модели, такие как FLUX.1 [schnell], продолжают улучшаться, мы можем увидеть возможности генерации изображений в реальном времени, которые потенциально могут революционизировать живой контент и интерактивные медиа.
- Кросс-модальную генерацию: Способность генерировать и манипулировать контентом в нескольких модальностях (текст, изображение, видео, аудио) в связном и интегрированном виде.
- Этичное развитие ИИ: Продолжение фокуса на разработке моделей ИИ, которые не только мощные, но и ответственные и этически обоснованные.
Заключение: лучше ли Flux, чем Midjourney?
Вопрос о том, лучше ли Flux, чем Midjourney, не может быть легко ответить простым “да” или “нет”. Обе модели представляют собой передовой край технологии генерации изображений на основе текста, каждая со своими сильными сторонами и уникальными характеристиками.
Flux, с его передовой архитектурой и акцентом на соблюдении подсказок, может предложить более точный контроль и потенциально более высокое качество в определенных сценариях. Его открытые варианты также предоставляют возможности для настройки и интеграции, которые могут быть очень ценными для разработчиков и исследователей.
Midjourney, с другой стороны, имеет доказанный послужной список, большую и активную базу пользователей и характерный художественный стиль, который многие пользователи полюбили. Его интеграция с Discord и пользовательский интерфейс сделали его высоко доступным для творческих людей всех уровней технической подготовки.
В конечном итоге “лучшая” модель может зависеть от конкретного случая использования, личных предпочтений и эволюционирующих возможностей каждой платформы. Что ясно, так это то, что Flux представляет собой значительный шаг вперед в области генеративного ИИ, вводя инновационные методы и расширяя границы того, что возможно в синтезе изображений на основе текста.


















