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. Масштабування до 12B параметрів: Сам розмір моделі дозволяє їй захоплювати та синтезувати більш складні закономірності та відносини, потенційно ведучи до вищої якості та більшої різноманітності виводу.

Бенчмаркінг 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 проти 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-біт для роботи на менш потужному апаратному забезпеченні
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)

Цей код встановлює сервер Flux як масштабовану службу API, включаючи завантаження моделі, обробку запитів, генерацію зображень та кодування відповідей.

Розгортання сервера:

python server.py

Використання моделі 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-бітної точності, що дозволяє їй працювати на менш потужному апаратному забезпеченні, наприклад, на GPU L4.
  5. Відключення на CPU: Метод enable_model_cpu_offload() використовується для збереження пам’яті GPU шляхом відключення частини моделі на 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 представляє собою суттєвий крок вперед у галузі генерації штучного інтелекту, вводячи інноваційні техніки та розширюючи межі того, що можливо у синтезі текст-ізображення.

Я провів останні п'ять років, занурючись у захопливий світ машинного навчання та глибокого навчання. Моя пристрасть та експертиза привели мене до внеску у понад 50 різноманітних проектів програмної інженерії, з особливим акцентом на AI/ML. Моя триваюча цікавість також привела мене до обробки природної мови, галузі, яку я бажаю дослідити далі.