分类
深度学习

简单理解 Stable Diffusion 和 代码实现

Stable Diffusion 的论文我粗看了一下,并没有完整的去看所有的数学推导,知道大概的过程后,随手找了几个科普性质的文章,最后又找了几段代码,Stable Diffusion 是好几个技术拼在一起,包括 openai 的 CLIP,U-NET等。

我的学习目标

我学习这些的目标可以拆解如下。

  1. 会用,利用开源的模型,可以自己运行起来。
  2. 明白其原理,大致的搞明白其原理,但是不会去纠小细节。
  3. 了解其各个参数的作用和用法。
  4. 找其原理实现的代码,把代码跑起来。
  5. 怎么样把模型服务化,做到高可用。

怎么用 stable diffusion 的文章一大把,讲其原理的视频和文章相对少一些,但是也是有的,推荐 beginners-guide-to-diffusion-models 这个文章解决的比较清楚,并且作者是还画了图,看完后你大概知道什么是 step,什么是 CFG,什么是调度器之类的了。

代码实现发现 fast.ai 有一个课程,讲解了基本的原理,并且实现了相应的代码,Stable Diffusion Deep Dive,他的整个代码也都可以看一看diffusion-nbs

视频推荐

20221219BziuVD
这个是 fat.ia 相关的视频,在 Stable Diffusion 方面介绍的较详细 https://www.youtube.com/@howardjeremyp/videos

Stable Diffusion 视频推荐

https://www.youtube.com/watch?v=1CIpzeNxIhU&t=242s&ab_channel=Computerphile

分类
深度学习

Stable Diffusion Anything

Linaqruf/anything-v3.0 · Hugging Face 是一个动漫风格的模型,可以 txt-to-image ,也支持 image-to-image。

Anything Taylor Swift
原图

注意事项

image to image

  • 图片的比重一定要占到 45% 以上,才会让生成的图片和原图相似。
  • 如果图片的比重超过 80% ,生成的图片和原图基本上不太相似,可能差别非常大。
  • 原图不能太大,分辨率太高,1024×1024 以上,计算非常慢,在生成之前,最好对原图进行调整。
分类
有意思的项目 深度学习

用 Dreambooth 生成自己的肖像

最近AI 生成 avatar 或者 portrait 特别火,火到什么程度呢?有人用这个一天挣了 100 万美元,我也一直很喜欢生成头像,这种生成的技术叫做 Dreambooth,应该是 Google 发布的一论文,然后有人把它实现了。

Dreambooth
20221210Q3OTIm

生成步骤

准确照片

要拍 20 张左右的照片,如果是肖像生成, iphone 有人像模式,用这种方式拍出来的效果最好,20 张照片应该从人脸的各个角度进行拍摄。

准备训练

用上面拍的 20 张照片进行训练,训练时间在不同的 GPU 上差距很大,不太推荐在 T4 上面去训练,推荐 A100,显存至少要 20 G 以上。

生成

训练完成就可以根据 prompt 去生成,用什么样的 prompt 非常有技巧,推荐一个参考网站。 PromptHero – Search prompts for Stable Diffusion, DALL-E & Midjourney

论文

[2208.12242] DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation (arxiv.org)

代码实现

GitHub – XavierXiao/Dreambooth-Stable-Diffusion: Implementation of Dreambooth (https://arxiv.org/abs/2208.12242) with Stable Diffusion

diffusers/examples/dreambooth at main · ShivamShrirao/diffusers · GitHub

huggingface 也有训练的代码,和相关的参数,并且还总结了各种经验。

Training Stable Diffusion with Dreambooth using Diffusers (huggingface.co)

diffusers/examples/dreambooth at main · huggingface/diffusers · GitHub

分类
深度学习

我准备这样学习深度学习

我开始了我的深度学习,对于以前没有搞过深度学习的人来说,有点吃力,不过我的学习方法比较适合我,首先我去看了一下基本的数学原理,这里推荐一本书,叫做《深度学习的数学(图灵出品)》([日]涌井良幸,涌井贞美) ,把书里的推导和 Excel 演算都动手实践的话,感觉原理基本上搞的差不多,会一些基本的原理和术语后,我就开始找一些 demo 来跑,这些 demo 能跑通,我就开始换不同的数据源,换不同的场景,这大概是我的学习路径。

看数学原理和搞明白术语

推荐这本书,《深度学习的数学(图灵出品)》([日]涌井良幸,涌井贞美)

找开源项目

我正好有这个需求,手上有一些注册用户,默认是没有填写性别的,如果要给对方发促销邮件,最好是知道基本的性别,所以这是一个真实的场景。

自己从 0-1 去实现性别预测,肯定不现实,所以我优先去找开源项目,还真找到一个,人家还写成了论文,说根据名字可以预测性别。

GitHub – roscibely/gender-classification: Predicting Gender Using Character-level Machine Learning 🙋 🙋‍♂️

湘ICP备2020020034号-1