项目简介
FLUX.1 是一种新的开源图像生成模型。它由 Stable Diffusion 背后的团队 Black Forest Labs 开发。
官网中有以下功能开源供大家参考:
并且它是免费的!
由于项目是英文的,博主在这里做一版中文教程,给后来人一些参考。
关注CSDN 心若为城,获得计算机领域与人工智能领域的前沿技术。
博主碎碎念,可跳过:
打算重新做做自己这个老号,高中时候开始做CSDN,那会儿写的是NOIP/NOI相关的算法东西,纯粹是写给自己看的;现在时隔多年,我也在清华站稳了脚跟,在互联网开发和量化交易领域都算是小有成就了。
接下来这个号(也许也不止这个号)应该会做三个方向:
AI新技术(或者不局限于AI)的抢先浏览,会向大家说明当下热点论文、热点技术的部署等,以及做一些周报或者日报。(类似于AI Weekly)
量化交易相关,我在量化开发技术栈有着多年的开发经验,也拿过一些投资比赛的奖项。可以面向应届生给出就业规划,提供一些指导的同时分享一些含金量高的项目。
互联网面试相关,我应该会着重于分享一些面试的底层技术面,并且尽可能和2进行一些结合,让大家同时能handle住两边的技术。
以下是正文:
原项目地址
安装教程
本地安装
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",
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")
# 以下任意一个操作都会阻塞,直到生成完成
request.url
# -> https:<...>/sample.jpg
request.bytes
# -> b"..." 生成的图像字节
request.save("outputs/api.jpg")
# 将生成的图像保存到本地
request.image
# -> 一个 PIL 图像
从命令行使用:
$ python -m flux.api --prompt="A beautiful beach" url
https:<...>/sample.jpg
# 生成并保存结果
$ python -m flux.api --prompt="A beautiful beach" save outputs/api
# 直接打开图像
$ python -m flux.api --prompt="A beautiful beach" image show
总结
### 项目总结:FLUX.1图像生成模型安装与使用教程**项目简介**
FLUX.1是一款由Black Forest Labs开发的全新开源图像生成模型,基于Stable Diffusion技术。它在文字再现、复杂场景构建和人体特征渲染方面表现出色,尤其适合于需要高清晰度文字和细节丰富的设计场景,是设计师与AI爱好者的理想工具,且完全免费。
**核心优势**
1. **精准文字再现**:能将文字或短语精准融入设计图像中,适用于标牌、书籍封面和品牌内容等领域。
2. **高级空间理解**:能够处理复杂的多元素提示,准确构建从幻想世界到产品布局的各种场景。
3. **人体特征优化**:在人体,特别是手部的特征渲染上取得突破,生成的图像更加逼真细致。
**安装指南**
1. **本地安装**:通过Git克隆FLUX.1项目,并使用Python 3.10创建虚拟环境后安装必要的依赖包。
2. **模型选择**:提供基础模型(`FLUX.1 [pro]`)、引导蒸馏变体(`FLUX.1 [dev]`)及经过特别优化的(`FLUX.1 [schnell]`),用户可根据需求选择合适版本。
- `FLUX.1 [schnell]`: 通过HuggingFace仓库提供,许可证为Apache-2.0。
- `FLUX.1 [dev]`: 同样通过HuggingFace提供,但非商用。
- `FLUX.1 [pro]`: 仅能通过API访问。
**使用方法**
1. **交互式采样与单样本生成**:
- 交互式采样:启动模型后,可通过Streamlit或Gradio进行交互式图像生成。
- 生成单个样本:使用命令行工具指定图像尺寸、提示信息等参数。
2. **API调用**:
- 注册账号并在官方API服务(docs.bfl.ml)上获取API密钥后,可通过Python脚本或命令行方式访问专业版模型,生成高质量图像。
**附加功能**
1. **Diffusers集成**:`FLUX.1 [schnell]`和`FLUX.1 [dev]`模型已集成至Diffusers库,便于在更广泛的人工智能应用中使用。
2. **中文教程**:考虑到项目是英文的,博主提供了详尽的中文安装与使用教程,方便国内用户快速上手。
**未来展望**
博主的CSDN账号未来计划覆盖AI新技术、量化交易及互联网面试技术三大领域,持续分享前沿技术及实战经验,助力读者技术成长。
**结束语**
FLUX.1作为一款功能强大且免费的开源图像生成模型,在多个应用场景下均展现出卓越性能。借助本教程的指导,用户可以轻松上手并解锁其全部潜能。