音视频开发之旅(68)-SD文生图目录 效果展示 sd使用流程:选大模型、写关键词和设置参数 SDWebui文生图调用流 -少年郎网站优化团队
稀土掘金 稀土掘金
音视频开发之旅
907 阅读5分钟

目录

  1. 效果展示

  2. sd使用流程:选大模型、写关键词和设置参数

  3. SDWebui文生图调用流程

  4. StableDiffusion原理浅析

  5. 参考资料

一、效果显示

1girl,smile,highres,wallpaper,in summer,landscape

1girl,smile,highres,wallpaper,in summer,city,street

二、sd使用流程:选大模型、写关键词和设置参数

sdwebui的界面如上所示,可以分为模型(基础模型+lora模型)、提示词(正向提示词和反向提示词)以及参数设置(迭代步数、采样方法、分辨率等)

2.1 大模型分类

可以按照图片类型分为 二次元、2.5D和写实几个大类 常用模型如下所示

  • 二次元:Anything系列、Counterfeit系列、Cetus-Mix系列、Meina-Mix系列、AW-Painting
  • 2.5D:国风系列、Rev-Animated系列、Lyriel系列、BreakDomainRealistic系列
  • 写实:ChilloutMix系列、RealisticVision系列、Deliberate系列、Majic系列

LoRA,Low-Rank Adaptation of Large Language Models,冻结预训练好的模型权重参数,然后在每个Transformer(Transforme就是GPT的那个T)块里注入可训练的层,可以理解为大模型的一个小模型。

LoRA模型可以应用于各种不同的领域和用途,比如:角色lora、风格lora和服装lora等

C站civitai.com/上提供了各种类型的大模型和lora模型,供下载使用。

2.2 提示词

提示词分为正向提示词和反向提示词。

其中正向提示词可以分为 主题、场景风格、人物、情绪、衣着、质量

1girl,smile,highres,wallpaper,in summer,city,street,landscape,<lora:GuoFeng3.2_Lora:1>,

通用反向提示词

EasyNegative, ng_deepnegative_v1_75t, badhandv4,(worst quality:2), (low quality:2), (normal quality:2), lowres, ((monochrome)), ((grayscale)), bad anatomy,DeepNegative, skin spots, acnes, skin blemishes,(fat:1.2),facing away, looking away,tilted head, lowres,bad anatomy,bad hands, missing fingers,extra digit, fewer digits,bad feet,poorly drawn hands,poorly drawn face,mutation,deformed,extra fingers,extra limbs,extra arms,extra legs,malformed limbs,fused fingers,too many fingers,long neck,cross-eyed,mutated hands,polar lowres,bad body,bad proportions,gross proportions,missing arms,missing legs,extra digit, extra arms, extra leg, extra foot,teethcroppe,signature, watermark, username,blurry,cropped,jpeg artifacts,text,error

webui中可以安装sd-webui-prompt-all-in-one github.com/Physton/sd-… 插件,快速选定各种类别的提示词

分辨率:设定输出图片的宽高

单批次数量,即以此生成几张图片;总批次,总共串行执行多次批次,通过修改总批次数量来控制生成多少张图片,尽量不要使用单批生成多张图片,除非显存很大。

提示词引导系数:这个是一个比较有意思的参数,通过随机种子生成一张高斯噪声图片,通过迭代步数不断的进行去噪,而提示词引导系数直接决定了生成的图片受prompt影响的程度,一般设置为6-7.

当然还有其他重要惨参数和插件,比如controlnet、animatediff、easyphoto和adetailer等,后续用到时再进一步探讨。

三、SDWebui文生图调用流程

点击webui通过gradio和fastapi来实现通过点击生成按钮调用api函数进行图片的生成

3.1 初始化 initialize.initialize

# 初始化LatentDiffusion
# stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py  
LatentDiffusion.__init__

#初始化CLIP 文本编码器
#stable-diffusion-stability-ai/ldm/modules/encoders/modules.py
FrozenCLIPEmbedder.__init__

3.2 入口方法:modules.api.api.Api.text2imgapi

#如果使用了第三方的插件,eg:easyphoto等,通过init_script_args获取到对应的插件
script_args = self.init_script_args(txt2imgreq, self.default_script_arg_txt2img, selectable_scripts, selectable_script_idx, script_runner)
#如果插件不为空,邹插件处理流程,否则直接process,我们直接看process_images的流程
if selectable_scripts is not None:
    processed = scripts.scripts_txt2img.run(p, *p.script_args) # Need to pass args as list here
