Stable Diffusion实操示例

目录


一、负向提示词

解决问题:生成的图片存在瑕疵,比如多只眼睛、多只手指等情况。通过embeddings可以避免一些常用的不好结果。

方法:从https://civitai.com/?utm_source=nettsz.com 中下载负向提示词的embeddings模型,

EasyNegativeV2, easynegative, badhandv4 都是针对二次元的负向模型,

NG_DeepNegative_V1_75T是针对真人系的负向模型,

下载这些embeddings模型后,放到sd根目录/embeddings下,如下图所示:

 webui上使用的方式:

二、高清修复(Hi-Res Fix)

解决问题:真实系模型产出的图片局部比较模糊,没有真人质感,比如下图中手部比较模糊。

原因:分辨率设置的太低,AI没有足够的操作空间去体现细节。

高清修复操作:

选择重绘幅度不大于0.5,避免画面结构发生的变化。

参数选择参考:

对比效果:(左为修复前,右为修复后)

  

 可以看到,右边手背更加的细腻。

最终版参数:

prompt:1girl, detailed background filled with (many:1.1) (colorful:1.1) (flowers), (best best quality), (photorealistic:1.1), (resolution:1.1), (sharpness:1.1), (cinematic lighting), depth of field, Canan EOS R6, 135mm, 1/1250s, f/2.8, ISO 400, white cloth (lace trim:1.3), close-up, portrait, SFW, hands up, 

negative prompt:EasyNegativeV2, easynegative, badhandv4, NG_DeepNegative_V1_75T, child, lowres, worst quality, low quality, blurry,  fake, 3d, anime, bad anatomy,  disabled body, disgusting, ugly, text, watermark, four fingers, wrong fingers,  lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, artifacts, signature, watermark, username, blurry, missing arms, long neck, humpbacked, bad feet, nsfw, malformed limbs, poorly drawn hands, mutilated, more than 2 thighs, poorly drawn, more than 2 nipples, unclear eyes, missing legs, deformed, fused fingers, mutated hand and finger, bad anatomy disfigured malformed mutated, bad proportions, malformed mutated, three legs, poorly drawn face, bad hands, bad feet, cloned face, disfigured, poorly drawn, worstquality, mutated hands, bad anatomy, morbid, extra limbs, too many fingers, mutation, malformed, multiple breasts, bad face, extra legs, mutated, ugly

随机数种子:3742559524

模型: majicmixRealistic_v4

三、局部重绘inPaint

解决问题:一副图片99%满意,无法只通过提示词修复不满意的1%。比如手指有6根,再怎么修改提示词可能都无法修复该问题。

1、“让眼睛闭起来”的特效

首先,通过提示词生成一张图片,然后点击”发送到重绘”

然后,眼睛位置进行重绘,prompt再加上”(closed eyes)”,点击生成后原图中只让眼睛闭起来了,重绘区域之外的部分均未发生变化。

2、“将花朵替换为蝴蝶”的特效

首先,将某一个花朵增加蒙版mask,也就是上一个例子中的重绘区域。

然后,选择“重绘蒙版内容”,prompt只有”butterfly”,就会实现相应的效果,如下图所示:

ps:如果butterfly加在原来的prompt后面,很难得到蝴蝶的重绘图案。

3、更换背景

首先,将一整个人全部增加蒙版mask

然后,选择“重绘非蒙版内容”,prompt只有”seaside, sunlight,”,就会实现相应的效果,如下图所示:

 四、涂鸦重绘

1、与局部重绘的区别

局部重绘是增加蒙版mask,然后通过提示词对蒙版区域(或非蒙版区域)进行重绘。

而涂鸦重绘,可以通过颜色板增加图片的内容,然后SD通过颜色和提示词进行重绘。

上图为涂鸦重绘才有的颜色板。

2、修复手指

如上图所示,手指部分存在很大的问题。涂鸦重绘操作如下:

 首先,通过滴管抽取墙壁颜色,然后把手抹掉

