国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AI繪畫Stable Diffusion原理之Autoencoder-Latent

這篇具有很好參考價(jià)值的文章主要介紹了AI繪畫Stable Diffusion原理之Autoencoder-Latent。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

傳送門:

stable diffusion:Git|論文

stable-diffusion-webui:Git

Google Colab Notebook部署stable-diffusion-webui:Git

kaggle Notebook部署stable-diffusion-webui:Git

AI繪畫,輸入一段文本就能生成相關(guān)的圖像,stable diffusion便是其中一個重要分支。自己對其中的原理比較感興趣,因此開啟這個系列的文章來對stable diffusion的原理進(jìn)行學(xué)習(xí)(主要是針對“文生圖”[text to image])。

上述的stable-diffusion-webui是AUTOMATIC1111開發(fā)的一套UI操作界面,可以在自己的主機(jī)上搭建,無限生成圖像(實(shí)測2080ti完全能夠勝任),如果沒有資源,可以白嫖Google Colab或者kaggle的GPU算力,其部署教程在上面?zhèn)魉烷T。

其中stable diffusion的基礎(chǔ)模型可以hugging face下載,而C站可以下載各種風(fēng)格的模型。stable diffusion有一個很大的優(yōu)勢就是基于C站中各式各樣的模型,我們可以進(jìn)行不同風(fēng)格的AI繪畫。

而這篇文章,首先對其中的一個組件進(jìn)行學(xué)習(xí):Autoencoder/VQGANs,可以將圖像從像素空間壓縮到低維的隱空間。

原理簡介

Stable Diffusion is a latent text-to-image diffusion model。stable diffusion本質(zhì)是一種latent diffusion models(LDMs),隱向量擴(kuò)散模型。diffusion models (DMs)將圖像的形成過程分解為去噪自動編碼器(denoising autoencoders)的一系列操作,但這些都是直接在像素空間上進(jìn)行的操作,因此對于昂貴的計(jì)算資源,特別是高像素的圖像。而LDMs則是引入隱向量空間,能夠生成超高像素的圖像。

這里,我們先整體地來了解下stable diffusion的結(jié)構(gòu)組成,后面再對每個組件進(jìn)行拆開逐一理解。整體結(jié)構(gòu)如下圖[Stable Diffusion Architecture]:

  1. 文本編碼器:人類輸入的文本即prompt,經(jīng)過CLIP模型中的Text Encoder,轉(zhuǎn)化為語義向量(Token Embeddings);
  2. 圖像生成器(Image information Creator):U-Net、采樣器以及Autoencoder組成。由隨機(jī)生成的純噪聲向量(即下圖中的Noisey Image)開始,通過Autoencoder編碼映射到低維的隱空間,文本語義向量作為控制條件進(jìn)行指導(dǎo),由U-Net和采樣器不斷迭代生成新的越具有豐富語義信息的隱向量,這就是擴(kuò)散過程diffusion;
  3. 圖像解碼器(Image Decoder)- Autoencoder:迭代了一定次數(shù)之后,得到了包含豐富語義信息的隱向量(Processed Image Info Tensor),低維的隱向量經(jīng)過Autoencoder解碼到原始像素;
  4. 第2步就是LDMs和DMs的區(qū)別,LDMs是在latent space進(jìn)行擴(kuò)散,而DMs則是在pixel space,這也是性能提升的關(guān)鍵。

AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

Autoencoder

[1] 論文:Taming Transformers for High-Resolution Image Synthesis

[2] Git:taming-transformers

