今年以來(lái),AI作畫(huà)已經(jīng)多次引起了業(yè)內(nèi)關(guān)注,并且不乏Stability AI這樣拿到上億美元融資的AI“獨(dú)角獸”。
那么,在沒(méi)有美術(shù)師的情況下,使用AI研發(fā)一款游戲會(huì)是怎樣的體驗(yàn)?最近,一位開(kāi)發(fā)者講述了自己通過(guò)Stable Diffusion制作游戲參加game jam的經(jīng)歷。
以下是編譯的全部?jī)?nèi)容:
我和我的團(tuán)隊(duì)在沒(méi)有美術(shù)師的情況下制作了一款注重精美圖形的游戲。
一周前,我和團(tuán)隊(duì)再次參加了Siberian Game Jam,我們決定嘗試制作一款游戲,其美術(shù)完全由神經(jīng)網(wǎng)絡(luò)生成。簡(jiǎn)單來(lái)說(shuō),這次體驗(yàn)是成功的(你可以在鏈接中看到我們的游戲),同時(shí),有很多同行要求我更詳細(xì)地講述使用神經(jīng)網(wǎng)絡(luò)研發(fā)游戲的過(guò)程。
所以我告訴你,包括談?wù)撍麄冞m合和不適合的地方。從考試開(kāi)始,我已經(jīng)有兩個(gè)月的時(shí)間直接研究他們的能力,希望這對(duì)你來(lái)說(shuō)足夠了。我將嘗試使材料非常有創(chuàng)意。
關(guān)于使用的AI畫(huà)圖
你們可能都已經(jīng)知道了這些神經(jīng)網(wǎng)絡(luò)的名稱,但為了以防萬(wàn)一,我這里重述一下:
OpenAI的DALL-E是第一個(gè)大規(guī)模做神經(jīng)網(wǎng)絡(luò)的,很多技術(shù)都是在它的基礎(chǔ)上進(jìn)行提升。但由于長(zhǎng)期處于半封閉狀態(tài),并不是所有人都能輕易訪問(wèn)這個(gè)工具,而且它的功能比較少。
Midjourney是最近比較出名的一個(gè),確切的說(shuō),它更像是“神經(jīng)網(wǎng)絡(luò)當(dāng)中的macOS”,因?yàn)殚_(kāi)發(fā)人員花費(fèi)了大量精力來(lái)確保其使用盡可能簡(jiǎn)單、愉快和有效。它的界面簡(jiǎn)潔,生成的所有結(jié)果都可以瞬間以相框形式掛在墻上,目前主要通過(guò) Discord 中的機(jī)器人工作。
Stable Diffusion更像是“神經(jīng)網(wǎng)絡(luò)世界里的Linux”,這是一種完全開(kāi)放和可訪問(wèn)的技術(shù),你可以得到開(kāi)放數(shù)據(jù)、開(kāi)放技術(shù)的培訓(xùn),并得到社區(qū)等方面的支持。因此字面意義上來(lái)說(shuō),它每天都有重大更新、完全控制和對(duì)用戶資格的巨大要求,因此可以修復(fù)錯(cuò)誤安裝的庫(kù)或由于某種原因上傳到 master 分支的錯(cuò)誤而回滾到以前的版本。今天我們主要講的也是它。
如何安裝以及需要什么
如果你想在你的電腦上運(yùn)行 Stable Diffusion,你需要:10GB以上的可用磁盤(pán)空間、4GB以上穩(wěn)定運(yùn)行內(nèi)存。其他要求達(dá)到中高水準(zhǔn)即可,這樣你生成圖像的速度就是以秒計(jì)算,而不是幾分鐘。
另外,懂英語(yǔ),至少對(duì)git、python和pip有粗淺的了解將是一個(gè)很大的優(yōu)勢(shì)。
如果沒(méi)有這些,還可以在云中使用Stable Diffusion,例如在免費(fèi)的Google Colab(每天最多 6 小時(shí)免費(fèi)使用)或任何其他已經(jīng)付費(fèi)的服務(wù)(平均每小時(shí)2美元)中。
社區(qū)現(xiàn)在正在積極開(kāi)發(fā)許多使用神經(jīng)網(wǎng)絡(luò)的服務(wù),但最受歡迎和最快上手的是來(lái)自用戶AUTOMATIC1111 ,所有安裝說(shuō)明都可以在說(shuō)明中找到。
它能做什么?
如果覺(jué)得這只是一個(gè)有趣的圖像生成軟件,那么現(xiàn)在已經(jīng)不再如此:它的可用功能列表已經(jīng)有幾十種,包括重繪、繪圖、應(yīng)用樣式、生成變化、混合圖像、生成循環(huán)紋理,矢量圖和高度圖,4種額外訓(xùn)練方式和10種放大方式,還包含了不同架構(gòu)上20個(gè)獨(dú)立神經(jīng)網(wǎng)絡(luò)的所有功能。因此,所有需要以某種方式處理圖形的人都可以使用它。
為了說(shuō)明它的工作原理,我們將圖像和特定文本輸入到神經(jīng)網(wǎng)絡(luò)的輸入中,神經(jīng)網(wǎng)絡(luò)根據(jù)大致與文本相關(guān)的關(guān)聯(lián)一步一步地轉(zhuǎn)換圖像。使用彩色噪聲從零開(kāi)始生成圖像,但可以將任何東西放在那里而不是噪聲中。
程序界面,頂部有基本功能的選項(xiàng)卡和用于輸入請(qǐng)求的字段,中間有很多設(shè)置,底部(腳本)有很多隱藏的非常有用的功能
界面中提供了三個(gè)主要功能:txt2img(文本到圖像)、img2img(圖像到圖像)和 inpaint(通過(guò)遮罩重繪圖像),其他一切功能都是基于這三個(gè)的變體。
界面中有很多復(fù)選框,但需要了解的最重要的是工具所有功能中使用的三個(gè)最基本的參數(shù):
Sample steps(步數(shù)):神經(jīng)網(wǎng)絡(luò)將處理圖像的步數(shù)。簡(jiǎn)而言之,步數(shù)越多,圖像就越清晰。
CFG Scale(分類器引導(dǎo)的程度):跟隨神經(jīng)網(wǎng)絡(luò)方向的程度越多,神經(jīng)網(wǎng)絡(luò)越會(huì)為了匹配文本查詢而犧牲圖片的內(nèi)部結(jié)構(gòu)。
去噪強(qiáng)度(消除噪聲的程度):生成結(jié)果與原始輸入圖像的差異程度,僅在編輯圖像時(shí)使用。
在最基本的形式中,這個(gè)工具很容易使用:用英文寫(xiě)一個(gè)請(qǐng)求,也就是輸入你想要生成什么,設(shè)置必要的參數(shù),點(diǎn)擊“生成”,幾乎立即你就會(huì)得到結(jié)果(PC配置高速度會(huì)更快)。
如果這對(duì)您來(lái)說(shuō)還不夠,我建議您注意詳細(xì)的函數(shù)列表以及它們的具體解釋、附加插件和腳本。
不能做什么?
然而,與許多其他工具一樣,Stable Diffusion也有許多限制,使用之前最好有所了解。
首先,神經(jīng)網(wǎng)絡(luò)不了解現(xiàn)實(shí)世界中的任何知識(shí)。她不會(huì)數(shù)數(shù),不了解生物的生物學(xué)特性,不了解邏輯和事實(shí)基礎(chǔ),它只能模仿她以前見(jiàn)過(guò)的東西,對(duì)她來(lái)說(shuō)成功的主要指標(biāo)是屏幕上的顏色比例。
其次,即使該工具有一個(gè)輸入單詞的字段,你也不要覺(jué)得神經(jīng)網(wǎng)絡(luò)能理解你寫(xiě)給它的單詞,它并不明白。閱讀這個(gè)鏈接中的信息,你會(huì)了解更多重要的事情。需要補(bǔ)充的是,培訓(xùn)數(shù)據(jù)是通過(guò)自動(dòng)且?guī)缀醪皇芸刂频姆绞綇幕ヂ?lián)網(wǎng)上收集的,因此質(zhì)量不是很高。
社區(qū)仍在試圖了解某些詞會(huì)如何影響生成結(jié)果,并找到了相當(dāng)意外和不可思議的發(fā)現(xiàn)。順便說(shuō)一句,你可以通過(guò)這本指令電子書(shū)查到相關(guān)的指南,能夠看到其他人使用了哪些標(biāo)簽以及用于什么目的。
神經(jīng)網(wǎng)絡(luò)不理解上下文的一個(gè)非常著名且非常有趣的例子:輸入“河中的鮭魚(yú)”得到的結(jié)果是一塊鮭魚(yú)肉,而不是一條成熟的活魚(yú),對(duì)此你要有準(zhǔn)備。
第三,神經(jīng)網(wǎng)絡(luò)沒(méi)有記憶。它不記得5分鐘前做了什么,5分鐘后也不記得現(xiàn)在在做什么。制作均勻的圖像仍然是一項(xiàng)艱巨的任務(wù),盡管已經(jīng)解決了,但在這個(gè)工具中還沒(méi)有這樣的功能。
第四,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是由真正的計(jì)算機(jī)上的活生生的人來(lái)完成的,而神經(jīng)網(wǎng)絡(luò)本身仍然是為在普通機(jī)器上運(yùn)行而設(shè)計(jì)的產(chǎn)品,因此它的權(quán)重和訓(xùn)練數(shù)據(jù)有限。當(dāng)你發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)不知道有多少東西時(shí),你會(huì)感到驚訝。是的,這是通過(guò)額外訓(xùn)練來(lái)解決的,但這仍然是一個(gè)漫長(zhǎng)而乏味的過(guò)程,與反復(fù)試驗(yàn)密切相關(guān),只是剛開(kāi)始是行不通的。
在這方面,(到目前為止)神經(jīng)網(wǎng)絡(luò)肯定無(wú)法為你代替一個(gè)真正的藝術(shù)家。到現(xiàn)在為止,這雖然非常有創(chuàng)意和有趣,但卻像是一個(gè)外星人,你需要多學(xué)習(xí)以找到共同語(yǔ)言,并且很難做到自己想做的事。這是有原因的,就像那些真正使用它繪圖的人,說(shuō)這個(gè)工具更適合快速草圖和一般靈感,而不是作為成熟的工業(yè)用途。
但她畫(huà)了很棒的概念……
如何使用
首先,我們立即決定我們將使用神經(jīng)網(wǎng)絡(luò)生成所有藝術(shù)作品,因此這給我們帶來(lái)了一定的類型限制:我們必須制作一款可以使用大量平面藝術(shù)圖形的游戲。很快我們就找到了類型,那就是點(diǎn)擊型任務(wù)。神經(jīng)網(wǎng)絡(luò)主要用于繪制背景,但也可以用于繪制人物和物體。界面和動(dòng)畫(huà)已經(jīng)都是我們自己完成。
我們首先決定了視覺(jué)設(shè)計(jì),我們想要一些很棒的東西,但又簡(jiǎn)單、而且調(diào)色板很小。我們通過(guò)關(guān)鍵字生成了幾個(gè)概念藝術(shù),選擇了我們最喜歡的一個(gè)并從它開(kāi)始。我們花了很多時(shí)間才找到合適的關(guān)鍵詞,它們讓藝術(shù)繼續(xù)保持高質(zhì)量和相似性,但并不總是奏效(例如,貓屋的背景顯然像一幅水彩畫(huà),盡管有大量關(guān)鍵字描述,但最好不要這樣做。)下面是我添加到所有圖像的指令,除了基本指令。
從表面上看,神經(jīng)網(wǎng)絡(luò)似乎完全取代了人類的勞動(dòng),但事實(shí)并非如此:它需要一個(gè)操作員不斷地將其引導(dǎo)到正確的方向,這實(shí)際上是一項(xiàng)獨(dú)立的工作,盡管這比自己畫(huà)藝術(shù)要簡(jiǎn)單得多。有時(shí),我不得不坐在那里幾個(gè)小時(shí),反復(fù)按下“生成”按鈕,以獲得至少足夠符合要求的藝術(shù),而當(dāng)計(jì)算機(jī)忙(我的神經(jīng)網(wǎng)絡(luò)占用了計(jì)算機(jī)的大部分資源)時(shí),做其他事情并不是很好。需要注意的是,神經(jīng)網(wǎng)絡(luò)不能一次生成多個(gè)圖像(最多16個(gè)圖像)。
典型的背景生成算法如下所示:
通過(guò)不斷選擇參數(shù),通過(guò)txt2img生成10-30個(gè)初始圖像。
選擇你喜歡的一個(gè),與團(tuán)隊(duì)成員一起批準(zhǔn),發(fā)送到補(bǔ)丁。
通過(guò)不斷選擇參數(shù),為擴(kuò)展圖像生成10-30個(gè)選項(xiàng),因?yàn)槲覀冃枰獙挶尘埃覀兛梢酝ㄟ^(guò) img2img + outpainting在上面移動(dòng)很長(zhǎng)時(shí)間(主要使用1792×768和更寬)。
通過(guò)不斷選擇參數(shù),通過(guò)inpaint重新繪制圖像中所有你不喜歡的東西,同時(shí)在圖形編輯器中勾勒出這些細(xì)節(jié),為神經(jīng)網(wǎng)絡(luò)提供必要的指導(dǎo),究竟需要繪制什么,因?yàn)橹挥幸粋€(gè)文本查詢是不足夠的。對(duì)于每個(gè)部分,平均要嘗試50次。
最后,每個(gè)背景至少需要一個(gè)小時(shí)的單調(diào)工作。
房子的初始版本,以測(cè)試所需的藝術(shù)設(shè)計(jì)
大部分時(shí)間都花在了房子的藝術(shù)和貓屋的內(nèi)部:花了很多時(shí)間來(lái)找到既符合物理定律又符合彼此的內(nèi)部和外部藝術(shù)。光是畫(huà)門(mén)口就花了半個(gè)小時(shí),門(mén)洞不希望變成矩形,也不想變成同步透視,同樣的時(shí)間也花在樓梯上(因?yàn)闃翘菘偸强吭诳諌ι希?/p>
屋內(nèi)同樣的藝術(shù)
通常,您在工作過(guò)程中會(huì)經(jīng)常遇到一個(gè)有趣的神器:物體只進(jìn)入圖像的一半。這是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的一個(gè)特點(diǎn):它是在只有512 * 512大小的圖像上訓(xùn)練的,任何不在這個(gè)框架中的東西都是在為學(xué)習(xí)準(zhǔn)備數(shù)據(jù)庫(kù)的過(guò)程中切割的。
另一個(gè)非常常見(jiàn)的問(wèn)題是一些你想要替換的小細(xì)節(jié),但你無(wú)法向神經(jīng)網(wǎng)絡(luò)解釋你想要什么:通常在圖形編輯器中自己繪制幾次比按“生成”幾十次更容易,等待神經(jīng)網(wǎng)絡(luò)隨機(jī)計(jì)算出來(lái),不要為這種方法感到羞恥。
這同樣適用于當(dāng)您生成多個(gè)要替換的圖像時(shí),其中一個(gè)細(xì)節(jié)在第一個(gè)圖像中看起來(lái)很好,另一個(gè)細(xì)節(jié)在第二個(gè)圖像中,將兩個(gè)選項(xiàng)復(fù)制到圖形編輯器中并在需要時(shí)合并非常方便,它會(huì)為你節(jié)省很多時(shí)間。
我通常很喜歡圖像的一般概念,但不喜歡用它來(lái)實(shí)現(xiàn):對(duì)于這樣的實(shí)現(xiàn),生成了相似的圖像也有很大幫助。例如,這只貓是根據(jù)從互聯(lián)網(wǎng)上截取的圖片重新繪制的,起初我們只是想看看結(jié)果如何,但我們非常喜歡它,所以我們決定保留它。關(guān)于資源盜用的問(wèn)題,貓畫(huà)風(fēng)完全不一樣,表情不一樣,衣著也不一樣,只是比例和事實(shí)用了之前的東西,所以這種做法是很方便的。但這仍然是一個(gè)孤立的案例,通常我們會(huì)嘗試從頭開(kāi)始生成所有內(nèi)容。
最后,當(dāng)繪圖或多或少準(zhǔn)備好時(shí),通過(guò)升級(jí)神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像清理和細(xì)節(jié)化會(huì)比較好,但由于時(shí)間不夠和麻煩,我們就這樣把它們?nèi)舆M(jìn)去了,此外,我仍然沒(méi)有弄清楚哪個(gè)升頻器更適合在什么情況下和什么設(shè)置下使用。
結(jié)果,在三天的工作中,在游戲的自由編程時(shí)間里,我能夠?yàn)橛螒蛏?5個(gè)背景和5個(gè)角色。下面是畫(huà)廊的例子。
老實(shí)說(shuō),我不知道如何結(jié)束這篇文章,除了復(fù)述介紹。因此,我將只向您展示一只在游戲中沒(méi)有太大用處的可愛(ài)的貓。美好的一天,祝你研究順利!神經(jīng)網(wǎng)絡(luò)非常酷。