【技术前沿】Flux.1部署教程入门--Stable Diffusion团队最前沿、免费的开源AI图像生成器

心若为城 2024-08-29 16:01:23 阅读 61

项目简介

FLUX.1 是一种新的开源图像生成模型。它由 Stable Diffusion 背后的团队 Black Forest Labs 开发。

官网中有以下功能开源供大家参考:

FLUX.1 擅长在图像中准确再现文字,因此非常适合需要清晰文字或短语的设计。无论是标牌、书籍封面还是品牌内容,FLUX.1 都能提供清晰、正确的文字整合。利用 FLUX.1 对空间关系的高级理解,轻松创建复杂场景。从精致的幻想世界到详细的产品布局,该模型都能准确地解释和执行多元素提示。FLUX.1 在渲染人体特征,尤其是手部特征方面实现了重大飞跃。虽然并非完美无瑕,但与以前的开源模型相比,它始终能生成更逼真、比例更协调的身体部位,从而提升人物图像的质量。

并且它是免费的!

由于项目是英文的,博主在这里做一版中文教程,给后来人一些参考。

关注CSDN 心若为城,获得计算机领域与人工智能领域的前沿技术。

博主碎碎念,可跳过:

打算重新做做自己这个老号,高中时候开始做CSDN,那会儿写的是NOIP/NOI相关的算法东西,纯粹是写给自己看的;现在时隔多年,我也在清华站稳了脚跟,在互联网开发和量化交易领域都算是小有成就了。

接下来这个号(也许也不止这个号)应该会做三个方向:

AI新技术(或者不局限于AI)的抢先浏览,会向大家说明当下热点论文、热点技术的部署等,以及做一些周报或者日报。(类似于AI Weekly)

量化交易相关,我在量化开发技术栈有着多年的开发经验,也拿过一些投资比赛的奖项。可以面向应届生给出就业规划,提供一些指导的同时分享一些含金量高的项目。

互联网面试相关,我应该会着重于分享一些面试的底层技术面,并且尽可能和2进行一些结合,让大家同时能handle住两边的技术。

以下是正文:

原项目地址

安装教程

本地安装

<code>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]'

模型

我们提供了三个模型:

FLUX.1 [pro] 基础模型,可通过 API 获取FLUX.1 [dev] 经过引导蒸馏的变体FLUX.1 [schnell] 经过引导和步骤蒸馏的变体

名称 HuggingFace 仓库 许可证 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 FLUX.1-dev 非商业许可证 a6bd8c16dfc23db6aee2f63a2eba78c0
FLUX.1 [pro] 仅通过我们的 API 提供。

自动编码器的权重也在 apache-2.0 许可证下发布,可以在上述任何一个 HuggingFace 仓库中找到。两个模型使用的权重是相同的。

使用方法

当您启动其中一个演示时,权重将自动从 HuggingFace 下载。要下载 FLUX.1 [dev],您需要先登录,详见这里。

如果您已经手动下载了模型权重,可以通过环境变量指定下载路径:

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>

要进行交互式采样,请运行

python -m flux --name <name> --loop

或者要生成单个样本,请运行

python -m flux --name <name> \

--height <height> --width <width> \

--prompt "<prompt>"

我们还提供了一个同时支持文本到图像和图像到图像的 Streamlit 演示。可以通过以下命令运行演示

streamlit run demo_st.py

我们还提供了基于 Gradio 的演示以获得互动体验。要运行 Gradio 演示:

python demo_gr.py --name flux-schnell --device cuda

选项:

--name: 选择要使用的模型(选项:“flux-schnell”, “flux-dev”)--device: 指定要使用的设备(默认:“cuda”,如果可用,否则为 “cpu”)--offload: 模型未使用时卸载到 CPU--share: 创建您的演示的公共链接

要使用 dev 模型运行演示并创建公共链接:

python demo_gr.py --name flux-dev --share

Diffusers 集成

FLUX.1 [schnell]FLUX.1 [dev] 已集成到 🧨 diffusers 库中。要在 diffusers 中使用它,请安装:

pip install git+https://github.com/huggingface/diffusers.git

然后您可以使用 FluxPipeline 来运行模型

import torch

from diffusers import FluxPipeline

model_id = "black-forest-labs/FLUX.1-schnell" # 您也可以使用 `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() # 通过将模型卸载到 CPU 来节省一些 VRAM。如果您的 GPU 足够强大,可以删除此行

prompt = "A cat holding a sign that says hello world"

seed = 42

image = pipe(

prompt,

output_type="pil",code>

num_inference_steps=4, # 如果您使用 [dev],请使用更大的数值

generator=torch.Generator("cpu").manual_seed(seed)

).images[0]

image.save("flux-schnell.png")

要了解更多信息,请查看 diffusers 文档。

API 使用

我们的 API 提供对 pro 模型的访问。API 文档可以在这里找到:docs.bfl.ml。

在这个仓库中,我们还提供了一个简便的 Python 接口。要使用该接口,您首先需要在 api.bfl.ml 上注册,并创建一个新的 API 密钥。

要使用 API 密钥,您可以运行 export BFL_API_KEY=<your_key_here>,或者通过 api_key=<your_key_here> 参数提供密钥。还需要确保您已经按照上面的说明安装了相关包。

从 Python 使用:

from flux.api import ImageRequest

# 这将直接创建一个 API 请求,但不会在生成完成之前阻塞

request = ImageRequest("A beautiful beach")

# 或者:request = ImageRequest("A beautiful beach", api_key="your_key_here")code>

# 以下任意一个操作都会阻塞,直到生成完成

request.url

# -> https:<...>/sample.jpg

request.bytes

# -> b"..." 生成的图像字节

request.save("outputs/api.jpg")

# 将生成的图像保存到本地

request.image

# -> 一个 PIL 图像

从命令行使用:

$ python -m flux.api --prompt="A beautiful beach" urlcode>

https:<...>/sample.jpg

# 生成并保存结果

$ python -m flux.api --prompt="A beautiful beach" save outputs/apicode>

# 直接打开图像

$ python -m flux.api --prompt="A beautiful beach" image showcode>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。