FLUX.1-Kontext-dev: Model uczenia maszynowego do wzmocnienia obrazów

Model AI do wzbogacania obrazów za pomocą instrukcji tekstowych

Page content

Black Forest Labs wydała FLUX.1-Kontext-dev, zaawansowany model AI przekształcający obrazy na podstawie instrukcji tekstowych.

W przeciwieństwie do FLUX.1-dev, który generuje obrazy na podstawie tekstu, FLUX.1-Kontext-dev wykorzystuje zarówno obraz wejściowy, jak i tekstowy prompt, aby utworzyć modyfikowane wersje, zachowując kluczowe elementy.

gopher na rowerze Ten obraz demonstruje zdolność FLUX.1-Kontext-dev do przekształcania obrazów.

Oryginalny obraz z logotypem Go:

Gopher Go logo

został przekształcony za pomocą instrukcji ten gopher jeździ na rowerze po górzystej drodze. Niezły wynik, nie sądzisz?

Co to jest FLUX.1-Kontext-dev?

FLUX.1-Kontext-dev został zaprojektowany do generowania i edytowania obrazów w kontekście. Kluczowe cechy obejmują:

  • Spójność postaci: Zachowuje unikalne elementy (np. postacie lub obiekty) w wielu scenach
  • Lokalna edycja: Modyfikuje konkretne części obrazu bez wpływu na resztę
  • Odwołanie do stylu: Generuje nowe sceny, zachowując styl z obrazów odniesienia
  • Przekształcanie obrazów: Przekształca obrazy na podstawie instrukcji tekstowych

Instalacja

Wymagania wstępne

Potrzebujesz:

  • 16 GB+ VRAM na GPU (rekomendowane NVIDIA RTX)
  • Python 3.8+ z pip
  • Dostęp do Hugging Face (konto i token)

Krok po kroku

  1. Utwórz konto Hugging Face na huggingface.co, jeśli nie masz jeszcze jednego

  2. Załaduj stronę modelu: https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

  3. Zaakceptuj umowę licencyjną (użycie niekomercyjne)

  4. Utwórz token dostępu do zapisu na https://huggingface.co/settings/tokens

  5. Pobierz model:

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

Lub użyj bezpośrednio ścieżki modelu w swoim kodzie.

Instalacja

Zainstaluj wymagane pakiety Pythona:

pip install -U diffusers torch transformers pillow accelerate sentencepiece

Lub użyj uv:

cd tools/fkon
uv sync

Użycie

Podstawowy skrypt w Pythonie

Oto kompletny przykład użycia FLUX.1-Kontext-dev:

import torch
from diffusers import FluxKontextPipeline
from PIL import Image

# Załaduj model
model_path = "/ścieżka/do/FLUX.1-Kontext-dev"
pipe = FluxKontextPipeline.from_pretrained(
    model_path, 
    torch_dtype=torch.bfloat16
)

# Włącz przekazywanie modelu na CPU, aby zaoszczędzić VRAM
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()

# Załaduj swój obraz wejściowy
input_image = Image.open("ścieżka/do/tego/obrazu.png").convert("RGB")

# Zdefiniuj swój prompt do przekształcenia
prompt = "ten gopher jeździ na rowerze po górzystej drodze"

# Wygeneruj przekształcony obraz
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)
)

# Zapisz wynik
output_image = result.images[0]
output_image.save("augmented_image.jpg")

Obsługa wymiarów

FLUX.1-Kontext-dev ma konkretne wymagania dotyczące wymiarów:

  • Krotności 16: Wymiar powinien być wielokrotnością 16
  • Automatyczna korekta: Model może dostosować wymiary, aby spełnić swoje wymagania
  • Przeskalowanie wyniku: Nasz narzędzie automatycznie przeskaluje wynik z powrotem do żądanych wymiarów

Narzędzie to działa w następujący sposób:

  1. Zaokrągla żądane wymiary do wielokrotności 16
  2. Przeskalowuje obraz wejściowy do zaokrąglonych wymiarów
  3. Generuje obraz (model może dalej dostosować)
  4. Przeskalowuje wynik z powrotem do żądanych wymiarów

Przykładowe zastosowania

  1. Przekształcenie postaci

Przekształć postać, zachowując spójność:

prompt = "ten gopher jeździ na rowerze po górzystej drodze"
  1. Usuwanie obiektów

Usuń niechciane elementy:

prompt = "proszę usunąć człowieka ubranego jako Minnie Mouse z tego zdjęcia"

Wskazówki i najlepsze praktyki

  1. Zarządzanie VRAM: Użyj enable_model_cpu_offload() jeśli masz ograniczony VRAM
  2. Planowanie wymiarów: Żądaj wymiarów, które są wielokrotnością 16, aby minimalizować korekty
  3. Jasność promptów: Bądź konkretny w swoich instrukcjach tekstowych, aby uzyskać lepsze wyniki
  4. Generowanie wersji: Generuj wiele wersji (--n 4), aby uzyskać najlepszy wynik
  5. Kontrola seedów: Użyj ręcznych seedów, aby uzyskać powtarzalne wyniki

Ograniczenia

  • Licencja niekomercyjna: Wymaga licencji komercyjnej do użytku w biznesie
  • Wymagający sprzęt: Wymaga potężnej GPU z dużą ilością VRAM
  • Ograniczenia wymiarów: Może automatycznie dostosować wymiary
  • Czas przetwarzania: Może zajmować 10–15 minut na obraz w zależności od sprzętu

Przydatne linki