当前位置: 首页 > news >正文

给予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 torchfrom diffusers.utils import load_imagefrom diffusers import FluxControlNetPipeline, FluxControlNetModelbase_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.sizeprompt = "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_imagebase_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

六、核心技术汇总

在这里插入图片描述

http://www.xdnf.cn/news/12871.html

相关文章:

  • Redis——网络模型之IO讲解
  • 大模型微服务架构模块实现方案,基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码
  • Android——动画
  • IPTV电视信息发布直播点播系统:营造数字化个性化融合化多媒体IPTV电视信息发布平台
  • 预训练与微调:大模型如何“学习知识”?
  • Python 网络爬虫基础理论与实战指南
  • 【每日八股】复习计算机网络 Day1:TCP 的头部结构 + TCP 确保可靠传输 + TCP 的三次握手
  • 【漫话机器学习系列】209.均值的标准误差(Standard Error of the Mean)
  • 完整的 .NET 6 分布式定时任务实现(Hangfire + Redis 分布式锁)
  • 故障诊断常用算法
  • 2025妈妈杯数学建模D题完整分析论文
  • Kubernetes Pod 调度策略:从基础到进阶
  • java面向对象09:方法的重写
  • PyTorch入门------卷积神经网络
  • TCP/IP和UDP协议的发展历程
  • POSIX 信号量(Semaphore)
  • MacOS怎么显示隐藏文件
  • Vue3 实战:打造多功能旅游攻略选项卡页面
  • 记录学习的第二十九天
  • unity TEngine学习记录3
  • 精准计量+AI管控——安科瑞助力高校水电管理数字化转型
  • C#插件与可扩展性
  • 闲来无事,用HTML+CSS+JS打造一个84键机械键盘模拟器
  • 优化自旋锁的实现
  • pdfjs库使用3
  • Linux内核机制——内存管理
  • C++ 迭代器失效详解:如何避免 vector 操作中的陷阱
  • 数控铣床自动上下料机械手控制装置设计
  • IDEA 2025.1更新-AI助手试用和第三方模型集成方案
  • C++类和对象上