然后,再画5根手指,输入prompt:(5fingers, detailed hand, high five:1.2)。

虽然还存在瑕疵,但是现在可以看到5根手指了。

五、ControlNet

1、OpenPose模型变换姿态

作用:直接掌握了人物体态呈现的“命脉”

步骤:

(1)文生图或者图生图,得到一张初始的图片,然后固定随机值

(2)启用ControlNet,控制类型选择“OpenPose”,点击预处理器旁边的爆炸按钮可以看到姿态的预览结果,如下图所示:

 点击生成后就得到另一种姿态的图片:

2、轮廓生图

作用:通过canny等算法获取一个图片的大致轮廓,然后根据这个轮廓生图。

步骤:

(1)ControlNet中选择一张图片,控制类型选择“SoftEdge”,可以得到预览结果如下:

我们可以下载预览的轮廓图进行二次编辑,得到更满意的图片。新的线条图需要在画图工具中进行处理,位置从一张图的正中间放到下面的1/2中。为后续的布局重绘功能做准备。

 

(2)通过图生图功能,就可以将这辆车放到一个维修店里面。

prompt:(highly detailed:1.2), ultra-detailed, best quality, (photorealistic:1.1), (resolution:1.1), (sharpness:1.1), (cinematic lighting), depth of field, Canan EOS R6, 135mm, 1/1250s, f/2.8, ISO 400, realistic, indoors,
tesla model y,

negative prompt:NG_DeepNegative_V1_75T, blurry,mutation poorly drawn, wort quality , poorly drawn, bad proportions, worstquality, poorly drawn,

六、SD upscale

解决方案:高清修复一些瑕疵,比如下图所示生成的汽车车头和车尾都有问题,线条不流畅

步骤:

(1)图生图功能中,加载要处理的图片,prompt保留之前的信息,随机数种子也保持不变

prompt:(highly detailed:1.2), ultra-detailed, best quality, (photorealistic:1.1), (resolution:1.1), (sharpness:1.1), (cinematic lighting), depth of field, Canan EOS R6, 135mm, 1/1250s, f/2.8, ISO 400, realistic, indoors, tesla model y, 

negative prompt:NG_DeepNegative_V1_75T, blurry,mutation poorly drawn, wort quality , poorly drawn, bad proportions, worstquality, poorly drawn,

重绘幅度调整到0.3以下(比如0.25),因为要尽量保留已有的信息,只对小部分有问题的进行修复。

(2)ControlNet再加载一次上面的图片,点击”send dimension to  stable diffusion”功能,点击后重绘尺寸中的宽度、高度的数据会进行重置。

 重置完之后,再删除ControlNet中的图片,控制类型选择”Tile”。我们只需要它的分辨率即可,不需要使用对应的图片。如果不删除图片,会导致如下的效果:

删除后配置如下图所示:

(3)使用SD upscale功能

参数选择如下:选择R-ESRGAN 4x+算法,第一次使用会自动下载该模型

 选择分块重叠像素宽度为64,需要在图生图功能中对应的宽度、高度都加上64,变为832=768+64:

 最后,生成的图片如下: 

图片由原先的721K变为2.3M,车头、车尾的一些瑕疵改善了很多。

七、SadTalker语音+图片生成虚拟数字人

1、安装

(1)下载SadTalker

github地址:GitHub – OpenTalker/SadTalker: [CVPR 2023] SadTalker:Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation

代码放在: sd根目录/extensions/下

(2)下载模型

有脚本:scripts/download_models.sh,可以直接bash scripts/download_models.sh

如果在服务器上执行太慢,可以单独下载每个文件。

sadTalker4个文件下载后放在 sd根目录/extensions/SadTalker/checkpoints/下

gfpgan4个文件下载后放在 sd根目录//models/GFPGAN/下

2、SadTalker使用

可参考:stable diffusion 一个Ai插件让女神成为话痨,美照秒变虚拟主播!一步到位很简单_哔哩哔哩_bilibili

