新擴(kuò)散模型OmniGen一統(tǒng)圖像生成,架構(gòu)還高度簡(jiǎn)化、易用
大型語言模型(LLM)的出現(xiàn)統(tǒng)一了語言生成任務(wù),并徹底改變了人機(jī)交互。然而,在圖像生成領(lǐng)域,能夠在單一框架內(nèi)處理各種任務(wù)的統(tǒng)一模型在很大程度上仍未得到探索。近日,智源推出了新的擴(kuò)散模型架構(gòu) OmniGen,一種新的用于統(tǒng)一圖像生成的多模態(tài)模型。
OmniGen 具有以下特點(diǎn):
- 統(tǒng)一性:OmniGen 天然地支持各種圖像生成任務(wù),例如文生圖、圖像編輯、主題驅(qū)動(dòng)生成和視覺條件生成等。此外,OmniGen 可以處理經(jīng)典的計(jì)算機(jī)視覺任務(wù),將其轉(zhuǎn)換為圖像生成任務(wù)。
- 簡(jiǎn)單性:OmniGen 的架構(gòu)高度簡(jiǎn)化。此外,與現(xiàn)有模型相比,它更加用戶友好,可以通過指令完成復(fù)雜的任務(wù),而不需要冗長(zhǎng)的處理步驟和額外的模塊 (如 ControlNet 或 IP-Adapter),從而大大簡(jiǎn)化了工作流程。
- 知識(shí)遷移:受益于統(tǒng)一格式的學(xué)習(xí),OmniGen 有效地跨不同任務(wù)遷移知識(shí),應(yīng)對(duì)未見過的任務(wù)和領(lǐng)域,并展示新穎的功能。我們還探討了模型的推理能力和思維鏈機(jī)制的在圖像生成領(lǐng)域的潛在應(yīng)用。
- Paper: https://arxiv.org/pdf/2409.11340
- Code: https://github.com/VectorSpaceLab/OmniGen
- Demo: https://huggingface.co/spaces/Shitao/OmniGen
基于 OmniGen 的通用能力,可實(shí)施更靈活的圖像生成,以上展示一個(gè)簡(jiǎn)單 Pipeline:文本生成圖像,編輯生成圖像的部分元素,根據(jù)生成圖像的人體姿態(tài)生成重繪圖像,從另一圖像中提取所需對(duì)象與新圖像融合。
一、介紹
近年來,許多文生圖模型在生成式 AI 的浪潮中脫穎而出。然而,這些出色的專有模型僅能基于文本生成圖像。當(dāng)用戶產(chǎn)生更靈活、復(fù)雜、精細(xì)等的圖像生成需求時(shí),往往需要額外的插件和操作。
例如,若想?yún)⒖既我蛔藨B(tài)生成圖像,常規(guī)方法是:用姿態(tài)檢測(cè)器從參考圖像中估計(jì)姿態(tài)作為條件輸入,并加載對(duì)應(yīng)的 Controlnet 插件,最后提取條件輸入的特征饋入擴(kuò)散模型生成圖像。
此外,若想基于合照中的特定人物生成新圖像,流程更加繁瑣,需要裁剪圖像以確保結(jié)果圖像僅包含目標(biāo)人物。
而諸如 InstandID 等方法還需使用額外的人臉檢測(cè)器提取面部信息,并用面部編碼器提取特征以輸入模型。
值得注意的是,各種不同的生成任務(wù)甚至還需更多不同的插件和操作,如此復(fù)雜、瑣碎而冗長(zhǎng)的工作流極大地增加了訓(xùn)練和應(yīng)用的成本。然而,即便如此繁瑣,有時(shí)也仍難以滿足一般的圖像生成的需求,例如基于指定多張照片中的實(shí)體生成新圖像。
相反,在文本生成領(lǐng)域,以 ChatGPT 為代表的模型可通過人類指令直接處理各種文本任務(wù)。那么,在圖像生成領(lǐng)域,能否通過單個(gè)支持多種輸入且耦合多項(xiàng)能力的模型,基于用戶指令完成各種生成任務(wù),而無需各種繁雜的流程嗎?
為解決這一挑戰(zhàn)性問題,智源發(fā)布了統(tǒng)一圖像生成模型 OmniGen。OmniGen 模型具有良好的簡(jiǎn)潔性和易用性,集成了多種基礎(chǔ)圖像生成任務(wù),包括但不限于:文生圖、圖像編輯、角色一致性生成、基于視覺條件的生成等。OmniGen 支持基于任意多模態(tài)的文圖指令完成任務(wù),而無需任何其他額外插件和操作。
二、能力
OmniGen 集多項(xiàng)能力于一體,包括但不限于:
- 文本到圖像生成 (Text to Image Generation)
- 指代表達(dá)生成 (Referring Expression Generation)
- 通用圖像條件生成 (General Image Conditional Generation)
- 圖像編輯 (Image Edit)
- 經(jīng)典計(jì)算機(jī)視覺任務(wù):圖像去噪、邊緣檢測(cè)、姿態(tài)估計(jì)等
- 一定的上下文學(xué)習(xí)能力 (In-context Learning)
以下簡(jiǎn)要展示部分能力效果:
2.1 文本到圖像生成
2.2 指代表達(dá)生成
OmniGen 具備類似 InstandID、Pulid 等模型生成角色一致性圖像等能力,即:輸入具有單個(gè)對(duì)象的圖像,理解并遵循指令,輸出基于該對(duì)象的新圖像。
同時(shí),OmniGen 具有更高階的能力:指代表達(dá)生成能力,我們把這種能力定義為能夠從包含多個(gè)對(duì)象的圖像中,識(shí)別指令所指代的對(duì)象并生成新的圖像。
例如,OmniGen 可根據(jù)指令直接從多人圖像中定位目標(biāo)對(duì)象,并生成遵循指令的新圖像,而無需任何額外的模塊和操作:
更多樣例:
2.3 通用圖像條件生成
OmniGen 不僅支持類似 ControlNet 根據(jù)特定顯式條件生成圖像的能力,還同時(shí)具備處理經(jīng)典計(jì)算機(jī)視覺任務(wù)的能力(如人體姿態(tài)估計(jì)、深度估計(jì)等)。
因此,OmniGen 可憑借單個(gè)模型完成整個(gè) ControlNet 流程:直接使用 OmniGen 對(duì)原圖提取視覺條件,并基于所提取的條件生成圖像,無需額外處理器。
同時(shí),OmniGen 還能更進(jìn)一步簡(jiǎn)化中間流程,一步出圖:直接輸入原圖,輸入指令「Following the human pose (or depth mapping) of this image, generate a new image:...」,就可根據(jù)輸入圖像的人體姿態(tài)或深度圖關(guān)系生成新圖像。
2.4 圖像編輯
OmniGen 具備良好的圖像編輯能力,并且可以在一次運(yùn)行中同時(shí)執(zhí)行多條編輯指令,例如:
2.5 更多能力
OmniGen 具備潛在的推理能力,可以處理對(duì)模型理解和推斷能力具有一定要求的非顯式查詢指令。
例如,要求模型刪除圖中能裝水的物品,則模型能夠理解和推斷出指令涉及的圖中物體并刪除:
另一方面,OmniGen 具有一定程度的上下文學(xué)習(xí)能力,可根據(jù)參考樣例對(duì)圖像進(jìn)行處理。例如,輸入一個(gè)分割皇后象棋的輸入 - 輸出配對(duì)樣例 (Example),模型能識(shí)別并分割新輸入圖像中對(duì)應(yīng)的物體:
思維鏈(Chain-of-Thought, CoT)方法將任務(wù)分解為多個(gè)步驟,并按順序求解每個(gè)步驟以獲得準(zhǔn)確的最終答案,從而顯著提高了 llm 的性能。我們考慮是否可以將類似的替代方案應(yīng)用于圖像生成。受人類繪畫的基本方式的啟發(fā),我們希望模仿一步一步的繪畫過程,從空白畫布上迭代地生成圖像。我們進(jìn)行了初步的探索,微調(diào)后模型能夠模擬人類行為一步步的生成圖片,進(jìn)一步的優(yōu)化留給以后的研究。
OmniGen 的能力包括但不限于以上內(nèi)容,還包括基本的圖像去噪、邊緣提取等能力。模型權(quán)重和代碼已開源,用戶可以自行探索更多 OmniGen 的能力。
三、模型
OmniGen 的核心設(shè)計(jì)原則是:簡(jiǎn)潔和有效。因此,我們最大程度舍棄了各種額外模塊。OmniGen 的基本架構(gòu)為:一個(gè) Transformer 模型和一個(gè) VAE 模塊,共 3.8B 參數(shù)。其中,Transformer 繼承于 Phi3-mini 模型,圖像內(nèi)部改用雙向注意力 (Bidirectional Attention) 以契合圖像數(shù)據(jù)特性。整體架構(gòu)如下所示:
為實(shí)現(xiàn)強(qiáng)大的通用和泛化能力,研究人員需要基于大規(guī)模和多樣化的數(shù)據(jù)集訓(xùn)練模型。然而,在圖像生成領(lǐng)域,尚無一個(gè)可用的通用數(shù)據(jù)集。為此,我們構(gòu)建了首個(gè)大規(guī)模且多樣化的統(tǒng)一圖像生成數(shù)據(jù)集 X2I,意為「Anything to Image」。其中,不同任務(wù)的數(shù)據(jù)格式被重新組織和統(tǒng)一,以便于管理和使用。X2I 數(shù)據(jù)集包含約 1 億圖像,未來經(jīng)審查等流程后將開源,旨在進(jìn)一步推動(dòng)通用圖像生成領(lǐng)域的發(fā)展。下圖簡(jiǎn)要展示了 X2I 數(shù)據(jù)集的一些示例:
四、小結(jié)與展望
總之,OmniGen 的統(tǒng)一圖像生成范式,不但有助于執(zhí)行各種下游任務(wù),而且有利于組合各種能力滿足更通用的需求。當(dāng)前,OmniGen 的報(bào)告、權(quán)重和代碼等已開源,歡迎社區(qū)共同參與對(duì) OmniGen 潛在能力的發(fā)掘、基本性能的提升和廣泛應(yīng)用的探索。
OmniGen 模型是對(duì)統(tǒng)一圖像生成的初步嘗試,還有很大的提升空間。未來,智源將進(jìn)一步改進(jìn)模型基本能力,拓展更多有趣的功能。同時(shí),微調(diào)代碼已發(fā)布,用戶可簡(jiǎn)單對(duì)其進(jìn)行微調(diào),由于 OmniGen 的輸入形式非常多樣,用戶可自行定義各式各樣的微調(diào)任務(wù),賦予模型更多有意思的能力。