穩(wěn)定擴散如何發(fā)展成為主流消費產品
具有諷刺意味的是,風靡全球的新 AI 圖像合成框架Stable Diffusion既不穩(wěn)定,也沒有真正“擴散”——至少目前還沒有。
該系統(tǒng)的全部功能分布在不斷變化的產品的各種大雜燴中,這些產品來自少數開發(fā)人員,他們在 Discord 上的各種討論中瘋狂地交換最新信息和理論——以及他們正在創(chuàng)建的軟件包的絕大多數安裝程序或修改與“即插即用”相去甚遠。
相反,它們往往需要通過 GIT、Conda、Python、Miniconda 和其他前沿開發(fā)框架進行命令行或BAT 驅動的安裝——這些軟件包在普通消費者中非常罕見,以至于它們的安裝經常被防病毒和反惡意軟件供應商作為主機系統(tǒng)受損的證據。
標準穩(wěn)定擴散裝置目前需要的手套中只有一小部分階段可供選擇。許多發(fā)行版還需要特定版本的 Python,這可能與安裝在用戶計算機上的現(xiàn)有版本發(fā)生沖突——盡管這可以通過基于 Docker 的安裝以及在一定程度上通過使用 Conda 環(huán)境來避免。
SFW 和 NSFW Stable Diffusion 社區(qū)中的消息線程充斥著與破解 Python 腳本和標準安裝相關的提示和技巧,以實現(xiàn)改進的功能,或解決頻繁的依賴錯誤以及一系列其他問題。
這使得有興趣從文本提示創(chuàng)建令人驚嘆的圖像的普通消費者幾乎受制于越來越多的貨幣化 API Web 界面,其中大多數在需要購買代幣之前提供最少數量的免費圖像生成。
此外,幾乎所有這些基于 Web 的產品都拒絕輸出 NSFW 內容(其中大部分可能與普遍感興趣的非色情主題有關,例如“戰(zhàn)爭”),這將 Stable Diffusion 與 OpenAI 的 DALL-E 的低俗服務區(qū)分開來2.
'用于穩(wěn)定擴散的 Photoshop'
每天在 Twitter 的#stablediffusion 主題標簽中出現(xiàn)的精彩、活潑或超凡脫俗的圖像令人著迷,可以說,更廣闊的世界正在等待的是“Photoshop for Stable Diffusion”——一個跨平臺的可安裝應用程序,具有最佳和最強大的功能Stability.ai 的架構,以及新興 SD 開發(fā)社區(qū)的各種巧妙創(chuàng)新,沒有任何浮動 CLI 窗口、晦澀且不斷變化的安裝和更新例程,或缺少功能。
在大多數功能更強大的安裝中,我們目前擁有的是一個各種優(yōu)雅的網頁,上面有一個無實體的命令行窗口,其 URL 是一個 localhost 端口:
與 FaceSwap 等 CLI 驅動的綜合應用程序和以 BAT 為中心的 DeepFaceLab 類似,Stable Diffusion 的“預打包”安裝顯示了它的命令行根,其界面通過 localhost 端口訪問(見上圖頂部),該端口進行通信使用基于 CLI 的穩(wěn)定擴散功能。
毫無疑問,一個更精簡的應用程序即將到來。已經有幾個可以下載的基于 Patreon 的集成應用程序,例如GRisk和NMKD(見下圖)——但目前還沒有一個集成了所有更高級和更不易訪問的穩(wěn)定實現(xiàn)的功能擴散可以提供。
早期的,基于 Patreon 的穩(wěn)定擴散包,輕度“應用化”。NMKD 是第一個將 CLI 輸出直接集成到 GUI 中的產品。
讓我們來看看這個令人驚嘆的開源奇跡的更完善和完整的實現(xiàn)最終會是什么樣子 - 以及它可能面臨的挑戰(zhàn)。
資金充足的商業(yè)穩(wěn)定擴散應用的法律考慮
NSFW因素
Stable Diffusion 源代碼是在極其寬松的許可下發(fā)布的,該許可不禁止商業(yè)重新實現(xiàn)和從源代碼廣泛構建的衍生作品。
除了前面提到的越來越多的基于 Patreon 的 Stable Diffusion 構建,以及為Figma、Krita、Photoshop、GIMP和Blender(以及其他)開發(fā)的大量應用程序插件之外,沒有任何實際理由可以很好地受資助的軟件開發(fā)公司無法開發(fā)出更復雜、更強大的穩(wěn)定擴散應用程序。從市場的角度來看,我們完全有理由相信一些這樣的舉措已經在進行中。
在這里,這些努力立即面臨兩難境地,即是否像大多數用于穩(wěn)定擴散的 Web API 一樣,應用程序是否允許關閉穩(wěn)定擴散的本機 NSFW 過濾器(代碼片段)。
'埋葬' NSFW 開關
盡管 Stability.ai 的 Stable Diffusion 開源許可證包括一個可廣泛解釋的應用程序列表,但這些應用程序可能無法使用(可能包括色情內容和deepfakes),但供應商可以有效禁止此類使用的唯一方法是編譯 NSFW 過濾器放入不透明的可執(zhí)行文件而不是 Python 文件中的參數,或者對包含 NSFW 指令的 Python 文件或 DLL 強制執(zhí)行校驗和比較,以便在用戶更改此設置時無法進行渲染。
這將使推定的應用程序以與DALL-E 2 目前相同的方式“絕育” ,從而降低其商業(yè)吸引力。此外,不可避免地,這些組件的反編譯“篡改”版本(原始 Python 運行時元素或編譯的 DLL 文件,現(xiàn)在用于人工智能圖像增強工具的 Topaz 系列)可能會出現(xiàn)在 torrent/hacking 社區(qū)中以解鎖這些限制,只需更換阻礙元素,并否定任何校驗和要求。
最后,供應商可能會選擇簡單地重復 Stability.ai 對濫用的警告,這是許多當前 Stable Diffusion 發(fā)行版的第一次運行的特征。
然而,目前以這種方式使用隨意免責聲明的小型開源開發(fā)人員與投入大量時間和金錢以使 Stable Diffusion 功能齊全且易于訪問的軟件公司相比幾乎沒有損失——這需要更深入的考慮。
深造責任
正如我們最近所指出的,LAION 美學數據庫是 Stable Diffusion 正在進行的模型訓練所依據的 42 億張圖像的一部分,其中包含大量名人圖像,使用戶能夠有效地創(chuàng)建deepfake,包括 deepfake 名人色情片。
從我們最近的文章中,詹妮弗·康納利 (Jennifer Connelly) 在她職業(yè)生涯的四個十年中的四個階段,從穩(wěn)定擴散中推斷出來。
這是一個獨立且更具爭議的問題,而不是(通常)合法的“抽象”色情片,它不描繪“真實”的人(盡管這些圖像是從培訓材料中的多張真實照片中推斷出來的)。
由于越來越多的美國州和國家正在制定或已經制定了針對深度偽造色情內容的法律,Stable Diffusion 制作名人色情內容的能力可能意味著未完全審查的商業(yè)應用程序(即可以制作色情材料)可能仍需要一些過濾感知名人面孔的能力。
一種方法是提供用戶提示中不接受的術語的內置“黑名單”,這些術語與名人姓名和可能與之相關的虛構人物有關。據推測,由于原始數據具有其他語言的特征,因此需要用更多的語言來設置這些設置,而不僅僅是英語。另一種方法可能是結合名人識別系統(tǒng),例如Clarifai開發(fā)的那些。
軟件生產商可能有必要合并這些方法,也許最初是關閉的,因為這可能有助于防止成熟的獨立穩(wěn)定擴散應用程序生成名人面孔,等待新的立法可能使這種功能非法。
然而,再一次,此類功能不可避免地會被相關方反編譯和逆轉;然而,在這種情況下,軟件生產商可以聲稱這是有效的未經批準的破壞行為——只要這種逆向工程不會變得過于簡單。
可能包含的功能
任何資金充足的商業(yè)應用程序都可以預期穩(wěn)定擴散的任何發(fā)行版中的核心功能。其中包括使用文本提示生成恰當圖像(文本到圖像)的能力;使用草圖或其他圖片作為新生成圖像(圖像到圖像)的指導的能力;調整系統(tǒng)被指示的“想象力”程度的方法;一種權衡渲染時間和質量的方法;和其他“基礎”,例如可選的自動圖像/提示存檔,以及通過RealESRGAN進行的常規(guī)可選升級,以及至少使用GFPGAN或CodeFormer進行的基本“面部修復” 。
這是一個非常“香草安裝”。讓我們看一下目前正在開發(fā)或擴展的一些更高級的功能,這些功能可以合并到一個成熟的“傳統(tǒng)”穩(wěn)定擴散應用程序中。
隨機凍結
即使您重復使用先前成功渲染的種子,如果提示或源圖像(或兩者)的任何部分為后續(xù)渲染發(fā)生更改,則很難獲得穩(wěn)定擴散以準確重復轉換。
如果您想使用EbSynth以時間連貫的方式將 Stable Diffusion 的變換強加到真實視頻上,這是一個問題——盡管該技術對于簡單的頭肩鏡頭非常有效:
有限的運動可以使 EbSynth 成為將穩(wěn)定擴散轉換轉換為逼真視頻的有效媒介。
EbSynth 的工作原理是將一小部分“更改的”關鍵幀外推到一個視頻中,該視頻已被渲染成一系列圖像文件(以后可以重新組合成一個視頻)。
在 EbSynth 網站的這個示例中,視頻中的一小部分幀以藝術方式繪制。EbSynth 使用這些幀作為樣式指南,以類似地更改整個視頻,使其與繪制的樣式相匹配。
在下面的示例中,左側(真實)金發(fā)瑜伽教練幾乎沒有任何動作,Stable Diffusion 仍然難以保持一致的面部,因為被轉換為“關鍵幀”的三張圖像并不完全相同,即使它們都共享相同的數字種子。
在這里,即使在所有三個轉換中使用相同的提示和種子,并且源幀之間的變化很少,身體肌肉的大小和形狀也會有所不同,但更重要的是面部不一致,阻礙了潛在的 EbSynth 渲染中的時間一致性。
盡管下面的 SD/EbSynth 視頻非常有創(chuàng)意,其中用戶的手指已經(分別)變成了一雙行走的褲腿和一只鴨子,但褲子的不一致代表了穩(wěn)定擴散在保持不同關鍵幀之間的一致性方面的問題,即使源幀彼此相似且種子一致。
通過 Stable Diffusion 和 EbSynth,一個人的手指變成了行走的人和鴨子。
創(chuàng)建此視頻的用戶評論說,鴨子變換可以說是兩者中更有效的一個,如果不那么引人注目和原始,只需要一個變換的關鍵幀,而需要渲染 50 個穩(wěn)定的擴散圖像才能創(chuàng)建步行褲,表現(xiàn)出更多的時間不一致。用戶還指出,50 個關鍵幀中的每一個都需要五次嘗試才能實現(xiàn)一致性。
因此,對于真正全面的穩(wěn)定擴散應用程序來說,提供最大程度地保留關鍵幀特征的功能將是一個很大的好處。
一種可能性是應用程序允許用戶“凍結”每個幀上的變換的隨機編碼,目前只能通過手動修改源代碼來實現(xiàn)。正如下面的示例所示,這有助于時間一致性,盡管它肯定不能解決它:
一位 Reddit 用戶將自己的網絡攝像頭鏡頭轉換為不同的名人,不僅通過保留種子(任何穩(wěn)定擴散的實現(xiàn)都可以做到),而且通過確保每次轉換中的 stochastic_encode() 參數相同。這是通過修改代碼來實現(xiàn)的,但很容易成為用戶可訪問的開關。然而,很明顯,它并沒有解決所有的時間問題。
基于云的文本反轉
引出時間上一致的字符和對象的更好解決方案是將它們“烘焙”成文本反轉- 一個 5KB 的文件,可以在幾個小時內根據五個帶注釋的圖像進行訓練,然后可以通過特殊的“*”引出提示,例如,使小說人物能夠持續(xù)出現(xiàn)以包含在敘事中。
與適當標簽相關聯(lián)的圖像可以通過文本反轉轉換為離散實體,并通過特殊的標記詞在正確的上下文和風格中毫無歧義地召喚出來。
文本反轉是 ??Stable Diffusion 使用的非常大且經過充分訓練的模型的附屬文件,并且有效地“滑入”到引發(fā)/提示過程中,因此它們可以參與模型衍生的場景,并從模型的龐大數據庫中受益關于對象、樣式、環(huán)境和交互的知識。
然而,雖然 Textual Inversion 不需要很長時間來訓練,但它確實需要大量的 VRAM;根據當前的各種演練,在 12、20 甚至 40GB 之間。
由于大多數普通用戶不太可能擁有這種 GPU 重量,因此處理該操作的云服務已經出現(xiàn),包括 Hugging Face 版本。盡管有Google Colab 實現(xiàn)可以為穩(wěn)定擴散創(chuàng)建文本反轉,但必要的 VRAM 和時間要求可能會使這些對免費層 Colab 用戶具有挑戰(zhàn)性。
對于一個潛在的成熟且投資良好的 Stable Diffusion(已安裝)應用程序,將這項繁重的任務傳遞給公司的云服務器似乎是一種明顯的貨幣化策略(假設一個低成本或無成本的 Stable Diffusion 應用程序滲透著這種非免費功能,這在未來 6-9 個月內將出現(xiàn)在該技術的許多可能的應用程序中似乎很可能)。
此外,對提交的圖像和文本進行注釋和格式化的相當復雜的過程可以從集成環(huán)境中的自動化中受益。對于普通愛好者和年輕用戶來說,創(chuàng)造可以探索和與廣闊的穩(wěn)定擴散世界互動的獨特元素的潛在“上癮因素”似乎是潛在的強迫因素。
多功能提示加權
有許多當前的實現(xiàn)允許用戶將更大的重點分配給長文本提示的一部分,但是這些實現(xiàn)之間的工具差異很大,并且經常笨拙或不直觀。
例如, AUTOMATIC1111非常流行的 Stable Diffusion fork可以通過將提示詞括在單個或多個括號(用于去強調)或方括號中以額外強調來降低或提高提示詞的值。
方括號和/或括號可以在此版本的穩(wěn)定擴散提示權重中改變您的早餐,但無論哪種方式,這都是膽固醇的噩夢。
穩(wěn)定擴散的其他迭代使用感嘆號來強調,而最通用的允許用戶通過 GUI 為提示中的每個單詞分配權重。
該系統(tǒng)還應該允許負提示權重——不僅對恐怖迷來說,而且因為在穩(wěn)定擴散的潛在空間中,可能比我們有限使用的語言所能召喚的更少令人震驚和更有啟發(fā)性的奧秘。
外涂
在 Stable Diffusion 引起轟動的開源之后不久,OpenAI 試圖通過宣布“outpainting”來重新奪回其 DALL-E 2 的一些風頭,這允許用戶使用語義邏輯和視覺將圖像擴展到其邊界之外。連貫性。
自然地,這已經以各種形式在 Stable Diffusion 和Krita中實現(xiàn),當然應該包含在一個全面的、Photoshop 風格的 Stable Diffusion 版本中。
只要提示、現(xiàn)有圖像和語義邏輯允許,基于圖塊的增強幾乎可以無限擴展標準 512×512 渲染。
因為 Stable Diffusion 是在 512x512px 圖像上訓練的(以及出于各種其他原因),所以它經常將頭部(或其他重要的身體部位)從人類受試者身上切下來,即使提示清楚地表明“頭部強調”等。
穩(wěn)定擴散“斬首”的典型例子;但外涂可以讓喬治重新回到畫面中。
上面動畫圖像中所示類型的任何外繪實現(xiàn)(僅基于 Unix 庫,但應該能夠在 Windows 上復制)也應作為一鍵式/提示補救措施。
目前,一些用戶將“斷頭”描繪的畫布向上擴展,大致填充頭部區(qū)域,并使用 img2img 完成拙劣的渲染。
了解上下文的有效掩蔽
在 Stable Diffusion 中,掩蔽可能是一件非常偶然的事情,具體取決于所討論的前叉或版本。通常,在完全可以繪制有凝聚力的蒙版的情況下,指定的區(qū)域最終會被不考慮圖片的整個上下文的內容修復。
有一次,我掩蓋了一張人臉圖像的角膜,并提供了提示的“藍眼睛”作為面具修復——卻發(fā)現(xiàn)我似乎正在通過兩只被剪掉的人眼看著遠處一張神秘的照片-長相狼。我想我很幸運不是弗蘭克·辛納屈。
語義編輯也可以通過首先識別構建圖像的噪聲來實現(xiàn),這允許用戶在渲染中處理特定的結構元素,而不會干擾圖像的其余部分:
通過識別最初產生圖片的噪聲并解決對目標區(qū)域有貢獻的部分,在不使用傳統(tǒng)遮罩且不更改相鄰內容的情況下更改圖像中的一個元素。
該方法基于K-Diffusion 采樣器。
生理錯誤的語義過濾器
正如我們之前提到的,Stable Diffusion 可以頻繁地添加或減去肢體,這主要是由于數據問題和伴隨訓練它的圖像的注釋中的缺陷。
就像在學校合影中吐舌頭的那個走錯路的孩子一樣,Stable Diffusion 的生物暴行并不總是很明顯,而且你可能在注意到多余的手或融化的四肢之前已經在 Instagram 上發(fā)布了你最新的 AI 杰作。
修復這些類型的錯誤非常困難,如果一個全尺寸的穩(wěn)定擴散應用程序包含某種解剖識別系統(tǒng),該系統(tǒng)使用語義分割來計算輸入圖片是否具有嚴重的解剖缺陷(如上圖所示),這將是有用的),并在將其呈現(xiàn)給用戶之前將其丟棄以支持新的渲染。
當然,您可能想要渲染女神卡莉或章魚博士,甚至拯救肢體受損圖片中未受影響的部分,因此此功能應該是可選切換。
如果用戶可以容忍遙測方面,甚至可以在聯(lián)合學習的集體努力中匿名??傳輸這種失火,這可能有助于未來的模型提高他們對解剖邏輯的理解。
基于 LAION 的自動人臉增強
正如我在之前對 Stable Diffusion 未來可以解決的三件事的看法中指出的那樣,不應只讓任何版本的 GFPGAN 嘗試“改進”一審渲染中的渲染面。
GFPGAN 的“改進”非常通用,經常破壞所描繪個人的身份,并且僅在通常渲染不佳的面部上進行操作,因為它沒有比圖片的任何其他部分獲得更多的處理時間或關注。
因此,用于穩(wěn)定擴散的專業(yè)標準程序應該能夠識別人臉(使用標準且相對輕量級的庫,例如 YOLO),將可用 GPU 能力的全部權重用于重新渲染,或者將改進后的人臉混合到原始的全上下文渲染,或者單獨保存以供手動重新組合。目前,這是一個相當“動手”的操作。
在對足夠數量的名人圖像進行穩(wěn)定擴散訓練的情況下,可以將整個 GPU 容量集中在僅渲染圖像的面部的后續(xù)渲染上,這通常是一個顯著的改進——并且與 GFPGAN 不同,利用來自 LAION 訓練數據的信息,而不是簡單地調整渲染的像素。
應用內 LAION 搜索
由于用戶開始意識到在 LAION 的數據庫中搜索概念、人物和主題可以證明是更好地使用 Stable Diffusion 的助手,因此已經創(chuàng)建了幾個在線 LAION 瀏覽器,包括 haveibeentrained.com。
haveibeentrained.com 的搜索功能讓用戶可以探索支持穩(wěn)定擴散的圖像,并發(fā)現(xiàn)他們可能希望從系統(tǒng)中引出的對象、人或想法是否可能已經被訓練到其中。這樣的系統(tǒng)對于發(fā)現(xiàn)相鄰實體也很有用,例如名人聚集的方式,或者從當前實體引出的“下一個想法”。來源:https://haveibeentrained.com/?search_text=bowl%20of%20fruit
盡管此類基于 Web 的數據庫通常會顯示圖像附帶的一些標簽,但在模型訓練期間發(fā)生的泛化過程意味著不太可能通過使用其標簽作為提示來調用任何特定圖像。
此外,在自然語言處理中去除“停用詞”以及詞干化和詞形還原的做法意味著,展示的許多短語在被訓練成穩(wěn)定擴散之前被拆分或省略。
盡管如此,美學分組在這些界面中結合在一起的方式可以教會最終用戶很多關于穩(wěn)定擴散的邏輯(或者可以說是“個性”),并證明有助于更好地制作圖像。
結論
我希望在 Stable Diffusion 的完整原生桌面實現(xiàn)中看到許多其他功能,例如基于原生 CLIP 的圖像分析,它反轉了標準的 Stable Diffusion 過程并允許用戶引出系統(tǒng)的短語和單詞自然會與源圖像或渲染相關聯(lián)。
此外,真正的基于瓦片的縮放將是一個受歡迎的補充,因為 ESRGAN 幾乎與 GFPGAN 一樣鈍。值得慶幸的是,集成 GOBIG 的txt2imghd實現(xiàn)的計劃正在迅速實現(xiàn)跨發(fā)行版,這似乎是桌面迭代的明顯選擇。
來自 Discord 社區(qū)的其他一些受歡迎的請求讓我不太感興趣,例如集成的提示詞典和適用的藝術家和風格列表,盡管應用內筆記本或可自定義的短語詞典似乎是合乎邏輯的補充。
同樣,目前在穩(wěn)定擴散中以人為中心的動畫的局限性,雖然由 CogVideo 和其他各種項目啟動,但仍然令人難以置信,并且受上游研究與真實人類運動相關的時間先驗的支配。
目前,Stable Diffusion 視頻嚴格來說是迷幻的,盡管通過 EbSynth 和其他相對新生的文本到視頻計劃(值得注意的是,缺乏合成或“改變”的人)在 Runway 的最新宣傳視頻中)。
另一個有價值的功能是透明的 Photoshop 直通,它早已在 Cinema4D 的紋理編輯器中建立,以及其他類似的實現(xiàn)。有了這個,人們可以輕松地在應用程序之間分流圖像,并使用每個應用程序來執(zhí)行它擅長的轉換。
最后,也許也是最重要的一點,一個完整的桌面穩(wěn)定擴散程序不僅應該能夠在檢查點(即為系統(tǒng)提供動力的底層模型的版本)之間輕松交換,而且還應該能夠更新有效的定制文本反轉與以前的官方模型版本一樣,但可能會被模型的更高版本破壞(正如官方 Discord 的開發(fā)人員所指出的那樣)。
具有諷刺意味的是,在為 Stable Diffusion 創(chuàng)建如此強大且集成的工具矩陣方面處于最佳位置的組織 Adob??e 卻與Content Authenticity Initiative如此緊密地結盟,以至于這對公司來說似乎是一個倒退的公關失誤——除非它是像 OpenAI 對 DALL-E 2 所做的那樣徹底地削弱 Stable Diffusion 的生成能力,并將其定位為其在股票攝影領域的大量資產的自然演變。