您當前的位置:首頁 > 繪畫

NovelAI模型各引數解析以及對應關係

作者:由 望空 發表于 繪畫時間:2022-12-19

因為最近AI繪畫比較火,但是很多人對這個裡面的引數不太瞭解,所以希望這篇文章可以對大家有所啟發。

Prompt和Negative Prompt

這兩個就是大家口中的tag和反tag,這兩個引數的作用原理其實是這樣的。

人工智慧模型在訓練時候神經網路會包含很多引數,簡單理解就是把一張圖分解為許多元素(例如一個人分解成頭髮,眼睛,嘴巴鼻子。。。。當然,實際上AI分解的非常細,以至於和人學畫畫的時候差不多)。

每個元素出現的權重(也就是繪圖時候畫出來對應元素的機率)可以由Prompt進行正向的調節。

Prompt可以作為元素權重的關鍵詞,讓AI更傾向於在繪圖中繪製和Prompt的內容相關的元素,至於傾向性有多強,這個則是由CFG Scale進行調節,當然,AI能生成什麼東西,至少這樣東西的元素在訓練集中已經有了,也就是說目前的AI還無法生成訓練集中沒有的元素,舉個例子,假如訓練集中沒有林肯,那麼即便輸入林肯的臉這樣的Prompt,也是無法讓AI繪製出林肯的臉的。

那麼很理所當然,要是想讓AI生成自己需要的圖,Prompt越詳細,就越貼合需求。

Prompt既可以使用非常詳細的描述,也能使用比較大概的描述,例如既可以提供如:紅色捲髮這樣比較詳細的描述,也可以用紅色頭髮這樣的描述。

當然,前者生成紅色捲髮的機率就較高,後者也可以生成紅色捲髮,但是機率就較低。

Negative Prompt則是和Prompt相反,是一個反向加權的權重關係,也就是減低某些元素出現的頻率,從而約束AI的行為,例如我們可能不希望AI畫出林肯的臉但是訓練集中包含了林肯,這時候在Negative Prompt中新增林肯,AI就會不傾向於畫出和林肯相關的全部元素,當然,如果是訓練集都沒有的,例如沒有花生,那麼即便添加了花生這個Negative Prompt也是沒有意義的。

Sampling method和Sampling Steps

Sampling method即取樣方法

方法是很多,但是這些方法深究其原理意義不大,然而也沒有絕對優秀的方法,即便是Euler加上一個a,或者其他方法加上一些例如fast,P,Karras什麼的,也不過是指的以原方法為基礎的改進方法,這些改進的方法往往對某方面特化了,更適合某方面的情景,這裡我們提一下,沒有一個完全通用於所有場景的最強最好最完美的演算法,只有最合適的演算法,這便是機器學習中那個沒有免費午餐的說法,或者換句話說只要效果過得去,用哪個方法都一樣。

所以

取樣方法本身並沒有絕對意義上的優劣之分,只有是否合適這一說。

取樣的目標是求解一個函式f(z)關於一個分佈p(z)的期望,當然這個對於使用它並不重要,正如我們使用螺絲刀不需要去學習扭矩,力矩等等一樣。

這裡主要提一下以下幾個方法:

尤拉方法:也就是Euler方法,是比較成熟的一種取樣方法,效果比較穩定。

但是Novelai之所以有更好的效果並不是因為尤拉方法,而是因為DDIM即生成擴散模型,也就是stable diffusion主要採用的一種取樣方法。

也就是說實際上DDIM在生成上具有優異的效果,當然,取樣方法沒有優劣之分,具有優異的效果並不意味著在任何時候用DDIM都可以取得最佳的效果,而且取樣方法的選擇對於結果的影響相對於接下來的引數較小,所以並不需要在這方面下太多功夫,隨機選,如果不盡人意就換一個,如果能行就繼續用,這樣的態度就可以了。

這裡可以提一下euler/a方法在風格轉換上,特別是現實轉圖方面效果比較穩定。當然,還有幾個方法效果同樣穩定,反而是DDIM不怎麼穩定。

LMS:這個是最小均方誤差演算法,這是一個自適應的濾波器。

Heun:這個是建立在尤拉方法基礎上的一個在給定初始條件下求解常微分方程的方法。

DPM:這是一個深度學習的PDE(偏微分方程)增強方法。

對於純生成任務,採用DDIM效果相對較好,對於轉換任務,採用euler和其改進型euler a都會有相對不錯的效果,當然,其他方法的karras改進型效果也可以,但是非改進型效果往往不盡人意。

Sampling Steps即取樣步長

首先這個不是越大越好,同樣也不是越小越好。

太小的話取樣的隨機性會很高,太大的話取樣的效率會很低,拒絕機率高(可以理解為沒有采樣到,取樣的結果被捨棄了)。

再通俗一點就是這個適當大一些的可以讓畫面內容更細緻,小的話就沒那麼細緻,但是太大也會和小的差不多,一般來說預設的20就不錯了,想要追求更好的效果也可以適當大一些,例如30也可以。

影象長寬這個沒什麼好說的,但是可以提一下,這個大一些內容會更豐富,小的話例如64*64就只能畫出半張臉或者一個眼睛。

當然,越大的就會越吃效能。

web頁面包含的三種最佳化技術

Restore faces是最佳化面部的,原理是呼叫一個神經網路模型對面部進行修復,影響面部。

Tiling是一種老牌最佳化技術,即CUDA的矩陣乘法最佳化,影響出圖速度和降低視訊記憶體消耗,不過實際選上之後可能連正常的圖都不出來了。