圖片的隱空間表征從何而來:Autoencoder,既能夠?qū)D片從像素空間壓縮到隱空間,讓擴(kuò)散過程在latent space中進(jìn)行,又可以讓圖片從隱空間重建到像素空間(即圖片重建),簡化的過程如下圖所示:

  • 其中的encoder可以將一張圖片從RGB空間即像素空間 x ∈ R H × W × 3 x\in \mathbb{R}^{H\times W \times 3} xRH×W×3,經(jīng)過encoder編碼到隱空間表征(latent representation) z = ε ( x ) z= \varepsilon(x) z=ε(x);
  • decoder則是將隱空間表征重建到圖片RGB x ~ = D ( z ) = D ( ε ( x ) ) \tilde{x}=D(z)=D(\varepsilon(x)) x~=D(z)=D(ε(x));
  • 其中, z ∈ R h × w × c z\in \mathbb{R}^{h \times w \times c} zRh×w×c,重要的是,控制隱空間大小的是編碼器的下采樣因子(downsampling factors): f = H / h = W / w , f = 2 m , m ∈ N f=H/h=W/w,f=2^m,m \in \mathbb{N} f=H/h=W/w,f=2m,mN

AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

上述僅僅是從整體架構(gòu)層面簡單地描述了圖片的隱空間與像素空間的轉(zhuǎn)換與重建過程,但其實(shí)整個過程的細(xì)節(jié)還是比較復(fù)雜的,方法是出自VQGAN [ 1 ] ^{[1]} [1],其結(jié)構(gòu)如下圖所示:

  • 論文認(rèn)為高像素的圖片合成需要模型能夠理解圖片的全局組成,使得局部和全局現(xiàn)實(shí)的生成能夠保持一致。
  • 因此,論文使用codebook來對圖片的豐富視覺組成進(jìn)行表征,而不是像素表征,codebook即是隱空間的表現(xiàn)形式。
  • codebook可以大大減少的圖片組成長度(相比像素),也使得能用transformer來高效地對圖片內(nèi)部的全局交互( global interrelations)進(jìn)行建模。

AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

Codebook

給定一張圖片 x ∈ R H × W × 3 x\in \mathbb{R}^{H\times W \times 3} xRH×W×3,需要將x表征為離散空間的codebook集合 z q ∈ R h × w × n z z_q \in \mathbb{R}^{h\times w \times n_z} zq?Rh×w×nz?,其中 h ? w h \cdot w h?w可以認(rèn)為是codebook中每個code的索引,而 n z n_z nz?是code的維度。學(xué)習(xí)這樣的codebook表征需要以下幾個組件:

  • 一個離散的codebook Z = { z k } k = 1 K ∈ R n z Z=\{z_k\}^K_{k=1} \in \mathbb{R}^{n_z} Z={zk?}k=1K?Rnz?(可以當(dāng)成embedding來理解,參數(shù)隨機(jī)初始化,參與模型訓(xùn)練 ,但論文對這塊沒有清晰的描述,可以去看源碼)
  • CNN結(jié)構(gòu)的encoder E,可以將圖片 x x x編碼為 z ^ ∈ R h × w × n z \hat{z} \in \mathbb{R}^{h\times w \times n_z} z^Rh×w×nz?
  • CNN結(jié)構(gòu)的decoder G,能夠?qū)odebook z q z_q zq?重建為圖像 x ^ \hat{x} x^
  • quantization操作,將 z ^ \hat{z} z^映射到 z q z_q zq?

具體的 z q z_q zq?編碼過程為:編碼器E將x轉(zhuǎn)化為 z ^ = E ( x ) ∈ R h × w × n z \hat{z}=E(x) \in \mathbb{R}^{h\times w \times n_z} z^=E(x)Rh×w×nz?,然后通過element-wise quantization q ( ? ) q(\cdot) q(?)將每個離散的code z ^ i j ∈ R n z \hat{z}_{ij} \in \mathbb{R}^{n_z} z^ij?Rnz?編碼到距離最近的codebook entry z k z_k zk?(這里產(chǎn)生的最鄰近的 z k z_k zk?索引即為上圖[VQGAN]的 s i s_i si?,后續(xù)會用到)AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusionAI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

這部分的損失函數(shù)如下式AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