else:
    processed = process_images(p)

3.3 process_images 加载sd基础模型和vae模型

for k, v in p.override_settings.items():
    opts.set(k, v, is_api=True, run_callbacks=False)
    
    #加载sd大模型
    if k == 'sd_model_checkpoint':
        sd_models.reload_model_weights()
    #加载vae模型
    if k == 'sd_vae':
        sd_vae.reload_vae_weights()

#继续调用process生成图片
res = process_images_inner(p)

3.4 process_images_inner  

#获得编码后的prompt
p.prompts = p.all_prompts[n * p.batch_size:(n + 1) * p.batch_size]
p.negative_prompts = p.all_negative_prompts[n * p.batch_size:(n + 1) * p.batch_size]
p.seeds = p.all_seeds[n * p.batch_size:(n + 1) * p.batch_size]
p.subseeds = p.all_subseeds[n * p.batch_size:(n + 1) * p.batch_size]

#采样
samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts)

#解码
x_samples_ddim = decode_latent_batch(p.sd_model, samples_ddim, target_device=devices.cpu, check_for_nans=True)

#保存生成的图片
images.save_image(image, p.outpath_samples, "", p.seeds[i], p.prompts[i], opts.samples_format, info=infotext(i), p=p)

3.5 VAE解码

stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py#decode_first_stage

self.first_stage_model.decode(z)
#最终调用到VAEDecoder模型进行解码
stable-diffusion-stability-ai/ldm/modules/diffusionmodules/model.py#Decoder.forward

整体流程如下:

图片来自: AIGC专栏2——Stable Diffusion结构解析-以文本生成图像

四、StableDiffusion原理浅析

Stable Diffusion基于扩散模型,使用LAION-5B数据集进行预训练。在推理时通过不断的去噪,生成目标图片。

图片来自:Denoising Diffusion Probabilistic Models

Stable Diffusion有三部分组成:

1. CLIP Embedder 文本编码器

2. Diffusion扩散模型(U-Net网络)

3. Variational Autoencoder(VAE)变分自编码器

在训练的时候不断的对原图片添加正态分布噪声,得到latent space噪声。

在推理时随机生成一个latent space空间的初始噪声,

用户输入的prompt通过FrozenCLIPEmbedder获得Text Embedding,Timestips获取Timesteps Embedding,一起送给Diffusion模型;

Diffusion模型采用Unet网络,UNetModel由ResBlock和Transformer模块组成,ResBlock用于结合时间步Timesteps Embedding,Transformer模块用于结合文本Text Embedding;

经过N步骤采样去噪生成latent space的Gaussian noise,再送给VAE解码模块解码出图像

图片来自:Stable Diffusion 原理详解

图片来自:AIGC专栏2——Stable Diffusion结构解析

五、参考资料

  1. High-Resolution Image Synthesis with Latent Diffusion Models arxiv.org/abs/2112.10…
  2. Denoising Diffusion Probabilistic Models arxiv.org/pdf/2006.11…
  3. AIGC专栏2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例 blog.csdn.net/weixin_4479…
  4. 从零开始学AI绘画,万字Stable Diffusion终极教程!zhuanlan.zhihu.com/p/659211251
  5. 万字总结:Stable Diffusion_Prompt详细指南,成为SD提示词专家,看这一篇就够了 blog.csdn.net/m0_71745258…
  6. 有哪些的⌈相见恨晚⌋的人气模型 zhuanlan.zhihu.com/p/636330920
  7. 扩散模型 blog.csdn.net/yujianmin19…
  8. Stable Diffusion 原理详解 www.youtube.com/watch?v=I62…
  9. 李宏毅老师【生成式AI】Stable Diffusion、DALL-E、Imagen 背后共同的套路 www.bilibili.com/video/BV18a…

相关内容推荐

