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

深入淺出講解Stable Diffusion原理,新手也能看明白

這篇具有很好參考價(jià)值的文章主要介紹了深入淺出講解Stable Diffusion原理,新手也能看明白。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

說(shuō)明

最近一段時(shí)間對(duì)多模態(tài)很感興趣,尤其是Stable Diffusion,安裝了環(huán)境,圓了自己藝術(shù)家的夢(mèng)想。看了這方面的一些論文,也給人講過(guò)一些這方面的原理,寫了一些文章,具體可以參考我的文章:

北方的郎:圖文匹配:Clip模型介紹

北方的郎:VQGAN(Vector Quantized Generative Adversarial Network)模型簡(jiǎn)介

北方的郎:當(dāng)倚天劍遇到屠龍刀 VQGAN-CLIP 介紹

不知道看文章的人怎么看,聽(tīng)我講的人經(jīng)常反應(yīng)的就是聽(tīng)不明白。于是我又在網(wǎng)上找了一下,發(fā)現(xiàn)這篇文章講的很好,算得上是深入淺出,可惜是英文的,就把它翻譯了一下:

https://stable-diffusion-art.com/how-stable-diffusion-work/

在翻譯的過(guò)程中,我增加了自己的一些東西,調(diào)整了一些內(nèi)容。

Stable Diffusion如何工作?

Stable Diffusion是一種深度學(xué)習(xí)模型。我們將深入探討Stable Diffusion是如何工作的。你為什么需要知道這部分內(nèi)容?除了它本身就是一個(gè)引人入勝的主題之外,對(duì)內(nèi)在機(jī)制的一些理解將使您成為更好的藝術(shù)家。您可以正確使用該工具以獲得更高精度的結(jié)果。文本到圖像(text-to-image)與圖像到圖像(image-to-image)有何不同?什么是CFG價(jià)值?什么是降噪強(qiáng)度?您將在本文中找到答案。

Stable Diffusion能做什么?

在最簡(jiǎn)單的形式中,Stable Diffusion是一種文本到圖像模式。給它一個(gè)文本提示(Text Prompt)。?它將返回與文本匹配的圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白

Stable Diffusion將文本提示轉(zhuǎn)換為圖像。

擴(kuò)散模型(Diffusion model)

Stable Diffusion屬于一類稱為擴(kuò)散模型(diffusion model)的深度學(xué)習(xí)模型。它們是生成模型,這意味著它們的目的是生成類似于它們訓(xùn)練數(shù)據(jù)的新數(shù)據(jù)。對(duì)于Stable Diffusion來(lái)說(shuō),數(shù)據(jù)就是圖像。
為什么叫擴(kuò)散模型?因?yàn)樗臄?shù)學(xué)看起來(lái)很像物理學(xué)中的擴(kuò)散。讓我們來(lái)解釋這個(gè)理念。假設(shè)我訓(xùn)練了一個(gè)只有兩種圖像的擴(kuò)散模型:貓和狗。在下圖中,左邊的兩個(gè)山峰代表貓和狗這兩組圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白

前向擴(kuò)散將照片變成噪點(diǎn)。(圖修改自本文)

前向擴(kuò)散(Forward diffusion)

前向擴(kuò)散過(guò)程將噪聲添加到訓(xùn)練圖像中,逐漸將其轉(zhuǎn)換為沒(méi)有特點(diǎn)的噪聲圖像。前向過(guò)程會(huì)將任何貓或狗的圖像變成噪聲圖像。最終,您將無(wú)法分辨它們最初是狗還是貓。就像一滴墨水掉進(jìn)了一杯水里。墨滴在水中擴(kuò)散。幾分鐘后,它會(huì)隨機(jī)分布在整個(gè)水中。你再也分不清它最初是落在中心還是邊緣附近。
下面是一個(gè)進(jìn)行前向擴(kuò)散的圖像示例。貓的圖像變成隨機(jī)噪音。

深入淺出講解Stable Diffusion原理,新手也能看明白

貓圖像的前向擴(kuò)散。

反向/逆向擴(kuò)散(Reverse diffusion)

現(xiàn)在是令人興奮的部分。如果我們能逆轉(zhuǎn)擴(kuò)散呢?就像向后播放視頻一樣。時(shí)光倒流。我們將看到墨滴最初添加的位置。

深入淺出講解Stable Diffusion原理,新手也能看明白

反向擴(kuò)散過(guò)程恢復(fù)圖像。

從嘈雜、無(wú)意義的圖像開(kāi)始,反向擴(kuò)散恢復(fù)了貓或狗的圖像。這是主要思想。從技術(shù)上講,每個(gè)擴(kuò)散過(guò)程都有兩部分:(1)漂移或定向運(yùn)動(dòng)和(2)隨機(jī)運(yùn)動(dòng)。反向擴(kuò)散向貓或狗的圖像漂移,但兩者之間沒(méi)有任何變化。這就是為什么結(jié)果可以是貓或狗。

如何進(jìn)行訓(xùn)練


