Sakhanda Wire
NVDA $217.23 -1.84% MSFT $539.44 +1.08% GOOGL $349.22 +0.45% META $736.72 -0.11% AMZN $254.76 +0.27%
← До новин

FLUX.3 Image Klein тепер у Diffusers

Вітаємо FLUX.3 Image Klein у Diffusers: найновіша відкрита модель генерації зображень від Black Forest Labs
Опубліковано 15 жовтня 2026 року
Оновити на GitHub
Black Forest Labs FLUX.3 Image Klein уже доступна й від першого дня працює у Diffusers. Одна модель виконує перетворення тексту на зображення та перетворення зображення на зображення з кількома референсами, а також додає нову можливість — керування макетом. Ви додаєте до запиту обмежувальні рамки, щоб указати, де має розташовуватися кожна частина зображення або які частини референсного зображення потрібно перемістити.

Обидві відкриті контрольні точки доступні в колекції FLUX.3 Image Klein:

Контрольна точка Що це Параметри за замовчуванням
black-forest-labs/flux-3-image-klein Дистильована за часовими кроками, для швидкого виведення 16 кроків, без CFG
black-forest-labs/flux-3-image-klein-base Базова модель 50 кроків, CFG

руда лисиця в засніженому лісі (перетворення тексту на зображення), та сама лисиця, повторно згенерована з цього зображення (перетворення зображення на зображення), чорний крапковий силует бігуна на салатовому тлі, намальований усередині позначеної обмежувальної рамки, і в’язаний лицар, переміщений із рамки «звідки» до рамки «куди» поруч із в’язаним драконом (редагування макета)

Перейдіть до простору Hugging Face і генеруйте зображення вже зараз!

Коротко

  • Одна модель для перетворення тексту на зображення, перетворення зображення на зображення з кількома референсами та керування макетом за допомогою обмежувальних рамок.
  • Дистильована контрольна точка створює зображення 1024 × 1024 приблизно за 2 секунди на H100.
  • Ваги NVFP4 і FP8 завантажуються через from_single_file для роботи на менших графічних процесорах.
  • Скрипти навчання LoRA і для перетворення тексту на зображення, і для редагування зображень.
  • Постачається як модульний конвеєр Diffusers, тому ви можете вилучати блоки або додавати власні.

Зміст

  • Початок роботи
  • Можливості FLUX.3
  • Базова модель і квантизовані варіанти
  • Дообучення LoRA
  • Вартість запуску
  • Архітектура
  • Модульний Diffusers
  • Спробувати

Початок роботи

Установіть найновіші версії diffusers і transformers (для текстового енкодера Qwen3-VL):

pip install -U diffusers transformers

Завантажте дистильовану контрольну точку та згенеруйте зображення:

import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")

pipe(prompt="a red fox", output="images")[0].save("fox.png")

Можливості FLUX.3

Перетворення тексту на зображення

FLUX.3 найкраще реагує на повний опис сцени із зазначенням об’єкта, оточення, освітлення, композиції та стилю. В офіційному посібнику зі створення запитів від Black Forest Labs наведено більше порад. Дистильована контрольна точка за замовчуванням генерує зображення 1024 × 1024 за 16 кроків. Передайте height, width або num_inference_steps, щоб змінити ці параметри.

prompt = (
    "A wide-angle wildlife photograph of a red fox standing alert in a snow-covered forest clearing at golden hour. "
    "The fox is centered in the frame, its thick orange winter coat contrasting with the fresh white snow, breath "
    "visible in the cold air. Snow-laden pine trees fill the softly blurred background, and low warm sunlight rakes "
    "across the scene from the left, casting long blue shadows."
)

fox = pipe(
    prompt=prompt,
    generator=torch.Generator().manual_seed(0),
    output="images"
)[0]
fox.save("fox.png")
Руда лисиця насторожено стоїть на засніженій галявині в лісі, освітлена низьким золотистим сонячним світлом зліва
Текст на зображення

Перетворення зображення на зображення

Передайте референсне зображення (або кілька) за допомогою аргументу image. Напишіть запит як підпис до зображення, яке ви хочете отримати, включивши потрібну зміну.

prompt = (
    "The same red fox in the same snow-covered forest clearing, now at night under a full moon: cool blue "
    "moonlight, deep shadows, stars visible through the pine branches, the fox's eyes catching the light."
)
night = pipe(
    prompt=prompt,
    image=fox, 
    generator=torch.Generator().manual_seed(0),
    output="images",
)[0]
night.save("night.png")
Лисиця з попереднього зображення, освітлена холодним синім світлом
Зображення на зображення

Якщо є кілька референсів, посилайтеся на них у запиті як на <ref_image_0>, <ref_image_1>, ... у порядку їх передавання до image:

