前言
详细介绍controlnet的各个部分,相关案例,以及使用二维码作为controlnet模型的输入的stable diffusion生成的图像,使二维码转变为艺术图像一、名词解释
1-1、stable diffusion介绍
stable diffusion:是stabilityai于2022年8月22日发布的文本到图像模型。它类似于openai的dall·e 2和midjourney等其他图像生成模型,但有一个很大的不同:它是开源的,在发布后的短短几周内,围绕stable diffusion模型和相关工具的创新出现了爆炸式增长。stable diffusion在速度上的突破也意味着,模型第一次可以在消费类gpu上运行,而不是在超级计算机上。这对于stable diffusion影响力的快速增长带来了巨大意义! stable diffusion的技术细节如下:
简单来说:stable diffusion是一种深度学习算法,它使用文本作为输入来生成渲染图像。它的工作原理是一个扩散过程,在这个过程中,图像通过一系列步骤逐渐从随机噪声变成连贯图像。该模型经过训练,可以根据提供的文本提示来指导此过程,
以下是stablediffusion官方仓库:https://github.com/stability-ai/stablediffusion
1-2、controlnet介绍
1-2-1、controlnet介绍&工作原理
controlnet: controlnet是一种通过添加附加条件来控制扩散模型(例如stable diffusion)的神经网络结构。一般的使用方法是结合stable diffusion来做到精准控图。
简单工作原理:在带有controlnet的图像训练过程中,一共有2种条件会作用到生成图像上,其一是提示词(prompt),另一个就是由controlnet引入的各种自定义条件(condition)。
以下是controlnet对应模型的一个命名规则:需要注意的是是否是p,即可用于生成以及控制方法。
1-2-2、controlnet控制方法介绍
测试如下:点击中间的按钮可以预览预处理后的轮廓线,左侧是原图,右侧是预处理后的图。
测试如下:点击中间的按钮可以预览。
测试如下:点击中间的按钮可以预览。
拓展:使用线条图生成不一样风格的二次元少女,小例子, 我这里没有加提示词,使用国风模型,随机生成。
测试如下:点击中间的按钮可以预览。
测试如下:点击中间的按钮可以预览,这里我们使用faceonly去预处理。
测试如下:点击中间的按钮可以预览。
测试如下:点击中间的按钮可以预览。
1-3、案例分析
1-3-1、室内装修设计
概述:毛胚房装修。大模型直接用deliberate,如下图所示:
- 使用mlsd功能勾勒出毛胚房的直线
- 使用seg,语义分割来区分不同区域
- 提示词如下所示:
prompt:
nayuta nordic modern interior design, ray tracing, best shadow, (realistic, photorealistic:1.5), professional lighting, photon mapping, radiosity, physically-based rendering, sunlight, large window, no humans, indoors, scenery, wooden floor, smooth wall, bedroom, bed, pillow, floor lamp, couch, table, chair, curtain, carpet, potted plant, flower, vase, clock, book, white ceiling, white wall, award-winning contemporary design <lora:nordic modern interior style:0.65>,, (best quality),((masterpiece)),(highres), original, extremely detailed 8k wallpaper,(an extremely delicate and beautiful),
negative prompt
negative prompt: bad_prompt_version2-neg, negative_hand-neg, ng_deepnegative_v1,
steps: 30, sampler: euler a, cfg scale: 7, seed: 3145605567, size: 496x336, model hash: 9aba26abdf, model: deliberate_v2, denoising strength: 0.35, controlnet 0: "preprocessor: mlsd, model: control_v11p_sd15_mlsd [aca30ff0], weight: 1, starting/ending: (0, 1), resize mode: crop and resize, pixel perfect: true, control mode: balanced, preprocessor params: (512, 0.1, 0.1)", controlnet 1: "preprocessor: seg_ofade20k, model: control_v11p_sd15_seg [e1f51eb9], weight: 1, starting/ending: (0, 1), resize mode: crop and resize, pixel perfect: true, control mode: balanced, preprocessor params: (512, 64, 64)", hires upscale: 2, hires upscaler: bsrgan
效果图:
1-3-2、品牌创意海报
概述:品牌logo海报设计,模型使用rev animated,这里以抖音logo为例。
-
使用lineart勾勒出线稿,controlnet中的设置如下所示。
-
接下来需要找一个风格图片,与logo混合。
-
启用第二个controlnet,调用shuffle工具,将图片风格与logo混合。
- 提示词如下所示:
prompt:
neon lights, science fiction, cyberpunk, masterpiece, best quality, ray tracing, (best quality), ((masterpiece)), (highres), original, extremely detailed 8k wallpaper, (an extremely delicate and beautiful), incredibly_absurdres, colorful, intricate detail, artbook <lora:lowra:0.6>, <lora:filmvelvia3:0.4>,
negative prompt
lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, easynegative, animal
出图效果:第三张、第四张图为第一个controlnet单元的效果改为深度depth后的出图效果。
1-4、stable-diffusion-webui 的参数解释
- prompt: 提示词(正向)
- negative prompt: 消极的提示词(反向)
- width & height: 要生成的图片尺寸。尺寸越大,越耗性能,耗时越久。(注意,最好保持默认)
- cfg scale: ai 对描述参数(prompt)的倾向程度。值越小生成的图片越偏离你的描述,但越符合逻辑;值越大则生成的图片越符合你的描述,但可能不符合逻辑。
- sampling method: 采样方法。有很多种,但只是采样算法上有差别,没有好坏之分,选用适合的即可。(多尝试)
- sampling steps: 采样步长。太小的话采样的随机性会很高,太大的话采样的效率会很低,拒绝概率高(可以理解为没有采样到,采样的结果被舍弃了)。
- seed: 随机数种子。生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。默认-1,即随机生成。(主要是设置固定的种子,以后可以复现相同的结果)
二、生成方法
2-1、图像到图像
图像到图像:想象一下,我们可以把一个带有qr码的图片放进计算机,然后让计算机以一种稳定而有序的方式重新绘制qr码里的每个小方块。这一过程不需要任何额外的特殊指令,就像是我们把一张图放在计算机上,它会自动帮我们重新把图上的qr码绘制出来,而且这个过程会很平稳,不会出现什么混乱,这个过程并不需要使用到controlnet。
stable diffusion中的图生图介绍:
2-1-1、二维码生成
为了增加二维码的识别成功率,二维码的生成需要遵循以下准则:
- 在二维码的周围要留白
- 用黑白图案填充最基本的正方形
这里我们使用https://34qr.com/en/网站来生成二维码。
第一步:选择类型
第二步:留出空白并点击生成
第三步:下载生成的二维码
注意:直接截图个人二维码也是可以的,只不过识别通过率会降低一些。
2-1-2、选择云端平台来启动stable diffusion的web ui
web ui启动:使用云端平台方便、简洁,这里我们选择使用云端平台揽睿星舟-gpu算力平台,注册账号之后去寻找应用市场。现已上线以下功能:
具体操作步骤:
- 在我的应用里点击stable-diffusion
- 选择新建实例
- 选择web3.0,这里默认使用3090,为1.9/h,点击创建实例。
- 点击地址,即可进行体验。
2-1-3、使用stable diffusion来修饰二维码
打开网址后的界面如下:
- 第一步:选择img2img并且上传二维码,调整好相关参数。
resize mode: just resize
sampling method: dpm++2m karras
sampling step: 50
width: 768
height: 768
cfg scale: 7
denoising strength: 0.75
- 第二步:上传二维码到controlnet,调整好相关参数后选择模型(我这里选的是国风3,可以尝试其他模型),点击生成即可。
enable: yes
control type: tile
preprocessor: tile_resample
model: control_xxx_tile
control weight: 0.87
starting control step: 0.23
ending control step: 0.9
prompt:
negative prompt:
- 完整界面如下:不是每一次都可以识别到二维码的,可以进行多次尝试。
其他生成图片:
2-2、使用控制网络将文本转图像
文本转图像: 我们可以创造出带有提示的图像,就像给计算机一些关键信息让它完成绘画一样。而且我们还能够通过在图像制作过程中使用带有qr码输入的controlnet,就像是给计算机一些特殊指令,来对图像生成过程进行精细调整和干预,确保最终的图像符合我们的预期。这就像是在制作一幅画时,不仅告诉计算机要画什么,还能在每一步告诉它怎么画,从而得到更理想的结果。相比于图像到图像,文本转图像会有更好的效果。
stable diffusion中的文生图介绍:
参数:
- control weight: 权重越高,controlnet对输出的影响越大。
- start control step: controlnet开始生效时生成进程的百分比。
- end control step: controlnet停止生效时生成进程的百分比。
2-2-1、二维码生成
推荐使用qr toolkit来生成二维码,网站界面如下:
参数介绍:整体的一个构造思想——将二维码和你要绘制的图片融合在一起,使得整体看起来不违和,可以多次尝试。
- 文本框:填写你想制作成二维码的链接或者是文字。
- error correction: 容错率,数值越高,抗损毁能力越强,在二维码部分被损害的情况下也可以识别,这里建议选择最高。
- boost ecc: 加强容错率,直接选。
- mask patten: 二维码样式,可以去尝试选择一个分布均匀的,这样与图片融合会更加自然。
- markers: 二维码内部的一些样式,可以多去尝试,在能识别的情况下,尽可能让二维码变得均匀。
- margin: 空白,在二维码边缘添加噪声,让二维码形式弱化。
- transform:旋转,以x、y等方向旋转二维码。
2-2-2、安装插件——after detailer
插件地址:https://github.com/bing-su/adetailer
安装方式:
- 打开webui
- 打开 扩展栏-extensions
- 打开 install from url栏
- 输入git地址并点击install,重新启动ui即可看到。
- 参数设置如下图所示:点击启用,选择模型,调整参数,其他不变
2-2-3、安装qr code monster 模型
步骤:
- 打开https://huggingface.co/monster-labs/control_v1p_sd15_qrcode_monster,我们需要下载的是一个模型文件和一个配置文件
- 下载后将模型和配置文件放到controlnet->models文件夹内。(模型文件和配置文件缺一不可!)
- 安装好后重启ui可以在controlnet界面选择模型。
- 在controlnet界面,启用该插件,预处理preprocessor设置为none,即不进行预处理,模型设置为刚下载的模型,开始控制设置为0-0.1,终止控制设置为0.8-1,可以之后自行调参,控制模式设置为平衡,resize mode设置为 resize and fill。
2-2-4、模型参数设置
模型选择:我这里选择国风3,
步数:50
采样器:dpm++ 2m sde karras
cfg:7
尺寸:512*512 px
hire.fix:是否开启高清修复,选择。
prompts:
negative prompts:
prompts:
negative prompts:
参数界面:
2-2-5、出图
三、附录
3-1、controlnet模型
3-1-1、controlnet qr pattern (qr codes)
controlnet qr pattern (qr codes)链接:https://civitai.com/models/90940/controlnet-qr-pattern-qr-codes
测试的可以识别到的最低参数权重:
3-1-2、monster-labs/control_v1p_sd15_qrcode_monster
monster-labs/control_v1p_sd15_qrcode_monster链接:https://huggingface.co/monster-labs/control_v1p_sd15_qrcode_monster
3-1-2、ioclab/ioc-controlnet
ioclab/ioc-controlnet链接:https://huggingface.co/ioclab/ioc-controlnet/tree/main/models
特别鸣谢以下参考文章的作者:
stable diffusion qr code 101.
stable diffusion knowledge hub.
the ultimate stable diffusion lora guide (downloading, usage, training).
controlnet-github.
how to make a qr code with stable diffusion.
ai - ai绘画的精准控图(controlnet).
aigc—— stablediffusion中的controlnet.
controlnet v1.1: a complete guide
how does stable diffusion work?
stable diffusion prompt 运用技巧
prompt 工具網站
stylistic qr code with stable diffusion
stable diffusion丨模型管理插件civitai helper
保姆级教程!如何用ai快速生成超好看的艺术二维码?
qr toolkit 插件 git 网址
after detailer 插件
二维码融合技术2.0 简单实用ai教程 没想到一周不到就要把教程从头到尾推翻升级
总结
越来越有意思了😍
发表评论