前置:
由于处于学习初期,懂得较少以及可能会出现理解错误等情况,故而文章仅供参考学习使用,旨在分享知识,共同学习,不能作为依据,如有错误,感谢指出,文章主题分为两部分,学习部分也就理论知识,实践部分主要包括问题及解决方案。
一、Stable Diffusion:
文生图:
1.提示词分类以及书写:
Tips:
①ai对于提示词的认知是词组>句子,完整的语法结构反而更难理解
1.1内容型提示词:
人物及主体特征:
服饰穿搭 white dress
发型发色 red hair,long hair
五官特点 small eyes,big mouth
面部表情 smilling
肢体动作 stretching arms
场景特征:
室内室外 indoor/outdoor
大场景 forest,city,street
小细节 tree,bush,white flower
环境光照
白天黑夜 day/night
特定时段 morning,sunset
光环境 sunlight,bright,dark
天空 blue sky,starry sky
画幅视角
距离 close-up,distant
人物比例 full body,upper body
观察视角 from above,view of back
镜头类型 wide angle,Sony A7 IIII
1.2标准化提示词:
画质提示词:
通用高画质 best quality,ultra-detailed, masterpiece, hires, 8k 特定高分辨率类型 extremely detailed CG unity 8k wallpaper (超精细的8KUnity游戏CG),unreal engine rendered(虚幻引警渲染)
画风提示词 插画风 illustration, painting, paintbrush 二次元 anime, comic, game CG 写实系 photorealistic, realistic, photograph
2.权重与负面提示词:
①套括号() (white flower) = *1.1权重
②(white flower:1.5) 在括号内直接加:和需要的权重
③(((white flower))) 每多套一层权重就是原来的1.1倍,这里是1.331倍
④多括号{{{white flower}}} 每套一层额外*1.05倍
⑤方括号[[[white flower]]] 每套一层,额外*0.9倍
3.反向提示词:
顾名思义,反向提示词就是不需要出现在画面中的内容
4.出图参数详解:
4.1采样方法
AI进行图像生成的时候使用的某种特定算法
Euler (a)
适合插画风格
DPM 2M 和2M Karras
速度快
SDE Karras
细节更为丰富
Tips:
带++一般是改进过的算法
4.2面部修复
采用对抗算法识别人物面部并进行修复,类似美图app的智能p脸
4.3平铺/分块
用于生成可以无缝贴满整个屏幕的纹理性图片的,勾选容易出错
4.4提示词相关性
顾名思义,就是与关联词的关系度,一般安全范围在7-12,太高太低容易变形
4.5随机种子
画面关系度,以我目前使用来看,使用固定随机数种子可以保证在原有的基础上改变内容
4.6生成批次/数量
因为AI根据相同提示词生成的图片具有随机性,所以生产批次是在同一个提示词下生成不同的图片,最后可以通过对比甄选比较符合预期的图片
每批数量,就是在每个批次生成图片数量,默认是一批一个,如果多个显存可能会爆炸,这个很好理解就是并行的量更多了,但是由于显存问题,可能并不能支持这么操作,理论提高效率实际要根据性能决定。
二、AI绘画实际业务问题难点及解决思路(包含未解决项)
1.绘图技巧和报错处理:
①绘图常见报错处理
ValueError: images do not match
Time taken: 10.55s
Torch active/reserved: 4200/5126 MiB, Sys VRAM: 7450/8192 MiB (90.94%)
原因:
很多时候为了保证和原图像素一样会设置类似于宽417,高714等等尺寸,就会导致这样的报错
②图生图重绘中的canyan技巧:
关于canyan边缘监测对作图影响过大如何处理:
调低权重和引导步数,如果线条过于复杂,可以调高low Threshold 并且适当调高High Threshold
满足以上参数的前提下,重绘幅度在0.7左右,在我的测试中比较容易出满意的图。
2.AI模特换装问题:
局部重绘的时候:
全图:
①适合更换背景
仅蒙版:
①如果是全身照的情况下,在局部重绘选择仅模板会导致画面变形,比如飞起来的头发,延长的衣服等等问题。
②在涂鸦重绘模式下,就是只修改图片某一部分,,比如眼睛不和谐等等,适合修复小部分
蒙版模糊:
数值越大,边界感觉越弱,反之数值越大,边界感越模糊。太大容易产生多余肢体
局部重绘模式下不改变任务但更换背景,原模特衍生肢体或毛发或衣物的问题解决:
前置:
①局部重绘区域选择全图而不是仅蒙版,可能可以解决
②蒙版蒙住内容,选择原图能够最大程度保留非蒙版区域,填充虽然也能保持原图,但是可能延长头发等情况,不稳定,时好时坏,
原图
填充
潜空间噪声
进阶:(如何基础都设置对了还有问题可以考虑下面)
①通过修改3d openpose 比原来整体小即可,滚轮缩小就好了②降低蒙版模糊值
Tips:
AI作画具有随机性,就算上述都对,依旧可能产生问题,可以在提示词下做点文章,由于模特其实依旧生成好了,我们可以对可能产生的衍生模特做操作,比如短发或光头(防止头发衍生),内衣内裤(防止衣服裤子过长)
只需要修改宽高为8的倍数即可,例如400 600即可或者600 800 具体按照情况来定,避开错误即可
3.ai模特换脸业务(还在优化中):
原图:
效果图:
由于篇幅问题,就不过多展示了,下面说说实现步骤和注意细节
实现步骤:
1.tag标签配置:
我的都是默认配置,未做过多优化操作,比如你希望皮肤白一些,就可以正向提示词前加上,也可以选择(white face)(white face:1.2)增加权重,默认大家都有,这个很简单不多阐述。
正向tag:
best quality, ultra high res, (photorealistic:1.4),1girl,close mouth
反向tag:
(((gape))),paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans,bikini,medium breast,,Nevus, skin spots,nsfw,(((neck too long))),(((wrinkle)))
2.选择局部重绘:
通过涂鸦选择需要重绘区域,右侧圆点可拉动能够调节画笔粗细。
3.配置参数
照抄下图即可,值得注意的是宽高是最好与原图相似,生成效果会更好而且最好是8的倍数,不能417 714这种会绘图报错,迭代步数默认是20,28可以提高画面精细度,面部修复最好勾选,不容易出现面目狰狞,蒙版模糊类似于PS的锐化,看情况条件,推荐4-8是最好的,蒙版蒙住内容选择填充画面较为和谐。具体参数不做过多赘述了
4.打开3D openpose调节人物动作
①点击如图文件,选择从图片中检测,将需要修改的图像导入就会生成如下图这样的背景图和姿势了,然后在设置处,点开移动模式勾选上,然后调节骨骼与背景至差不多融合,如图2,通过鼠标滚轮能够调节远近,也就是骨骼的大小,近一点就更贴近镜头,保持和背景图差不多即可,然后点击生成。对了,不要忘记在右上角设置宽高和画布一致,例如我是600 800 那我就设置600 800即可
5.发送到controlnet
将第一个发送到0通道口,如果被占用可以发送到1 2 3等,其他关闭即可,然后点击图生图,回到绘制界面
6.在controlNet处启用
在controlNet处点击启用,否则无效,然后预处理选择无,模型选择openpose即可,下面也有一个调节宽高的,依旧和之前一样保持画布一样即可,例如我是600 800,总之涉及到宽高的都统一一个就好了,不如容易发生错乱
7.生成图片以及细节微调
完成上述步骤后,点击生成按钮即可生成图片了,如果发现有不对的地方就去做微调,比如在tag定义发型,AI绘图很难一次生成满意的图片
通过左侧手动调节位置,或者右侧输入参数都能微调,左侧容易出现畸形,修改难度较大,如果右侧有的参数还是输出较好,然后继续生成,发送到controlNet,点击一下预处理预览一下,然后继续生成,直至满意图片产出即可。
通过反复调节,最终生成了较为满意的图片,也可以根据图片进行局部重绘修改发型等等。
4.AI绘画局部优化:
1.先上图说明业务场景
ai在边缘处理有着独到的笨蛋理解,总喜欢画蛇添足,不过这也不能怪他,或许是参数和其他参考图的干扰,所以我们能做的是尽可能将我们的需求说明白,如下,希望将原图修改背景和面容,但是在边缘部分有很多不理想的衍生,我们如何将这里按预期处理呢?
原图
修改1.0
2.实现方法:
当有衍生部分,想要通过涂鸦重绘将其改变颜色,最好选用如下参数,尤其是蒙版模糊是2,太低界限感太强,太高影响过大,重绘幅度选择0.3,然后选择蒙版区域内容处理的原图模式,能够最佳还原需要效果。
具体参数如下:
3.具体实现:
①使用FastStone Capture(如果没有百度名字就能下载)取色笔对牛仔裤颜色进行取色,对衍生部分进行涂改成需要修改的颜色,然后选择重绘幅度0.3,蒙版模糊 2 蒙版区域内容处理 原图 这三个参数非常重要,然后就是通过openpose+canyan进行姿势和内容的限制(openpose和canyan默认大家都会没什么难度,b站都有教学)。
4.结果展示:
修改2.0
5.总结:
如此已经较为接近需求了,AI绘图其实并不难,我们只是使用层级的,如果有不符合需求的继续微调即可,其实在成图的步骤并没有我以上提的那么简单,出一个稍微满意的图难免花时间,AI绘图的痛点就是:调参占用10%时间 出图占用80%,10%调节测试脚本。目前也在学习阶段有更好的方法也希望能够告诉我哈。