前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >02:从文生图初窥Stable Diffusion,一键玩转AI绘画

02:从文生图初窥Stable Diffusion,一键玩转AI绘画

原创
作者头像
叫我阿柒啊
修改2024-06-25 07:58:06
3902
修改2024-06-25 07:58:06
举报
文章被收录于专栏:AI绘画之路入门到放弃之路

前言

Stable Diffusion是一个什么架构呢,或者说是由哪些部分构成,各自发挥着怎么样的作用。我们就先从文生图开始探索

文生图

我们打开Stable Diffusion的webui,然后选择Stable Diffusion模型,然后选择VAE模型,CLIP终止层数选择默认为2。

然后在文生图的提示词里面写入:美女,动漫风格,long hair,blue_hair,purple eyes,4K这些文字,在(里面的英文是自动转换的)。然后就是下面的参数:

  1. 迭代步数:默认为20,这里我调成了30
  2. 采样方法:DPM++ 2M Karras
  3. 提示引导词:默认值0.7
  4. 随机数种子:随机数种子一致,同样配置生成的图片才能一样。

然后点击生成,Stable Diffusion就生成了一张图片。

那么,上面配置的众多参数是干什么的?Stable Diffusion是如何通过众多参数生成的一张图片?带着这些问题我们来学习一下Stable Diffusion。

CLIP

我上面输入了美女,动漫风格,long hair,blue_hair,purple eyes,4K这些文字,在Stable Diffusion被称作text prompt,即文本提示词。但是Stable Diffusion肯定不认识你这些单词,所以就要经过CLIP一系列的内部处理。

CLIP是Open AI开发的一种深度学习模型,用于生成任何图像的文本描述。所以CLIP的作用就是将我们输入的提示词,转换成Stable Diffusion可以识别的内容,CLIP处理流程如下:

Tokenizer

首先是tokenizer,将我们输入的提示词,分词之后再转换成一个个数字。但是tokenizer只能分在训练时见过的单词,加入你输入一个dreambeach,但是clip中只有见过dream和beach,这样就将你的一个单词分为两个,成为两个token,所以说一个单词对应的不一定是一个token

上面的例子中,我输入的其实也没有32个单词,但是提示词已经是32个了,后面的75是token的限制个数,但是现在已经没有限制了,如果超过75他就自动扩展到150,以此类推。

Embedding

然后每个token都会被转换成为一个768维度的向量,被称为Embedding,每个token在clip中都对应着唯一的Embedding,和token一样,Embedding 在clip模型的训练学习阶段,就是被固定的。

Embedding在也是被称作 textual inversion(文本反演)模型微调的一种技术手段,这里的话只做一个简单的了解。我翻阅了一些资料,对Embedding有以下的描述:

万物皆可嵌入:用向量表示物体undefinedEmbeddings 是一种将现实世界的对象和关系表示为向量的密集数值表示形式。向量空间量化了类别之间的语义相似性。靠近彼此的嵌入向量被认为是相似的。undefined例如,man、gentleman和guy的嵌入几乎相同,因为它们可以互换使用

总的来说就是:Embedding代表一个物体、一个描述、一个样式等等。找到合适的Embedding可以触发任意的对象和样式

Text transformer

Embedding需要由Text transformer进行进一步处理,生成conditioning。然后被noise predictor(噪声预测器)消费,用作生成图片的condition,这样才能控制图片生成的最终结果。

那么noise predictor是什么?简单地说就是生成图片的,你输入的text prompt在经过clip转换成conditioning之后,就引导noise predictor去生成图片。如果要说到生成图片的过程的话,就不得不提Stable Diffusion的正向扩散和逆向扩散了,所以下一篇文章就写一写正向扩散和逆向扩散。

这里先提一下noise predictor是一个U-Net model,U-NET是什么,这个后面详细学一下再讲。

画图总结

我们在开篇讲了Stable Diffusion的优势在与latent space计算,所以U-Net model是在潜空间计算的。

中间空白的部分在后面的学习过程中逐渐填补。

结语

这就是文生图中,从输入文本到Latent空间的一个流程,主要讲了clip的处理流程,同时也是conditioning的生成流程。

里面的noise predictor和U-Net是本文中留下要学习的地方。所以下一篇文章就主要写一写noise predictor。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 文生图
  • CLIP
    • Tokenizer
      • Embedding
        • Text transformer
        • 画图总结
        • 结语
        相关产品与服务
        大模型图像创作引擎
        大模型图像创作引擎是一款提供 AI 图像生成与处理能力的 API 技术服务,可以结合输入的文本或图片智能创作出与输入相关的图像内容,具有更强大的中文理解能力、更多样化的风格选择,更好支持中文场景下的建筑风景生成、古诗词理解、水墨剪纸等中国元素风格生成,以及各种动漫、游戏风格的高精度图像生成和风格转换,为高质量的内容创作、内容运营提供技术支持。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档