????????Stable Diffusion環(huán)境搭建與運行請參考上一篇博文《AI圖片生成Stable Diffusion環(huán)境搭建與運行》,地址為“https://blog.csdn.net/suiyingy/article/details/128896426”。運行成功后,網頁瀏覽器顯示頁面主要包括txt2img、img2img、Extras、PNG Info、Checkpoint Merger、Train、Settings和Extensions等八個部分,下面將分別進行介紹。另外,本專欄具體更新可關注文章下方公眾號,也可關注本專欄。所有相關文章會在《Python從零開始進行AIGC大模型訓練與推理》中進行更新,地址為“https://blog.csdn.net/suiyingy/article/details/130169592”。
?圖1 Stable Diffusion生成效果圖
1 txt2img
????????txt2img是指文生圖,即根據文字描述生成圖片,其頁面如下圖所示。
?圖2 txt2img
????????完整設置示例如下:
????????Prompt:?coral full dress,((collagreen botton shirt)),(upper body),long?hair,1gir,tall,skinny,photorealistic,masterpiece,highres,8k,character concept,depth of field,perfect pupils,perfect smiles,blurry background,heart shape face, outdoors,,side light, morning,high heel,detailed clothing,ultra details,earring,((full face))
????????Negative prompt:?lowres,bad anatomy,bad hands,text,error,missing fingers,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,missing arms,long neck,Humpbacked,missing limb,too many fingers,mutated,poorly drawn,out of frame,bad hands,unclear eyes,poorly drawn,cloned face,bad face,(worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)),ng_deepnegative_v1_75t,nipples,((half face)),(( half head)),((no face)),((no head))
????????Steps: 30, Sampler: Euler, CFG scale: 9, Restore faces, Size: 512x512, Model hash: dcd690123c, Model: v2-1_768-ema-pruned.safetensors,?Seed: 4171216357,?Script: X/Y/Z plot, X Type: Steps, X Values: “10,20,30”, Y Type: Sampler, Y Values: “Euler a, Euler”。
1.1 Stable Diffusion checkpoint
????????Stable Diffusion checkpoints用于選擇當前加載的模型,模型設置與加載可參考上一篇博文《AI圖片生成Stable Diffusion環(huán)境搭建與運行》,地址為“https://blog.csdn.net/suiyingy/article/details/128896426”。用戶可根據需要在hugging face網站下載以.safetensors為后綴的模型文件。
????????這里需要注意,不同模型生成的圖片風格也會有差別,比如漫畫風格或寫實風格。除Stable Diffusion官方模型之外,程序還支持chilloutmix_Ni、anything-v4.5-pruned、dreamshaper_33、protogenV22Anime_22、artErosAerosATribute_aerosNovae和cheeseDaddys_35等模型。
????????網絡上有很多生成效果比較好的作品,如果用戶在相同prompt下得到的效果相差較大,那么很有可能是使用不同模型所導致的。
1.2 Prompt
????????Prompt是對所希望生成的圖片的文本描述,一般使用英文描述可以獲得更好的生成結果。不同文字描述內容得到的結果也是完全不一樣的,甚至大部分時候用戶需要集中精力在寫出一個合適的prompt。從另一方面來看,如果用戶設置的prompt描述不能被模型很好地理解,那么模型給出的生成結果也會嚴重偏離預期,以至于部分用戶認為模型本身出了問題或者模型效果不好。
????????如果對模型生成的圖片沒有額外要求,那么我們只需要在prompt輸入簡單的圖片描述即可,例如“為AIGC小程序RdFast設計一款商標”。但是,如果我們希望得到更好的生成圖片,prompt需遵循一定的設計規(guī)則。
????????下面的設計規(guī)則介紹來源于《AI繪畫指南 stable diffusion webui (SD webui)如何設置與使用》,地址為“https://www.tjsky.net/tutorial/488”。
????????(1)分隔:不同的關鍵詞tag之間,需要使用英文逗號,分隔,逗號前后有空格或者換行沒有影響。例如:1girl,loli,long hair,low twintails(1個女孩,loli,長發(fā),低雙馬尾)。
????????(2)混合:WebUi 使用 | 分隔多個關鍵詞,實現混合多個要素,注意混合是同等比例混合,同時混。例如: 1girl,red|blue hair, long hair(1個女孩,紅色與藍色頭發(fā)混合,長發(fā))
????????(3)增強/減弱:有兩種寫法
????????第一種 (提示詞:權重數值):數值從0.1~100,默認狀態(tài)是1,低于1就是減弱,大于1就是加強。例如: (loli:1.21),(one girl:1.21),(cat ears:1.1),(flower hairpin:0.9)。
????????第二種 (((提示詞))),每套一層()括號增強1.1倍,每套一層[]減弱1.1倍。也就是套兩層是1.1*1.1=1.21倍,套三層是1.331倍,套4層是1.4641倍。例如: ((loli)),((one girl)),(cat ears),[flower hairpin]和第一種寫法等價。
????????(4)漸變:比較簡單的理解時,先按某種關鍵詞生成,然后再此基礎上向某個方向變化。[關鍵詞1:關鍵詞2:數字],數字大于1理解為第X步前為關鍵詞1,第X步后變成關鍵詞2,數字小于1理解為總步數的百分之X前為關鍵詞1,之后變成關鍵詞2。例如:a girl with very long [white:yellow:16] hair 等價為“開始 a girl with very long white hair”,16步之后“a girl with very long yellow hair”?!癮 girl with very long [white:yellow:0.5] hair ”等價為“開始 a girl with very long white hair”,50%步之后“a girl with very long yellow hair”。
????????(5)交替:輪流使用關鍵詞。例如:[cow|horse] in a field,這就是個牛馬的混合物,如果你寫的更長比如[cow|horse|cat|dog] in a field就是先朝著像牛努力,再朝著像馬努力,再向著貓努力,再向著狗努力,再向著馬努力。
????????Prompt示例:
coral full dress,((collagreen botton shirt)),(upper body),long hair,1gir,tall,skinny,photorealistic,masterpiece,highres,8k,character concept,depth of field,perfect pupils,perfect smiles,blurry background,heart shape face, outdoors,,side light, morning,high heel,detailed clothing,ultra details,earring,((full face))
1.3 Negative prompt
????????Prompt描述的是用戶希望生成的圖片的特征,而Negative prompt則是生成的圖片中不希望含有的特征,例如低質量圖片等。Stable Diffusion大致做法為:
????????(1)對圖片進行去噪處理,使其看起來更像你的提示詞。
????????(2)對圖片進行去噪處理,使其看起來更像你的反向提示詞(無條件條件)。
????????(3)觀察這兩者之間的差異,并利用它來產生一組對噪聲圖片的改變。
????????(4)嘗試將最終結果移向前者而遠離后者。
????????Negative prompt示例:
lowres,bad anatomy,bad hands,text,error,missing fingers,extra digit,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,missing arms,long neck,Humpbacked,missing limb,too many fingers,mutated,poorly drawn,out of frame,bad hands,unclear eyes,poorly drawn,cloned face,bad face,(worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)),ng_deepnegative_v1_75t,nipples,((half face)),(( half head)),((no face)),((no head))
1.4 Sampling Method
????????采樣方法與Stable Diffusion模型工作原理直接相關,本專欄后續(xù)將會詳細介紹其中原理。采樣方法主要影響生成圖片的時間和風格偏好。網址“https://cj.sina.com.cn/articles/view/1823348853/6cae1875020018im7”有詳細的實驗結果。
常用的采樣方法為Euler a、Euler、DDIM、LMS、PLMS和DPM2。一般選用默認采樣方式即可。
1.5 Sampling Steps
????????采樣步驟默認設置成20。如果生成圖片細節(jié)不滿足要求,可適當增加采樣步驟,但生成時間也會相應增加。大部分采樣器超過50步后意義就不大了。
1.6 Restore faces
????????面部修復,使面部更像真人的人臉。一般面部修復的模型有CodeFormer和GFPGAN。
1.7 Tiling
????????生成可平鋪的圖片圖案,直接效果為圖片上下和左右部分是可以拼接的,類似瓷磚圖案。
圖3 Tiling圖片
1.8 Hires. Fix
????????txt2img 在高分辨率下(1024X1024)會生成非常怪異的圖像。而此插件這使得AI先在較低的分辨率下部分渲染你的圖片,再通過算法提高圖片到高分辨率,然后在高分辨率下再添加細節(jié)。
1.9 Width/Height
????????圖像的寬高分辨率,即圖像尺寸大小。尺寸越大,所需顯存越大。因為常見的模型基本都是在512×512和768×768的基礎上訓練,分辨率過高,圖片質量會隨著分辨率的提高而變差。
1.10 CFG Scale
????????圖像與Prompt內容的匹配程度。增加這個值將導致圖像更接近你的描述,但過高會讓圖像色彩過于飽和,太高后在一定程度上降低了圖像質量??梢赃m當增加采樣步驟來抵消畫質的劣化。一般在5~15之間為好,7、9、12是3個常見的設置值。
????????低CFG:圖片糊、看起來霧蒙蒙的,色彩對比弱,構圖也比較差。
????????高CFG:圖片對比度非常強,色彩非常飽和,甚至會過飽和,顏色和結構失調。
1.11 Batch count / Batch size
????????這兩個參數本質上都是控制輸出圖片的數量。Batch count是順序生成的,而Batch size是控制并行生成的,因此后者生成速度更快,但占用顯存更大。
1.12 Seed
????????Seed默認取值為-1,每次生成的圖片差異性較大,即隨機生成的。將seed設置成一個固定取值后,每次生成的圖片會比較接近,這樣可以調整prompt來實現對生成結果的微調。
1.13 Script
????????Script是相當于同時設置多個條件,便于對多個條件生成結果進行對比。例如, Script: X/Y/Z plot, X Type: Steps, X Values: “10,20,30”, Y Type: Sampler, Y Values: “Euler a, Euler”,這種設置包括三種采樣次數和兩種采樣方式,因此會生成6張圖片,如下圖所示。具體使用方式可參考“https://zhuanlan.zhihu.com/p/600821549”。
圖4 多條件對比設置
?圖5 多條件結果對比
1.14 Styles
????????在“Generate”按鈕下方有一個“Save style”小圖標,它可以把當前prompt內容保存為一種風格樣式,便于后續(xù)通過Styles進行加載復用。
2 參考資料
????????本文介紹參考了以下網站內容,感謝相關作者的詳細解析。
????????(1)《AI繪畫指南 stable diffusion webui (SD webui)如何設置與使用》,“https://www.tjsky.net/tutorial/488”,文中內容大部分來源于此。
????????(2)《stable-diffusion-webui prompt語法詳解》,“https://zhuanlan.zhihu.com/p/600821549”。
????????(3)《擴散模型采樣方法:從效果看Stable Diffusion中的采樣方法》,“https://cj.sina.com.cn/articles/view/1823348853/6cae1875020018im7”。
????????(4)《stable-diffusion各個采樣器的說明》,“http://www.codeforest.cn/article/3578”。
????????(5)《[Stable Diffusion 疑難雜癥] CFG、采樣方式、高清修復、ControlNet》,“https://zhuanlan.zhihu.com/p/610346261”。
????????(6)《從耗時看Stable Diffusion WebUI中的采樣方式》 ,“https://post.smzdm.com/p/akk8zv5r/”。文章來源:http://www.zghlxwxcb.cn/news/detail-477854.html
3 其它部分
????????img2img、Extras、PNG Info、Checkpoint Merger、Train、Settings和Extensions等部分將在下一篇博文中進行介紹。本專欄具體更新可關注文章下方公眾號,也可關注本專欄。所有相關文章會在《Python從零開始進行AIGC大模型訓練與推理》中進行更新,地址為“https://blog.csdn.net/suiyingy/article/details/130169592”。文章來源地址http://www.zghlxwxcb.cn/news/detail-477854.html
到了這里,關于AI圖片生成Stable Diffusion參數及使用方式詳細介紹的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!