par Black Forest Labs : https://blackforestlabs.ai. La documentation de notre API peut être trouvée ici : docs.bfl.ml.
Ce référentiel contient un code d'inférence minimal pour exécuter du texte à l'image et de l'image à l'image avec nos transformateurs de flux rectifiés latents Flux.
Nous sommes heureux de nous associer à Replicate, FAL, Mystic et Together. Vous pouvez déguster nos modèles en utilisant leurs services. Ci-dessous, nous listons les liens pertinents.
Reproduire:
FAL :
Mystique:
Ensemble:
cd $HOME && git clone https://github.com/black-forest-labs/flux
cd $HOME /flux
python3.10 -m venv .venv
source .venv/bin/activate
pip install -e " .[all] "
Nous proposons trois modèles :
FLUX1.1 [pro]
disponible via API uniquementFLUX.1 [pro]
disponible via API uniquementFLUX.1 [dev]
variante distillée par guidageFLUX.1 [schnell]
et variante distillée par étapesNom | Dépôt HuggingFace | Licence | somme md5 |
---|---|---|---|
FLUX.1 [schnell] | https://huggingface.co/black-forest-labs/FLUX.1-schnell | apache-2.0 | a9e1e277b9b16add186f38e3f5a34044 |
FLUX.1 [dev] | https://huggingface.co/black-forest-labs/FLUX.1-dev | Licence non commerciale FLUX.1-dev | a6bd8c16dfc23db6aee2f63a2eba78c0 |
FLUX.1 [pro] | Uniquement disponible dans notre API. | ||
FLUX1.1 [pro] | Uniquement disponible dans notre API. |
Les poids de l'auto-encodeur sont également publiés sous Apache-2.0 et peuvent être trouvés dans l'un des deux dépôts HuggingFace ci-dessus. Ils sont les mêmes pour les deux modèles.
Les poids seront téléchargés automatiquement depuis HuggingFace une fois que vous aurez démarré l'une des démos. Pour télécharger FLUX.1 [dev]
, vous devrez être connecté, voir ici. Si vous avez téléchargé les poids du modèle manuellement, vous pouvez spécifier les chemins téléchargés via des variables d'environnement :
export FLUX_SCHNELL= < path_to_flux_schnell_sft_file >
export FLUX_DEV= < path_to_flux_dev_sft_file >
export AE= < path_to_ae_sft_file >
Pour une analyse d'échantillonnage interactive
python -m flux --name < name > --loop
Ou pour générer un seul échantillon
python -m flux --name < name >
--height < height > --width < width >
--prompt " <prompt> "
Nous proposons également une démo simplifiée qui effectue à la fois le texte en image et l'image en image. La démo peut être exécutée via
streamlit run demo_st.py
Nous proposons également une démo basée sur Gradio pour une expérience interactive. Pour exécuter la démo de Gradio :
python demo_gr.py --name flux-schnell --device cuda
Possibilités :
--name
: Choisissez le modèle à utiliser (options : "flux-schnell", "flux-dev")--device
: Spécifiez le périphérique à utiliser (par défaut : "cuda" si disponible, sinon "cpu")--offload
: décharger le modèle sur le processeur lorsqu'il n'est pas utilisé--share
: Créez un lien public vers votre démoPour exécuter la démo avec le modèle de développement et créer un lien public :
python demo_gr.py --name flux-dev --share
FLUX.1 [schnell]
et FLUX.1 [dev]
sont intégrés au ? bibliothèque de diffuseurs. Pour l'utiliser avec des diffuseurs, installez-le :
pip install git+https://github.com/huggingface/diffusers.git
Ensuite, vous pouvez utiliser FluxPipeline
pour exécuter le modèle
import torch
from diffusers import FluxPipeline
model_id = "black-forest-labs/FLUX.1-schnell" #you can also use `black-forest-labs/FLUX.1-dev`
pipe = FluxPipeline . from_pretrained ( "black-forest-labs/FLUX.1-schnell" , torch_dtype = torch . bfloat16 )
pipe . enable_model_cpu_offload () #save some VRAM by offloading the model to CPU. Remove this if you have enough GPU power
prompt = "A cat holding a sign that says hello world"
seed = 42
image = pipe (
prompt ,
output_type = "pil" ,
num_inference_steps = 4 , #use a larger number if you are using [dev]
generator = torch . Generator ( "cpu" ). manual_seed ( seed )
). images [ 0 ]
image . save ( "flux-schnell.png" )
Pour en savoir plus, consultez la documentation des diffuseurs
Notre API offre un accès à nos modèles. Il est documenté ici : docs.bfl.ml.
Dans ce référentiel, nous proposons également une interface Python simple. Pour l'utiliser, vous devez d'abord vous inscrire auprès de l'API sur api.bfl.ml et créer une nouvelle clé API.
Pour utiliser la clé API, exécutez export BFL_API_KEY=<your_key_here>
ou fournissez-la via le paramètre api_key=<your_key_here>
. Il est également prévu que vous ayez installé le package comme ci-dessus.
Utilisation depuis python :
from flux . api import ImageRequest
# this will create an api request directly but not block until the generation is finished
request = ImageRequest ( "A beautiful beach" , name = "flux.1.1-pro" )
# or: request = ImageRequest("A beautiful beach", name="flux.1.1-pro", api_key="your_key_here")
# any of the following will block until the generation is finished
request . url
# -> https:<...>/sample.jpg
request . bytes
# -> b"..." bytes for the generated image
request . save ( "outputs/api.jpg" )
# saves the sample to local storage
request . image
# -> a PIL image
Utilisation depuis la ligne de commande :
$ python -m flux.api --prompt= " A beautiful beach " url
https: < ... > /sample.jpg
# generate and save the result
$ python -m flux.api --prompt= " A beautiful beach " save outputs/api
# open the image directly
$ python -m flux.api --prompt= " A beautiful beach " image show