测试包含关键词四藏一关键词html中关键词关键词微盘mp3apec七个关键词关键词url标记信用卡 关键词任意关键词卡首屏立冬关键词吉他谱简单音响关键词淘宝关键词查询网站批量查关键词排名移动红高粱关键词java 关键词过滤 高效表结论的关键词爱站网站关键词代码中的关键词淘宝t恤关键词2017年中国关键词关键词 网盘2014两会关键词关键词地区排名查询关键词提取api新乡关键词推广公司关键词包年业务今日头条 关键词生成关键词 奥迪豆瓣2014关键词红酒网购关键词域名 关键词福利微博关键词淘宝关键词哪里看淘宝怎么把关键词做到首页g站 关键词直通车关键词排名简历的四个关键词无线端进店关键词关键词尤克里里diy淘宝 福利关键词金花关键词工具官网关键词标点谁动了我的奶酪关键词关键词猜人物A片关键词牙合之关键词关键词怎样设置描述自己的关键词关键词版权e站各种关键词如何发布关键词产品关键词查询相关关键词英语作文中国关键词解析关键词建议工具dedecms文章关键词思修的关键词雷子思维导图关键词输入搜索关键词钢琴谱关键词提取 工具赚钱买衣服关键词关键词统计软件电动三轮车关键词直通车关键词默认出价天猫热门关键词关键词 行政360搜索关键词lol关键词 解释关键词诈骗案去哪里买衣服关键词facebook关键词搜索优化排名推广关键词怎么找宝贝关键词淘宝搜索关键词在哪设置刘传健关键词潮州关键词优化SEO优化关键词尤克里白鹿原关键词关键词大熊猫作文2016年网络营销关键词膨体纱在哪里买衣服关键词下拉框关键词抓取器关键词展现指数淘宝宝贝关键词怎么抓淘宝女装关键词排名怎么搜索两个关键词外贸找关键词的方法淘宝怎么做好关键词百家关键词百度关键词广告创意优化关键词是什么道家 关键词谷歌关键词规划词什么长尾关键词关键词排名优化多少钱织梦关键词修改湖北排名关键词优化直通车 无线关键词关键词采集工具收纳淘宝关键词分词主题词和关键词外贸找关键词的方法立冬关键词简谱流行歌曲关键词猜词财务的关键词淘宝关键词点击软件托福阅读关键词垃圾短信 关键词穿越搜索关键词淘宝宝贝没有关键词中考政治关键词关键词优和良护肤品有哪些关键词男鞋直通车关键词美国亚马逊关键词工具关键词优化营销推广关键词质量度的影响因素心理健康论文的关键词关键词手机端快速排名公司网站关键词排名优化公司淘宝 排除关键词视频搜索关键词tf idf 关键词google 关键词工具四级怎么抓关键词淘宝关键词怎么修改什么是关键词互点关键词 健康六中全会的关键词搜索产品的关键词关键词 英文翻译关键词怎么算转化率百度添加否定关键词搜股票群的关键词百度推广 关键词 创意小灰灰淘宝关键词排名网站设置的关键词关键词检测网页阿里巴巴关键词排名查询个人简历关键词怎么写春节 关键词清远关键词优化淘宝直通车关键词下载2017创业关键词高难度关键词淘宝让关键词排名营销的16个关键词 txt下载关键词查询工具简笔画心血管关键词p4p 关键词绘画关键词中国文化 关键词如何确定软文关键词宁波关键词seo优化关键词林俊杰演唱会如何选择长尾关键词百度推广 关键词 创意关键词一般几个字刷360关键词排名行业分类关键词百度怎么找关键词关键词批量排名查询人生 关键词qq关键词设置关键词竞争度查询淘宝怎么找长尾关键词后汉书关键词红茶的关键词php微信关键词回复吧内搜索衣服关键词天猫热门关键词人生观关键词百度关键词包年淘宝关键词排序请输入关键词钢琴谱阿里巴巴关键词提取工具南通关键词排名店铺成交关键词阿里云搜索关键词形容自己 关键词汤不热 关键词中国关键词800作文360网站关键词查询天猫十年关键词天猫滥用关键词常用关键词有哪些关于银行的关键词关键词歌词截图宜搜搜索关键词amazon 关键词优化关键词骗局 央视最新关键词诈骗淘宝 福利关键词前程无忧简历关键词关键词的歌词含义输入关键词查询关键词搜索毛孔淘口令关键词生成器目标关键词 长尾关键词立冬关键词吉他调音非法关键词过滤

合作伙伴

少年郎网站优化团队

www.desai360.com
seo.urkeji.com
niu.seo5951.com
www.bbswimming.cn
www.haowangjiao.cc
www.tjwyj.com
top1.urkeji.com
www.maijichuang.cn
www.te3.com.cn
seo.xtcwl.com
www.imcrd.com
www.te3.com.cn
seo.urkeji.com
www.lpjfm.cn
www.28j.com.cn
zz.urkeji.com
www.lyhbj.cn
dw.urkeji.com
www.hz.bj.cn
jl.urkeji.com