本系列我會帶大家學習一款強大的 AI 繪畫工具——Stable Diffusion,可以幫你解決很多應用層面的AI控圖問題。
關于 Stable Diffusion 的內容很多,在本篇教程里,我會先為你介紹 Stable Diffusion 模型的運行原理、發展歷程和相較于其他 AI 繪圖應用的區別。
更多SD教程:
相信大家或多或少有看到過以下幾個名詞,因此有必要先給大家做個區分,以便你更好理解后續教程的內容。
- Diffusion Model:擴散模型,一款支持文本生成圖像的算法模型,目前市面上主流的 DALL E、Midjourney、Stable Diffusion 等 AI 繪畫工具都是基于此底層模型開發的
- Latent Diffusion Model:即潛在擴散模型,基于上面擴散模型基礎上研制出的更高級模型,升級點在于圖像圖形生成速度更快,而且對計算資源和內存消耗需求更低
- Stable Diffusion:簡稱SD模型,其底層模型就是上面的潛在擴散模型,之所以叫這個名字是因為其研發公司名叫Stability AI,相當于品牌冠名了
- Stable Diffusion Web Ul:簡稱SD WebUI,用于操作上面Stable Diffusion模型的網頁端界面,通過該操作系統就能控制模型出圖,而無需學習代碼
在本系列的教程中,我們需要學習的內容就是使用 SD WebUI 來調用 Stable Diffusion 模型生成圖像。
在上面介紹的幾個概念中,你會發現都包含了 Diffusion 擴散模型這個詞,所以我們先從它開始講起。
Diffusion 模型是圖像生成領域中應用最廣的生成式模型之一,除此之外市面上還有生成對抗模型(GAN)、變分自動編碼器(VAE)、流模型(Flow based Model)等其他模型,它們都是基于深度學習為訓練方式的模型。
擴散模型之所以用 Diffusion 來命名,因為它的運作過程就是向訓練圖像不斷地添加噪聲,直到變為一張無意義的純噪聲圖,再逐步恢復的過程。
其中加噪的過程就像在干凈的水中滴了一滴墨汁,顏料會逐漸向整個水體擴散,直至整個水體變渾。如果你之前有嘗試過 AI 繪畫,會發現整個繪圖過程就是從一張模糊的噪聲圖,逐漸變為清晰的圖像,而這就是逆向降噪的過程。
正常來說,標準的擴散模型已經可以實現圖像訓練和繪制了,為什么要再出一套 Latent Diffusion Model 潛在擴散模型呢?這里主要是為了計算量的問題:
標準的擴散模型是在像素空間(可以理解為高維空間)中進行的,對于一張 512x512 尺寸的 RBG 圖片,這將是一個 768432(512x512x3)維度的空間,意味著生成一張圖需要確定 768432 個值,這個過程往往需要多臺專業顯卡同時運算,我們平時自己用的商業級顯卡資源是不可能完成這個任務的。
而潛在擴散模型就是解決這個問題的,它的過程是先把訓練圖像先縮小 48 倍再進行運算,結束后再恢復到原始尺寸,這樣運算過程中需要處理的計算數據就少了許多,運算速度也會比正常的像素空間中快了很多,在硬件上的要求也大大降低,而這個壓縮后再運算的空間就是 Latent 潛空間(可以理解為低維空間)。
以上是潛在擴散模型的工作原理,但 Stable Diffusion 模型并不是單一的文生圖模型,而是多個模型組成的運作系統,其中的技術可以拆解為 3 個結構來看:
- ClipText 文本編碼器:用于解析提示詞的 Clip 模型
- Diffusion 擴散模型:用于生成圖像的 U-Net 和 Scheduler
- VAE 模型:用于壓縮和恢復的圖像解碼器
先來看看編碼器 Clip,它是由 OpenAI 公司開發的模型,包括文本編碼和圖像編碼 2 個部分,分別用于提取文本和圖像的特征,通過搜集大量網絡上的圖像和文字信息再對 Clip 模型進行訓練,可以實現文本和圖像的對應關系。
在 SD 模型運作過程中,它可以提取提示詞文本部分的特征傳遞給圖像生成器,讓模型理解我們輸入的提示詞內容,從而達到文本控制圖像生成的目的。
圖像生成器里包含了 U-Net 神經網絡和 Scheduler 采樣算法 2 個部分。
U-Net 原本是用于生物醫學圖像分割的神經網絡模型,因為工作結構像一個 U 型字母,因此被稱為 U 型神經網絡訓練模型。在擴散模型中,U-Net 可以輔助提取并解構訓練圖像的特征,有了它就能在較少訓練樣本的情況下獲得更加準確多樣的數據信息,從而使模型在出圖結果上更加精確。
在訓練擴散模型過程中,可以采用不同的算法來添加噪音,而 Scheduler 就是用來定義使用哪種算法來運行程序,它可以定義降噪的步驟、是否具備隨機性、查找去噪后樣本的算法等,因此它又被稱為采樣算法。在 WebUI 中,它是可調節的一項,我們可以根據圖像類型和使用的模型來選擇不同的采樣器,從而達到更佳的出圖效果。
最后的解碼器 VAE,全稱是 Variational Auto Encoder 變分自動編碼器。簡單來說,它的作用就是將高維數據(像素空間)映射到低維空間(潛空間),從而實現數據的壓縮和降維。它由編碼器(Encoder)和解碼器(Decoder)兩部分組成,編碼器用于將圖像信息降維并傳入潛空間中,解碼器將潛在數據表示轉換回原始圖像,而在潛在擴散模型的推理生成過程中我們只需用到 VAE 的解碼器部分。
在 WebUI 中,VAE 模型一般是訓練好的內置模型,實際效果類似模型的調色濾鏡,可以修飾最終圖像的色彩和質感。
是不是看到這里已經有點頭暈了,別擔心,這里只需簡單了解每一部分的功能即可,在后續 WebUI 的功能介紹中我們還和他們有更深的接觸,到時候就更容易理解每一部分的概念了。
1. Stable Diffusion 是如何誕生的
下面,我再為大家介紹下 Stable Diffusion 的發展歷程,有助于你更深層次的了解這款 AI 繪畫工具。
如今提到 Stable Diffusion,就不得不提 Stability AI,這家獨角獸公司在去年以十億美元的估值一躍成為這過去半年中 AIGC 行業的黑馬。但其實 Stable Diffusion 并不是由 Stability 獨立研發,而是 Stability AI 和 CompVis、Runway 等團隊合作開發的。
在去年上半年 AI 繪畫還沒開始被大家熟知的時候,來自慕尼黑大學的機器學習研究小組 CompVis 和紐約的 Runway 團隊合作研發了一款高分辨率圖像合成模型,該模型具有生成速度快、對計算資源和內存消耗需求小等優點,而這就是我們前面提到的 Latent Diffusion 模型。
大家都知道,訓練模型需要高昂的計算成本和資源要求,Latent Diffusion 模型也不例外。而當時的 Stability 恰巧也在尋找 AI 領域發展的機會,于是便向手頭拮據的研究團隊遞出了橄欖枝,提出愿意為其提供研發資源的支持。在確定合作意向后,Stability 才開始正式加入到后續 Stable Diffusion 模型的研發過程中。
隨后到了 7 月底,訓練后的新模型以 Stable Diffusion 的名號正式亮相,現在大家知道 Stable 這個詞其實是源于其背后的贊助公司 Stability。相較于 Latent Diffusion 模型,改進后的 Stable Diffusion 采用了更多的數據來訓練模型,用于訓練的圖像尺寸也更大,包括文本編碼也采用了更好的 CLIP 編碼器。在實際應用上來說,Stable Diffusion 生成模型會更加準確,且支持的圖像分辨率也更高,比單一的 Latent Diffusion 模型更加強大。
在 Discord 上進行短期內測后,Stable Diffusion 于 8 月 22 日正式開源。后面的事情大家都知道了,就在推出的短短幾天后,Stability 拿到了 1 億美元的融資,讓這家年輕企業直接獲得了約 10 億美元的估值,可謂是名利雙收。
雖然 Stability AI 通過 Stable Diffusion 這款開源模型享譽世界,但它背后其實暗藏著讓人詬病的商業行為。就在 6 月初,福布斯發布了一條關于 Stability 創始人夸大 Stable Diffusion 成就的新聞,其中羅列了竊取 Stable Diffusion 研究成果、學歷造假、拖欠工資等 9 大罪證,如果對其感興趣的朋友可以去看看原文:
福布斯報道原文:https://www.forbes.com/sites
2. 從開源到百花齊放
對于 Stability 的商業行為我們不做過多點評,但他們在開源這條路上確實踐行的很好,正如他們官網首頁所說:AI by the people, for the people—AI取之于民,用之于民。
起初,Stable Diffusion 和 Midjourney 一樣先是在 Discord 上進行了小范圍的免費公測。隨后在 22 年的 8 月 22 日,關于 Stable Diffusion 的代碼、模型和權重參數庫在 Huggingface 的 Github 上全面開源,至此所有人都可以在本地部署并免費運行 Stable Diffusion。
最早在 Github 上開源的代碼地址:https://github.com/huggingface/diffusers/releases/tag/v0.2.3
有朋友可能對開源這個詞比較陌生,這里簡單介紹下:開源指的是開放源代碼,即所有用戶都可以自由學習、修改以及傳播該軟件的代碼信息,并且不用支付任何費用。舉個不太恰當的比喻,就像是一家餐廳把自己辛苦研究的秘制菜譜向全社會公布,任何人都可以拿去自由使用,不管是自己制作品嘗,還是由此開一家新餐廳都可以。但這里有個問題,并不是每個人都是廚師,更不用說做這種需要繁瑣環境部署和基礎設施搭建的“秘制菜”。
開源后的 Stable Diffusion 文件,起初只是一串你我這樣小白都看不懂的源代碼,更不用說上手體驗。但伴隨著越來越多開發者的介入,Stable Diffusion 的上手門檻逐漸降低,開始走向群眾視野,它的生態圈逐漸發展為商業和社區 2 個方向。
一方面,海量的中小研發團隊發現了商機,將其封裝為商業化的套殼應用來進行創收,有的是 APP 網站等程序,有的是內嵌在自家產品中的特效和濾鏡。根據 Stable Diffusion 官網統計的數據,在 Stable Diffusion 2.0 發布一個月后,蘋果應用商店排名前十的 App 中就有四款是基于 Stable Diffusion 開發的 AI 繪畫應用。
這些應用在很大程度上都進行了簡化和設計,即使是小白用戶也可以快速上手,當然缺點就是基本都要付費才能使用,而且很難針對個人做到功能定制化。
另一方面,開源的 Stable Diffusion 社區受到了廣泛民間開發者大力支持,眾多為愛發電的程序員自告奮勇的為其制作方便操控的 GUI 圖形化界面(Graphical User Interface)。其中流傳最廣也是被公認最為方便的,就是由越南超人 AUTOMATIC1111 (下文統一用 A41 代稱)開發的 WebUI,而這正是前面提到的 Stable Diffusion WebUI,后面的教程內容都是基于該程序展開的。
它集成了大量代碼層面的繁瑣應用,將 Stable Diffusion 的各項繪圖參數轉化成可視化的選項數值和操控按鈕。如今各類開源社區里 90%以上的拓展應用都是基于它而研發的。
當然,除了 WebUI 還有一些其他的 GUI 應用,比如 Comfy UI 和 Vlad Diffusion 等,不過它們的應用場景更為專業和小眾,感興趣的可以點擊下面的 GitHub 鏈接了解,這里就不再贅述了。
Comfy UI 地址: https://github.com/comfyanonymous/ComfyUI
Vlad Diffusion 地址: https://github.com/pulipulichen/
看到這里,你已經了解了 Stable Diffusion 的發展背景和生態環境,那它和其他 AI 繪畫工具相比到底有哪些優勢呢?
目前,市面上絕大多數商業級 AI 繪畫應用都是采用開源的 Stable Diffusion 作為研發基礎,當然也有一些其他被大眾熟知的 AI 繪畫工具,比如最受歡迎的 Midjourney 和 OpenAI 公司發布的 DALL·E2。但不可否認的是,開源后的 Stable Diffusion 在實際應用上相較其他 AI 繪畫工具存在巨大優勢:
1. 可拓展性強
首先最關鍵的一點就是極其豐富的拓展性。得益于官方免費公開的論文和模型代碼,任何人都可以使用它來進行學習和創作且不用支付任何費用。光是在 A41 WebUI 的說明文檔中,目前就已經集成了 110 多個擴展插件的功能介紹。
從局部重繪到人物姿勢控制,從圖像高清修復和到線稿提取,如今的 Stable Diffusion 社區中有大量不斷迭代優化的圖像調整插件以及免費分享的模型可以使用。而對于專業團隊來說,即使社區里沒有自己滿意的,也可以通過自行訓練來定制專屬的繪圖模型。
在 Midjourney 等其他商用繪畫應用中,無法精準控圖和圖像分辨率低等問題都是其普遍痛點,但這些在 Stable Diffusion 中通過 ControlNet 和 UpScale 等插件都能完美解決。如果單從工業化應用角度考慮,如今的 Stable Diffusion 在 AI 繪畫領域毫無疑問是首選工具。
2. 出圖效率高
其次是其高效的出圖模式。使用過 Midjourney 的朋友應該都有體驗過排隊等了幾分鐘才出一張圖的情況,而要得到一張合適的目標圖我們往往需要試驗多次才能得到,這個試錯成本就被進一步拉長。其主要原因還是由于商業級的 AI 應用都是通過訪問云服務器進行操作,除了排隊等候服務器響應外,網絡延遲和資源過載都會導致繪圖效率的降低。
而部署在本地的 Stable Diffusion 繪圖效率完全由硬件設備決定,只要顯卡算力跟得上,甚至能夠實現 3s 一張的超高出圖效率。
3. 數據安全保障
同樣是因為部署在本地,Stable Diffusion 在數據安全性上是其他在線繪畫工具無法比擬的。商業化的繪畫應用為了運營和豐富數據,會主動將用戶的繪圖結果作為案例進行傳播。但 Stable Diffusion 所有的繪圖過程完全在本地進行,基本不用擔心信息泄漏的情況。
總結來說,Stable Diffusion 是一款圖像生產+調控的集合工具,通過調用各類模型和插件工具,可以實現更加精準的商業出圖,加上數據安全性和可擴展性強等優點,Stable Diffusion 非常適合 AI 繪圖進階用戶和專業團隊使用。
而對于具備極客精神的 AI 繪畫愛好者來說,使用 Stable Diffusion 過程中可以學到很多關于模型技術的知識,理解了 Stable Diffusion 等于就掌握了 AI 繪畫的精髓,可以更好的向下兼容其他任意一款低門檻的繪畫工具。
結束撒花
本期關于 Stable Diffusion 的基礎介紹到這里就結束了,下篇我會分享 SD 的部署教程和更多學習經驗。
歡迎關注作者微信公眾號:「樂伊體驗筆記」
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
發評論!每天贏獎品
點擊 登錄 后,在評論區留言,系統會隨機派送獎品
2012年成立至今,是國內備受歡迎的設計師平臺,提供獎品贊助 聯系我們
標志設計標準教程
已累計誕生 729 位幸運星
發表評論 為下方 2 條評論點贊,解鎖好運彩蛋
↓ 下方為您推薦了一些精彩有趣的文章熱評 ↓