其中 L r e c = ∣ ∣ x ? x ^ ∣ ∣ 2 L_{rec}=||x-\hat{x}||^2 Lrec?=∣∣x?x^2重建loss, s g [ ? ] sg[\cdot] sg[?]為stop-gradient操作。由于 z q z_q zq?的quantization操作是不可微分的,因此需要用到梯度拷貝(出自straight-through gradient estimator)

Discriminator

論文:Image-to-Image Translation with Conditional Adversarial Networks

Git:https://github.com/phillipi/pix2pix

使用transformer來表征圖片的隱性圖像成分的分布,需要進(jìn)一步逼近圖片壓縮的極限和學(xué)習(xí)更富含信息的codebook,因此,論文還訓(xùn)練一個patch-based的判別器D,讓它能夠區(qū)分真實(shí)和重建的圖片AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

真實(shí)圖像和重建圖像都會經(jīng)過一個CNN結(jié)構(gòu)的Discriminator,然后得到每個patch的預(yù)估概率,模型的訓(xùn)練目標(biāo)就是讓真實(shí)圖像的預(yù)估概率盡量都為1,而重建圖像的預(yù)估概率盡量都為0,簡而言之,就是讓Discriminator能夠識別每個patch是來自真實(shí)圖像還是重建圖像,如下圖紅框部分:AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

上述這兩部分是聯(lián)合訓(xùn)練:AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusionAI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

其中, ? G L [ ? ] \nabla_{G_L}[\cdot] ?GL??[?]是decoder最后一層網(wǎng)絡(luò)的梯度,而 δ = 1 0 ? 6 \delta=10^{-6} δ=10?6。

Transformers

Latent Transformers.

編碼器E和解碼器G訓(xùn)練完成之后,按照上述同樣的操作,通過E和quantization操作,可以將圖片 x x x表征到codebook z q = q ( E ( x ) ) ∈ R h × w × n z z_q=q(E(x)) \in \mathbb{R}^{h \times w \times n_z} zq?=q(E(x))Rh×w×nz?, h ? w h \cdot w h?w可以認(rèn)為是codebook中每個code的索引 s i s_i si?,然后將二維的索引變?yōu)橐痪S的,相當(dāng)于一個code序列 s ∈ { 0 , . . . , ∣ Z ∣ ? 1 } h × w s \in \{0,...,|Z|-1\}^{h \times w} s{0,...,Z?1}h×wAI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

到這里,我們就可以按照NLP的自回歸模型“預(yù)測下一個詞”的思路來理解:給定code索引序列(上文) s < i s<i s<i,利用transformer來學(xué)習(xí)下一個code索引(下文)的概率分布 p ( s i ∣ s < i ) p(s_i|s<i) p(si?s<i),最大化完整表征序列的似然估計(jì) p ( s ) = ∏ i p ( s i ∣ s < i ) p(s)=\prod_ip(s_i|s<i) p(s)=i?p(si?s<i)AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

Conditioned Synthesis.

在許多圖片合成任務(wù)中,往往會加入額外的信息來控制圖片的合成過程,這個額外信息稱為 c c c,它可以是一個對圖片的標(biāo)簽描述或者另外的圖片。那么,學(xué)習(xí)的似然估計(jì)則變?yōu)椋?img src="https://imgs.yssmx.com/Uploads/2023/07/609425-13.png" alt="AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion" referrerpolicy="no-referrer" />

機(jī)制理解

在最后,通過源碼倉庫里的兩個實(shí)操案例notebook來理解Autoencoder這些組建的工作機(jī)制。

圖像重建.

VQGAN可以將圖片輸入編碼到低維的codebook空間(隱空間),然后再對codebook空間重建為圖片的像素空間,如下圖所示。更重要的是,這個過程的中間產(chǎn)物-隱空間,相較于像素空間,能夠以很小的特征空間來表征圖片,可以遷移到attention機(jī)制底座的模型訓(xùn)練的下流任務(wù),比如本文的主題:Stable Diffusion。