反向擴(kuò)散的想法無(wú)疑是聰明而優(yōu)雅的。但重要的問(wèn)題是,“怎么能做到呢?為了反向擴(kuò)散,我們需要知道圖像中添加了多少噪聲。答案是教神經(jīng)網(wǎng)絡(luò)模型來(lái)預(yù)測(cè)增加的噪聲。它被稱為Stable Diffusion中的噪聲預(yù)測(cè)因子(noise predictor)。這是一個(gè)U-Net模型。培訓(xùn)如下。

  1. 選擇一個(gè)訓(xùn)練圖像,例如貓的照片。
  2. 生成隨機(jī)噪聲圖像。
  3. 通過(guò)將此噪聲圖像添加到一定數(shù)量的步驟來(lái)?yè)p壞訓(xùn)練圖像。
  4. 訓(xùn)練噪聲預(yù)測(cè)器告訴我們添加了多少噪聲。這是通過(guò)調(diào)整其權(quán)重并向其顯示正確答案來(lái)完成的。

深入淺出講解Stable Diffusion原理,新手也能看明白

噪聲在每一步按順序添加。噪聲預(yù)測(cè)器估計(jì)每個(gè)步驟的總噪聲加起來(lái)。

訓(xùn)練后,我們有一個(gè)噪聲預(yù)測(cè)器,能夠估計(jì)添加到圖像中的噪聲。

反向/逆向擴(kuò)散(Reverse diffusion)

現(xiàn)在我們有了噪聲預(yù)測(cè)器。要如何使用呢?
我們首先生成一個(gè)完全隨機(jī)的圖像,并要求噪聲預(yù)測(cè)器告訴我們?cè)肼?/strong>。然后,我們從原始圖像中減去這個(gè)估計(jì)的噪聲。重復(fù)此過(guò)程幾次。你會(huì)得到一只貓或一只狗的圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白

反向擴(kuò)散的工作原理是從圖像中連續(xù)減去預(yù)測(cè)的噪聲。

您可能會(huì)注意到我們無(wú)法控制生成貓或狗的圖像。當(dāng)我們談?wù)摋l件反射時(shí),我們將解決這個(gè)問(wèn)題。目前,圖像生成是無(wú)條件的

譯者:大家可以結(jié)合這張WebUi的界面看后面的內(nèi)容,其實(shí)后面的內(nèi)容很好的解釋了這些參數(shù)的用途。

深入淺出講解Stable Diffusion原理,新手也能看明白

Stable Diffusion Model


現(xiàn)在我需要告訴你一些壞消息:我們剛才談?wù)摰牟皇荢table Diffusion的工作原理!原因是上述擴(kuò)散過(guò)程是在圖像空間中。它在計(jì)算上非常非常慢。?您甚至無(wú)法在任何單個(gè)GPU上運(yùn)行,更不用說(shuō)筆記本電腦上蹩腳的GPU了。

圖像空間是巨大的。想一想:具有三個(gè)顏色通道(紅色、綠色和藍(lán)色)的 512×512 圖像是一個(gè) 786,432 維的空間!

像谷歌的Imagen和Open AI的DALL-E這樣的擴(kuò)散模型都在像素空間中。他們使用了一些技巧來(lái)使模型更快,但仍然不夠。

潛在擴(kuò)散模型(Latent diffusion model)


Stable Diffusion旨在解決速度問(wèn)題。方法如下:
Stable Diffusion是一種在潛在空間擴(kuò)散(latent diffusion)的模型。它不是在高維圖像空間中操作,而是首先將圖像壓縮到潛空間(latent space)中。對(duì)比原像素空間,潛空間(latent space)小了 48 倍,因此它獲得了處理更少數(shù)字的好處,這就是為什么它要快得多。

變分自編碼器(Variational Autoencoder)


Stable Diffusion使用一種稱為變分自編碼器(Variational Autoencoder)的技術(shù)來(lái)實(shí)現(xiàn)圖像潛空間壓縮。這正是我們?cè)谑褂肧table Diffusion時(shí)設(shè)置的VAE文件的內(nèi)容,我稍后會(huì)詳細(xì)說(shuō)明。

變分自編碼器(VAE:Variational Autoencoder)神經(jīng)網(wǎng)絡(luò)由兩部分組成:(1)編碼器和(2)解碼器。編碼器將圖像壓縮為潛在空間中的低維表示。解碼器從潛在空間恢復(fù)圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白

Variational autoencoder transforms the image to and from the latent space.

Stable Diffusion模型的潛空間為4x64x64,比圖像像素空間小48倍。我們談到的所有正向和反向擴(kuò)散實(shí)際上是在潛在空間中完成的。

因此,在訓(xùn)練過(guò)程中,它不會(huì)生成噪聲圖像,而是在潛在空間中生成隨機(jī)張量(潛在噪聲)。它不是用噪聲破壞圖像,而是用潛在噪聲破壞圖像在潛在空間中的表示。這樣做的原因是它的速度要快得多,因?yàn)闈撛诳臻g更小。

圖像分辨率(Image resolution)

圖像分辨率反映在潛在圖像張量的大小上。潛在圖像的大小僅為 4x64x64,僅適用于 512×512 圖像。對(duì)于 4×96 的縱向圖像,它是 64x768x512。這就是為什么生成更大的圖像需要更多的VRAM的原因。


