[GenerativeAI] GAN to Diffusion

Outline

先在本篇了解基础知识。

简单介绍了几个GAN的方向。

重点讲 Diffusion 模型。

2020-2021年的

    • DDPM(Denoising Diffusion Probabilistic Models)
    • DDIM(Denoising Diffusioin Implicit Model)

Dalle只是基于最近的 encoder-decoder (VQ-VAE)的思想产物,但未结合 Diffusion 发现效果并不理想。

在此基础上 以及 多模态 (txt+img)的出现,openai重新基于diffusion设计的 dalle2,以及 runway的 stable diffusion。

(DALLE2 paper)

再重点介绍 Stable Diffusion,体会与 Dalle2 的区别。 

 

 

 

GAN模型


GAN这是给Difussion做了垫脚石?

 

生成对抗网络,从DCGAN到StyleGAN、pixel2pixel,人脸生成和图像翻译。

不错的资源:kaggle在2019年曾经举办一项奖金高达100万美元的比赛《Deepfake Detection Challenge》,主要是识别视频中哪些人脸是真实哪些是AI生成的。并有方案。

https://github.com/PaddlePaddle/PaddleGAN

 

高清方向发展

StyleGAN (2018-2019)

StyleGAN is a generative adversarial network (GAN) introduced by Nvidia researchers in December 2018, and made source available in February 2019.

StyleGAN2 (2020-2021)

StyleGAN3 (2022)

 

可控方向发展

Conditional GAN (2014)

鉴别器可以当做是一种可自行优化的损失函数,训练完生成器就可以丢掉了。
GAN中的噪声是随机的,无法控制生成器生成哪一种特征的图片。所以提出了Conditional GAN。

Pix2pix

pix2pix是一个经典的图像翻译模型,使用 成对数据 进行训练。

Image-to-Image Translation with Conditional Adversarial Networks

 

卡通风格发展

CycleGAN

简单来说, CycleGAN功能就是:自动将某一类图片转换成另外一类图片。

U-GAT-IT

U-GAT-IT接近本次人像生成动漫画的任务,结构继承了CycleGAN的设计。

U-GAT-IT论文一大贡献是AdaLIN,自适应实例归一化。输入是解码器各层特征,经过IN和LN之后使用可学习的ρ加权求和,然后使用MLP提取的统计特征γ和β来归一化。

作者发现:IN更关注内容信息,LN更关注全局信息,ρ可以自动调整二者比重。(可控性)

Photo2Cartoon

递进训练。

 

 

 

扩散模型


大事件

1.1 起源

2015 年在 Deep Unsupervised Learning using Nonequilibrium Thermodynamics 这篇文章中提出,当时的生成模型比如 VAE ,有一个很大的难点,就是这类模型是先定义了条件分布,然后再定义变分后验去适配,最后会导致需要同时优化条件分布和变分后验,然而这是很困难的。如果我们可以定义一个简单的过程,把数据分布映射到标准高斯,“生成器”的任务就变成了简单的拟合这个过程的逆过程的每一小步,这,就是 diffusion model 的核心思想。然而这篇文章当时并没有掀起什么波澜

1.2 发展

时间来到2020年,基于前人的思想,提出了DDPM模型(Denoising Diffusion Probabilistic Models),相对于基础的扩散模型,作者结合了扩散模型和去噪分数,来引导训练以及采样的过程,带来了生成图像样本适量的提升,使其在训练更简单稳定的条件下,最后的结果可以和GAN模型相当

1.3 突破 

于是继DDPM之后,时间来到2021年,Song等人提出了DDIM(Denoising Diffusioin Implicit Model),其改造了DDPM的扩散过程的采样方法,将传统的马尔可夫扩散过程推广到了非马尔可夫过程,可以用更小的采样步数来加速样本生成,大大的提高了效率。 

OpenAI 提出了兩個 “multimodal” 神經網路的模型:

CLIP: Learning Transferable Visual Models From Natural Language Supervision

DALLEZero-Shot Text-to-Image Generation

