這比遊戲好玩,Stable Diffusion免費,
也不用擔心遊戲踩雷,什麼OOXX唇舌之戰。
---
我原始的文章寫在
不過以後文件維護會在這邊執行
先說明,如果你是初學,可能會無法理解Stable Diffusion、Noval AI與各家各式各樣的繪圖AI是什麼,到底差異在哪裡,其實你只要簡單知道怎麼用就可以。
他們無論背後技術是什麼,簡單來說,就兩種模式來產生圖片,txt2img與img2img,如其名:
txt2img就是文字轉影像,你輸入文字(一般又稱prompt)就能生圖
img2img就是影像轉影像,你給圖,他就參考圖與你能給的文字生圖
而各家AI生圖,其實用字大同小異,很像一個國家,各個世代語法不同而已,差異在於你給的 "關鍵" 用字她是否知道,這部分我後面會提供一些方法與文件。
一,文件
這邊建議各位大大一定要看文件,尤其是通用文件基本用字,用字不應該成為困擾!!,如果你連查詢與運用這些文件東西都不先搞懂,那你後面就會極為辛苦,常常要問題用字,用字其實是最簡單的真正難的是後面的創意變化與解決瑕疵。
通用的關鍵字問題
用字是最基本的,因為英文對我們是外語,所以你一定要先學會用工具,要不然你就會一直等人解答,還不一定是你想要的!!!
正面關鍵字:
泛指你希望他參考的你的意思部分
負面關鍵字:
就跟人類一樣,大腦有些部位會做負面事件的預設防範,AI如果在你沒提示下,就像失去前額葉的人一樣瘋狂產生怪異的東西,當然如果他的先天訓練就很不錯,就不太需要這些動作,這後面有機會在講。
理論上,負面關鍵字用的好,能產出更細膩而高品質的作品,他與品質有非常大的關聯,
這部分我非常簡單的只針對人去做處理,所以我用的一直非常簡單:
((nipple)), ((((ugly)))), (((duplicate))), ((morbid)), ((mutilated)), (((tranny))), (((trans))), (((trannsexual))), (hermaphrodite), [out of frame], extra fingers, mutated hands, ((poorly drawn hands)), ((poorly drawn face)), (((mutation))), (((deformed))), ((ugly)), blurry, ((bad anatomy)), (((bad proportions))), ((extra limbs)), cloned face, (((disfigured))).(((more than 2 nipples))).[[[adult]]], out of frame, ugly, extra limbs, (bad anatomy), gross proportions, (malformed limbs), ((missing arms)), ((missing legs)), (((extra arms))), (((extra legs))), mutated hands, (fused fingers), (too many fingers), (((long neck)))
如果你的生常有不一樣的目標就要自己多嘗試。
另外,你後面看文件可以多注意CFG scale(prompt參考指數)跟denoising strength(重繪指數)等等操作,他們都時時影響著你的作品,這部分就如前面說的,多看文件,後面會提供。
Stable Diffusion (完全免費,算圖工具之一)
以下針對AUTOMATIC1111版本撰寫
概念上用stable diffusion才是正道,目前市面一堆XXX Diffusion其實都互相有血緣關係,
其他收費的建議少用,畢竟這東西原本就是open source,也就是研究為主,是沒必要花錢,正確之道應該是要自己去做資料訓練。
重要概念
建議一般人看1跟2,若有興趣就看3
1. Stable Diffusion WebUI
Stable Diffusion 簡單來說,就是一個基礎運作結構,她啟動的CMD(黑色視窗)是程式主體,拜託別關掉它Orz,而webUI只是基於這結構加上去的,webUI簡單來說就是你開啟網頁輸入127.0.0.1:XXXX這段,他連到你臨時建立的server,實際上後面程式才是互動關鍵,而那個網頁說到底只是幫助你方便使用,目前最有名的就是AUTOMATIC1111。
2. 最基礎應用Model概念
model中文就是模型,有人常常說,使用了什麼model圖很不錯,通常主要是指你用的ckpt檔(依訓練方法與來源不同,可能有不同副檔名,但在這裡你只要知道ckpt即可),這是一個AI通用格式之一,AI的所有運作概念就是壓縮到這上面運作的,所以通常你下載的Stable Diffusion webUI會有資安危機,而ckpt較不可能,而網路上有些pt、bin等等檔案就是要給你訓練或額外hypernetwork等項目使用的,一切看提供者的文件,不過你至少只要知道,抓不同model的ckpt檔案就能有不同的模型可以做成圖片。
一般初次使用只要注意主要的model即可。
若你有些基礎電腦知識,
這邊講的主要model,講的是Stable Diffusion v1.4或v2.0等等,也就是預訓練(pre-training),你可以當作主要的原生核心資料庫(實際上AI不能叫資料庫,它包含推理的數學層面),通常是需要數百、甚至數千個專業GPU或者ASIC晶片去進行運算,一般公司在投資,若要立足於有個基本專長,一次性基本硬體建設最低入門檻需要200~300萬美金,設備大約只足夠應付兩三年,未來要依需要增加的,另外額外電費就是每月1萬美金上下,不過如果你要到達領導地位,一般沒有一億美金進入,幾乎沒有任何機會的,而且這金額年年上升,而產物也容易出現廢物,例如不如人品質的model,但一但出現優秀的model,就是有機會改變世界,若要形容,是個方便非常暴力的產業,當然你不用擔心使用會怎樣,因為你會慢慢知道這些model後面還有很多技術秘密你是無法取得的,而他們丟出model通常是秀肌肉打廣告,此外也是在養其他依賴你model的小公司產業鏈,再者放著也是會過時,對於大公司而言,釋出並非壞事。
對於拿不出2~300萬美金的小公司,一般採用的策略比較傾向再造與服務業,當然缺點就是容易受人牽制,但不代表沒有生存空間。
一般人能做的就是所謂微調(fine-tuning),
提供個概念,fine-tuning會依照你使用的模型方法而有品質與速度上差異,若以Waifu Diffusion現有的討論,他們使用Anifusion模型方法生成,並基於sd v1.4模型做微調,3090連續運作40 GPU-days才出現可用圖片,而後花了快兩個月慢慢調整才慢慢能穩定使用。
但最近新出來基於PEFT的RoLa模型方法也適用於微調,這些製作模型就快很多,並且也根本不需要3090,只需GTX1070即可完成。
而未來還有更多方法在發展,這速度會非常快。
3. 額外Model知識,Embedding、Hypernetworks 與 Checkpoint
這部分初期你可以不用理他,
這裡是微調(fine-tuning)完整補充,又有人稱做小模型。
其實他跟前面講的ckpt一樣,都是model,是透過訓練而成的,主要目的也是生成圖片。
你要怎麼認知這件事呢?
若以擬人化來形容,大家都有上學過,上學是基本知識的訓練,而各家學校訓練不同(waifu、NovalAI或anything v30等等),出來的最基本的model擅長的推理也就不同,
Hypernetwork就像是補習,以原生基礎改變與延伸,若你基礎不好也是沒意義的,
Embedding就好比自學加強某項專長,並訓練到一個程度,但他技術會有範圍限制的,
Checkpoint額外訓練(不是指原本主model),就好比你就學時額外上了其他學校或雙修,最終你在工作時,會選擇使用基礎技能的比例。
以下三個功能AUTOMATIC1111的Stable Diffusion已經內建,不過使用表現不一定如自己做的好。
(1) Embedding 嵌入:
主要針對特定細節與畫風進行改變,例如僅用一個prompt就能完整描述某個作家風格、某個角色。
通常以pt檔存放,他能會幫model找到特定提示目標,然後生成以embedding訓練數據相似的圖像。原本model保持不變時,你只能得到model已經能夠做到的東西,不過使用embedding後,你能透過一個 “關鍵字(prompt keyword)”,幫助原生model內部擴展為非常精確的提示。
(2) Hypernetworks 超網絡:
主要讓整體風格與特徵做變化,引入之後,他會先以原先model畫好,再進行修改的動作。
在AUTOMATIC1111的Stable Diffusion的操作上必須使用setting進行預先設定引入目標hypernetworks,之後你的生成圖像都會有該hypernetworks的特徵。
通常以pt檔存放,在通過原本model渲染圖像後再處理的附加層。Hypernetworks是依照基於原本model參照新數據去做訓練而成,他是透過此 "改變" 原model做生成的方案,雖然訓練時你需要載入大model,通常建議顯卡VRAM超過12GB,但是後續產生的pt檔可以在非常小的檔案就能產生風格轉變。他的優勢和劣勢基本相同:hypernetworks引入後,能讓每張包含您的訓練數據的圖像,看起來都像您的訓練數據。當然這也是反效果,假如你訓練了特定的動漫作者風格與角色資料,不過你將會很難嘗試任何其他動漫角色,因為他僅依賴於模型已知的關鍵字,他的偏好也會非常明顯。
(3) Checkpoint 檢查點模型(通過 Dreambooth 或類似工具訓練):
主要目的是調整核心model,在畫之前就能預先做出更符合你訓練的目標。
這個訓練之後就是更換主要model的ckpt,
也因此,通常以ckpt檔保存,他思路就是直接從最基礎的部分下手,也因此他能產出更靠譜的項目,他的概念屬於知識層面的重新交織,也因此她所需的顯卡VRAM通常能到24GB以上,我們能訓練一些新的小東西為新的mode (ckpt檔),並且改變原本model中判斷的 "權重",因此這個model就能夠透過推理渲染與訓練數據更相似的圖像。例如之前noval AI就有手指的問題,大約半個月,又另一批人用了Dreambooth進行處理,從那之後新出的model很少有手指方面的問題。不過,你需要注意的是,它並不是以“覆蓋”方式處理現有數據,她不會像hypernetworks,任何動漫角色看起來都像你訓練的那款,他是能夠依照要求做調整的。
除了我上面講解之外,我發現也有人文章寫得不錯。
使用方法
以下說明概念主要以AUTOMATIC1111的webUI為主,若不是我會額外說明,要不然一律主要講AUTOMATIC1111的運用
(一) 最基本的安裝
MacOS安裝
Windows安裝
(六) 自己額外訓練
建議先把基本的關鍵字玩的來去自如再來用訓練,要不然會兩頭空。
如前面所言訓練其實並沒有想像困難,主要是因為AUTOMATIC1111已經把很多功能他加到介面裡面了,只要你願意花點時間搞懂,就能訓練出自己的tag,不過內建的訓練,雖然便利不算差,但機能還是偏低,如果你要讓AI有自身的獨創性,那就要多看其他文件與方法,這邊初學就不詳寫,不過後面有推薦的youtuber,可以多看他們的教學。
內建訓練達成的效果有幾個
訓練目前因為有版權未定的癥結點問題,如果你只是二創或者自己娛樂,那就不用擔心,但是商用的話,通常建議以下兩種方式使用
- 自身是繪師或者建模師,自己做特定目的的繪圖或3D model,這應該是最簡單的部分,尤其3D建模已經簡化不少,資源也非常多。通常目的是能對你的作品簡化手工的部分,尤其你手繪到一個程度,他是能讓作品維持品質與優化。
- 若你就是無法自創圖片,目的是直接生成,那關鍵是不保留圖片,並且避免擬合,
如果你是擅長自動化的工程師,你可以用自己的方法,在不保留圖片的方式下取得圖形的訓練,一般最簡單方案就是參考網路上推薦的訓練網址,讓瀏覽器自動抓圖訓練徹底刪除一次做到底,
因為說到底,目前類神經網路就跟人腦神經元運作近似,所以他們學會之後,你是不能像database或者任何壓縮檔案這樣拆解分析,ckpt僅有4GB能畫出不同風格,不是因為ckpt裡擷取了那些圖片後能做簡單剪貼,而是他能用神經元的推理模式產生對應影像,也因此你只要讓他學會之後砍掉圖片,就等於你只是讓模型在訓練時見過圖片而已。
其實還有很多花招可以自己想,例如你讓爬蟲,針對真實世界圖片做瀏覽,後面控制擷取螢幕並取得圖片後,利用OpenCV 或 第三方轉動漫的AI進行二次重繪圖片,網路上有很多重繪各風格工具,不過通常還在GAN的方法,你也能混合其他技術,諸如現在容易取得的自動2D to 3D建模等等,這種方式通常已經改變圖片風格與特徵,就算別人質疑你,但因為那些圖片都是有大幅度變動過,就算保留下來也很難反向追尋原圖。
最終你要透過數據去確認一下是否過擬合或欠擬合,過/欠擬合問題簡單來說就是AI model在訓練過程中,他學到的是錯誤的組合或者偷機取巧,例如一張圖,他就擅長某個臉與組合,你要換關鍵字產生新邏輯時,她不能換個方式畫出來,例如NovalAI就明顯有擬合問題,他不能像Dall E2這種比較訓練完善的AI,能自行腦補推理缺少的,或者產生更特別的圖片,不過這裡有個矛盾的問題點,擬合問題對於初期訓練的人可能會遇到,但有時候並非絕對壞事,所以你不得不承認他是非常便利的應用,但長遠來說,是不好的。
教學影片
如果聽不懂英文就只能看對岸講的,還不錯,最簡單作法
【【AI绘画】AI不认识人物怎么办!强大的Textual Inversion【NovelAI】】
不過通常影片是最簡單的,建議要多看一些文章,因為個別情況非常百百種,看別人經歷是最快的,而且有很多方法,要自己慢慢累積,若有空就分享,但要人解答應該是很難給你答案,這東西組合性很高,你應該要先確立好自己在用什麼,並控制好他,並不然,就是沉住性子看些文件慢慢試。
(七) 顯卡與運算選擇
1. 速度測試與加速教學
如果你是建立在自己電腦,就會有運算考量,我這邊寫得主要是基於AUTOMANTIC1111的Stable diffusion版本
2. 應注意事情
- DRAM:建議至少16GB以上,據說2023年1月以後已經不能用低於14GB的DRAM。
GPU與VRAM:建議1060 3GB以上(實測預設參數,prompts用cat 約21~25秒),發現3GB可以設medvram,已知1050 2GB以下都會超過1分鐘以上。
CPU:目前最低INTEL G1820都沒問題,推測任何低階CPU都可以用,只要有顯卡。
- 非所有NVIDIA顯卡都完整支援,1660~1630是FP16有問題
- 加速建議要開啟xformers
- 記憶體使用量與圖片生成大小
- Colab是個很好的雲端資源
- 已經有人採用TPU,大量生成圖片性能比起GPU快很多
- APPLE ARM晶片意外的越來越好用
分兩個方向
1. GPU運算
如StableBee
若你自己弄gradio,pytorch版本正確,開啟MPS會加速表現非常不錯,要看你運算項目,但算圖表現,M1最低階GPU大約GTX1060 ~ RTX2060顯卡性能,M1 MAX大約介於RTX 3050 ~ 3070之間變化,性價比與能耗比都非常優秀,尤其能耗比,一個15~35w晶片能算出超過100瓦顯卡的表現,算是非常不錯。
2. NPU運算
這比較麻煩,前面有介紹,MochiDiffusion,他比MPS省電而快一點,軟體還沒完善開發,以我觀點大概就是m1最低接用低電壓晶片的內顯水平接近RTX 3050,在沒風扇的情況下全程沒超過60度,所以,OK,NPU真的猛,以前看人走NPU這路子還不敢想他有多好,現在用了真的整個人都好了。
所以我更加肯定ARM在AI推理真的很猛,之前也有研究過,一些ARM開發板使用NPU的表現在學術研究上的分享,確實都很不錯的表現。
- 我是很支持AMD顯卡,作為遊戲競爭,他保持了一定競爭。但做為科學運算,目前AMD的弱項就是軟體與韌體,跟APPLE或NVIDIA的差距非常遙遠,那差距即便你花費大量時間補齊了軟體層面,他韌體還是有非常大的瑕疵,若你有AI需求,這之前的顯卡不建議急著購買AMD,我有嘗試使用過,目前調用ROCm遠遠不如使用APPLE ARM晶片MPS簡單而有效率,尤其你有開發手機AI運算時,當然,目前最簡單方案還是使用NVIDIA或者Colab。
另外Stable Diffusion是基於pytorch,所以你必須知道Pytorch在ROCm僅有Linux支援,你可以到Pytorch網站理解,實際上有趣的是,目前所有測試,MacOS還是很好用的一個選擇,畢竟他就一條路,MPS支援會慢慢跟上
https://pytorch.org/