由于Stable Diffusion v1 在 512×512 圖像上進(jìn)行了微調(diào),因此生成大于 512×512 的圖像可能會(huì)導(dǎo)致重復(fù)對(duì)象,例如臭名昭著的兩個(gè)頭部。如果必須,請(qǐng)將至少一側(cè)保持在 512 像素,并使用?AI 升頻器(AI upscaler)以獲得更高的分辨率。

為什么潛在空間是可能的?


您可能想知道為什么VAE可以將圖像壓縮到更小的潛在空間而不會(huì)丟失信息。原因是,自然圖像不是隨機(jī)的。它們具有很高的規(guī)律性:面部遵循眼睛、鼻子、臉頰和嘴巴之間的特定空間關(guān)系。狗有 4 條腿,是一種特殊的形狀。


換句話說(shuō),圖像的高維性是偽影。自然圖像可以很容易地壓縮到更小的潛在空間中,而不會(huì)丟失任何信息。這在機(jī)器學(xué)習(xí)中被稱為流形假設(shè)(manifold hypothesis)。

潛空間中的反向擴(kuò)散


以下是Stable Diffusion中潛在反向擴(kuò)散的工作原理。

  1. 生成隨機(jī)潛在空間矩陣。
  2. 噪聲預(yù)測(cè)器估計(jì)潛在矩陣的噪聲。
  3. 然后從原始潛空間矩陣中減去估計(jì)的噪聲。
  4. 重復(fù)步驟 2 和 3 直至特定采樣步驟。
  5. VAE的解碼器將潛空間矩陣轉(zhuǎn)換為最終圖像。

什么是VAE文件?


VAE文件在Stable Diffusion v1中使用,以改善眼睛和面部的繪畫效果。它們是我們剛剛談到的自編碼器的解碼器。通過(guò)進(jìn)一步微調(diào)解碼器,模型可以繪制更精細(xì)的細(xì)節(jié)。


你可能會(huì)意識(shí)到我之前提到的一處內(nèi)容并不完全正確。將圖像壓縮到潛在空間中確實(shí)會(huì)丟失信息,因?yàn)樵糣AE無(wú)法恢復(fù)精細(xì)細(xì)節(jié)。相反,VAE解碼器負(fù)責(zé)在解碼的時(shí)候繪制精細(xì)的細(xì)節(jié)。

條件(Conditioning)


前面的說(shuō)明仍然不完整,缺了最重要的一塊拼圖:文本提示(text prompt)在哪里注入到圖片?沒(méi)有這部分內(nèi)容,Stable Diffusion就不是文本到圖像(text-to-image)模型。你會(huì)隨機(jī)得到一只貓或一只狗的圖像,但你沒(méi)法控制Stable Diffusion為你生成貓或者狗的圖像。
這就是條件(conditioning)的用武之地。條件的目的是引導(dǎo)噪聲預(yù)測(cè)器,以便預(yù)測(cè)的噪聲在從圖像中減去后會(huì)給出我們想要的東西。

文本條件(Text conditioning)


下面概述了如何處理文本提示(Text Prompt并將其輸入噪聲預(yù)測(cè)器。分詞器(Tokenizer首先將提示中的每個(gè)單詞轉(zhuǎn)換為稱為標(biāo)記(token的數(shù)字。然后將每個(gè)標(biāo)記轉(zhuǎn)換為稱為Embedding的 768 值向量。(是的,這與您在Web UI中使用的Embedding相同)然后,Embedding由文本轉(zhuǎn)換器處理,并準(zhǔn)備好供噪聲預(yù)測(cè)器使用。

深入淺出講解Stable Diffusion原理,新手也能看明白

如何處理文本提示并將其饋送到噪聲預(yù)測(cè)器中以引導(dǎo)圖像生成。

現(xiàn)在讓我們仔細(xì)看看每個(gè)部分的詳細(xì)內(nèi)容。如果上述概述對(duì)您來(lái)說(shuō)已經(jīng)夠了,您可以跳到下一部分。

分詞器(tokenizer)

深入淺出講解Stable Diffusion原理,新手也能看明白

分詞器。


文本提示首先由?CLIP 標(biāo)記器進(jìn)行標(biāo)記化。CLIP是由Open AI開(kāi)發(fā)的深度學(xué)習(xí)模型,用于生成任何圖像的文本描述。Stable Diffusion v1使用CLIP的分詞器。


令牌化(Tokenization)是計(jì)算機(jī)理解單詞的方式。我們?nèi)祟惪梢蚤喿x單詞,但計(jì)算機(jī)只能讀取數(shù)字。這就是為什么文本提示中的單詞首先轉(zhuǎn)換為數(shù)字的原因。

分詞器只能對(duì)它在訓(xùn)練期間看到的單詞進(jìn)行分詞。例如,CLIP 模型中有“dream”和“beach”,但沒(méi)有“dreambeach”。Tokenizer將“dreambeach”這個(gè)詞分解為兩個(gè)標(biāo)記“dream”和“beach”。所以一個(gè)詞并不總是意味著一個(gè)令牌!

另一個(gè)細(xì)則是空格字符也是令牌(token)的一部分。在上述情況下,短語(yǔ)“dream beach”產(chǎn)生兩個(gè)標(biāo)記“dream ”和“[空格]beach”。這些token與“dreambeach”產(chǎn)生的token不同,“dream beach”是“dream”和“beach”(beach前沒(méi)有空格)。
Stable Diffusion模型僅限于在提示中使用 75 個(gè)令牌。(現(xiàn)在你知道它和75個(gè)字不一樣了!)

嵌入/標(biāo)簽(Embedding)

深入淺出講解Stable Diffusion原理,新手也能看明白

嵌入。


Stable Diffusion v1 使用 Open AI 的?ViT-L/14?剪輯模型。嵌入是一個(gè) 768 個(gè)值的向量。每個(gè)令牌都有自己唯一的嵌入向量。嵌入由 CLIP 模型固定,該模型是在訓(xùn)練期間學(xué)習(xí)的。


為什么我們需要嵌入(Embedding)?這是因?yàn)橛行┰~彼此密切相關(guān)。我們希望利用這些信息。例如,mangentleman?和?guy?的嵌入幾乎相同,因?yàn)樗鼈兛梢曰Q使用。莫奈、馬奈和德加都以印象派風(fēng)格作畫,但方式不同。這些名稱具有接近但不相同的嵌入。