1.4 爆发

2022年,谷歌基于扩散模型推出了一款新的AI系统,可以将文字描述转为逼真图像

输入的文本首先经过编码,然后由一个文字转图像的扩散模型转化为64*64的小图,进一步的,利用超分辨率扩散模型对小图进行处理,在进一步的迭代过程中提升图像的分辨率,得到最后的生成结果——一张1024*1024的最终图像。

GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models,加了一个比较贵的feature, classifier free guidance,超越了第一代的 DALLE。

Stable DiffusionHigh-Resolution Image Synthesis with Latent Diffusion Models, Stable diffusion是一个基于Latent Diffusion Models(LDMs)的以文生图模型的实现。2022年8月 开源。

DALLE2Hierarchical Text-Conditional Image Generation with CLIP Latents

1.5 综述

2022下半年,开始出现综述。

扩散模型(Diffusion Model) 最新综述+GitHub论文汇总-A Survey On Generative Diffusion

A Survey on Generative Diffusion Model

 

 

 

 

Diffusion 数学原理

CV多模态和AIGC的原理解析:从CLIP、BLIP到Stable Diffusion、Midjourney

Captioner and Filter 的思想提升数据质量,有深究的价值~

 

先了解 CLIP

[GenerativeAI] Contrasive Learning and CLIP

 

大数据:图像文本对儿

 

那么问题来了,以下与stable diffusion又有什么区别呢?是否带来了进一步的改进了呢?

 

数学原理以及发展由来

    • GAN

"GAN胜在逼真,但多样性灵活性欠缺"。

以下是发展综述

 

    • AE to DAE

DAE如下,类似MAE,说明了图像的冗余性。

 

    • VAE (2013)

预测的是一个分布。

如下,可见其中的 统计量!

 

35分钟开始介绍 VAE。  

 

"变分“的必要性: 因AE缺乏创造力,如下的月亮的 “中间状态“ 是无法生成的 by AE,所以才需要"变分自编码器"。

如下这个例子中,是一个三维的分布(比如高斯)or 混合分布 for “表达力更强”,既然是概率抽样,那自然就可涉及到“中间状态“,故“表达也更灵活”

缺点:不方便把模型做大。

 

    • VQ-VAE (2017)

Neural Discrete Representation Learning

# DALLE 第一版 基于VQVAE。

 

    • 初代 DELLA

由此引出了2021年初的DELLA。

 

本质就是加噪音,去噪音;重点是DDPM的发展史,如下。

而 GLIDE 的出现是基于“diffusion的大模型可行”,也证明了 “classifier free guidance” 的高效性。

 

    • DELLA-2

DELLA与CLIP同年发布,DELLA在与CLIP and GLIDE (2021) 结合后,发现效果更好,也就引出了DELLA2 (2022)。

 

    • Stable Diffusion

三大势力 

在目前的三大新兴文本转图像模型中,Stable Diffusion诞生得最晚,但由于拥有发展良好的开源社区,它的用户关注度和应用广度都超越Midjourney和DALL-E。 
Stable Diffusion模型是以新的CreativeML Open RAIL-M许可证发布的,它规定了模型权重的使用规范(模型权重就是花费60万美元训练所获的核心成果),其中部分内容与OSI认证的许可证相同,但用例限制方面的内容则不相同。如果你曾经与法律部门和OSI的人打过交道就知道,这个许可很可能不被认可,而且由于没有法律先例可依,关于这个许可证的有效性众说纷纭。
Stability AI已经清楚表明可以将他们的产品用于商业目的,甚至公开支持Midjourney使用Stable Diffusion。但如果有一天,开源产品的使用风险比现在高出1000倍,法律细节的重要性就会显现。

Goto: [diffusion] Stable Diffusion [关心最新技术的细节]

 

 

 

发展历程回顾

开源风暴吞噬AI界?从Stable Diffusion的爆火说起

