FLUX.1-Kontext-dev: ИИ для преобразования изображений

Модель ИИ для дополнения изображений текстовыми инструкциями

Содержимое страницы

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

В отличие от FLUX.1-dev, которая генерирует изображения только по тексту, FLUX.1-Kontext-dev использует как входное изображение, так и текстовый запрос для создания изменённых версий, сохраняя при этом ключевые элементы.

gopher on a bycicle Это изображение демонстрирует способность FLUX.1-Kontext-dev дополнять изображения.

Оригинальное изображение маскота Go:

Gopher go logo

было преобразовано с помощью инструкции this gopher rides on the bicycle on the hilly road. Неплохой результат, не так ли?

Что такое FLUX.1-Kontext-dev?

FLUX.1-Kontext-dev предназначена для генерации и редактирования изображений в контексте. Ключевые особенности включают:

  • Сохранение характеристик: Сохраняет уникальные элементы (например, персонажей или объекты) в нескольких сценах
  • Локальное редактирование: Изменяет конкретные части изображения, не затрагивая остальные
  • Стилевое сходство: Генерирует новые сцены, сохраняя стиль из образцовых изображений
  • Дополнение изображений: Преобразует изображения на основе текстовых инструкций

Установка

Предварительные требования

Вам понадобятся:

  • 16ГБ+ VRAM на вашей видеокарте (рекомендуется NVIDIA RTX)
  • Python 3.8+ с pip
  • Доступ к Hugging Face (аккаунт и токен)

Шаги настройки

  1. Создайте аккаунт Hugging Face на huggingface.co, если у вас его нет

  2. Посетите страницу модели: https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

  3. Примите лицензионное соглашение (некоммерческое использование)

  4. Создайте токен для записи на https://huggingface.co/settings/tokens

  5. Скачайте модель:

git clone https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

Или используйте путь к модели непосредственно в вашем коде.

Установка

Установите необходимые пакеты Python:

pip install -U diffusers torch transformers pillow accelerate sentencepiece

Или используя uv:

cd tools/fkon
uv sync

Использование

Базовый скрипт на Python

Вот полный пример использования FLUX.1-Kontext-dev:

import torch
from diffusers import FluxKontextPipeline
from PIL import Image

# Загрузка модели
model_path = "/path/to/FLUX.1-Kontext-dev"
pipe = FluxKontextPipeline.from_pretrained(
    model_path,
    torch_dtype=torch.bfloat16
)

# Включение выгрузки модели в CPU для экономии VRAM
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()

# Загрузка входного изображения
input_image = Image.open("path/to/your/image.png").convert("RGB")

# Определение текста для дополнения
prompt = "this gopher rides on the bicycle on the hilly road"

# Генерация дополненного изображения
result = pipe(
    prompt=prompt,
    image=input_image,
    height=496,
    width=680,
    guidance_scale=3.5,
    num_inference_steps=60,
    max_sequence_length=512,
    generator=torch.Generator("cpu").manual_seed(42)
)

# Сохранение результата
output_image = result.images[0]
output_image.save("augmented_image.jpg")

Обработка размеров

FLUX.1-Kontext-dev имеет специфические требования к размерам:

  • Кратные 16: Размеры должны быть кратны 16
  • Автоматическая корректировка: Модель может корректировать размеры для соответствия своим требованиям
  • Изменение размера выходного изображения: Инструмент автоматически изменяет размер выходного изображения до запрошенных размеров

Инструмент обрабатывает это следующим образом:

  1. Округляет запрошенные размеры до кратных 16
  2. Изменяет размер входного изображения до округленных размеров
  3. Генерирует изображение (модель может изменить размеры ещё больше)
  4. Изменяет размер выходного изображения обратно до ваших запрошенных размеров

Примеры использования

  1. Преобразование персонажа

Преобразуйте персонажа, сохраняя его уникальность:

prompt = "this gopher rides on the bicycle on the hilly road"
  1. Удаление объектов

Удалите ненужные элементы:

prompt = "please remove the human dressed as minnie mouse from this photo"

Советы и лучшие практики

  1. Управление VRAM: Используйте enable_model_cpu_offload(), если у вас ограничен VRAM
  2. Планирование размеров: Запрашивайте размеры, кратные 16, чтобы минимизировать корректировки
  3. Чёткость инструкций: Будьте конкретны в текстовых инструкциях для лучших результатов

Ограничения

  • Некоммерческая лицензия: Требуется коммерческая лицензия для использования в бизнесе
  • Высокие требования к оборудованию: Нужна мощная видеокарта с значительным объемом VRAM
  • Ограничения по размерам: Может автоматически корректировать размеры
  • Время обработки: Может занимать 10-15 минут на изображение в зависимости от оборудования

Полезные ссылки