這與我們討論的用于觸發(fā)帶有關(guān)鍵字的樣式的嵌入相同。嵌入可以產(chǎn)生魔力??茖W(xué)家們已經(jīng)證明,找到合適的嵌入可以觸發(fā)任意的對(duì)象和樣式,這是一種稱為文本反轉(zhuǎn)的微調(diào)技術(shù)。

將嵌入(embeddings)饋送到噪聲預(yù)測(cè)器(noise predictor)

深入淺出講解Stable Diffusion原理,新手也能看明白

從嵌入到噪聲預(yù)測(cè)器。


在饋入噪聲預(yù)測(cè)器之前,文本轉(zhuǎn)換器需要進(jìn)一步處理嵌入。變壓器就像一個(gè)用于調(diào)節(jié)的通用適配器。在這種情況下,它的輸入是文本嵌入向量,但它也可以是其他東西,如類標(biāo)簽、圖像和深度圖。轉(zhuǎn)換器不僅進(jìn)一步處理數(shù)據(jù),而且還提供了一種包含不同調(diào)節(jié)模式的機(jī)制

交叉注意力機(jī)制(Cross-attention)

文本轉(zhuǎn)換器的輸出由整個(gè) U-Net 中的噪聲預(yù)測(cè)器多次使用。U-Net通過(guò)交叉注意力機(jī)制消耗它。這就是提示與圖像相遇的地方。


讓我們以提示“藍(lán)眼睛的男人”為例。Stable Diffusion將“藍(lán)色”和“眼睛”這兩個(gè)詞配對(duì)在一起(提示中的自注意力機(jī)制),這樣它就會(huì)生成一個(gè)藍(lán)眼睛的男人,而不是一個(gè)藍(lán)襯衫的男人。然后,它使用這些信息將反向擴(kuò)散引導(dǎo)到包含藍(lán)眼睛的圖像。(提示/prompt和圖像/image之間的交叉注意力機(jī)制)


旁注:

Hypernetwork是一種微調(diào)Stable Diffusion的技術(shù),它通過(guò)干預(yù)交叉注意力網(wǎng)絡(luò)來(lái)插入樣式。

LoRA 模型修改交叉注意力模塊的權(quán)重以更改樣式。僅修改此模塊就可以微調(diào) Stabe Diffusion模型這一事實(shí)說(shuō)明了該模塊的重要性。

ControlNet 通過(guò)檢測(cè)到的輪廓、人體姿勢(shì)等來(lái)調(diào)節(jié)噪聲預(yù)測(cè)器,并實(shí)現(xiàn)對(duì)圖像生成的出色控制。

Stable Diffusion Step-by-Step

文本到圖像(Text-to-image)


在文本到圖像中,您向Stable Diffusion提供文本提示(prompt),它會(huì)返回一個(gè)圖像。


第 1 步。Stable Diffusion在潛空間中生成隨機(jī)張量。您可以通過(guò)設(shè)置隨機(jī)數(shù)生成器的種子來(lái)控制此張量。如果將種子設(shè)置為某個(gè)值,您將始終獲得相同的隨機(jī)張量。這是你在潛在空間中的圖像。但現(xiàn)在都是噪音。

深入淺出講解Stable Diffusion原理,新手也能看明白

隨機(jī)張量在潛在空間中生成。


第 2 步。噪聲預(yù)測(cè)器 U-Net 將潛在噪聲圖像和文本提示作為輸入,并預(yù)測(cè)噪聲,也在潛在空間(4x64x64 張量)中。

深入淺出講解Stable Diffusion原理,新手也能看明白


第 3 步。從潛在圖像中減去潛在噪聲。這將成為您的新潛在圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白


步驟 2 和 3 重復(fù)一定數(shù)量的采樣步驟,例如 20 次。
第 4 步。最后,VAE的解碼器將潛在圖像轉(zhuǎn)換回像素空間。這是運(yùn)行Stable Diffusion后獲得的圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白


