Connect with us

Flux от Black Forest Labs: Следующий шаг в текстово-изображающих моделях. Лучше, чем Midjourney?

Инструменты ИИ 101

Flux от Black Forest Labs: Следующий шаг в текстово-изображающих моделях. Лучше, чем Midjourney?

mm
Black Forest Labs Open-Source FLUX.1: A 12 Billion Parameter Transformer Capable of Generating Images

Black Forest Labs, команда, стоящая за новаторской моделью Stable Diffusion, выпустила Flux – набор моделей последнего поколения, которые обещают переопределить возможности генерации изображений с помощью ИИ. Но действительно ли Flux представляет собой шаг вперед в этой области, и как он сравнивается с лидерами индустрии, такими как Midjourney? Давайте глубоко погрузимся в мир Flux и исследуем его потенциал для формирования будущего искусства и медиа, созданных с помощью ИИ.

Рождение Black Forest Labs

Black Forest Labs не является просто еще одной стартап-компанией в области ИИ; это мощная команда талантливых специалистов с опытом разработки фундаментальных моделей генеративного ИИ. В команду входят создатели VQGAN, Latent Diffusion и семейства моделей Stable Diffusion, которые потрясли мир искусства, созданного с помощью ИИ.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

С успешным раундом финансирования Series Seed в размере 31 миллиона долларов под руководством Andreessen Horowitz и поддержкой известных бизнес-ангелов, Black Forest Labs позиционирует себя на переднем крае исследований в области генеративного ИИ. Их миссия ясна: разработать и усовершенствовать модели генеративного глубокого обучения для медиа, таких как изображения и видео, а также расширить границы творчества, эффективности и разнообразия.

Представление семейства моделей Flux

Black Forest Labs представила набор текстово-изображающих моделей FLUX.1, предназначенных для установления новых стандартов в деталях изображений, соблюдении подсказок, разнообразии стилей и сложности сцен. Семейство Flux состоит из трех вариантов, каждый из которых предназначен для разных случаев использования и уровней доступности:

  1. FLUX.1 [pro]: Флагманская модель, предлагающая лучшую производительность в генерации изображений с превосходным соблюдением подсказок, визуальным качеством, деталями изображений и разнообразием выходных данных. Доступна через API, она позиционируется как премиальный вариант для профессионального и корпоративного использования.
  2. FLUX.1 [dev]: Открытая модель с дистиллированным руководством для некоммерческого использования. Она предназначена для достижения аналогичного качества и возможностей соблюдения подсказок, как и в версии pro, при этом будучи более эффективной.
  3. FLUX.1 [schnell]: Самая быстрая модель в наборе, оптимизированная для локальной разработки и личного использования. Она открыто доступна под лицензией Apache 2.0, что делает ее доступной для широкого спектра применений и экспериментов.

Я предоставлю некоторые уникальные и творческие примеры подсказок, демонстрирующие возможности FLUX.1. Эти подсказки подчеркивают сильные стороны модели в обработке текста, сложных композициях и детальных объектах, а также ее потенциал для творческой и уникальной генерации изображений.

Технические инновации за Flux

В основе впечатляющих возможностей Flux лежит ряд технических инноваций, которые отличают его от предшественников и современников:

Модели потока на основе трансформеров в крупном масштабе

Все публичные модели FLUX.1 построены на гибридной архитектуре, которая сочетает многомодальные и параллельные блоки диффузионных трансформеров, масштабированных до 12 миллиардов параметров. Это представляет собой значительный шаг вперед в размере и сложности модели по сравнению с многими существующими текстово-изображающими моделями.

Модели Flux улучшают предыдущие модели диффузии за счет включения метода согласования потока, который представляет собой общий и концептуально простой метод обучения генеративных моделей. Согласование потока обеспечивает более гибкий каркас для генеративного моделирования, при котором модели диффузии являются особым случаем внутри этого более широкого подхода.

Для повышения производительности модели и эффективности оборудования Black Forest Labs интегрировала вращающиеся позиционные вложения и параллельные слои внимания. Эти методы позволяют лучше обрабатывать пространственные отношения в изображениях и более эффективно обрабатывать большие объемы данных.

Архитектурные инновации

