生成式 AI 無敵了: 大神微調 Stable Diffusion,打造神奇寶貝新世界
- 2022 年 9 月 30 日
- AI
作者 | 李梅、施方圓
編輯 | 陳彩嫻
作為一個強大、公開且足夠簡單的模型,最近大火的 Stable Diffusion 在文本生成影像之外,給了大家無限的創作可能性。
最近,來自 Lambda Labs 的機器學習研究員 Justin Pinkney 對該模型進行了微調,構建了一個神奇寶貝生成器!
來看一些有趣的例子~
下圖是輸入名字後生成的一些神奇寶貝:戴珍珠耳環的少女、奧巴馬、川普、鮑里斯·約翰遜、龍貓、Hello Kitty。
Lady Gaga、鮑里斯·約翰遜、普京、默克爾、川普、柏拉圖:
耶穌基督:
除了現有的角色和公共人物,你還可以輸入一個描述來生成自己想像的神奇寶貝:骷髏祭司
你也可以輸入自己的姓名或網名,生成屬於自己的神奇寶貝形象。這可太酷了,推特上的網友紛紛用自己的名字展開創作,看看自己如果變成神奇寶貝會是什麼樣子。


圖註:網友 Elizabeth Holmes 的神奇寶貝形象

圖註:網友 Upbeatblue 的神奇寶貝形象

圖註:網友 Onion-sama 的神奇寶貝形象
輸入一些漫畫角色的名字也可以獲得相匹配的神奇寶貝:
而那些陪伴人們童年的神奇寶貝在這個生成器中也有了新的樣貌:皮卡丘、妙蛙種子、噴火龍、樹才怪、路卡利歐、夢幻。
Pinkney 在推特上展示了這個神奇寶貝生成器的訓練過程。
他表示,Stable Diffusion 是一個很好的通用模型,但要獲得特定風格的輸出不是件容易的事,這通常需要做大量枯燥的工作,製作複雜的文本提示庫,或者你也可以偷懶只對影像生成模型進行微調。
Pinkney 在神奇寶貝影像的數據集上對初始的 Stable Diffusion 進行了微調。
首先是構建一個數據集。數據集包含神奇寶貝影像和對應的文本描述,比如妙蛙種子被描述成「一個紅眼睛的綠色神奇寶貝影像」,綠毛蟲則被描述為「一個長著紅鼻子的綠黃兩色玩具」。

圖註:神奇寶貝數據集
當然,這些描述不是人工完成的,而是使用了神經網路來代勞,即影像描述模型 BLIP。雖然這些描述還不是十分完美,但也足夠用了。
然後,他在 A6000 上只花費了幾個小時對 AI 模型進行訓練,讓模型學習以神奇寶貝的風格來生成影像,但將先前的知識保留一段時間,最終對數據集產生過擬合。
開始時,樣本是正常影像的樣子,然後逐漸獲得神奇寶貝的風格,隨著訓練的繼續,最終呈現一個與原始提示不同的神奇寶貝影像:
這是一種很簡單的微調,但它運行得非常好。有了這樣一個微調後的模型,無論你給它什麼提示,它都會生成神奇寶貝。所以不必再煞費苦心地想提示語了。
在創建神奇寶貝時,你可以選擇輸出多個:
圖註:帶翅膀的機械貓
Pinkney 表示,歡迎大家用更複雜的方式把這個模型專門地用在新領域。像這樣的小工具就是 Stable Diffusion 這類 AI 模型開源好處的體現。
這個模型在網上引起創作熱潮後,Pinkney 又發布了一篇部落格補充了一些額外的工作細節。
他發現,令人驚訝的是,這個模型竟然設法記住了初始 Stable Diffusion 的一些通用知識,而它只是在一個有限的數據集上訓練了幾千步。但是,對神奇寶貝進行微調時,模型實際上很快就會開始過度擬合,如果只是以一種簡單的方式從中取樣,模型就會為新的提示生成胡言亂語式的神奇寶貝,也就是說,它已經災難性地遺忘了它所訓練的原始數據)。但是 Stable Diffusion 在訓練期間保持模型的指數移動平均 (EMA) 版本,通常用於推理。
因此,如果使用 EMA 權重,我們實際上是在使用原始模型和微調模型的平均值。事實證明,這對於生成神奇寶貝而言是必不可少的。此外,你還可以通過直接將新模型與初始模型的權重進行平均來微調效果,以控制生成神奇寶貝的數量。微調和對模型進行平均的操作可以將原始內容與微調後的風格有效混合。
圖註:左邊是完全微調的模型,右邊是只微調注意力層的模型。
另外,你也可以凍結模型的不同部分來進行微調,比如上圖是兩種微調方式的生成效果,可以看到,只微調了注意力層的模型可以生成更正常的 Yoda,但並不太擅長製作神奇寶貝。
參考鏈接://www.justinpinkney.com/pokemon-generator/
雷峰網