下面介紹了如何在每個(gè)采樣步驟中對(duì)映像演變進(jìn)行成像。

每個(gè)采樣步驟的圖像。


噪音時(shí)間表(Noise schedule)

圖像從嘈雜變?yōu)楦蓛簟D欠裣胫涝肼曨A(yù)測(cè)器在初始步驟中是否運(yùn)行良好?實(shí)際上,這只是部分原因。真正的原因是我們?cè)噲D在每個(gè)采樣步驟中獲得預(yù)期的噪聲。這稱為噪聲時(shí)間表。下面是一個(gè)示例。

深入淺出講解Stable Diffusion原理,新手也能看明白

15 個(gè)采樣步驟的噪聲計(jì)劃。



噪音時(shí)間表是我們定義的。我們可以選擇在每一步減去相同數(shù)量的噪聲?;蛘呶覀兛梢栽陂_(kāi)始時(shí)減去更多,就像上面一樣。采樣器在每個(gè)步驟中減去足夠的噪聲,以達(dá)到下一步中的預(yù)期噪聲。這就是您在step-by-step圖像中看到的內(nèi)容。

圖像到圖像(Image-to-image)


圖像到圖像是SDEdit方法中首次提出的一種方法。SDEdit可以應(yīng)用于任何擴(kuò)散模型。所以我們有Stable Diffusion的圖像到圖像的功能。
輸入圖像和文本提示作為圖像到圖像的輸入提供。生成的圖像將由輸入圖像和文本提示調(diào)節(jié)。例如,使用這幅素人畫和提示“photo of perfect green apple with stem, water droplets, dramatic lighting”作為輸入,圖像到圖像可以將其變成專業(yè)繪圖:

深入淺出講解Stable Diffusion原理,新手也能看明白

圖像到圖像

現(xiàn)在這是分步介紹:
第 1 步。輸入圖像被編碼為潛在空間。

深入淺出講解Stable Diffusion原理,新手也能看明白


第 2 步。噪點(diǎn)被添加到潛在圖像中。降噪強(qiáng)度控制添加的噪聲量。如果為 0,則不添加噪聲。如果為 1,則添加最大噪聲量,以便潛在圖像成為完整的隨機(jī)張量。

深入淺出講解Stable Diffusion原理,新手也能看明白

第 3 步。噪聲預(yù)測(cè)器 U-Net 將潛在噪聲圖像和文本提示作為輸入,并預(yù)測(cè)潛在空間(4x64x64 張量)中的噪聲。

深入淺出講解Stable Diffusion原理,新手也能看明白


第 4 步。從潛在圖像中減去潛在噪聲。這將成為您的新潛在圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白


步驟 3 和 4 重復(fù)一定數(shù)量的采樣步驟,例如 20 次。
第5步。最后,VAE的解碼器將潛在圖像轉(zhuǎn)換回像素空間。這是運(yùn)行映像到映像后獲得的圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白


所以現(xiàn)在你知道什么是圖像到圖像:它所做的只是設(shè)置帶有一點(diǎn)噪聲和一點(diǎn)輸入圖像的初始潛在圖像。將去噪強(qiáng)度設(shè)置為 1 等效于文本到圖像,因?yàn)槌跏紳撛趫D像完全是隨機(jī)噪聲。

修復(fù)(Inpainting)


修復(fù)實(shí)際上只是圖像到圖像的一個(gè)特殊情況。雜色將添加到要上色的圖像部分。噪聲量同樣由降噪強(qiáng)度控制。

Depth-to-image


Depth-to-image是對(duì)圖像到圖像的增強(qiáng);它使用深度圖生成具有附加條件的新圖像。
第 1 步。輸入圖像被編碼為潛在狀態(tài)

深入淺出講解Stable Diffusion原理,新手也能看明白


第 2 步。MiDaS(AI深度模型)估計(jì)輸入圖像的深度圖。

深入淺出講解Stable Diffusion原理,新手也能看明白


第 3 步。噪點(diǎn)被添加到潛在圖像中。降噪強(qiáng)度控制添加的噪聲量。如果降噪強(qiáng)度為 0,則不添加噪聲。如果去噪強(qiáng)度為 1,則添加最大噪聲,使?jié)撛趫D像成為隨機(jī)張量。

深入淺出講解Stable Diffusion原理,新手也能看明白

第 4 步。噪聲預(yù)測(cè)器估計(jì)潛在空間的噪聲,由文本提示和深度圖調(diào)節(jié)。

深入淺出講解Stable Diffusion原理,新手也能看明白


?5. 從潛在圖像中減去潛在噪聲。這將成為您的新潛在圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白


對(duì)采樣步驟數(shù)重復(fù)步驟 4 和 5。
第 6 步。VAE的解碼器對(duì)潛在圖像進(jìn)行解碼?,F(xiàn)在,您可以獲得從深度到圖像的最終圖像。

深入淺出講解Stable Diffusion原理,新手也能看明白

什么是CFG值?


如果不解釋無(wú)分類器引導(dǎo)(Classifier-Free Guidance,CFG),這篇文章將是不完整的,這是AI藝術(shù)家每天調(diào)來(lái)調(diào)去的值。要了解它是什么,我們需要首先觸及它的前身,分類器引導(dǎo)(Classifier Guidance)。