Давайте разберем некоторые ключевые архитектурные элементы, которые способствуют производительности Flux:

  1. Гибридная архитектура: Объединяя многомодальные и параллельные блоки диффузионных трансформеров, Flux может эффективно обрабатывать как текстовую, так и визуальную информацию, что приводит к лучшему соответствию между подсказками и сгенерированными изображениями.
  2. Согласование потока: Этот подход позволяет для более гибкого и эффективного обучения генеративных моделей. Он обеспечивает унифицированный каркас, который охватывает модели диффузии и другие генеративные методы, потенциально ведущие к более прочным и универсальным возможностям генерации изображений.
  3. Вращающиеся позиционные вложения: Эти вложения помогают модели лучше понять и сохранять пространственные отношения внутри изображений, что имеет решающее значение для генерации связного и детального визуального контента.
  4. Параллельные слои внимания: Этот метод позволяет для более эффективной обработки механизмов внимания, которые являются важными для понимания отношений между различными элементами как в текстовых подсказках, так и в сгенерированных изображениях.
  5. Масштабирование до 12 миллиардов параметров: Огромный размер модели позволяет ей захватывать и синтезировать более сложные закономерности и отношения, потенциально ведущие к более высокому качеству и более разнообразным выходным данным.

Бенчмаркинг Flux: Новый стандарт в синтезе изображений

https://blackforestlabs.ai/announcing-black-forest-labs/

https://blackforestlabs.ai/announcing-black-forest-labs/

Black Forest Labs утверждает, что FLUX.1 устанавливает новые стандарты в синтезе изображений, превосходя популярные модели, такие как Midjourney v6.0, DALL·E 3 (HD) и SD3-Ultra, в нескольких ключевых аспектах:

  1. Визуальное качество: Flux направлена на производство изображений с более высокой верностью, более реалистичными деталями и лучшей общей эстетической привлекательностью.
  2. Соблюдение подсказок: Модель предназначена для более точного соблюдения заданных текстовых подсказок, генерируя изображения, которые более точно отражают намерения пользователя, особенно для сложных или нюансовых запросов.
  3. Разнообразие размеров/аспектов: Flux поддерживает широкий диапазон соотношений сторон и разрешений, от 0,1 до 2,0 мегапикселей, предлагая гибкость для различных случаев использования.
  4. Типография: Модель демонстрирует улучшенные возможности генерации и рендеринга текста внутри изображений, что является общей проблемой для многих текстово-изображающих моделей.
  5. Разнообразие выходных данных: Flux специально дообучена для сохранения всего разнообразия выходных данных от предварительного обучения, предлагая более широкий спектр творческих возможностей.

Flux vs. Midjourney: Сравнительный анализ

https://blackforestlabs.ai/announcing-black-forest-labs/

Теперь давайте ответим на горящий вопрос: Лучше ли 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:

  1. Сначала установите или обновите библиотеку Diffusers:
!pip install git+https://github.com/huggingface/diffusers.git
  1. Затем вы можете использовать FluxPipeline для запуска модели:
import torch
from diffusers import FluxPipeline

# Загрузите модель
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)

# Включите отключение модели на CPU, чтобы сэкономить видеопамять (необязательно)
pipe.enable_model_cpu_offload()

# Сгенерируйте изображение
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]

# Сохраните сгенерированное изображение
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

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)

# Квантуйте до 8-бит, чтобы уместиться на L4 GPU
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)

# Инициализируйте конвейер 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()

def decode_request(self, request):
return request["prompt"]

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

def encode_response(self, image):
buffered = BytesIO()
image.save(buffered, format="PNG")
return Response(content=buffered.getvalue(), headers={"Content-Type": "image/png"})

# Запустите сервер
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)

Этот код настраивает сервер LitServe для Flux, включая загрузку модели, обработку запросов, генерацию изображений и кодирование ответов.

Запустите сервер:

python server.py

Используйте модель API:

Вы можете протестировать API, используя простой клиентский скрипт:

import requests
import json

url = "http://localhost:8000/predict"
prompt = "робот, сидящий в кресле, рисующий картину на мольберте из футуристического городского пейзажа, поп-арт"

response = requests.post(url, json={"prompt": prompt})
with open("generated_image.png", "wb") as f:
f.write(response.content)

print("Изображение сгенерировано и сохранено как generated_image.png")

