FLUX.1-Kontext-dev : Modèle d'intelligence artificielle d'augmentation d'images

Modèle d'IA pour augmenter des images à l'aide d'instructions textuelles

Sommaire

Black Forest Labs a publié FLUX.1-Kontext-dev, un modèle avancé d’IA de transformation d’images qui améliore les images existantes à l’aide d’instructions textuelles.

Contrairement à FLUX.1-dev qui génère des images à partir de texte seul, FLUX.1-Kontext-dev utilise à la fois une image d’entrée et un prompt textuel pour créer des versions modifiées tout en préservant les éléments clés.

gopher sur un vélo Cette image démontre la capacité de FLUX.1-Kontext-dev à améliorer les images.

L’image originale du mascotte Go :

Gopher Go logo

a été transformée avec l’instruction this gopher rides on the bicycle on the hilly road. Un résultat assez bon, n’est-ce pas ?

Qu’est-ce que FLUX.1-Kontext-dev ?

FLUX.1-Kontext-dev est conçu pour la génération et la modification d’images en contexte. Ses fonctionnalités clés incluent :

  • Consistance des personnages : préserve les éléments uniques (comme les personnages ou les objets) à travers plusieurs scènes
  • Modification locale : modifie des parties spécifiques d’une image sans affecter le reste
  • Référence de style : génère de nouvelles scènes tout en maintenant les styles des images de référence
  • Amélioration d’images : transforme les images en fonction des instructions textuelles

Installation

Prérequis

Vous aurez besoin de :

  • 16 Go+ de VRAM sur votre GPU (NVIDIA RTX recommandé)
  • Python 3.8+ avec pip
  • Accès à Hugging Face (compte et jeton)

Étapes de configuration

  1. Créez un compte Hugging Face sur huggingface.co si vous n’en avez pas déjà un

  2. Visitez la page du modèle : https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

  3. Acceptez le contrat de licence (utilisation non commerciale)

  4. Créez un jeton d’accès en écriture sur https://huggingface.co/settings/tokens

  5. Téléchargez le modèle :

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

Ou utilisez directement le chemin du modèle dans votre code.

Installation

Installez les packages Python requis :

pip install -U diffusers torch transformers pillow accelerate sentencepiece

Ou utilisez uv :

cd tools/fkon
uv sync

Utilisation

Script Python de base

Voici un exemple complet utilisant FLUX.1-Kontext-dev :

import torch
from diffusers import FluxKontextPipeline
from PIL import Image

# Chargez le modèle
model_path = "/path/to/FLUX.1-Kontext-dev"
pipe = FluxKontextPipeline.from_pretrained(
    model_path, 
    torch_dtype=torch.bfloat16
)

# Activez le déchargement vers le CPU pour économiser la VRAM
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()

# Chargez votre image d'entrée
input_image = Image.open("path/to/your/image.png").convert("RGB")

# Définissez votre instruction d'amélioration
prompt = "this gopher rides on the bicycle on the hilly road"

# Générez l'image améliorée
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)
)

# Enregistrez le résultat
output_image = result.images[0]
output_image.save("augmented_image.jpg")

Gestion des dimensions

FLUX.1-Kontext-dev a des exigences spécifiques en matière de dimensions :

  • Multiples de 16 : les dimensions doivent être des multiples de 16
  • Ajustement automatique : le modèle peut ajuster les dimensions pour répondre à ses exigences
  • Redimensionnement de la sortie : notre outil redimensionne automatiquement la sortie aux dimensions demandées

L’outil gère cela en :

  1. Arrondissant les dimensions demandées aux multiples de 16
  2. Redimensionnant l’image d’entrée aux dimensions arrondies
  3. Générant l’image (le modèle peut ajuster davantage)
  4. Redimensionnant la sortie aux dimensions demandées

Exemples d’utilisation

  1. Transformation de personnage

Transformer un personnage tout en maintenant la cohérence :

prompt = "this gopher rides on the bicycle on the hilly road"
  1. Suppression d’objets

Supprimer des éléments indésirables :

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

Conseils et bonnes pratiques

  1. Gestion de la VRAM : utilisez enable_model_cpu_offload() si vous avez peu de VRAM
  2. Planification des dimensions : demandez des dimensions qui sont des multiples de 16 pour minimiser les ajustements
  3. Clarté des instructions : soyez précis dans vos instructions textuelles pour obtenir de meilleurs résultats
  4. Génération par lots : générez plusieurs variations (--n 4) pour obtenir le meilleur résultat
  5. Contrôle des graines : utilisez des graines manuelles pour des résultats reproductibles

Limitations

  • Licence non commerciale : une licence commerciale est nécessaire pour une utilisation professionnelle
  • Exigeant en termes de matériel : nécessite un GPU puissant avec une grande quantité de VRAM
  • Contraintes de dimensions : les dimensions peuvent être ajustées automatiquement
  • Temps de traitement : peut prendre 10 à 15 minutes par image selon le matériel

Liens utiles