分類器引導(dǎo)(Classifier Guidance)

分類器引導(dǎo)是一種在擴(kuò)散模型中合并圖像標(biāo)簽的方法。您可以使用標(biāo)簽來(lái)指導(dǎo)擴(kuò)散過(guò)程。例如,標(biāo)簽“貓”引導(dǎo)反向擴(kuò)散過(guò)程生成貓的照片。


分類器指導(dǎo)強(qiáng)度(classifier guidance scale)是用于控制擴(kuò)散過(guò)程應(yīng)與標(biāo)簽保持多近的參數(shù)。


假設(shè)有 3 組帶有標(biāo)簽“貓”、“狗”和“人類”的圖像。如果擴(kuò)散是無(wú)指導(dǎo)的,模型將從每個(gè)組的總數(shù)據(jù)中(譯者:我覺(jué)得這里應(yīng)該有“均勻”的意思)提取樣本,但有時(shí)它可能會(huì)繪制適合兩個(gè)標(biāo)簽的圖像,例如男孩撫摸狗。

深入淺出講解Stable Diffusion原理,新手也能看明白

分類器指南。左:無(wú)指導(dǎo)。中:小引導(dǎo)尺度。右:大引導(dǎo)比例尺。


高分類器指導(dǎo)下,擴(kuò)散模型生成的圖像將偏向極端或明確的例子。如果你向模型詢問(wèn)一只貓,它將返回一個(gè)明確的貓的圖像,沒(méi)有別的。
分類器指導(dǎo)強(qiáng)度(classifier guidance scale)控制遵循指導(dǎo)(guidance)的緊密程度。在上圖中,右側(cè)的采樣具有比中間的分類器指導(dǎo)量表更高的分類器指導(dǎo)量表。實(shí)際上,此刻度值只是具有該標(biāo)簽的數(shù)據(jù)的漂移項(xiàng)的乘數(shù)。

無(wú)分類器指導(dǎo)(Classifier-free guidance)

盡管分類器指導(dǎo)實(shí)現(xiàn)了破紀(jì)錄的性能,但它需要一個(gè)額外的模型來(lái)提供該指導(dǎo)。這給培訓(xùn)帶來(lái)了一些困難。
用作者的話來(lái)說(shuō),無(wú)分類器指導(dǎo)是一種實(shí)現(xiàn)“沒(méi)有分類器的分類器指導(dǎo)”的方法。他們沒(méi)有使用類標(biāo)簽和單獨(dú)的模型作為指導(dǎo),而是建議使用圖像標(biāo)題并訓(xùn)練一個(gè)條件擴(kuò)散模型,就像我們?cè)谖谋镜綀D像中討論的那樣。
他們將分類器部分作為噪聲預(yù)測(cè)器U-Net的條件,在圖像生成中實(shí)現(xiàn)所謂的“無(wú)分類器”(即沒(méi)有單獨(dú)的圖像分類器)指導(dǎo)。
文本提示以文本到圖像的形式提供此指導(dǎo)。

CFG 值


現(xiàn)在我們通過(guò)條件反射有一個(gè)無(wú)分類器的擴(kuò)散過(guò)程,我們?nèi)绾慰刂茟?yīng)該遵循多少指導(dǎo)?
無(wú)分類器引導(dǎo) (CFG) 刻度是一個(gè)值,用于控制文本提示對(duì)擴(kuò)散過(guò)程的調(diào)節(jié)程度。當(dāng)圖像生成設(shè)置為 0 時(shí),圖像生成是無(wú)條件的(即忽略提示)。較高的值將擴(kuò)散引導(dǎo)向提示。

Stable Diffusion v1 與 v2


這已經(jīng)是一篇很長(zhǎng)的文章,但如果不比較 v1 和?v2?模型之間的差異,它就不完整。

模型差異(Model difference)


Stable Diffusion v2 使用?OpenClip?進(jìn)行文本嵌入。Stable Diffusion v1使用Open AI的CLIP?ViT-L/14進(jìn)行文本嵌入。此更改的原因是:

  • OpenClip 的規(guī)模擴(kuò)大了五倍。較大的文本編碼器模型可提高圖像質(zhì)量。
  • 盡管Open AI的CLIP模型是開(kāi)源的,但這些模型是使用專有數(shù)據(jù)訓(xùn)練的。切換到 OpenClip 模型使研究人員在研究和優(yōu)化模型時(shí)更加透明。更有利于長(zhǎng)遠(yuǎn)發(fā)展。

訓(xùn)練數(shù)據(jù)差異(Training data difference)


Stable Diffusion v1.4?訓(xùn)練使用

  • 在?laion237B-en?數(shù)據(jù)集上以分辨率 256×256 執(zhí)行 2k 步。
  • 高分辨率分辨率?194×512 的 512k 步長(zhǎng)。
  • 在“l(fā)aion-aesthetics v225 512+”上以 512×2 處執(zhí)行 5k 步,
    文本條件下降 10%。