Ключевые особенности развертывания

  1. Бессерверная архитектура: Настройка LitServe позволяет для масштабируемой, бессерверной развертываемости, которая может масштабироваться до нуля, когда не используется.
  2. Частный API: Вы можете развернуть Flux в качестве частного API на своей собственной инфраструктуре.
  3. Мульти-GPU поддержка: Настройка предназначена для эффективной работы на нескольких GPU.
  4. Квантование: Код демонстрирует, как квантовать модель до 8-битной точности, позволяя ей работать на менее мощном оборудовании, таком как NVIDIA L4 GPU.
  5. Отключение CPU: Метод enable_model_cpu_offload() используется для сохранения видеопамяти, отключая части модели на CPU, когда они не используются.

Практические применения Flux

Универсальность и мощность Flux открывают широкий спектр потенциальных применений в различных отраслях:

  1. Креативные отрасли: Графические дизайнеры, иллюстраторы и художники могут использовать Flux для быстрого генерирования концептуального искусства, настроек и визуальных вдохновений.
  2. Маркетинг и реклама: Маркетологи могут создавать индивидуальные визуальные элементы для кампаний, контента в социальных сетях и макетов продукции с беспрецедентной скоростью и качеством.
  3. Разработка игр: Дизайнеры игр могут использовать Flux для быстрого прототипирования окружений, персонажей и активов, оптимизируя предварительный производственный процесс.
  4. Архитектура и дизайн интерьера: Архитекторы и дизайнеры могут генерировать реалистичные визуализации пространств и структур на основе текстовых описаний.
  5. Образование: Педагоги могут создавать индивидуальные визуальные пособия и иллюстрации для улучшения учебных материалов и облегчения понимания сложных концепций.
  6. Кино и анимация: Художники-раскадровщики и аниматоры могут использовать Flux для быстрого визуализации сцен и персонажей, ускоряя процесс предвизуализации.

Будущее Flux и генерации изображений по тексту

Black Forest Labs сделала ясным, что Flux является только началом их амбиций в области генеративного ИИ. Они объявили о планах разработать конкурентоспособные генеративные системы текст-видео, обещающие точное создание и редактирование возможностей в высоком разрешении и беспрецедентной скорости.

Этот план предполагает, что Flux не является самостоятельным продуктом, а частью более широкой экосистемы инструментов генеративного ИИ. По мере эволюции технологии мы можем ожидать:

  1. Улучшенная интеграция: Бесшовные рабочие процессы между генерацией изображений по тексту и генерацией видео по тексту, позволяющие создавать более сложный и динамичный контент.
  2. Улучшенная настройка: Более тонкий контроль над сгенерированным контентом, возможно, через продвинутые методы инженерии подсказок или интуитивно понятные интерфейсы пользователя.
  3. Генерация в реальном времени: По мере того, как модели, такие как FLUX.1 [schnell], продолжают улучшаться, мы можем увидеть возможности генерации изображений в реальном времени, которые потенциально могут революционизировать живое создание контента и интерактивные медиа.
  4. Кросс-модальная генерация: Способность генерировать и манипулировать контентом через несколько модальностей (текст, изображение, видео, аудио) в сплоченной и интегрированной форме.
  5. Этичное развитие ИИ: Продолжение фокуса на разработке ИИ-моделей, которые являются не только мощными, но и ответственно и этически обоснованными.

Заключение: Лучше ли Flux, чем Midjourney?

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

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

Midjourney, с другой стороны, имеет доказанный послужной список, большое и активное сообщество пользователей и характерный художественный стиль, который многие пользователи полюбили. Ее интеграция с Discord и удобный интерфейс сделали ее высокодоступной для творческих людей всех уровней технической подготовки.

В конечном итоге “лучшая” модель может зависеть от конкретного случая использования, личных предпочтений и эволюционирующих возможностей каждой платформы. Что ясно, так это то, что Flux представляет собой значительный шаг вперед в области генеративного ИИ, вводя инновационные методы и расширяя границы того, что возможно в синтезе изображений по тексту.

Я провел последние пять лет, погружаясь в увлекательный мир Machine Learning и Deep Learning. Моя страсть и экспертиза привели меня к участию в более чем 50 различных проектах по разработке программного обеспечения, с особым акцентом на AI/ML. Мое непрекращающееся любопытство также привело меня к Natural Language Processing, области, которую я с нетерпением жду возможности изучить более подробно.