:從加噪去噪原理到出圖實(shí)操與避坑指南)
1. 先搞清楚 Stable Diffusion 到底在做什么1.1 它不是什么黑魔法本質(zhì)就是“加噪”與“去噪”很多人第一次聽(tīng)到 Stable Diffusion 這個(gè)名字腦子里浮現(xiàn)的是那種一鍵生成大片的神器。我剛開(kāi)始接觸的時(shí)候也這么想結(jié)果裝完第一天就卡在環(huán)境配置上連界面都沒(méi)打開(kāi)。后來(lái)才明白這東西的核心原理其實(shí)特別樸素它做的事情就是給一張圖不斷加噪聲直到變成一團(tuán)雪花然后再訓(xùn)練一個(gè)模型學(xué)會(huì)把這團(tuán)雪花一步步還原回去。等你用的時(shí)候給它一團(tuán)隨機(jī)噪聲它就能根據(jù)你輸入的文字提示把噪聲“去”成一張符合描述的圖。這個(gè)“去噪”的過(guò)程就是擴(kuò)散模型的核心。你可以把它想象成一位畫(huà)家面前擺著一塊全是雜色的畫(huà)布你告訴他“畫(huà)一只坐在窗臺(tái)上的橘貓陽(yáng)光從左邊照進(jìn)來(lái)”他就一筆一筆把雜色抹掉逐漸顯現(xiàn)出你描述的畫(huà)面。Stable Diffusion 之所以叫“Stable”是因?yàn)樗昧藵摽臻g擴(kuò)散的技術(shù)把運(yùn)算壓縮在一個(gè)更小的特征空間里做這樣普通顯卡也能跑得動(dòng)不像早期的擴(kuò)散模型那樣必須用頂級(jí)硬件。1.2 為什么小白也能上手但上手不等于用好現(xiàn)在網(wǎng)上有大量一鍵安裝包和整合包確實(shí)把門(mén)檻降到了很低。你不需要懂 Python不需要會(huì)配環(huán)境下載一個(gè)壓縮包解壓雙擊運(yùn)行就能出圖。但問(wèn)題在于能出圖和能出好圖之間隔著一條很寬的河。我見(jiàn)過(guò)太多人裝完之后隨便輸入幾個(gè)詞出來(lái)一張歪臉圖然后就覺(jué)得“這玩意兒不行”。其實(shí)不是工具不行是提示詞的寫(xiě)法、模型的選型、參數(shù)的搭配全都沒(méi)跟上。這篇內(nèi)容就是寫(xiě)給那些剛接觸 Stable Diffusion、想少走彎路的人。我會(huì)從最基礎(chǔ)的概念講起然后一步步帶你走完整個(gè)流程包括模型怎么選、提示詞怎么寫(xiě)、參數(shù)怎么調(diào)、出問(wèn)題了怎么排查。你不需要任何編程基礎(chǔ)但需要一點(diǎn)耐心因?yàn)檫@東西前期確實(shí)有一些坑要踩。1.3 你需要準(zhǔn)備什么硬件與心理預(yù)期先說(shuō)硬件。Stable Diffusion 對(duì)顯卡有一定要求但沒(méi)你想的那么夸張。我用過(guò)一張入門(mén)級(jí)顯卡6GB 顯存跑 512x512 的圖大概十幾秒一張完全能用。如果你顯存在 4GB 以下也不是不能跑但需要調(diào)低分辨率或者用一些優(yōu)化手段速度會(huì)慢一些。內(nèi)存建議 16GB 以上硬盤(pán)最好留出 50GB 以上的空間因?yàn)槟P臀募?dòng)輒好幾個(gè) G下著下著就滿了。心理預(yù)期方面我得提前說(shuō)清楚第一次出圖大概率不會(huì)讓你滿意。這不是你的問(wèn)題也不是工具的問(wèn)題而是你還沒(méi)找到感覺(jué)。就像學(xué)做菜第一次炒出來(lái)的菜肯定不如飯店但炒個(gè)十次八次之后你就能掌握火候了。Stable Diffusion 也是一樣前二十張圖基本都是在摸索后面才會(huì)越來(lái)越順。2. 安裝與初始配置別一上來(lái)就追求完美2.1 選整合包還是自己配環(huán)境這是新手面臨的第一個(gè)選擇。自己配環(huán)境的好處是干凈、可控、后續(xù)升級(jí)方便壞處是容易在各種依賴報(bào)錯(cuò)里崩潰。整合包的好處是省事解壓就能用壞處是版本可能偏舊而且有些整合包塞了一堆你用不上的東西反而拖慢速度。我的建議是如果你只是想快速體驗(yàn)一下先用整合包。等你玩明白了知道自己需要什么了再考慮自己配一套干凈的環(huán)境。我自己最開(kāi)始用的就是整合包后來(lái)因?yàn)橄胙b一些新插件整合包里的版本不兼容才轉(zhuǎn)去自己配。這個(gè)順序比較合理不會(huì)一上來(lái)就被環(huán)境問(wèn)題勸退。2.2 模型文件的放置邏輯不管你用哪種方式安裝模型文件的放置位置都很關(guān)鍵。通常來(lái)說(shuō)主模型放在models/Stable-diffusion目錄下VAE 模型放在models/VAE目錄下LoRA 模型放在models/Lora目錄下。這些目錄名字可能因版本不同略有差異但邏輯是一樣的不同類型的模型分開(kāi)放方便管理和切換。我見(jiàn)過(guò)有人把所有模型都堆在一個(gè)文件夾里結(jié)果界面里選模型的時(shí)候一長(zhǎng)串列表找半天找不到想要的。而且有些模型文件名很相似放一起容易選錯(cuò)。所以從一開(kāi)始就養(yǎng)成分類放置的習(xí)慣后面會(huì)省很多事。2.3 第一次啟動(dòng)時(shí)的關(guān)鍵設(shè)置第一次啟動(dòng)后先別急著出圖花幾分鐘把幾個(gè)關(guān)鍵設(shè)置過(guò)一遍。首先是顯存優(yōu)化選項(xiàng)如果你的顯存不大建議開(kāi)啟“低顯存模式”或者類似的選項(xiàng)這會(huì)犧牲一點(diǎn)速度但能避免爆顯存。其次是輸出目錄默認(rèn)的目錄可能不太好找建議改成一個(gè)你熟悉的路徑。最后是界面語(yǔ)言如果你更習(xí)慣中文可以找找語(yǔ)言設(shè)置選項(xiàng)不過(guò)我個(gè)人建議保持英文界面因?yàn)楹芏嘟坛毯筒寮际怯⑽牡膶?duì)照著看反而更方便。注意第一次啟動(dòng)時(shí)加載模型會(huì)比較慢這是正常的不要以為卡死了就強(qiáng)制關(guān)閉。等它加載完后面再啟動(dòng)就快了。3. 提示詞的門(mén)道說(shuō)人話但要說(shuō)對(duì)的話3.1 提示詞的基本結(jié)構(gòu)提示詞就是你告訴模型你想要什么的那段文字。它的基本結(jié)構(gòu)可以概括為主體 細(xì)節(jié) 風(fēng)格 質(zhì)量詞。主體是你想畫(huà)的東西比如“一個(gè)女孩”細(xì)節(jié)是她的特征比如“紅色頭發(fā)、藍(lán)色眼睛、穿著白色連衣裙”風(fēng)格是畫(huà)面的整體感覺(jué)比如“水彩畫(huà)風(fēng)格、柔和光線”質(zhì)量詞是一些提升畫(huà)面精細(xì)度的詞比如“高清、精細(xì)細(xì)節(jié)、專業(yè)攝影”。很多人寫(xiě)提示詞的時(shí)候只寫(xiě)主體比如就輸入“一個(gè)女孩”然后抱怨出來(lái)的圖不好看。這就像你去餐廳點(diǎn)菜只說(shuō)“我要吃飯”廚師只能隨便給你炒一盤(pán)。你得說(shuō)清楚你想吃什么、什么口味、什么做法廚師才能做出你想要的。3.2 權(quán)重與語(yǔ)法的實(shí)際用法Stable Diffusion 支持給提示詞加權(quán)重語(yǔ)法是用括號(hào)和數(shù)字表示。比如(red hair:1.3)表示紅色頭發(fā)的權(quán)重是 1.3 倍模型會(huì)更強(qiáng)調(diào)這個(gè)特征。反過(guò)來(lái)(red hair:0.7)就是降低權(quán)重。這個(gè)功能在調(diào)整畫(huà)面元素的時(shí)候特別有用比如你覺(jué)得頭發(fā)顏色不夠紅就把權(quán)重調(diào)高一點(diǎn)。還有一個(gè)常用的語(yǔ)法是負(fù)面提示詞就是告訴模型你不想要什么。比如你不想要模糊的畫(huà)面就在負(fù)面提示詞里寫(xiě)“模糊、低質(zhì)量”。負(fù)面提示詞的作用有時(shí)候比正面提示詞還大因?yàn)楹芏嗄P湍J(rèn)會(huì)往某些方向偏你得用負(fù)面詞把它拉回來(lái)。3.3 常見(jiàn)提示詞誤區(qū)與修正我踩過(guò)的一個(gè)大坑是提示詞堆砌。剛開(kāi)始的時(shí)候覺(jué)得詞越多越好把能想到的都寫(xiě)上去結(jié)果出來(lái)的圖反而很亂。后來(lái)才明白提示詞之間會(huì)互相干擾太多詞會(huì)讓模型無(wú)所適從。一般來(lái)說(shuō)正面提示詞控制在 20 到 40 個(gè)詞之間比較合適負(fù)面提示詞 10 到 20 個(gè)詞就夠了。另一個(gè)誤區(qū)是用抽象詞。比如你寫(xiě)“美麗的、有氣質(zhì)的”模型根本不知道具體指什么。你得寫(xiě)“精致的五官、優(yōu)雅的姿態(tài)、柔和的光線”這些才是模型能理解的具體描述。抽象詞不是不能用但得配合具體詞一起用不能光靠抽象詞撐場(chǎng)面。4. 參數(shù)調(diào)整那幾個(gè)數(shù)字到底在干什么4.1 采樣步數(shù)與采樣器選擇采樣步數(shù)是指模型去噪的迭代次數(shù)。步數(shù)太少畫(huà)面沒(méi)去干凈會(huì)顯得糊步數(shù)太多畫(huà)面可能過(guò)度銳化而且浪費(fèi)時(shí)間。一般來(lái)說(shuō)20 到 30 步是一個(gè)比較甜的點(diǎn)再往上提升就很有限了。我實(shí)測(cè)過(guò)30 步和 50 步的差距肉眼幾乎看不出來(lái)但時(shí)間差了一倍。采樣器是去噪的具體算法不同采樣器出來(lái)的效果有細(xì)微差別。有的采樣器速度快但細(xì)節(jié)少有的采樣器慢但畫(huà)面更細(xì)膩。新手不用太糾結(jié)這個(gè)先用默認(rèn)的或者大家常用的那個(gè)等你有感覺(jué)了再換著試。4.2 提示詞引導(dǎo)系數(shù)這個(gè)參數(shù)控制模型有多“聽(tīng)話”。數(shù)值低的時(shí)候模型更自由可能會(huì)給你一些意想不到的創(chuàng)意但也可能偏離你的描述數(shù)值高的時(shí)候模型更嚴(yán)格地按照你的提示詞來(lái)但太高了畫(huà)面會(huì)變得僵硬、色彩過(guò)飽和。7 到 9 之間是比較穩(wěn)妥的范圍我一般用 7.5偶爾根據(jù)情況微調(diào)。4.3 隨機(jī)種子與批次隨機(jī)種子決定了初始噪聲的樣子。同樣的提示詞和參數(shù)換個(gè)種子就是完全不同的圖。如果你出了一張很滿意的圖想在此基礎(chǔ)上微調(diào)就可以固定種子然后改提示詞或者參數(shù)這樣畫(huà)面的大結(jié)構(gòu)不會(huì)變只會(huì)變你改動(dòng)的部分。批次是指一次出幾張圖。我建議新手一次出 4 張這樣你可以對(duì)比不同種子的效果從中挑一張最好的。等你有經(jīng)驗(yàn)了可以一次出更多但要注意顯存占用。參數(shù)建議范圍作用調(diào)整方向采樣步數(shù)20-30去噪迭代次數(shù)少了糊多了慢引導(dǎo)系數(shù)7-9提示詞遵循程度低了自由高了僵硬分辨率512x512 起畫(huà)面尺寸高了吃顯存批次4 張一次出圖數(shù)量多了顯存不夠5. 實(shí)操流程從零到出第一張能看的圖5.1 選一個(gè)適合新手的模型模型決定了出圖的基本風(fēng)格。網(wǎng)上有成千上萬(wàn)個(gè)模型新手很容易挑花眼。我的建議是先選一個(gè)通用型的模型不要一上來(lái)就用那些風(fēng)格化特別強(qiáng)的。通用模型對(duì)各種提示詞的兼容性更好適合你練習(xí)寫(xiě)提示詞。等你摸清楚自己的需求了再去下專門(mén)的模型。下載模型的時(shí)候注意看文件大小和格式。一般來(lái)說(shuō)主模型是幾個(gè) G 的大文件格式是 safetensors 或者 ckpt。safetensors 更安全一些建議優(yōu)先選這個(gè)格式。5.2 寫(xiě)一組完整的提示詞我們來(lái)實(shí)際操作一遍。假設(shè)你想畫(huà)“一個(gè)女孩在咖啡館里看書(shū)”。正面提示詞可以這樣寫(xiě)一個(gè)年輕女孩坐在咖啡館窗邊看書(shū)棕色長(zhǎng)發(fā)穿著米色毛衣桌上有一杯咖啡午后陽(yáng)光透過(guò)窗戶照進(jìn)來(lái)溫暖的光線淺景深膠片質(zhì)感精細(xì)細(xì)節(jié)高清負(fù)面提示詞模糊低質(zhì)量變形多余的手指扭曲的臉過(guò)曝欠曝這組提示詞里主體是女孩和咖啡館細(xì)節(jié)是頭發(fā)顏色、衣服、咖啡、光線風(fēng)格是膠片質(zhì)感質(zhì)量詞是精細(xì)細(xì)節(jié)和高清。負(fù)面詞把常見(jiàn)的畫(huà)面問(wèn)題都排除了。5.3 參數(shù)設(shè)置與出圖分辨率先設(shè) 512x512采樣步數(shù) 25引導(dǎo)系數(shù) 7.5批次 4。點(diǎn)生成等十幾秒到幾十秒就能看到四張圖。第一次出來(lái)的圖可能不完美但只要有那么一兩張的大結(jié)構(gòu)是對(duì)的就說(shuō)明你的提示詞方向沒(méi)問(wèn)題接下來(lái)就是微調(diào)。如果四張圖都很差先檢查提示詞有沒(méi)有矛盾的地方比如同時(shí)寫(xiě)了“白天”和“夜晚”。如果沒(méi)有矛盾那就換個(gè)種子再試。有時(shí)候就是種子的問(wèn)題換個(gè)種子效果會(huì)好很多。5.4 基于結(jié)果迭代優(yōu)化拿到第一組圖之后挑一張你覺(jué)得最順眼的固定它的種子然后開(kāi)始微調(diào)。比如你覺(jué)得光線不夠暖就在提示詞里加“暖色調(diào)”并給一點(diǎn)權(quán)重覺(jué)得臉不夠清晰就加“精致五官”并調(diào)高權(quán)重。每次只改一兩個(gè)地方這樣你才能知道哪個(gè)改動(dòng)起了作用。我自己的習(xí)慣是每張圖至少迭代三輪。第一輪看大結(jié)構(gòu)第二輪調(diào)細(xì)節(jié)第三輪修瑕疵。三輪下來(lái)基本就能得到一張能拿得出手的圖了。6. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄6.1 出圖全黑或者全灰這是新手最常見(jiàn)的問(wèn)題之一。原因通常有幾個(gè)一是 VAE 模型沒(méi)配對(duì)有些主模型需要搭配特定的 VAE不配的話畫(huà)面就會(huì)發(fā)灰二是提示詞引導(dǎo)系數(shù)太低模型沒(méi)接收到有效信息三是模型文件損壞重新下載一個(gè)試試。排查順序建議是先換一個(gè)模型試試如果換了就好了說(shuō)明是模型問(wèn)題如果換了還不行檢查 VAE 設(shè)置如果 VAE 也沒(méi)問(wèn)題把引導(dǎo)系數(shù)調(diào)到 7 以上再試。6.2 人物臉部崩壞臉部崩壞是擴(kuò)散模型的老毛病了尤其是小分辨率下。解決辦法有幾個(gè)一是提高分辨率但注意不要一次性提太高可以先用低分辨率出圖再用放大功能放大二是在負(fù)面提示詞里加強(qiáng)臉部相關(guān)的詞比如“扭曲的臉、不對(duì)稱的眼睛”三是用專門(mén)修臉的插件這個(gè)后面進(jìn)階的時(shí)候再說(shuō)。我自己的經(jīng)驗(yàn)是512x512 下臉部崩壞的概率比較高提到 768x768 會(huì)好很多但顯存占用也會(huì)增加。如果你的顯存不夠就先用 512 出圖然后用放大算法放大。6.3 畫(huà)面風(fēng)格不對(duì)有時(shí)候你想要的是一種風(fēng)格出來(lái)的卻是另一種。這通常是模型的問(wèn)題不是提示詞的問(wèn)題。每個(gè)模型都有自己的“偏好”有的偏寫(xiě)實(shí)有的偏動(dòng)漫有的偏油畫(huà)。你得選一個(gè)跟你想要的風(fēng)格匹配的模型然后再用提示詞微調(diào)。如果模型對(duì)了但風(fēng)格還是不對(duì)檢查一下提示詞里有沒(méi)有風(fēng)格相關(guān)的詞。比如你想要水彩風(fēng)格就得寫(xiě)“水彩畫(huà)風(fēng)格、水彩質(zhì)感”光寫(xiě)“水彩”可能不夠。6.4 生成速度太慢速度慢的原因通常是顯存不夠模型在內(nèi)存和顯存之間來(lái)回倒騰。解決辦法降低分辨率、減少批次數(shù)量、開(kāi)啟低顯存模式、關(guān)閉一些不必要的插件。如果這些都不行那可能就是硬件瓶頸了只能接受這個(gè)速度或者升級(jí)硬件。提示出圖的時(shí)候不要同時(shí)開(kāi)太多其他程序尤其是吃顯存的程序比如游戲或者視頻剪輯軟件。關(guān)掉它們速度會(huì)明顯提升。6.5 常見(jiàn)問(wèn)題速查表問(wèn)題可能原因解決辦法全黑/全灰VAE 不匹配、引導(dǎo)系數(shù)低換 VAE、調(diào)高引導(dǎo)系數(shù)臉部崩壞分辨率低、模型不擅長(zhǎng)人臉提高分辨率、加負(fù)面詞風(fēng)格不對(duì)模型選錯(cuò)、提示詞缺風(fēng)格詞換模型、補(bǔ)風(fēng)格詞速度慢顯存不足、后臺(tái)程序占用降分辨率、關(guān)后臺(tái)程序畫(huà)面混亂提示詞堆砌、權(quán)重沖突精簡(jiǎn)提示詞、調(diào)整權(quán)重7. 進(jìn)階方向出圖之后還能做什么7.1 圖生圖與局部重繪文生圖只是起點(diǎn)。當(dāng)你有一張基本滿意的圖之后可以用圖生圖功能在此基礎(chǔ)上修改。比如你覺(jué)得背景不好看就可以用局部重繪把背景換掉人物保持不變。這個(gè)功能特別實(shí)用相當(dāng)于給你一張圖做“微創(chuàng)手術(shù)”。局部重繪的關(guān)鍵是蒙版要涂準(zhǔn)。涂多了會(huì)把不想改的地方也改掉涂少了改不干凈。我一般會(huì)稍微涂大一點(diǎn)然后調(diào)低重繪幅度這樣邊緣過(guò)渡會(huì)比較自然。7.2 放大與細(xì)節(jié)增強(qiáng)低分辨率出圖再放大是兼顧速度和質(zhì)量的標(biāo)準(zhǔn)做法。放大算法有好幾種有的適合寫(xiě)實(shí)有的適合動(dòng)漫。放大之后還可以用細(xì)節(jié)增強(qiáng)功能再加一遍細(xì)節(jié)讓畫(huà)面更銳利。不過(guò)要注意放大倍數(shù)太高會(huì)出現(xiàn)偽影一般放大到兩倍左右比較合適。7.3 模型融合與 LoRA 的使用當(dāng)你對(duì)基礎(chǔ)模型有了一定了解之后可以嘗試模型融合就是把兩個(gè)模型的權(quán)重按比例混合得到一個(gè)兼具兩者特點(diǎn)的新模型。LoRA 則是一種輕量級(jí)的微調(diào)方式可以在不改動(dòng)主模型的情況下給模型加上特定的風(fēng)格或者角色。這兩個(gè)方向內(nèi)容比較多這里就不展開(kāi)了等你把基礎(chǔ)流程跑熟了再去研究。8. 我踩過(guò)的坑與給你的建議8.1 不要一次裝太多模型我剛開(kāi)始的時(shí)候特別興奮一口氣下了十幾個(gè)模型結(jié)果硬盤(pán)滿了不說(shuō)每次選模型都要翻半天。后來(lái)我刪到只剩三四個(gè)常用的反而效率更高。模型在精不在多先把一個(gè)模型用透比淺嘗輒止地試十個(gè)模型強(qiáng)得多。8.2 提示詞要記筆記我有個(gè)習(xí)慣每次出了一張好圖就把提示詞、參數(shù)、模型名都記下來(lái)。時(shí)間長(zhǎng)了就形成了一套自己的“配方庫(kù)”。下次想畫(huà)類似的東西直接翻筆記改幾個(gè)詞就能用省了很多試錯(cuò)時(shí)間。這個(gè)習(xí)慣看起來(lái)笨但真的管用。8.3 別追求一步到位新手最容易犯的錯(cuò)就是想讓第一張圖就完美。這不現(xiàn)實(shí)。出圖是一個(gè)迭代的過(guò)程第一張圖定大方向第二張圖調(diào)細(xì)節(jié)第三張圖修瑕疵第四張圖才可能達(dá)到你想要的效果。接受這個(gè)節(jié)奏心態(tài)會(huì)好很多。8.4 多看別人的參數(shù)網(wǎng)上有很多人分享自己的出圖參數(shù)包括提示詞、模型、種子。你可以照著他們的參數(shù)跑一遍看看出來(lái)的效果然后對(duì)比自己的參數(shù)找差距。這是進(jìn)步最快的方法之一。不過(guò)要注意同樣的參數(shù)在不同硬件上可能有細(xì)微差異不要死磕完全一致。8.5 保持耐心享受過(guò)程Stable Diffusion 這個(gè)東西入門(mén)容易精通難。前幾個(gè)小時(shí)可能都在摸索但一旦你出了第一張讓自己滿意的圖那種成就感是很強(qiáng)的。我到現(xiàn)在還記得自己第一張能看的圖出來(lái)的時(shí)候雖然現(xiàn)在回頭看那張圖很粗糙但當(dāng)時(shí)真的挺激動(dòng)的。所以別急慢慢來(lái)這個(gè)過(guò)程本身就挺有意思的。最后分享一個(gè)小技巧如果你在某一步卡住了不妨把提示詞簡(jiǎn)化到最核心的幾個(gè)詞先確保大方向是對(duì)的然后再一點(diǎn)點(diǎn)加細(xì)節(jié)。這就像畫(huà)畫(huà)先打草稿再上色比一上來(lái)就摳細(xì)節(jié)要高效得多。