red_fox = pipe(prompt="a red fox", generator=torch.Generator().manual_seed(0), output="images")[0]
bench = pipe(prompt="a wooden bench", generator=torch.Generator().manual_seed(0), output="images")[0]

combined = pipe(
    prompt="The fox from <ref_image_0> sitting on the wooden bench from <ref_image_1> in a snowy setting.",
    image=[red_fox, bench],
    output="images",
)[0]

combined.save("combined.png")

Керування макетом

Додайте список регіонів у форматі JSON після підпису. Кожен регіон має id, bbox і desc, а в підписі він згадується як <id>.

Рамки записуються як [y_min, x_min, y_max, x_max], спочатку координата y, у шкалі 0–1000. Оскільки шкала нормалізована, та сама рамка працює за будь-якого розміру зображення.

Розміщення регіонів у новому зображенні

Кожен регіон малюється всередині своєї bbox.

Переміщення регіонів у референсному зображенні

Для редагування кожен регіон указує, звідки походить його вміст (src_bbox у референсі) і куди він переміщується (tgt_bbox у результаті). Регіон з однаковими двома рамками залишається на своєму місці.

У цьому прикладі в’язаний лицар переміщується вгору й ліворуч, а тло, скеля, голка, дракон і вогонь залишаються нерухомими:

Базова модель і квантизовані варіанти

Базова модель

Усе описане вище використовує дистильовану контрольну точку. Базова контрольна точка виконує 50 кроків із безкласифікаторним керуванням і саме її слід донавчати (див. розділ «Дообучення LoRA»).

Контрольні точки в однофайловому форматі

Black Forest Labs також постачає трансформер в одному файлі — у форматі bf16 і у двох квантизованих форматах: fp8r (пострічковий FP8) та nvfp4. Завантажте будь-який із них через from_single_file, а потім завантажте інші компоненти за назвою, щоб трансформер bf16 також не завантажувався.

Дообучення LoRA

FLUX.3 працює і для перетворення тексту на зображення, і для перетворення зображення на зображення, що робить її чудовою основою для власних LoRA. diffusers містить скрипти навчання DreamBooth LoRA для обох завдань (також можна навчати за допомогою AI Toolkit від Ostris).

Ось приклад перетворення тексту на зображення, у якому стиль карт Таро вивчається з набору даних multimodalart/1920-raider-waite-tarot-public-domain і викликається за допомогою trtcrd:

Вартість запуску

У цьому розділі ми розглянемо споживання пам’яті та швидкість генерації моделей.

Пам’ять

Якщо у вас менше пам’яті:

  • Завантажте квантизований трансформер.
  • Запускайте текстовий енкодер окремо й вивільняйте його. Він запускається лише один раз для кожного зображення, перед усуненням шуму.
  • Увімкніть автоматичне вивантаження на CPU, яке переміщує кожен компонент на GPU лише під час його роботи (ми це не тестували).

Швидкість

Наскрізні вимірювання для дистильованої контрольної точки (16 кроків), усереднені за трьома запусками після прогрівання:

Один NVIDIA H100 80 ГБ, без вивантаження, стандартний бекенд уваги.

Референсне зображення приблизно подвоює час. Референсні токени приєднуються до тієї самої послідовності, що й текст і зображення, яке генерується, тому референс 1024 × 1024 додає 4096 токенів до кожного виклику трансформера.

Архітектура

Розгляньмо модель по частинах. Модель працює з трьома видами токенів:

  1. текст
  2. зашумлене зображення, яке генерується
  3. необов’язкові референсні зображення

Від пікселів до токенів

FLUX.3 — це потокова модель у латентному просторі для генерації зображень. Це означає, що денойзер отримує латенти на вході й створює латенти на виході. Ми використовуємо VAE, щоб декодувати латенти назад у пікселі. FLUX.3 використовує ту саму архітектуру VAE, що й Flux.2.

VAE FLUX.2 стискає зображення у 8 разів у кожному напрямку до 32 каналів, а потім кожен фрагмент латенту 2 × 2 пакується в один токен зі 128 каналами.

Отже, один токен охоплює фрагмент 16 × 16 пікселів, а зображення 1024 × 1024 перетворюється на сітку 64 × 64 із 4096 токенів. Зашумлене зображення починається як випадковий шум точно такої форми. Референсне зображення проходить через той самий енкодер VAE і пакування та зберігає власний розмір.

Від запиту до токенів

Текстовий енкодер — Qwen3-VL, мультимодальна модель для роботи із зображеннями й мовою. FLUX.3 використовує не лише її останній шар. Вона зчитує приховані стани восьми з 36 шарів (шари 4, 8, …, 32) і об’єднує їх, тому кожен текстовий токен стає вектором розмірності 8 × 2560 = 20 480 перед проєктуванням лінійним шаром до ширини трансформера 3072.