def reconstruct_with_vqgan(x, model):
  # could also use model(x) for reconstruction but use explicit encoding and decoding here
  z, _, [_, _, indices] = model.encode(x)
  print(f"VQGAN --- {model.__class__.__name__}: latent shape: {z.shape[2:]}")
  xrec = model.decode(z)
  return xrec

AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion

草圖繪畫.

這里主要是可以幫助理解VQGAN中Transformer的作用:

  • 草圖經(jīng)過VQGAN的編碼器得到codebook索引序列c- s i s_i si?(c-僅是前綴,為了與成品圖進(jìn)行區(qū)分);
  • 隨機(jī)生成 成品圖的codebook索引序列z- s i s_i si?;
  • 然后草圖的索引序列c- s i s_i si?作為控制條件,即上述提到Conditioned Synthesis章節(jié)中的 c c c,拼接在z- s i s_i si?的前面(z- s i s_i si?每次截取一段),輸入到Transformer,去預(yù)測z- s i s_i si?的每一個位置,預(yù)測得到的索引逐步替代隨機(jī)生成的索引序列;
  • 最后,這個生成的索引序列再進(jìn)入解碼器G重建為圖片(成品圖)。

AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion
AI繪畫Stable Diffusion原理之Autoencoder-Latent,AIGC,AIGC,stable diffusion文章來源地址http://www.zghlxwxcb.cn/news/detail-609425.html

