AI繪畫:Stable Diffusion 提示詞技巧(一)

隨著AI技術(shù)的日新月異,AI繪畫對各個行業(yè)的沖擊和影響也越來越大。很多人都對如何進行高效的AI繪畫并不很了解。作者將通過一個系列對AI繪畫「Stable diffusion WebUI 」進行全面分享,希望可以幫助你更高效的完成
使用過AI繪畫工具的小伙伴都應(yīng)該知道,想要讓AI根據(jù)你的要求完成一份靠譜的創(chuàng)作有兩大核心要點:「提示詞」和「模型」。今天作者將對「提示詞」進行全面詳細的介紹,作者將基于漫畫的創(chuàng)作場景,分享一些鮮為人知又非常實用的提示詞技巧。
提示詞的基礎(chǔ)概念
提示詞:通過自然語言描述畫面的內(nèi)容,指導(dǎo)AI繪畫模型完成符合需求的圖片創(chuàng)作。
提示詞分為正面提示詞(Prompts)和反面提示詞(Negative Prompts)。正面提示詞代表你希望畫面中出現(xiàn)的內(nèi)容,反面提示詞代表你不希望畫面中出現(xiàn)的內(nèi)容。 提示詞的識別格式是英文書寫,并不支持非英文的內(nèi)容。提示詞可以支持的最小單位是單詞。作者想生成一個穿著黃色襯衣的女孩。那么正面提示詞:
1girl, yellow shirt,
在書寫提示詞時,建議通過詞組進行組裝,而非主從式的語句。通俗的講:AI模型是通過多個標(biāo)簽矩陣進行繪畫創(chuàng)作的。所以主從式的語句段落在AI繪畫時得到的結(jié)果往往比詞組的效果差很多。
提示詞的基礎(chǔ)格式
網(wǎng)絡(luò)上很多教程中都提到了書寫一個提示詞,可以從角色形象,場景特點,畫面視角,畫風(fēng)質(zhì)量進行描述。而以上四類每一類又可以分為若干子類。但你是不是按照這樣要求的書寫提示詞后,進行AI繪畫后發(fā)現(xiàn)結(jié)果不是圖崩了就是畫的東西跟你寫的幾乎不是一個東西呢?這可能是以下幾個核心點你可能還沒有掌握。
提示詞權(quán)重。
提示詞的高級書寫技巧。
stable diffusion 對提示詞的潛規(guī)則。
參數(shù)的定義和模型的應(yīng)用。
提示詞的高級技巧

