一周2.5k star,3張照片打造專屬形象,開源項(xiàng)目FaceChain讓每個(gè)人AIGC出個(gè)人寫真
最近,一些 AI 生成視覺形象的應(yīng)用爆火,例如只需 9 塊 9 就能生成個(gè)人寫真的「妙鴨相機(jī)」。由于操作簡(jiǎn)單,不涉及任何技術(shù)操作,很多用戶都紛紛在朋友圈曬出妙鴨相機(jī)生成的寫真。
妙鴨相機(jī)雖然好用,但它是一個(gè)需要付費(fèi)的應(yīng)用?,F(xiàn)在,一個(gè)名為 FaceChain 的開源項(xiàng)目可以用 AI 模型打造人物寫真。項(xiàng)目上線一周,已經(jīng)狂攬 2.5k star,今天還上了Github趨勢(shì)排行榜第一名。
項(xiàng)目地址:https://github.com/modelscope/facechain
用戶僅需提供最低三張照片,就可以獲得特定風(fēng)格的個(gè)人寫真。例如,生成商務(wù)證件照:
也可以在 ModelScope 創(chuàng)空間中直接體驗(yàn)這項(xiàng)應(yīng)用,無(wú)需任何安裝步驟。
試玩地址:https://modelscope.cn/studios/CVstudio/cv_human_portrait/summary
作者在項(xiàng)目介紹中講解了 AI 生成個(gè)人寫真的技術(shù)原理,解釋了生成式 AI 模型如何成為「寫真神器」,我們來看下這部分講解內(nèi)容。
個(gè)人寫真的生成原理
基本原理
AI 生成個(gè)人寫真的能力來源于 Stable Diffusion 模型的文生圖功能,—— 輸入一段文本或一系列 prompt,輸出對(duì)應(yīng)的圖像。而影響個(gè)人寫真生成效果的因素主要有兩方面:寫真風(fēng)格信息和用戶人物信息。
為此,項(xiàng)目作者分別使用線下訓(xùn)練的風(fēng)格 LoRA 模型和線上訓(xùn)練的人臉 LoRA 模型來學(xué)習(xí)上述兩方面的信息。LoRA 是一種具有較少可訓(xùn)練參數(shù)的微調(diào)模型,在 Stable Diffusion 中,可以通過對(duì)少量輸入圖像進(jìn)行文生圖訓(xùn)練的方式將輸入圖像的信息注入到 LoRA 模型中。
因此,個(gè)人寫真模型的能力分為訓(xùn)練與推斷兩個(gè)階段,訓(xùn)練階段生成用于微調(diào) Stable Diffusion 模型的圖像與文本標(biāo)簽數(shù)據(jù),得到人臉 LoRA 模型;推斷階段基于人臉 LoRA 模型和風(fēng)格 LoRA 模型生成個(gè)人寫真圖像。
訓(xùn)練階段
訓(xùn)練階段的輸入是用戶上傳的包含清晰人臉區(qū)域的圖像,輸出是人臉 LoRA 模型。
具體來說,項(xiàng)目作者首先使用基于朝向判斷的圖像旋轉(zhuǎn)模型,以及基于人臉檢測(cè)和關(guān)鍵點(diǎn)模型的人臉精細(xì)化旋轉(zhuǎn)方法,來處理用戶上傳圖像,得到包含正向人臉的圖像;接下來使用人體解析模型和人像美膚模型,以獲得高質(zhì)量的人臉訓(xùn)練圖像;隨后,該項(xiàng)目使用人臉屬性模型和文本標(biāo)注模型,結(jié)合標(biāo)簽后處理方法,產(chǎn)生訓(xùn)練圖像的精細(xì)化標(biāo)簽;最后使用上述圖像和標(biāo)簽數(shù)據(jù)微調(diào) Stable Diffusion 模型得到人臉 LoRA 模型。
推斷階段
推斷階段的輸入是訓(xùn)練階段用戶上傳圖像和預(yù)設(shè)的用于生成個(gè)人寫真的輸入 prompt,輸出是個(gè)人寫真圖像。
在推斷階段,該項(xiàng)目首先將人臉 LoRA 模型和風(fēng)格 LoRA 模型的權(quán)重融合到 Stable Diffusion 模型中;接下來使用 Stable Diffusion 模型的文生圖功能,基于預(yù)設(shè)的 prompt 初步生成個(gè)人寫真圖像;隨后,該項(xiàng)目使用人臉融合模型進(jìn)一步改善上述寫真圖像的人臉細(xì)節(jié),其中用于融合的模板人臉通過人臉質(zhì)量評(píng)估模型在訓(xùn)練圖像中進(jìn)行挑選;最后再使用人臉識(shí)別模型計(jì)算生成的寫真圖像與模板人臉的相似度,以此對(duì)寫真圖像進(jìn)行排序,并輸出排名靠前的個(gè)人寫真圖像作為最終輸出結(jié)果。
項(xiàng)目作者已詳細(xì)介紹安裝與使用方法,并將項(xiàng)目代碼開源,感興趣的讀者快去試試吧。