Інструменти ШІ 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, які стали сенсацією у світі штучного інтелекту.
З успішним раундом фінансування серії 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. Ці промпти підкреслюють сильні сторони моделі у обробці тексту, складних композицій та детальних елементів, таких як руки.
- Художній стиль з текстом: “Створити портрет Вінсента ван Гога у його власному стилі, але замість бороди використати хвилясті мазки, які утворюють слова ‘Стarry Night’ курсивом.”
- Динамічна сцена дії з інтеграцією тексту: “Супергерой, що проривається крізь сторінку коміксу. Лінії дії та звукові ефекти повинні утворювати ім’я героя ‘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 проти 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>
Цей код встановлює сервер 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 зробила rõко, що Flux лише початок їхніх амбіцій у сфері генерації штучного інтелекту. Вони оголосили плани розробити конкурентоспроможні генеративні системи текст-із-відео, обіцяючи точну створення та редагування можливостей у високій роздільності та безпрецедентній швидкості.
Цей план розвитку свідчить про те, що Flux не є окремим продуктом, а частиною ширшої екосистеми інструментів генерації штучного інтелекту. По мірі розвитку технологій ми можемо очікувати:
- Поліпшену інтеграцію: Безшовні робочі процеси між генерацією текст-із-образом та генерацією текст-із-відео, що дозволяє створювати більш складний та динамічний контент.
- Покращену налаштування: Більш тонкий контроль над згенерованим контентом, можливо, через просунуті техніки інженерії промптів або інтуїтивні інтерфейси користувача.
- Генерацію в реальному часі: По мірі поліпшення моделей, таких як FLUX.1 [schnell], ми можемо побачити можливості генерації зображень у реальному часі, що може революціонізувати живий контент та інтерактивні медіа.
- Генерацію між модальностями: Можливість генерації та маніпуляції контентом у декількох модальностях (текст, зображення, відео, аудіо) у єдиному та інтегрованому вигляді.
- Етичну розробку штучного інтелекту: Продовження фокусу на розробці моделей штучного інтелекту, які не тільки потужні, але й відповідальні та етичні.
Висновок: Чи краще Flux, ніж Midjourney?
Питання про те, чи “кращий” Flux, ніж Midjourney, не має простої відповіді “так” або “ні”. Обидві моделі представляють передовий край технології генерації текст-із-образом, кожна зі своїми сильними сторонами та унікальними характеристиками.
Flux, з його просунутою архітектурою та акцентом на дотриманні промпта, може пропонувати більш точний контроль та потенційно вищу якість у певних сценаріях. Його відкриті варіанти також пропонують можливості для налаштування та інтеграції, які можуть бути дуже цінними для розробників та дослідників.
Midjourney, з іншого боку, має доведену репутацію, велику та активну спільноту користувачів та характерний художній стиль, який багато користувачів полюбили. Його інтеграція з Discord та користувальницький інтерфейс зробили його дуже доступним для творчих людей усіх рівнів технічних знань.
У кінцевому підсумку, “краща” модель може залежати від конкретного випадку використання, особистих уподобань та еволюції можливостей кожної платформи. Що rõко, так це те, що Flux представляє суттєвий крок вперед у сфері генерації штучного інтелекту, вводячи інноваційні техніки та розширюючи межі того, що можливо у синтезі текст-із-образом.


















