FLUX.1-dev-Controlnet-Union项目介绍
FLUX.1-dev-Controlnet-Union项目是一个依托于FLUX.1-dev基础模型的高级图像生成工具,结合了ControlNet和Stable Diffusion等技术,为用户提供了创新的文本到图像生成功能。
项目目的
该项目旨在促进开源社区和Flux生态系统的快速发展。尽管初期版本的模型可能不如一些专业模型(例如姿势控制)表现优秀,但随着训练过程的推进,FLUX.1-dev-Controlnet-Union的效果将愈加接近这些专业模型。
版本发布
- 2024年8月26日,发布了FLUX.1-dev-ControlNet-Union专业版,用户可以通过指定的源代码下载进行安装。
- 2024年8月20日,发布了测试版本。
- 2024年8月14日,发布了内部测试版本。
检查点
该项目在训练过程中需要大量的计算资源。当前发布的版本为第一个测试版,目的在于为开源社区提供便利,尽管可能存在一些效果不佳的情况。已经进行的消融研究证实了代码的有效性。
控制模式
FLUX.1-dev-Controlnet-Union支持多种控制模式,以适应不同的图像生成需求。
控制模式 | 描述 | 当前模型有效性 |
---|---|---|
0 | canny | 🟢 高效 |
1 | tile | 🟢 高效 |
2 | depth | 🟢 高效 |
3 | blur | 🟢 高效 |
4 | pose | 🟢 高效 |
5 | gray | 🔴 低效 |
6 | lq | 🟢 高效 |
推理使用
用户可以通过Python编程接口来使用FLUX.1-dev-Controlnet-Union进行图像生成。示例如下:
import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetPipeline, FluxControlNetModel
base_model = 'black-forest-labs/FLUX.1-dev'
controlnet_model = 'InstantX/FLUX.1-dev-Controlnet-Union'
controlnet = FluxControlNetModel.from_pretrained(controlnet_model, torch_dtype=torch.bfloat16)
pipe = FluxControlNetPipeline.from_pretrained(base_model, controlnet=controlnet, torch_dtype=torch.bfloat16)
pipe.to("cuda")
control_image_canny = load_image("https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Union-alpha/resolve/main/images/canny.jpg")
controlnet_conditioning_scale = 0.5
control_mode = 0
width, height = control_image.size
prompt = 'A bohemian-style female travel blogger with sun-kissed skin and messy beach waves.'
image = pipe(
prompt,
control_image=control_image,
control_mode=control_mode,
width=width,
height=height,
controlnet_conditioning_scale=controlnet_conditioning_scale,
num_inference_steps=24,
guidance_scale=3.5,
).images[0]
image.save("image.jpg")
多控推理
通过加载多个控制模型,用户可以更灵活地生成带有多个控制条件的图像。
# 示例代码见上述资源部分
资源链接
有关FLUX.1-dev-Controlnet-Union的更多资源可以访问以下链接:
- InstantX/FLUX.1-dev-Controlnet-Canny
- InstantX/FLUX.1-dev-Controlnet-Union
- Shakker-Labs/FLUX.1-dev-ControlNet-Depth
- Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro
致谢
感谢zzzzzero在项目训练中帮助指出了一些错误。