前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >音视频开发之旅(68)-SD文生图

音视频开发之旅(68)-SD文生图

原创
作者头像
音视频开发之旅
发布于 2024-02-24 06:25:11
发布于 2024-02-24 06:25:11
3180
举报

目录

效果展示

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

SDWebui文生图调用流程

StableDiffusion原理浅析

参考资料

一、效果显示

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 提示词

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

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

eg:上面生成的图片提示词如下

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结构解析

五、参考资料

High-Resolution Image Synthesis with Latent Diffusion Models arxiv.org/abs/2112.10…

Denoising Diffusion Probabilistic Models arxiv.org/pdf/2006.11…

AIGC专栏2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例 blog.csdn.net/weixin_4479…

从零开始学AI绘画,万字Stable Diffusion终极教程!zhuanlan.zhihu.com/p/659211251

万字总结:Stable Diffusion_Prompt详细指南,成为SD提示词专家,看这一篇就够了 blog.csdn.net/m0_71745258…

有哪些的⌈相见恨晚⌋的人气模型 zhuanlan.zhihu.com/p/636330920

扩散模型 blog.csdn.net/yujianmin19…

Stable Diffusion 原理详解 www.youtube.com/watch?v=I62…

李宏毅老师【生成式AI】Stable Diffusion、DALL-E、Imagen 背后共同的套路 www.bilibili.com/video/BV18a…

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Stable-Diffusion|文生图 完蛋我被美女包围了人物Lora(四)
前面几篇: Stable-Diffusion|window10安装GPU版本的 Stable-Diffusion-WebUI遇到的一些问题(一) 【Stable-Diffusion|入门怎么下载与使用civitai网站的模型(二)】 Stable-Diffusion|文生图 拍立得纪实风格的Lora 图例(三)
悟乙己
2023/12/19
6920
Stable-Diffusion|文生图 完蛋我被美女包围了人物Lora(四)
使用stable-diffusion-webui实战动漫化风景图
长期使用AUTOMATIC1111/stable-diffusion-webui的小伙伴,应该有了解,如果不使用特定的大模型或Lora,是很难生成整体上都符合要求的风景图。本文主要详述了制作一个学校的春夏秋冬的风景的过程。
buzzfrog
2023/10/07
9690
使用stable-diffusion-webui实战动漫化风景图
AI绘画专栏之statble diffusion入门(一)
我用夸克网盘分享了「SD启动器下载」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/b16bc4d3ff88
疯狂的KK
2023/11/07
1.2K0
AI绘画专栏之statble diffusion入门(一)
AI绘画StableDiffusion美女实操教程:斗破苍穹-小医仙
之前分享过StableDiffusion的入门到精通教程:AI绘画:Stable Diffusion 终极炼丹宝典:从入门到精通
AI飞行家
2023/08/26
2.2K0
AI绘画StableDiffusion美女实操教程:斗破苍穹-小医仙
AI绘画专栏stablediffusion之 SD插件大全 (48)
https://gitcode.net/rubble7343/sd-webui-extensions/raw/master/index.json
疯狂的KK
2023/11/28
2.4K0
AI绘画专栏stablediffusion之 SD插件大全 (48)
AI绘画StableDiffusion实操教程:冰霜旗袍美女
飞书原文链接,获取更多资源:AI绘画StableDiffusion实操教程:冰霜旗袍美女
AI飞行家
2023/07/16
1.3K0
AI绘画StableDiffusion实操教程:冰霜旗袍美女
AI绘画:Stable Diffusion 终极炼丹宝典:从入门到精通
历经耗时数十个小时,总算将这份Stable Diffusion的使用教程整理妥当。
AI飞行家
2023/07/21
3K0
AI绘画:Stable Diffusion 终极炼丹宝典:从入门到精通
AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-常服(附高清图下载)
前段时间我分享了StableDiffusion的非常完整的教程:“AI绘画:Stable Diffusion 终极宝典:从入门到精通 ”
AI飞行家
2023/09/09
3.5K0
AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-常服(附高清图下载)
AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)
前段时间我分享了StableDiffusion的非常完整的教程:“AI绘画:Stable Diffusion 终极宝典:从入门到精通 ”
AI飞行家
2023/09/04
1.1K0
AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)
AI绘画:SD绘画实操过程-云龙-林秀制作教程(附高清图下载)
不久前,耗费了半个月的时间给大家整理分享了StableDiffusion的全面教程:AI绘画:Stable Diffusion 终极宝典:从入门到精通
AI飞行家
2023/09/14
7760
AI绘画:SD绘画实操过程-云龙-林秀制作教程(附高清图下载)
在腾讯高性能应用服务HAI,StableDiffusion新人从0-1干货教程,一学就会系列!
Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下产生图生图的转变。 它是一种潜在扩散模型,由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络之一。(取自百度)
about me
2024/03/29
1K3
在腾讯高性能应用服务HAI,StableDiffusion新人从0-1干货教程,一学就会系列!
AI绘画StableDiffusion实操教程:月光下的美人(含高清图片)
AI绘画月光下的美人教程整合资料包:https://pan.quark.cn/s/4a6325874b35
AI飞行家
2023/07/26
9110
AI绘画StableDiffusion实操教程:月光下的美人(含高清图片)
AI绘画:SD绘画实操过程-云龙-高瑶制作教程(附资料及变现)
大家好,我是小梦,最近一直研究AI绘画领域,总结了一些变现的方式,需要的可以来这里阅读下:
AI飞行家
2023/09/15
8100
AI绘画:SD绘画实操过程-云龙-高瑶制作教程(附资料及变现)
如何用AI生成可靠的图片
文本到图像生成模型是一种机器学习模型,一般以自然语言描述为输入,输出与该描述相匹配的图像。这种模型的开发始于2010年代中期,伴随深度神经网络技术的发展而进步。
Lvshen
2023/09/02
7810
如何用AI生成可靠的图片
Stable Diffusion WebUI 环境
Stable Diffusion 是热门的文本到图像的生成扩散模型,本文介绍了如何准备其 WebUI 环境。
GoCoding
2023/08/26
7690
Stable Diffusion WebUI 环境
AI绘画专栏之statble diffusion regional-prompter 分区上色 SD SDXL1.0 (十二)
在AI绘画领域,stable diffusion模型在图像生成方面取得了显著的进步,然而,如何对画面的各个分区进行精细的上色仍然是一个挑战。为了解决这个问题,我们引入了regional-prompter,一种新的技术,可以帮助我们对AI绘画的各个区域进行有针对性的上色。
疯狂的KK
2023/11/09
1.7K0
AI绘画专栏之statble diffusion  regional-prompter 分区上色 SD  SDXL1.0 (十二)
Stable Diffusion XL Turbo 文生图和图生图实践
本篇文章聊聊,如何快速上手 Stable Diffusion XL Turbo 模型的文生图和图生图实战。
soulteary
2024/01/15
7510
Stable Diffusion XL Turbo 文生图和图生图实践
【玩转GPU】AI绘画专栏stablediffusion SDXL小白入门教程 | 提示词教程 腾讯云专属
【玩转 GPU】AI绘画、AI文本、AI翻译、GPU点亮AI想象空间-腾讯云开发者社区-腾讯云 (tencent.com)
疯狂的KK
2023/07/09
3.6K0
【玩转GPU】AI绘画专栏stablediffusion SDXL小白入门教程 | 提示词教程  腾讯云专属
利用colab实现AI绘画自由
最近AIGC真的很火,除了chatGPT外,AI绘画也是热度不减。最近也是决定抽空上手尝试一下,但奈何我的本本太渣,丐版Mac跑跑数据还行,跑Stable Diffusion根本没戏。所以还是决定白嫖谷歌的colab。
HsuHeinrich
2023/03/29
3.6K0
利用colab实现AI绘画自由
AI绘画一键生成美图-变成画家
论文题目:High-Resolution Image Synthesis with Latent Diffusion Models(基于潜在扩散模型的高分辨率图像合成)
Srlua
2024/12/13
1270
AI绘画一键生成美图-变成画家
推荐阅读
相关推荐
Stable-Diffusion|文生图 完蛋我被美女包围了人物Lora(四)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档