圖像ML,VRAM通常是主要瓶頸,GPU則要看你運算是否有要特殊算法,一般來說是不會考慮閹割特殊版本GPU做運算,這主要是NVIDIA會做的事情,像是1660~1630就是FP16有問題,黑圖無解,AMD因為放生GPU非常久,所以也要避免拿來做科學運算,並不是AMD性能差,反倒是AMD很多硬體基礎很好,軟體亂作一通,所以沒人用。
可以參考這篇
自己顯卡建議要開xformers
若單純生txt2img 512^2 圖片,一般2~4GB RAM足以
若要img2img 1024^2 圖片,建議6~8GB起跳
內建的訓練圖片,一般8GB就能跑,但是速度會不快,建議要12GB
但要更大張,商業使用,建議買colab pro,除了VRAM與彈性很高,主要還是他終究比你買顯卡來跑划算,尤其電費與保固方面你完全不用擔心,pro+ 的RAM大小更是你買顯卡辦不到的。
當然colab也不是完美的,他有一些限制,不過他之所以越來越常見,是因為便利性與品質都不錯,尤其開發python與運用上。
目前免費的就是提供 15GB的VRAM,只是你能調用的運算跟GPU較差
想想你的電腦要16GB VRAM得花多少錢,就會花錢用他

Colab上面執行Stable Diffusion的教學很多,例如可以看下面這篇
目前有些人已經開始嘗試使用TPU,TPU運作速度理論比起GPU更快,目前也比較不搶手,
看一些文件測試,我自己對應Colab pro使用V100,8張近似的圖我要40多秒,但他們TPU可以壓到不到6秒,不過資料不多我也沒嚴謹測試,僅供參考,不過8張圖不到6秒,完全輾壓大多數顯卡,我的3090也沒這麼快,唯一缺點是她就很單純的Stable Diffusion,WebUI可能就要你自己用Gradio架設。
相對應的引用網址
(八) custom scripts
需要基本python開發經驗會比較好用一點
其他Stable Diffusion,看各家製作看狀況,這邊講AUTOMATIC1111
這邊若要形容,就是類似Blender或者各類opensource必然會提供的 "插件" 擴充可能性,
雖然AUTOMATIC1111使用Gradio又是opensource,意味著提供你很大改造彈性,
不過如我你不喜歡進行大改造,只是希望尋求一些別人寫好的特殊插件,或者自己寫一些小程式,是能從他的Custom-Scripts去找。
主要資源可看:
相對應教學youtube很多,如果youtube沒有,reddit也能找到他們發布程式的公告,若有問題可以在reddit問
OpenAI DALL.E2(收費)
有免費額度
OpenAI這間公司在Transformer model的技術上非常突出,因為致力於免費公開技術,所以論文與一些程式非常好找。不過DALL E2多少被認為具備代表性的主因是CLIP的方法打響整個AI繪圖市場,這種自然語言(NLP)應用到與AI溝通並繪圖的手段,實際上一直都有存在,當然,不得不承認CLIP是個好方法,市面上目前常見的Diffusion程式拆開程式碼來看,多少會整合了CLIP與diffusion model的方法。
Midjourney(收費)
記憶中有免費額度
Noval AI (收費)
有免費額度
這個項目同樣是非常方便不擅長使用的人,並且是製作動漫R18相關的圖片,你只要在他網頁上註冊並付費就可以使用,他的調配比起你自己架設Stable diffusion簡單很多。
二,社群
社群媒體:
討論前建議摸熟系統,例如你是用WebUI 是AUTOMATIC1111製作的,建議要摸過一遍裡面的所有項目再去討論,建議右鍵翻譯成中文,大概正常不用半天你就知道各個頁籤在做什麼。
藝術創作相關資訊網站:
自由軟體整合
既然他open 自然就有plugin整合優勢,在Stable Diffusion 推出短短一個月,幾乎所有自由軟體都有對應的plugin,而且實用性很高
不過plugin因為是私人開發,如果有github,建議至少1000個star再使用,而且要查閱一下他過去有沒有黑歷史,有閒有空有能力就幫他code review一次再自己package。
以上youtube都能看到不少人分享使用心得
三,其他生成圖片AI
四、額外補充
最近的大部分繪圖都是CLIP的Diffusion發展過來,明後年已知有更新更好的AI要推出來,所以不一定能繼續解釋,不過至少要知道現在狀況。
對Stable Diffusion的應用原理,可以看這個人說明的,稍微理解一下運作的原理,其實他還是沒講清楚組合那段,但他至少能講出生成圖片的概念與原理。
聽不懂英文,可以聽對岸,有些講得不錯,簡單有趣,也滿有依據,只是沒這麼科學
更學術一點則可以聽
XXXX Diffusion 出現對於有些族群衝擊很大,而人類會因為情感上的因素,常常會直接批判他一波再說,例如最常見的曲解就是說Stable Diffusion不知道圖與文字之間關係,有些人甚至認為是剪貼或隨機拼湊,GAN時代確實是認知概念後,圖片靠拼湊出來,做生成對抗來修正,所以大部分人認知在這時期出現偏頗,不過CLIP搭配diffusion變化並不同於GAN,首先diffusion是DDPM衍生出來的,所以根本運作方法就不能算是GAN的方法,即便所有深度學習還有擬合問題產生的誤解,例如novalAI普遍認為就是過擬合產物,但回顧CLIP方法下的diffusion特色有兩個 1.從發展一開始就是追求讓模型能對文字產生對應概念,所以你咒語越長,只要模型能應付,他就越能搞懂你要畫的細節,2. 他繪製方式,是把隨機打散的點(或叫做noise),有辦法重新依照深度學習的基礎,一步步重新畫起來,所以更有創造爆發力,而不是剪貼,除非你訓練壞或方法不好,他就類似人類在思考方式,你說具有維多利亞風格的兔子站在梯子上,人類會從腦中隨機抓出三個概念,並且慢慢從模糊去噪形成一個清晰的圖片,這就是所有以神經元概念運作方法,都會使用類似的方法,並沒有誰比較高大尚,差別只在於認知範圍。
畫圖的AI,僅會用在繪圖,正面一點的人會拿它做點什麼做點正面事情,有這項技術,結合UE5與2D to 3D高模自動建置,你要創造自己宇宙級別的世界將不是夢
比較麻煩的還是負面的人,這種人真的很煩,他們會浪費時間糾結他能不能叫做繪圖或藝術,最糟糕的是,有些人從沒想過自己用繪圖軟體,已經做了各種輔助,你叫這群人真實拿起紙筆,能畫的好的是少數。
大家花時間、金錢與精力,如果只是做出一個隨機產生搭配的紙娃娃,如果只是photoshop都能做到的事情,那不需要這麼多人努力去發展,更何況隨機不可控是最不可能讓企業或學術掏錢繼續研究,你自己就能寫的小程式那還需要國家跟科學單位去研究麼?
而這只是剛開始,如果才剛踏出第二三步這樣就毀天滅地,那未來變化會越來越大,那要怎麼辦,對不?
目前業界認為會慢慢出現大量AI輔助自動生成的順序
1. 圖形 (含建模與影片)
2. 程式碼
3. 聲音
4. 遊戲或元宇宙的自動開發與互動
當然這東西,並不需要強迫彼此理解,時間還是會慢慢改變一些人想法,檯面上看到的也只是冰山一角,繪圖AI說破只是輔助藝術家創作的工具,你如果沒有繪圖或製作3d跟AI模型整合能力,那你會無法超越時代,你也無法做大規模創作,其實網路上大家不謀而合,都認為這類AI應用,對於未來藝術家跟工程師創建元宇宙,會越來越容易。