Stable Diffusion v2?訓(xùn)練

  • 在?LAION-550B?子集的分辨率下以 5k 步長(zhǎng)過(guò)濾露骨的色情材料,使用?LAION-NSFW 分類器和美學(xué)分?jǐn)?shù)?>= 。256x256punsafe=0.14.5
  • 在具有分辨率的圖像上,在同一數(shù)據(jù)集上的分辨率下以 850k 步長(zhǎng)。512x512>= 512x512
  • 在同一數(shù)據(jù)集上使用?v 目標(biāo)的 150k 步。
  • 在圖像上恢復(fù)了另外 140k 步。768x768

Stable Diffusion?v2.1 在 v2.0?上進(jìn)行了微調(diào)

  • 同一數(shù)據(jù)集上的額外 55k 步驟(使用punsafe=0.1)
  • 另外 155k 額外步驟punsafe=0.98

所以基本上,他們?cè)?strong>最后的訓(xùn)練步驟中關(guān)閉了NSFW過(guò)濾器。

結(jié)果差異(Outcome difference)


用戶通常發(fā)現(xiàn)使用Stable Diffusion v2 來(lái)控制風(fēng)格和生成名人更難。雖然穩(wěn)定性 AI 沒(méi)有明確過(guò)濾掉藝術(shù)家和名人的名字,但它們的效果在 v2 中要弱得多。這可能是由于訓(xùn)練數(shù)據(jù)的差異。Open AI的專有數(shù)據(jù)可能有更多的藝術(shù)品和名人照片。他們的數(shù)據(jù)可能經(jīng)過(guò)高度過(guò)濾,因此所有內(nèi)容和每個(gè)人都看起來(lái)很好,很漂亮。

一些有趣的內(nèi)容

  • Stable Diffusion v1.4 press release
  • Stable Diffusion v2 press release
  • Stable Diffusion v2.1 press release
  • High-Resolution Image Synthesis with Latent Diffusion Models?– research paper introducing Stable Diffusion
  • The Illustrated Stable Diffusion?– Some good details in model architecture
  • Stable Diffusion 2?– Official model page
  • Diffusion Models Beat GANs on Image Synthesis?– Research paper introducing classifier guidance
  • Classifier-Free Diffusion Guidance?– Research paper introducing classifier-free guidance
  • Deep Unsupervised Learning using Nonequilibrium Thermodynamics?– Reverse diffusion process

感覺(jué)有幫助的朋友,歡迎贊同、關(guān)注、分享三連。^-^文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481388.html

