stable diffusion controlnet前处理中的图像resize

在SD controlnet应用中,一般都要先安装controlnet_aux,并在项目代码中import相关前处理模块,如下所示。

在对control image进行前处理(比如找边缘,人体特征点)之前,往往会图像进行resize,这个resize函数定义在controlnet_autx中util.py中,无论是scribble,还是openpse或其它功能,都会调用这段resize代码。同时如果调用pipe接口时没有显示指定图像生成的宽和高,那么生成的图像size将会基于control image前处理后的宽高值。 所以这里重点讨论下controlnet前处理中的resize函数。

先上代码:

复制代码
def resize_image(input_image, resolution):
    H, W, C = input_image.shape
    H = float(H)
    W = float(W)
    k = float(resolution) / min(H, W)
    H *= k
    W *= k
    H = int(np.round(H / 64.0)) * 64
    W = int(np.round(W / 64.0)) * 64
    img = cv2.resize(input_image, (W, H), interpolation=cv2.INTER_LANCZOS4 if k > 1 else cv2.INTER_AREA)
    return img

在前处理接口会有一个参数detect_resolution,其缺省值为512。它会传给上面resize函数的resolution。它会将宽或高的较小值设成512,然后对应的高或宽按原始图像等比例缩放。 此外,还要对等比例缩放后的宽、高值进行微调确保能被64整除。 所以即使原始control image的尺寸是一些比较随意的值,但是经过前处理后的size都会被整归成能被64整除的值。前面说过,如果pipe接口没有显示指定生成图像的宽和高,那么该规整值就是最终图像的生成尺寸。

相关推荐
Shining05963 天前
AI 编译器系列(六)《Stable Diffusion 在 InfiniTensor 推理框架中的适配与工程实践》
人工智能·算法·stable diffusion·大模型·图像生成·ai编译器·infinitensor
localbob12 天前
2025.10.17 更新 AI绘画秋葉aaaki整合包 Stable Diffusion整合包v4.10 +ComfyUI整合包下载地址
ai作画·stable diffusion·comfyui·整合包·秋叶整合包
qsc90123456712 天前
AI绘画新手必看:Stable Diffusion与Midjourney的保姆级入门指南(附免费资源)
stable diffusion·aigc·midjourney·ai绘画
爱绘画的彤姐12 天前
【AI工具大盘点】AI绘画利器:Stable-Diffusion-ComfyUI保姆级教程
人工智能·ai作画·stable diffusion·aigc·comfyui·dall·e 2·ai工具
Keep_Trying_Go14 天前
基于stable diffusion图像生成的小小demo应用(pytorch)
人工智能·stable diffusion
weixin_4806416114 天前
一款全能型 AI 设计修图工具实测:椒图 AI,Nano Banana Pro 加持,电商 / 修图 / 设计一站式解决
大数据·图像处理·人工智能·ai作画·stable diffusion·aigc·midjourney
学易1 个月前
第二十节.探索新技术:如何自学SD3模型(上)(找官方资料/精读/下载/安装/3款工作流/效果测试)
人工智能·ai作画·stable diffusion·comfyui·工作流·sd3
Bachnroth1 个月前
Stable Diffusion 3.5 FP8镜像负载均衡配置建议
stable diffusion· fp8· 负载均衡
新缸中之脑1 个月前
Stable Diffusion的3个替代方案
人工智能·stable diffusion
2401_828890641 个月前
实现扩散模型 Stable Diffusion - MNIST 数据集
人工智能·python·深度学习·stable diffusion