当前位置:AIGC资讯 > AIGC > 正文

FLUX 1 将像 Stable Diffusion 一样完整支持ControlNet组件

之前 InstantX 团队做的多合一的 Flux ControlNet 现在开始和 ShakkerAI 合作并推出了:Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro
该模型支持 7 种控制模式,包括 canny (0), tile (1), depth (2), blur (3), pose (4), gray (5) 和 low quality (6),并且还能和其他 ControlNet 一起使用。

模型卡片

该 checkpoint 是 FLUX.1-dev-Controlnet-Union 的专业版,经过更多步骤和数据集的训练。 该模型支持 7 种控制模式,包括 canny (0)、tile (1)、depth (2)、blur (3)、pose (4)、gray (5)、low quality (6)。 建议 controlnet_conditioning_scale 为 0.3-0.8。 该模型可与其他 ControlNets 共同使用。

效果



Multi-Controls 推理

import torch
from diffusers.utils import load_image

from diffusers import FluxControlNetPipeline, FluxControlNetModel, FluxMultiControlNetModel

base_model = 'black-forest-labs/FLUX.1-dev'
controlnet_model_union = 'Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro'

controlnet_union = FluxControlNetModel.from_pretrained(controlnet_model_union, torch_dtype=torch.bfloat16)
controlnet = FluxMultiControlNetModel([controlnet_union]) # we always recommend loading via FluxMultiControlNetModel

pipe = FluxControlNetPipeline.from_pretrained(base_model, controlnet=controlnet, torch_dtype=torch.bfloat16)
pipe.to("cuda")

prompt = 'A bohemian-style female travel blogger with sun-kissed skin and messy beach waves.'
control_image_depth = load_image("https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/resolve/main/assets/depth.jpg")
control_mode_depth = 2

control_image_canny = load_image("https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/resolve/main/assets/canny.jpg")
control_mode_canny = 0

width, height = control_image.size

image = pipe(
    prompt, 
    control_image=[control_image_depth, control_image_canny],
    control_mode=[control_mode_depth, control_mode_canny],
    width=width,
    height=height,
    controlnet_conditioning_scale=[0.2, 0.4],
    num_inference_steps=24, 
    guidance_scale=3.5,
    generator=torch.manual_seed(42),
).images[0]

我们还支持像以前一样加载多个控制网。

from diffusers import FluxControlNetModel, FluxMultiControlNetModel

controlnet_model_union = 'Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro'
controlnet_union = FluxControlNetModel.from_pretrained(controlnet_model_union, torch_dtype=torch.bfloat16)

controlnet_model_depth = 'Shakker-Labs/FLUX.1-dev-Controlnet-Depth'
controlnet_depth = FluxControlNetModel.from_pretrained(controlnet_model_depth, torch_dtype=torch.bfloat16)

controlnet = FluxMultiControlNetModel([controlnet_union, controlnet_depth])

# set mode to None for other ControlNets
control_mode=[2, None]

资料

InstantX/FLUX.1-dev-Controlnet-Canny Shakker-Labs/FLUX.1-dev-ControlNet-Depth Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro

总结

总结文章:
InstantX 团队与 ShakkerAI 合作,推出了 FLUX.1-dev-ControlNet-Union-Pro 模型,该模型是 FLUX.1-dev 基础控制网的一个增强版集合模型。该专业版模型支持多达7种控制模式,包括边缘检测(canny)、分割图(tile)、深度图(depth)、模糊效果(blur)、姿态控制(pose)、灰度图(gray)和低质量图效果(low quality),使得图像生成更加灵活多样。
### 主要特点:
- **多控制模式**:提供7种不同的控制模式,可单独或组合使用以调整图像生成的效果。
- **附加训练**:相较于基础版,此模型经过更多步骤和数据集的训练,性能得到提升。
- **兼容性**:可与其他 ControlNets 共同使用,支持更复杂的图像生成需求。
### 使用指南:
- **模型参数**:建议使用 `controlnet_conditioning_scale` 为 0.3-0.8 以获得最佳效果。
- **代码示例**:提供了详细的 Python 代码示例,展示如何加载和使用该模型进行图像生成,支持同时控制多个特征(如深度和边缘检测)进行图像推理。
- **多控制网加载**:说明如何同时加载多个 ControlNets 以组合不同类型的控制效果。
### 资源和参考资料:
- 提供了指向其他相关 ControlNet 模型的链接,如专门的 Canny 边缘检测、Depth 深度图模型等,为开发者提供更多选择和组合可能性。
总的来说,FLUX.1-dev-ControlNet-Union-Pro 模型为 AI 图像生成领域带来了更加丰富的控制选项和更高的灵活性,适用于需要精细调整图像风格和内容的创意和应用场景。

更新时间 2024-09-05