por Black Forest Labs: https://blackforestlabs.ai. La documentación de nuestra API se puede encontrar aquí: docs.bfl.ml.
Este repositorio contiene un código de inferencia mínimo para ejecutar texto a imagen e imagen a imagen con nuestros transformadores de flujo rectificado latente Flux.
Estamos felices de asociarnos con Replicate, FAL, Mystic y Together. Puede probar nuestros modelos utilizando sus servicios. A continuación enumeramos enlaces relevantes.
Reproducir exactamente:
Falta:
Místico:
Juntos:
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] "
Ofrecemos tres modelos:
FLUX1.1 [pro]
disponible solo a través de APIFLUX.1 [pro]
disponible solo a través de APIFLUX.1 [dev]
variante destilada de guíaFLUX.1 [schnell]
y variante destilada por pasosNombre | Repositorio HuggingFace | Licencia | suma 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 | Licencia no comercial FLUX.1-dev | a6bd8c16dfc23db6aee2f63a2eba78c0 |
FLUX.1 [pro] | Sólo disponible en nuestra API. | ||
FLUX1.1 [pro] | Sólo disponible en nuestra API. |
Los pesos del codificador automático también se publican en Apache-2.0 y se pueden encontrar en cualquiera de los dos repositorios de HuggingFace anteriores. Son iguales para ambos modelos.
Los pesos se descargarán automáticamente desde HuggingFace una vez que inicie una de las demostraciones. Para descargar FLUX.1 [dev]
, deberá iniciar sesión, consulte aquí. Si ha descargado los pesos del modelo manualmente, puede especificar las rutas descargadas mediante variables de entorno:
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 >
Para una ejecución de muestreo interactiva
python -m flux --name < name > --loop
O para generar una única ejecución de muestra
python -m flux --name < name >
--height < height > --width < width >
--prompt " <prompt> "
También ofrecemos una demostración optimizada que convierte tanto texto a imagen como imagen a imagen. La demostración se puede ejecutar a través de
streamlit run demo_st.py
También ofrecemos una demostración basada en Gradio para una experiencia interactiva. Para ejecutar la demostración de Gradio:
python demo_gr.py --name flux-schnell --device cuda
Opciones:
--name
: Elige el modelo a utilizar (opciones: "flux-schnell", "flux-dev")--device
: especifica el dispositivo a usar (predeterminado: "cuda" si está disponible, en caso contrario "cpu")--offload
: descarga el modelo a la CPU cuando no está en uso--share
: crea un enlace público a tu demostraciónPara ejecutar la demostración con el modelo de desarrollo y crear un enlace público:
python demo_gr.py --name flux-dev --share
FLUX.1 [schnell]
y FLUX.1 [dev]
están integrados con ? biblioteca de difusores. Para usarlo con difusores, instálelo:
pip install git+https://github.com/huggingface/diffusers.git
Luego puedes usar FluxPipeline
para ejecutar el modelo.
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" )
Para obtener más información, consulte la documentación de los difusores.
Nuestra API ofrece acceso a nuestros modelos. Está documentado aquí: docs.bfl.ml.
En este repositorio también ofrecemos una sencilla interfaz de Python. Para utilizar esto, primero debe registrarse con la API en api.bfl.ml y crear una nueva clave API.
Para utilizar la clave API, ejecute export BFL_API_KEY=<your_key_here>
o proporciónela mediante el parámetro api_key=<your_key_here>
. También se espera que haya instalado el paquete como se indica arriba.
Uso de 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
Uso desde la línea de comando:
$ 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