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