给予FLUX更好的控制:FLUX.1-dev-ControlNet-Union-Pro-2.0

Shakker Labs FLUX.1-dev-ControlNet-Union-Pro-2.0

一、模型概述

Shakker Labs发布的FLUX.1-dev-ControlNet-Union-Pro-2.0是一个统一的ControlNet模型,专为FLUX.1-dev模型设计。该模型在前一版本基础上进行了多项改进,包括移除模式嵌入以减小模型尺寸,同时在Canny边缘检测和姿态控制方面实现了更好的控制效果和美学表现。此外,该模型新增了对软边缘的支持,但移除了对平铺(tile)模式的支持。

二、模型架构与训练

该ControlNet模型由6个双块组成,没有单块结构。训练过程从零开始,共进行了300,000步训练,使用了包含2000万张高质量通用和人物图像的数据集。训练参数包括:

  • 分辨率:512x512

  • 数据类型:BFloat16

  • 批量大小:128

  • 学习率:2e-5

  • 引导参数:从[1,7]均匀采样

  • 文本丢弃比率:0.20

三、支持的控制模式

该模型支持多种控制模式,包括:

  1. Canny边缘检测:使用cv2.Canny实现,推荐控制条件缩放比例为0.7,控制引导结束点为0.8

  2. 软边缘:使用AnylineDetector实现,推荐控制条件缩放比例为0.7,控制引导结束点为0.8

  3. 深度:使用depth-anything实现,推荐控制条件缩放比例为0.8,控制引导结束点为0.8

  4. 姿态:使用DWPose实现,推荐控制条件缩放比例为0.9,控制引导结束点为0.65

  5. 灰度:使用cv2.cvtColor实现,推荐控制条件缩放比例为0.9,控制引导结束点为0.8

四、使用示例

论文提供了两种使用示例:单条件推理和多条件推理。

单条件推理示例

    import torch
    from diffusers.utils import load_image
    from diffusers import FluxControlNetPipeline, FluxControlNetModel
    
    base_model = 'black-forest-labs/FLUX.1-dev'
    controlnet_model_union = 'Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro-2.0'
    
    controlnet = FluxControlNetModel.from_pretrained(controlnet_model_union, torch_dtype=torch.float16)
    pipe = FluxControlNetPipeline.from_pretrained(base_model, controlnet=controlnet, torch_dtype=torch.float16)
    pipe.to("cuda")
    
    control_image = load_image("./conds/canny.png")
    width, height = control_image.size
    prompt = "A young girl stands gracefully at the edge of a serene beach, her long, flowing"
    
    image = pipe(
        prompt,
        control_image=control_image,
        width=width,
        height=height,
        controlnet_conditioning_scale=0.7,
        control_guidance_end=0.8,
        num_inference_steps=30,
        guidance_scale=3.5,
        generator=torch.Generator(device="cuda").manual_seed(42),
    ).images[0]

多条件推理示例

import torch
from diffusers.utils import load_image

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

controlnet = FluxControlNetModel.from_pretrained(controlnet_model_union, torch_dtype=torch.float16)
pipe = FluxControlNetPipeline.from_pretrained(base_model, controlnet=[controlnet], torch_dtype=torch.float16)
pipe.to("cuda")

control_image = load_image("./conds/canny.png")
width, height = control_image.size
prompt = "A young girl stands gracefully at the edge of a serene beach, her long, flowing"

image = pipe(
    prompt,
    control_image=[control_image, control_image],
    width=width,
    height=height,
    controlnet_conditioning_scale=[0.35, 0.35],
    control_guidance_end=[0.8, 0.8],
    num_inference_steps=30,
    guidance_scale=3.5,
    generator=torch.Generator(device="cuda").manual_seed(42),
).images[0]

五、相关资源与致谢

文章提到该模型由Shakker Labs开发,原始想法受到xinsir/controlnet-union-sdxl-1.0的启发。所有版权均保留。

此外,论文还提到了其他相关模型资源,包括:

  • InstantX/FLUX.1-dev-IP-Adapter

  • InstantX/FLUX.1-dev-Controlnet-Canny

  • Shakker-Labs/FLUX.1-dev-ControlNet-Depth

  • Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro

六、核心技术汇总

在这里插入图片描述

### 关于 FLUX1-dev-fp8 的技术文档及相关信息 FLUX1-dev-fp8 是一款基于 FP8 浮点精度优化的深度学习模型,在特定应用场景下提供了显著的性能提升[^1]。该模型不仅继承了 FLUX 系列产品的优势特性,还针对开发者的需求进行了多项改进。 #### 社区资源与支持 对于寻求更多关于 FLUX1-dev-fp8 技术细节的支持和技术交流机会而言,活跃的技术社区是一个宝贵的资源库。InstantX/FLUX.1-dev-Controlnet-Union 和 Shakker-Labs 维护的相关 GitHub 仓库中包含了大量由用户贡献的内容以及官方发布的资料,涵盖了从基础入门到高级应用的各种教程和案例分享[^3]。 #### 官方文档的重要性 考虑到不同版本间可能存在功能性差异及随时间推移而产生的操作流程变更,查阅最新版官方文档显得尤为重要。这不仅能确保使用者掌握最前沿的功能特性,还能有效规避因过时信息而导致的操作失误[^4]。 ```python import requests def fetch_latest_docs(model_name="FLUX1-dev-fp8"): url = f"https://docs.example.com/{model_name}/latest" response = requests.get(url) if response.status_code == 200: return response.text else: raise Exception(f"Failed to retrieve documentation for {model_name}") print(fetch_latest_docs()) ``` 此段 Python 代码展示了如何通过 API 获取指定型号(此处为 FLUX1-dev-fp8)最新的在线文档内容。请注意替换 `https://docs.example.com` 为你所关注的具体项目站点地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值