Highres。 fix這個也是和上面的一樣,都是一種最佳化技術,其原理是先在內部出低分辯率的圖,再放大新增細節之後再輸出出來,影響出圖的結果,可以在低取樣步長的情況下達到高取樣步長的效果,但是如果取樣步長過低(例如小於12)或者過高(例如高於100)以及長寬太小(例如小於128)效果則不盡人意,這個也有一個Denoising strength,只不過這個Denoising strength影響的只是內部的那個低分辨圖,如果只是初次生成一張圖這個可以不管,不過如果預設種子和引數一致的話這個就會對生成的圖造成影響,也就是圖會發生變化而不是原圖更為精細。

Batch count和Batch size

batch count和Batch size這個是出圖的數量。只不過是順序還是同時的區別。

關於seed以及extra的額外2個引數的作用

seed即為種子,-1的話是生成一個隨機數,這個隨機數影響畫面的內容,如果seed以及Negative Prompt和Prompt都相同,生成幾乎完全一致的圖片的機率就很高,實際上這玩意是一個神經網路在當前情況下求得的一個最優解,設定了seed就相當於手動初始了神經網路的權重引數,在配合其他相同引數的情況下能得到一個極其類似的結果,當然,只設置seed而不設定其他的引數,還是無法得到類似的結果的。

Variation seed和Variation strength這兩個則是種子的變異,在原有權重引數初始極值的基礎上再求解一次,簡單可以理解成再原有種子的構圖要素上發生一些改變,那麼Variation seed如何設定的和原有種子一致,那麼出圖也是極其類似,Variation strength這個在Variation seed和原有種子完全一致的情況下不起作用。在不一致的情況下則會影響和原圖的相似程度,如果Variation strength為0,這時候反而是Variation seed不起作用。

但是這裡我們要注意Resize seed from width和Resize seed from hight,這兩個在和原圖長寬一致時或者為0時都不會對原圖種子構成影響,但是若是不一致則會對原圖產生極大的影響,至於影響有多大?相當於Variation seed為-1和Variation strength直接調成1的情況差不多,畢竟直接從不同長寬調整了種子。

CFG Scale和Denoising strength

CFG Scale這個可以簡單理解為AI對描述引數的傾向程度。

Denoising strength則是可以簡單理解成原圖片的保留程度,其實是因為加的噪聲少,原圖片部分多,加的噪聲多,原圖片部分少,從而影響了AI的創作,越大就越不貼合原本的圖片,越小就越貼合,大小的極值則對應完全保留和完全不保留兩個極端。

0-1可以看成百分比。

當然,可能有人有疑問,作者你說這個CFG Scale是對引數的傾向程度,如果這個很高,例如我想生成一個花生,但是原圖卻是一隻貓,同時噪聲又比較小,例如CFG Scale是20,但是Denoising strength只有0。2,這個時候AI會畫出個什麼東西?實際上AI的確會無從下筆,於是生成的結果很不盡人意,這兩個引數之間就產生了矛盾。

這兩個引數內含一種對應關係,一般來說,想要保留更多的原圖片,Denoising strength小一些的時候,CFG Scale就要相對的小一些。

例如:

Denoising strength:0。1-0。2

CFG Scale:6-8

當然CFG Scale還可以更低,但是如果太低,例如1,那Prompt就完全沒用了。

想要部分保留原圖片的話,Denoising strength高一些,同時CFG Scale也可以高一些。

例如:

Denoising strength:0。2-0。5

CFG Scale:8-20

當然,如果原圖片只想取幾個風格,其他都無所謂的話,例如只想要原圖片的色彩和人物的位置,那麼Denoising strength就可以更高,同時CFG Scale也可以更高。

例如:

Denoising strength:0。5-0。75

CFG Scale:20-25

最後如果原圖片就只是想要個色彩什麼的,那麼Denoising strength就可以高於0。75,同時CFG也可以更高

Denoising strength越接近1,CFG Scale就越成為決定出圖是否符合需求的關鍵引數,當然,如果Denoising strength很大,但是CFG Scale卻很小,那麼AI生成的就越接近隨機生成。

當然,舉例的CFG Scale可以比例子更靈活,這個要看個人的需求了。

最後還不得不提一下,在選項卡中有txt2img,img2img,Extras,PNG Info,Checkpoint Merger,Textual inversion,Settings

前兩個都知道,文字轉影象,影象轉影象,而Extras則是自帶的影象放大,下面的各個模型則是影象放大的模型,Resize則是放大的倍率,PNG Info則是輸出影象的引數資訊,Checkpoint Merger這個是整合訓練的模型的,Textual inversion則是可以針對某種風格訓練模型,最後一個就沒啥好說了,所以完全可以不借助其他工具對影象高畫質放大。

結:

最近這個繪圖AI非常火,也帶來許多的爭議,但是我們始終應該要知道,AI作為一個工具,不具備人的感情,只是一種提高生產力的機器而已。

也就是說是提高勞動生產率的機器,那麼抵制這個機器本身,和抵制這個機器的非盈利使用者,實際上是沒有任何意義的,機器會導致什麼結果,關鍵在於機器的應用方式,真正需要抵制的實際上是機器這種以盈利為目的的應用方式,當然這個究竟指的是什麼想必不用多說,所以只是抵制機器本身,其結果無非就和19世紀的英國勞動的人一樣,即便砸了機器,又能怎麼樣呢?

就是這個意思了,當然機器這種提高勞動生產率的東西,在以盈利為目的的應用方式下,就必然造成對勞動的替代,誠然其也會產生新的行業,例如AI調參師,但是現在一個調參師可以相當於之前10-50個畫手,那麼被替代的畫手怎麼辦?那就只有天知道了。

最後推薦大家看看那本著名的論,會對這些事有更深刻的理解。

標簽: ai  Strength  prompt  scale  Denoising