flux文生图模型实践
flyfish
https://github.com/black-forest-labs/flux
Black Forest Labs发布FLUX.1 Tools,这是一套模型全家桶,旨在为FLUX.1基础文本转图像模型添加控制和可操纵性,从而实现对真实图像和生成图像的修改和重新创建。FLUX.1 Tools包含四个不同的功能:
FLUX.1 Fill:最先进的修复和修复模型,可以根据文本描述和二进制掩码编辑和扩展真实图像和生成的图像。
模型链接:
https://modelscope.cn/models/AI-ModelScope/FLUX.1-Fill-dev
FLUX.1 Depth:根据从输入图像和文本提示中提取的深度图训练模型,以实现结构引导。
模型链接:
https://modelscope.cn/models/AI-ModelScope/FLUX.1-Depth-dev-lora
FLUX.1 Canny:经过训练的模型,可根据从输入图像和文本提示中提取的 Canny 边缘实现结构引导。
模型链接:
https://modelscope.cn/models/AI-ModelScope/FLUX.1-Canny-dev-lora
FLUX.1 Redux:允许混合和重新创建输入图像和文本提示的适配器。
模型链接:
https://modelscope.cn/models/AI-ModelScope/FLUX.1-Redux-dev
这里使用的是FLUX.1-schnell
模型大小 53.8 GB
import torch
from diffusers import FluxPipeline# 创建一个FluxPipeline实例,从预训练模型"black-forest-labs/FLUX.1-schnell"加载模型
# torch_dtype=torch.bfloat16指定了数据类型,使用bfloat16可以减少显存消耗
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", torch_dtype=torch.bfloat16)# 启用模型的CPU卸载功能,以节省GPU显存
# 如果你的GPU性能足够强大,可以注释掉这一行
pipe.enable_model_cpu_offload()# 设置一个提示,告诉模型我们想要生成一张什么样的图片
prompt = "A cat holding a sign that says hello world"# 使用模型生成图片
# guidance_scale=0.0表示不使用任何指导,完全根据提示生成图片
# num_inference_steps=4表示生成图片的推理步骤数
# max_sequence_length=256表示最大序列长度
# generator=torch.Generator("cpu").manual_seed(0)用于设置随机种子,确保结果可复现
image = pipe(prompt,guidance_scale=0.0,num_inference_steps=4,max_sequence_length=256,generator=torch.Generator("cpu").manual_seed(0)
).images[0]# 将生成的图片保存到本地文件"flux-schnell.png"
image.save("flux-schnell.png")