到了這里,關(guān)于AI繪畫Stable Diffusion原理之Autoencoder-Latent的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • AI繪畫與多模態(tài)原理解析:從CLIP到DALLE 3、Stable Diffusion、MDJ

    AI繪畫與多模態(tài)原理解析:從CLIP到DALLE 3、Stable Diffusion、MDJ

    終于開寫本CV多模態(tài)系列的核心主題:stable diffusion相關(guān)的了,為何執(zhí)著于想寫這個stable diffusion呢,源于三點(diǎn) 去年stable diffusion和midjourney很火的時候,就想寫,因?yàn)榻?jīng)常被刷屏,但那會時間錯不開 去年11月底ChatGPT出來后,我今年1月初開始寫ChatGPT背后的技術(shù)原理,而今年2月份

    2024年02月05日
    瀏覽(28)
  • AI繪畫原理解析:從CLIP到DALLE1/2、DALLE 3、Stable Diffusion、SDXL Turbo、LCM

    AI繪畫原理解析:從CLIP到DALLE1/2、DALLE 3、Stable Diffusion、SDXL Turbo、LCM

    終于開寫本CV多模態(tài)系列的核心主題:stable diffusion相關(guān)的了,為何執(zhí)著于想寫這個stable diffusion呢,源于三點(diǎn) 去年stable diffusion和midjourney很火的時候,就想寫,因?yàn)榻?jīng)常被刷屏,但那會時間錯不開 去年11月底ChatGPT出來后,我今年1月初開始寫ChatGPT背后的技術(shù)原理,而今年2月份

    2024年02月22日
    瀏覽(43)
  • AI繪畫與多模態(tài)原理解析:從CLIP到DALLE1/2、DALLE 3、Stable Diffusion、SDXL Turbo

    AI繪畫與多模態(tài)原理解析:從CLIP到DALLE1/2、DALLE 3、Stable Diffusion、SDXL Turbo

    終于開寫本CV多模態(tài)系列的核心主題:stable diffusion相關(guān)的了,為何執(zhí)著于想寫這個stable diffusion呢,源于三點(diǎn) 去年stable diffusion和midjourney很火的時候,就想寫,因?yàn)榻?jīng)常被刷屏,但那會時間錯不開 去年11月底ChatGPT出來后,我今年1月初開始寫ChatGPT背后的技術(shù)原理,而今年2月份

    2024年02月04日
    瀏覽(29)
  • AI繪畫Stable Diffusion

    AI繪畫Stable Diffusion

    安裝包來自B站大佬 秋葉aaaki 安裝教程 https://www.bilibili.com/video/BV1iM4y1y7oA?vd_source=2d34fd2352ae451c4f6d4cb20707e169 鏈接:https://pan.baidu.com/s/188_aaYrlNOlmQd_yrC8XYQ?pwd=3h2a 提取碼:3h2a 將 (可選controlnet1.1預(yù)處理器),downloads丟程序如下路徑 下載包里面 (可選controlnet1.1模型) *pth丟程序如下

    2024年02月11日
    瀏覽(56)
  • AI 繪畫 | Stable Diffusion 提示詞

    AI 繪畫 | Stable Diffusion 提示詞

    在Stable Diffusion中,Prompts是控制模型生成圖像的關(guān)鍵輸入?yún)?shù)。它們是一種文本提示,告訴模型應(yīng)該生成什么樣的圖像。 Prompts可以是任何文本輸入,包括描述圖像的文本,如“一只橘色的短毛貓,坐在草地上,背景是藍(lán)天白云”,也可以是的組合,如“鳥,森林,天空

    2024年01月21日
    瀏覽(31)
  • 【AI繪畫】Stable Diffusion WebUI

    【AI繪畫】Stable Diffusion WebUI

    ??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kuan 的首頁,持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年02月08日
    瀏覽(33)
  • AI繪畫:快速上手stable diffusion

    AI繪畫:快速上手stable diffusion

    點(diǎn)擊↑上方↑藍(lán)色“ 編了個程 ”關(guān)注我~ 這是Yasin的第 89 篇原創(chuàng)文章 最近隨著Chat GPT的大火,AI繪畫也火了起來。尤其是midjourney(以下簡稱mj),能夠通過文本生成AI圖片,還能指定各種風(fēng)格,簡直是我們這種又菜又愛玩的福音。 下面是我用mj隨便畫的一些圖: mj上手

    2023年04月22日
    瀏覽(19)
  • AI繪畫Stable Diffusion進(jìn)階使用

    AI繪畫Stable Diffusion進(jìn)階使用

    本文講解,模型底模,VAE美化模型,Lora模型,hypernetwork。 文本Stable Diffusion 簡稱sd 歡迎關(guān)注 C站:https://civitai.com/ huggingface:https://huggingface.co/models?pipeline_tag=text-to-image stable diffusion webui 部署完成后,checkpoint是放底模 homewebuimodels 目錄下 常見模式:后綴ckpt/safetensors 常見大小

    2024年01月22日
    瀏覽(25)
  • AI繪畫(Stable Diffusion WBUI)

    AI繪畫(Stable Diffusion WBUI)

    一介紹使用的軟件和大致原理 Stable Diffusion WBUI:Stable Diffusion WBUI是一種基于網(wǎng)絡(luò)的應(yīng)用程序,可以輕松地在任何現(xiàn)代Web瀏覽器中運(yùn)行。它是Stable Diffusion軟件的一個插件,旨在為用戶提供更方便、更易于使用的界面來模擬和分析。 上面是該應(yīng)用程序,通過訪問http://127.0.0.1:786

    2024年02月09日
    瀏覽(34)
  • AI繪畫Stable Diffusion技巧分享

    AI繪畫Stable Diffusion技巧分享

    Prompt運(yùn)用規(guī)則及技巧 AI繪畫Stable Diffusion技巧分享資源: 1. https://publicprompts.art/(最適用于OpenArt 線上模型 https://openart.ai/) 2. https://docs.qq.com/doc/DWFdSTHJtQWRzYk9k(轉(zhuǎn)自元素法典,含各類風(fēng)格用詞) 3. https://www.ptsearch.info/home/(實(shí)例查詢) 4. http://prompttool.com/NovelAI(體驗(yàn)還不錯)

    2024年02月02日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包