【技术前沿】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>
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。