前言
本文首先簡(jiǎn)單介紹 Stable Diffusion 模型結(jié)構(gòu) Latent Diffusion 的論文和博客,然后介紹模型的訓(xùn)練和推理技術(shù)細(xì)節(jié)(不含數(shù)學(xué)推導(dǎo)),接著介紹幾個(gè) prompt 搜索引擎等實(shí)用工具,最后簡(jiǎn)單介紹 AI 作畫(圖像生成)的發(fā)展史,并測(cè)試了 Stable Diffusion 不同風(fēng)格和 prompt 的生成樣例。
模型簡(jiǎn)介
Model:Latent Diffusion
Paper:High-Resolution Image Synthesis with Latent Diffusion Models
Huggingface官方博客:
- Stable Diffusion with ?? Diffusers
- The Annotated Diffusion Model
訓(xùn)練集:LAION-high-resolution 和 LAION-Aesthetics
使用協(xié)議:stable-diffusion-license(不要生成違禁圖;SD放棄版權(quán);商用時(shí)也需遵守上面協(xié)議)
模型結(jié)構(gòu)圖:
模型原理(圖源Twitter):文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-496734.html
模型訓(xùn)練
本部分內(nèi)容主要翻譯自 Huggingface官方博客。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-496734.html
- 訓(xùn)練目標(biāo):一步步對(duì)隨機(jī)的高斯噪聲降噪(denoise),參考 diffusers colab。
- 優(yōu)勢(shì):Latent diffusion 之所以是 “l(fā)atent”,是因?yàn)槟P褪窃诘途S的潛空間(latent space)上進(jìn)行擴(kuò)散過(guò)程,而不是在實(shí)際的像素空間,從而降低了內(nèi)存消耗和計(jì)算復(fù)雜度(比如輸入shape是(3,512,512),下采樣因子是8,潛空間中變成了(3,64,64),節(jié)省了8×8=64倍的內(nèi)存)。訓(xùn)練完之后的模型就能把一張圖表示成一個(gè)低維的潛特征。
- Latent diffusion 模型的三大核心部分:
- Text Encoder:把 prompt 表示成潛特征,從而可以輸入到 U-Net。Stable Diffusion 直接用了CLIP 預(yù)訓(xùn)練的 Text Encoder,凍結(jié)權(quán)重。
- VAE:VAE 的 encoder 用來(lái)將圖片編碼成潛特征(作為U-Net的輸入),decoder 用來(lái)將潛特征轉(zhuǎn)成圖像。顯然推理時(shí)只用到了VAE的decoder。
- U-Net:由 encoder 和 decoder 都是由 ResNet blocks 構(gòu)成。其中 encoder 用來(lái)下采樣(降低分辨率),decoder 用來(lái)上采樣(升高分辨率)。U-Net 的輸出預(yù)測(cè)了噪聲的殘差,可用于計(jì)算預(yù)測(cè)的去噪圖像表示。為了防止下采樣時(shí)損失信息,通常把同一層上下采樣的 ResNet 之間給連起來(lái)。此外,Stable Diffusion 的 U-Net 還能通過(guò) cross-attention 層把 prompt 的表示給嵌入(U-Net的encoder和decoder都加了cross-attention層,在ResNet blocks之間加)。
到了這里,關(guān)于AI 作畫:Stable Diffusion 模型原理與實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!