por Black Forest Labs: https://blackforestlabs.ai. A documentação da nossa API pode ser encontrada aqui: docs.bfl.ml.
Este repositório contém código de inferência mínimo para executar texto para imagem e imagem para imagem com nossos transformadores de fluxo retificado latente Flux.
Estamos felizes em fazer parceria com Replicate, FAL, Mystic e Together. Você pode experimentar nossos modelos usando seus serviços. Abaixo listamos links relevantes.
Replicar:
FAL:
Místico:
Junto:
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] "
Oferecemos três modelos:
FLUX1.1 [pro]
disponível apenas via APIFLUX.1 [pro]
disponível apenas via APIFLUX.1 [dev]
variante destilada por orientaçãoFLUX.1 [schnell]
e variante destilada passo a passoNome | Repositório HuggingFace | Licença | md5sum |
---|---|---|---|
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 | Licença não comercial FLUX.1-dev | a6bd8c16dfc23db6aee2f63a2eba78c0 |
FLUX.1 [pro] | Disponível apenas em nossa API. | ||
FLUX1.1 [pro] | Disponível apenas em nossa API. |
Os pesos do autoencoder também são lançados no Apache-2.0 e podem ser encontrados em qualquer um dos dois repositórios HuggingFace acima. Eles são iguais para ambos os modelos.
Os pesos serão baixados automaticamente do HuggingFace assim que você iniciar uma das demonstrações. Para baixar FLUX.1 [dev]
, você precisará estar logado, veja aqui. Se você baixou os pesos do modelo manualmente, poderá especificar os caminhos baixados por meio de variáveis de ambiente:
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 execução de amostragem interativa
python -m flux --name < name > --loop
Ou para gerar uma única execução de amostra
python -m flux --name < name >
--height < height > --width < width >
--prompt " "
Também fornecemos uma demonstração simplificada que faz conversão de texto para imagem e imagem para imagem. A demonstração pode ser executada via
streamlit run demo_st.py
Também oferecemos uma demonstração baseada em Gradio para uma experiência interativa. Para executar a demonstração do Gradio:
python demo_gr.py --name flux-schnell --device cuda
Opções:
--name
: Escolha o modelo a ser usado (opções: "flux-schnell", "flux-dev")--device
: Especifique o dispositivo a ser usado (padrão: "cuda" se disponível, caso contrário, "cpu")--offload
: descarrega o modelo para a CPU quando não estiver em uso--share
: Crie um link público para sua demonstraçãoPara executar a demonstração com o modelo dev e criar um link público:
python demo_gr.py --name flux-dev --share
FLUX.1 [schnell]
e FLUX.1 [dev]
estão integrados com o ? biblioteca de difusores. Para utilizá-lo com difusores, instale-o:
pip install git+https://github.com/huggingface/diffusers.git
Então você pode usar FluxPipeline
para executar o 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 saber mais confira a documentação dos difusores
Nossa API oferece acesso aos nossos modelos. Está documentado aqui: docs.bfl.ml.
Neste repositório também oferecemos uma interface python fácil. Para usar isso, primeiro você precisa se registrar na API em api.bfl.ml e criar uma nova chave de API.
Para usar a chave de API, execute export BFL_API_KEY=
ou forneça-a por meio do parâmetro api_key=
. Também é esperado que você tenha instalado o pacote conforme acima.
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 na linha 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