到了這里,關(guān)于深入淺出講解Stable Diffusion原理,新手也能看明白的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 糟了糟了,總部被SD畫完都Q了,這篇深入淺出貼助你早日實(shí)現(xiàn)Stable Diffusion自由

    糟了糟了,總部被SD畫完都Q了,這篇深入淺出貼助你早日實(shí)現(xiàn)Stable Diffusion自由

    我也不想標(biāo)題黨,可樂(lè)高積木版的總部大樓就是好萌??! 我是憨憨,一個(gè)不會(huì)畫畫的設(shè)計(jì)師。過(guò)去半年里,AI繪畫曾經(jīng)多次引爆公眾討論,網(wǎng)絡(luò)上那些精致的二次元同人插畫、堪比真人的AI穿搭博主、打破次元壁的賽博Coser……背后都有一個(gè)“幕后黑手” —— Stable Diffusion,其

    2024年02月12日
    瀏覽(22)
  • 【知識(shí)圖譜】深入淺出講解知識(shí)圖譜(技術(shù)、構(gòu)建、應(yīng)用)

    【知識(shí)圖譜】深入淺出講解知識(shí)圖譜(技術(shù)、構(gòu)建、應(yīng)用)

    本文收錄于《深入淺出講解自然語(yǔ)言處理》專欄,此專欄聚焦于自然語(yǔ)言處理領(lǐng)域的各大經(jīng)典算法,將持續(xù)更新,歡迎大家訂閱! 個(gè)人主頁(yè):有夢(mèng)想的程序星空 個(gè)人介紹:小編是人工智能領(lǐng)域碩士,全棧工程師,深耕Flask后端開(kāi)發(fā)、數(shù)據(jù)挖掘、NLP、Android開(kāi)發(fā)、自動(dòng)化等領(lǐng)域

    2023年04月08日
    瀏覽(64)
  • 【實(shí)體識(shí)別】深入淺出講解命名實(shí)體識(shí)別(介紹、常用算法)

    【實(shí)體識(shí)別】深入淺出講解命名實(shí)體識(shí)別(介紹、常用算法)

    本文收錄于《深入淺出講解自然語(yǔ)言處理》專欄,此專欄聚焦于自然語(yǔ)言處理領(lǐng)域的各大經(jīng)典算法,將持續(xù)更新,歡迎大家訂閱! 個(gè)人主頁(yè):有夢(mèng)想的程序星空 個(gè)人介紹:小編是人工智能領(lǐng)域碩士,全棧工程師,深耕Flask后端開(kāi)發(fā)、數(shù)據(jù)挖掘、NLP、Android開(kāi)發(fā)、自動(dòng)化等領(lǐng)域

    2023年04月08日
    瀏覽(48)
  • 論文解讀:Bert原理深入淺出

    摘取于https://www.jianshu.com/p/810ca25c4502 任務(wù)1:Masked Language Model Maked LM 是為了解決單向信息問(wèn)題,現(xiàn)有的語(yǔ)言模型的問(wèn)題在于,沒(méi)有同時(shí)利用雙向信息,如 ELMO 號(hào)稱是雙向LM,但實(shí)際上是兩個(gè)單向 RNN 構(gòu)成的語(yǔ)言模型的拼接,由于時(shí)間序列的關(guān)系,RNN模型預(yù)測(cè)當(dāng)前詞只依賴前面出

    2024年02月11日
    瀏覽(21)
  • 深入淺出:Zookeeper的原理與實(shí)踐

    在當(dāng)今的信息時(shí)代,分布式系統(tǒng)的應(yīng)用越來(lái)越廣泛,而其中一個(gè)至關(guān)重要的組成部分就是Zookeeper。作為一個(gè)分布式協(xié)調(diào)服務(wù),Zookeeper在保障分布式系統(tǒng)的一致性、可靠性和可用性方面發(fā)揮著不可替代的作用。本博客旨在深入淺出地探討Zookeeper的原理與實(shí)踐,幫助讀者全面理解

    2024年04月11日
    瀏覽(27)
  • 深入淺出Java中參數(shù)傳遞的原理

    深入淺出Java中參數(shù)傳遞的原理

    今天,想和大家聊聊關(guān)于java中的參數(shù)傳遞的原理,參數(shù)的傳遞有兩種,值傳遞和引用傳遞。 值傳遞 :是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)復(fù)制一份傳遞到函數(shù)中,這樣在函數(shù)中如果對(duì)參數(shù)進(jìn)行修改,將不會(huì)影響到實(shí)際參數(shù)。 引用傳遞 :是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)的地址傳遞到

    2024年02月01日
    瀏覽(19)
  • 深入淺出——零基礎(chǔ)一文讀懂DeepSORT(原理篇)

    深入淺出——零基礎(chǔ)一文讀懂DeepSORT(原理篇)

    本文是筆者對(duì)DeepSORT算法學(xué)習(xí)的階段性總結(jié),基于筆者接觸到的所有開(kāi)源學(xué)習(xí)資料,輔以個(gè)人理解進(jìn)行重新編排而成,力求清晰,使非專業(yè)的讀者也能迅速對(duì)該算法原理有較為透徹的理解,便于后續(xù)代碼學(xué)習(xí)。 筆者本人為非cs相關(guān)專業(yè),論述不當(dāng)之處歡迎指出。文中引用的博

    2023年04月09日
    瀏覽(26)
  • 深入淺出Nginx的基本原理和配置指南「負(fù)載均衡篇」

    深入淺出Nginx的基本原理和配置指南「負(fù)載均衡篇」

    6.1 四層負(fù)載均衡 6.1.1 四層負(fù)載均衡與七層負(fù)載均衡的區(qū)別 四層負(fù)載均衡數(shù)據(jù)包是在底層就進(jìn)行了分發(fā),而七層負(fù)載均衡數(shù)據(jù)包則在最頂端進(jìn)行分發(fā),所以四層負(fù)載均衡的效率比七層負(fù)載均衡的要高。四層負(fù)載均衡不識(shí)別域名,而七層負(fù)載均衡識(shí)別域名。 6.1.2 四層負(fù)載均衡配

    2024年02月09日
    瀏覽(41)
  • 【深入淺出Spring Security(三)】默認(rèn)登錄認(rèn)證的實(shí)現(xiàn)原理

    【深入淺出Spring Security(三)】默認(rèn)登錄認(rèn)證的實(shí)現(xiàn)原理

    由默認(rèn)的 SecurityFilterChain 為例(即表單登錄),向服務(wù)器請(qǐng)求 /hello 資源Spring Security 的流程分析如下: 請(qǐng)求 /hello 接口,在引入 Spring Security 之后會(huì)先經(jīng)過(guò)一系列過(guò)濾器(一中請(qǐng)求的是 /test 接口); 在請(qǐng)求到達(dá) FilterSecurityInterceptor 時(shí),發(fā)現(xiàn)請(qǐng)求并未認(rèn)證。請(qǐng)求被攔截下來(lái),并

    2024年02月09日
    瀏覽(30)
  • 深入淺出阿里數(shù)據(jù)同步神器:Canal原理+配置+實(shí)戰(zhàn)全網(wǎng)最全解析!

    深入淺出阿里數(shù)據(jù)同步神器:Canal原理+配置+實(shí)戰(zhàn)全網(wǎng)最全解析!

    canal 翻譯為管道,主要用途是基于 MySQL 數(shù)據(jù)庫(kù)的增量日志 Binlog 解析,提供增量數(shù)據(jù)訂閱和消費(fèi)。 早期阿里巴巴因?yàn)楹贾莺兔绹?guó)雙機(jī)房部署,存在跨機(jī)房同步的業(yè)務(wù)需求,實(shí)現(xiàn)方式主要是基于業(yè)務(wù) trigger 獲取增量變更。從 2010 年開(kāi)始,業(yè)務(wù)逐步嘗試數(shù)據(jù)庫(kù)日志解析獲取增量變

    2024年02月10日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包