接下來作者將通過一個實際案例來介紹一下如何清晰又高效的書寫提示詞。
注:為了保障案例的準(zhǔn)確性,作者將使用同一大模型,同一參數(shù)進行介紹,可能導(dǎo)致部分圖的細節(jié)可能出現(xiàn)崩圖的現(xiàn)象。
場景案例:林雨萌下班后走在街邊。
因為模型是無法識別“林雨萌”是什么,所以作者對林雨萌進行了角色定義。
畫面描述:
中文:一個女孩,銀色長發(fā),紫色眼瞳,眼鏡,口紅,黃色職業(yè)裝,纖細的身材, 走路,街道背景,看著屏幕
英文:1girl, silver long hair, purple eyes, glasses, lipstick, yellow business_suit, slim body, walking, street_background, looking at viewer,
作者使用的畫質(zhì)描述詞:(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, detailed eyes, highly detailed,
最終得到的正面提示詞:
1girl, silver long hair, purple eyes, glasses, lipstick, yellow business_suit, slim body, walking, street_background, looking at viewer,(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, detailed eyes, highly detailed,
得到的畫面:

可以發(fā)現(xiàn):
模型在顏色識別中出現(xiàn)了問題,發(fā)色被污染為紫色,衣服的顏色沒有識別出來。
圖1 和 圖4 并沒有提現(xiàn)出女孩在走路的狀態(tài)。
提示詞權(quán)重
針對這樣的情況,市面上通用的解決方案是“提示詞權(quán)重”。
提示詞權(quán)的作用:增加某個詞組的在模型識別時的重要程度。
常用的提示詞權(quán)重書寫格式有兩大類:“加括號”和“數(shù)值控制”。
比如:(silver long hair), 代表 銀色長發(fā)的權(quán)重為1.1 ,再加一層則是1.1的二次方,即:1.21倍?;蛘呤褂?silver long hair:1.1), 也是等同的權(quán)重。現(xiàn)在作者對第一次生成使用的提示詞進行一些優(yōu)化。
正面提示詞:
1girl, (silver long hair), purple eyes, glasses, lipstick, (yellow business_suit:1.4), slim body, (walking), street_background, looking at viewer, (masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, detailed eyes, highly detailed,
得到的畫面:

可以發(fā)現(xiàn):
圖1和圖4衣服的顏色已經(jīng)識別出來了,但頭發(fā)的顏色依舊被紫色所污染。
圖3和圖4依舊沒有顯示出“走”這個動作。
這是為什么呢?因為作者的提示詞中:1girl, (silver long hair), purple eyes, glasses, lipstick, (yellow business_suit:1.4), 對于模型來說是一個個獨立的標(biāo)簽,相互的關(guān)聯(lián)性全部依賴于模型自身的理解(模型在推算相互的關(guān)聯(lián)是什么)。我們在寫提示詞時需要通過一些手段讓模型更好的理解詞與詞之間的關(guān)聯(lián)性,才能生成出自己滿意的圖片。
注釋用法
此時作者將介紹一種少有人使用的提示詞書寫格式;“注釋”用法。
注釋寫法:主體\(注釋1,注釋2)
基于注釋的方式,作者將提示詞再一次優(yōu)化:
角色描述:1girl/( (silver long hair), purple eyes, glasses, lipstick, (yellow business_suit:1.4)),
正面提示詞:
1girl/((silver long hair),purple eyes, glasses, lipstick, (yellow business_suit:1.4)), slim body, (walking:1.2), street_background, looking at viewer, full body shot,(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, detailed eyes, highly detailed,
得到的畫面:

可以發(fā)現(xiàn):
全部圖片的衣服都是黃色為主題,發(fā)色的污染程度也得到了大幅度的改善。
全部的圖片都已走路為主。
LoRA 模型應(yīng)用
那現(xiàn)在有沒有更進一步的優(yōu)化的空間呢?在保證當(dāng)前的穩(wěn)定下,在提升整體畫質(zhì)呢?此時的你可能想到了在提示詞中添加LoRA模型的方式,來提高畫面質(zhì)感。讓我們來試試看。為了方便演示,此處我選擇了一個靈活度較低的LoRA模型進行演示。
正面提示詞:
1girl/( (silver long hair), lavender eyes, glasses, lipstick, (yellow business_suit:1.4)), slim body, (walking:1.2), street_background, looking at viewer,(full body shot),(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, detailed eyes, highly detailed, <lora:焰靈姬:0.8>
得到的畫面:

可以發(fā)現(xiàn):
整體效果還不錯,人物臉型更加細致。
圖1 完全沒有識別到提示詞內(nèi)容,僅展現(xiàn)了LoRA模型的形象;
圖4出現(xiàn)了發(fā)色不匹配。
這是為什么呢?這是因為作者使用的LoRA模型的發(fā)布者提供參考圖中就帶有帽子,這里可以理解為這個LoRA模型在使用時如不進行對帽子的特別處理,那就會有一定概率出現(xiàn)帽子。原因可能是訓(xùn)練這個LoRA模型,對帽子的標(biāo)簽處理不夠細致。
解決的辦法主要有三種:
繼續(xù)降低LoRA模型的權(quán)重;
在使用LoRA模型時,指定僅調(diào)用臉部區(qū)域;
更換為embeddings模型。
LoRA 模型指定適用區(qū)域
這里作者通過控制LoRA Block Weight的應(yīng)用層級結(jié)構(gòu)的預(yù)設(shè),進行LoRA模型指定區(qū)域的控制。作者使用的“FACE”標(biāo)簽是通過SDWebUI的插件做了單獨的配置。所以可以指定LoRA模型的適用區(qū)域。由于邏輯及使用的復(fù)雜性,本篇將不過多講述,后續(xù)將單獨開篇進行介紹。
正面提示詞:
1girl/( (silver long hair), lavender eyes, glasses, lipstick, (yellow business_suit:1.4)), slim body, (walking:1.2), street_background, looking at viewer,(full body shot),(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, detailed eyes, highly detailed, <lora:焰靈姬:0.8:FACE>
得到的畫面:

可以發(fā)現(xiàn):
整體效果還不錯,人物臉型依舊保持使用的焰靈姬的角色形象,且整體畫風(fēng)并未受到LoRA模型的污染。
Embeddings 模型應(yīng)用
Embeddings模型(文本嵌入模型),一提到Embeddings模型,很多人的第一反應(yīng)是Easynegatvie模型,就是用于負(fù)面控制的模型。其實負(fù)面控制僅是Embeddings模型的一種應(yīng)用方向。而Embeddings模型本身是一個基于特定描述的詞組合集。由于Eembeddings模型的特點,基于特定角色的使用效果比LoRA模型的效果對于全局影響要低。所以作者在對多人角色特定時也會時常使用Embeddings模型。
正面提示詞:
(1girl, silver long hair, lavender eyes, yellow glasses),(yellow business_suit:1.4), lipstick, slim body,(walking:1.2),dynamic pose, dynamic angle, street_background, looking at viewer, full body shot,(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, highly detailed, NAMI(0.8),
得到畫面:

可以發(fā)型:
整體畫風(fēng)與使用LoRA模型相比與大模型更加貼近。但衣服顏色以及內(nèi)搭依舊收到了小模型的影響。這是什么原因呢?根據(jù)作者搜索到的資料以及反復(fù)測試后發(fā)現(xiàn),這是因為使用小模型時,小模型的固定描述與提示詞中的角色描述發(fā)生了污染導(dǎo)致的。此時作者給出的解決方案就是手動分組(BREAK)用法。
阻斷用法
在Stable Diffusion的提示詞輸入中,大家都會看見右上角的0/75的字?jǐn)?shù)統(tǒng)計。這是什么意思呢?
此處的75代表:Stable Diffusion會將提示詞按每75token(token 通俗理解就是輸入的字符個數(shù),1個字母/1個符號/1個空格都代表 1個 token)強制分為1組,同一組內(nèi),元素的位置和順序不會影響權(quán)重差異,但會影響最終效果。
在這樣的情況下,我們在描述一個場景時,可能會超過75token的限制,從而導(dǎo)致同一組提示詞被系統(tǒng)強制切分為兩組詞,因此畫面生成達不到預(yù)期效果。
此時我們可以使用“阻斷(BREAK)”來執(zhí)行手動分組的操作,讓每一組都可以描述完成的一個畫面特征,BREAK的好處是可以將兩組不同的畫面元素的上下文關(guān)聯(lián)切斷,從而保證兩組元素不會相互污染。
請注意:在一段描述詞中 BREAK 的使用盡量不超過3個,過多的分組會使模型學(xué)習(xí)時出現(xiàn)混亂,得到自己想要的結(jié)果。
正面提示詞:
(1girl, silver long hair, lavender eyes, yellow glasses),(yellow business_suit:1.4), lipstick, slim body,(walking:1.2),dynamic pose, dynamic angle, street_background, looking at viewer, full body shot,
BREAK
(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting, detailed background, realistic, solo, perfect detailed face, highly detailed, NAMI(0.8),
得到畫面:

可以發(fā)現(xiàn):現(xiàn)在的畫面穩(wěn)定性相對較高,對人物的刻畫也非常精致。
下期介紹
對于單人場景的Stable Diffusion 提示詞就介紹到這,下一篇將會介紹Stable Diffusion 提示詞在“多人場景”以及一些“復(fù)雜場景”中的一些高級技巧,如以下圖片的制作技巧。