Це надає трансформеру ознаки з кількох глибин мовної моделі, а не лише з її фінального шару. Запит доповнюється до кратної 80 кількості токенів, і трансформер також працює з доповненням, тому конвеєр приймає один запит за виклик.

Два етапи

Трансформер обробляє токени у два етапи:

  1. Етап 1: блоки для кожного режиму. Кожен потік проходить через 5 блоків із власними вагами. Текст має власні блоки, зашумлене зображення — власні, а референсні зображення — власні.
  2. Етап 2: спільні блоки. Потоки об’єднуються в одну послідовність [text | image | reference], яка проходить через 28 блоків зі спільним набором ваг.

Два етапи відрізняються тим, хто на кого може звертати увагу.

На першому етапі кожен потік звертає увагу лише на самого себе, тому кожен тип токенів спочатку уточнюється окремо. На другому етапі все звертає увагу на все, і зображення навчається з тексту та референсів. Для порівняння, двопотокові блоки FLUX.2 також надають тексту й зображенню окремі ваги, але дозволяють їм взаємодіяти від самого початку. FLUX.3 спочатку повністю розділяє потоки, а потім об’єднує їх.

Наприкінці текстові токени та токени референсів просто відкидаються. Лише токени зображення проходять через вихідні шари, які прогнозують, як перемістити їх на один крок у напрямку чистого зображення.

Усередині одного блоку

Кожен блок на будь-якому етапі має однакову форму. Увага та MLP працюють паралельно з одним і тим самим нормалізованим входом, а їхня сума додається назад до залишкового потоку.

Кожен блок починається з LayerNorm, який не має власного навчуваного масштабу або зсуву. Масштаб, зсув і ворота надходять натомість із вбудовування часового кроку (це називається модуляцією). Усередині механізму уваги запити та ключі нормалізуються за RMS і отримують позиційні вбудовування обертання (RoPE), які ми розглянемо нижче.

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

Кожен токен отримує власний часовий крок

У FLUX.1 і FLUX.2 одне вбудовування часового кроку модулює кожен токен. У FLUX.3 модуляція залежить від типу токена.

Токени зашумленого зображення модулюються поточним часовим кроком t. Текстові токени й токени референсів завжди модулюються часовим кроком 0, що означає «чистий, тут нічого не потрібно усувати». Тому навіть референс, який майже збігається з результатом, позначається як наданий контекст, а не як об’єкт для генерації.

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

Позиції у чотирьох вимірах

Механізм уваги сам по собі не знає, де розташований токен (це явище називається еквіваріантністю щодо перестановок). RoPE виправляє це, обертаючи кожен запит і ключ на величину, що залежить від позиції токена. FLUX.3 використовує чотири позиційні осі, (t, h, w, l) (часовий крок, висота, ширина, довжина послідовності), і виділяє кожній чверть (32 виміри) кожної 128-вимірної головки уваги.

Цикл усунення шуму

FLUX.3 — це модель зіставлення потоків. Генерація починається з чистого шуму, і на кожному з 50 кроків трансформер прогнозує швидкість. Це напрямок від шуму до чистого зображення. Планувальник робить один крок уздовж нього.

На кожному кроці також можна зчитати поточне припущення моделі щодо фінального зображення. Декодування цього припущення на кількох кроках показує, як формується зображення.

Модульний Diffusers

FLUX.3 постачається як конвеєр Modular Diffusers.

Перегляд робочих процесів

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

Закодувати один раз, генерувати багато

Вилучіть текстовий енкодер, закодуйте запит один раз, вивільніть енкодер і генеруйте з кешованих вбудовувань.

Додати крок усередині циклу

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

Спробувати

Створили щось за допомогою FLUX.3? Поділіться своїми LoRA та конвеєрами на Hub. Ми будемо раді їх побачити! 😎

Моделі, згадані в цій статті 2

Набори даних, згадані в цій статті 1

Простори, згадані в цій статті 2

Колекції, згадані в цій статті 1

Спільнота

Завантажуйте зображення, аудіо та відео, перетягуючи їх у поле введення тексту, вставляючи або натискаючи тут.
Торкніться або вставте сюди, щоб завантажити зображення

· Зареєструйтеся або увійдіть, щоб залишити коментар

Моделі, згадані в цій статті 2

Набори даних, згадані в цій статті 1

Простори, згадані в цій статті 2

Колекції, згадані в цій статті 1

Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.

Вперше опубліковано виданням Hugging Face

Читати оригінал на Hugging Face ↗

Текст і зображення належать Hugging Face і наводяться тут із зазначенням авторства та посиланням на оригінальну публікацію.

← До новин

Ще новини

Усі останні новини