文本转图像模型的发展周期历时数年:

    • 2020年7月:OpenAI发文介绍Image GPT模型,将语言模型应用到图像领域。
    • 2022年3月:AI图像生成平台Midjourney启动Beta版本测试。
    • 2022年4月:OpenAI宣布允许一定数量的用户对其AI图像生成工具DALL-E 2 进行“研究性试用”。
    • 2022年5月:Google以论文形式公布其文本-图像生成模型Imagen,Imagen由PyTorch实现。
    • 2022年7月:OpenAI 通过UI/API开放DALL-E 2进行公开测试,参与公测的用户须先进入等待名单。
    • 2022年7月:Midjourney通过Discord通讯平台发布消息表示即将进行公开测试。
    • 2022年8月:文本-图像生成模型Stable Diffusion发布,这是一款基于OpenRAIL-M许可的开源模型。
    • 2022年9月:OpenAI取消DALL-E 2的等待名单。

GPT-3从公布到被复制历时10个月:

    • 2020年5月:OpenAI以论文形式公开GPT-3,并在随后的6月发布了未公开的Beta版API。
    • 2020年7月:非营利开源研究组织EleutherAI成立,成为OpenAI的替代者。
    • 2020年9月:Microsoft获得GPT-3的独家授权。
    • 2021年1月:EleutherAI公布其800G数据集The Pile。
    • 2021年3月:EleutherAI公布了分别含13亿和27亿参数的两版开源GPT-Neo模型(GPT-Neo是对GPT-3的克隆版)。
    • 2021年11月:OpenAI取消GPT-3的等待名单,开发人员可以直接报名使用其API。
    • 2022年5月:Meta公布大型语言模型OPT-175B,供研究人员使用,还公布了模型日志和开源许可证明。
    • 2022年6月:俄罗斯互联网巨头Yandex公布了YaLM-100B,这是一个基于Apache-2许可的类GPT开源模型。
    • 2022年7月:HuggingFace公开了BLOOM-176B,一个基于RAIL许可证明的大型语言模型。

GPT-2从公布到被复制历时6个月:

    • 2019年2月,OpenAI宣布GPT-2诞生,为了避免模型遭到不良利用(如被用于制造虚假新闻等),当时决定不将模型完全开源;3月,OpenAI放弃“非营利机构”的定位,成立OpenAI LP(有限合伙公司),声称进入“有限营利”经营模式。
    • 8月,两名计算机硕士复制出GPT-2并将其对外公开,称为OpenGPT-2。
    • 11月,经过谨慎的分阶段逐步公布,OpenAI终于完全开源了含15亿参数的GPT-2模型。

 

Dreambooth是一个文本转图像模型,支持经小样本学习(Few-Shot Learning)后生成精调图像,生成的图像既可保留主体的精细特征,又能为主体切换任意背景。

 

 

 

 

开始实践


安装 Stable Diffusion

实践:【手把脚教程】从零到1,AI绘画stable-diffusion腾讯云部署2023-02-24 15:56

 

安装 高级插件

Stable Diffusion ControlNet 养老级入门使用流程 初级使用体验

ControlNet: https://github.com/Mikubill/sd-webui-controlnet

【ai绘画】姿势自由!!ControlNet拆解教学 安装与读取骨骼 让你理解ai绘画精髓

 

CIVIT AI

Download models for one specific style. For example, 

cd stable-diffusion-webui/models/Stable-diffusion
wget -O chilloutmix_NiPrunedFp32.safetensors https://civitai.com/api/download/models/9475

 Install ControlNet and we will see the models as follows.

$ tree sd-webui-controlnet/models/ 
sd-webui-controlnet/models/
├── cldm_v15.yaml
├── cldm_v21.yaml
├── image_adapter_v14.yaml
├── sketch_adapter_v14.yaml
├── t2iadapter_color_sd14v1.yaml
├── t2iadapter_keypose_sd14v1.yaml
└── t2iadapter_style_sd14v1.yaml

 

posted @ 2022-04-07 22:04  郝壹贰叁  阅读(301)  评论(0编辑  收藏  举报