(1)生成wav语音

使用百度的文字转语音技术:百度智能云-登录https://console.bce.baidu.com/ai/?fromai=1#/ai/speech/overview/index

(2)SadTalker生成视频

 日志信息如下:

 

八、通过EbSynth生成动画

1、思路

使用Stable Diffusion + EbSynth + ControlNet 3个工具组合完成。

2、EbSynth介绍

(1)下载

从EbSynth – Transform Video by Painting Over a Single Frame官网下载,貌似没法直接下载linux版本

(2)原理

首先,准备一个原始视频

然后,使用AI工具自动将原始视频切割成每帧图片

接下来,使用AI工具自动识别关键图片,关键图片是指动作变化最明显的图片。AI会自动复制这些关键图片,然后按照指定的风格和要求,AI将这些关键图片制作成动画图片。

接着,使用EbSynth自动补齐所有关键图片之间的动画。它是基于前后两个关键图片之间的差异来生成动画,所以生成的动画没有任何闪烁的问题。

最后,AI将所有生成的图片组合成一个完整的视频。

3、环境安装步骤

(1)下载背景透明工具transparent-background

Pip install transparent-background

该代码执行还需要依赖模型文件,如果预先现在则在执行时会从google-driver中下载模型,如果网络不行则会下载失败。

模型下载地址:https://drive.google.com/uc?id=13oBl5MTVcWER3YU4fSxW3ATlVfueFQPY

(2)安装ebsynth的SD插件

Github地址为:https://github.com/s9roll7/ebsynth_utility

修改ebsynth_utility/stage1.py文件(增加ckpt的信息):

将该插件安装到 /sd根目录/extensions/下面,重启SD后可参考如下图:

(3)SD的设置中修改ControlNet参数

 4、EbSynth生成动画步骤

(1)stage1:从原始视频生成静态图像的序列帧

在linux中创建一个目录,然后指定视频地址,如下图所示:

 

点击”生成”,生成完毕后SD界面如下图所示:

在linux服务器指定目录的video_frame下可看到各序列帧:

(2)stage2:从静态序列帧中抽取关键帧

直接执行“生成”,对应的日志信息如下:

选取的关键帧显示如下:

(3)stage3:利用图生图的功能,将关键帧转换为想要的风格。

执行stage3后,执行结果如下:

提示需要自己去“图生图”功能中进行操作。

点击ControlNet

在ControlNet Unit0中,勾选“启用”、“允许预览”、“完美像素模式”,点击SoftEdge。

在ControlNet Unit1中,勾选“启用”、“允许预览”、“完美像素模式”,点击Lineart。

脚本选择”ebsynth utility”,填写”Project directory”。

(4)stage4:upscale操作

EbSynth中自带的upscale功能无法使用,需要自己在”图生图”功能中进行批量处理。

批量处理的配置项如下:

ControlNet+upscale的配置项如下:

(5)stage5:生成ebs文件

(6)stage6:通过ebsynth生成图片集

ebsynth是exe的文件,无法在linux服务器上执行运行,所以需要切换到windows上执行。

将目录的文件全部copy到windows电脑上,如果img2img_upscale_key中的分辨率过大,需要resize缩小一下,否则会报错。

Run all后,将output文件再放回到linux服务器上。

(7)stage7:合成视频

使用过程中查看sd的日志情况,假如ffmpeg无法正常使用问题

参考:CentOS环境安装ffmpeg_centos安装ffmpeg_汪小敏同学的博客-CSDN博客

和centos 安装 ffmpeg 并添加 libx264库 libfdk-aac库 openssl库_centos 安装x264下没有lib_眯喱咕噜的博客-CSDN博客 进行解决。

Ffmpeg的编译命令:

(1)./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264 --enable-shared --disable-x86asm --enable-pic

(2)make && make install

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月20日
下一篇 2023年12月20日

相关推荐