新擴散模型OmniGen一統影像生成,架構還高度簡化、易用

机器之心發表於2024-10-29
大型語言模型(LLM)的出現統一了語言生成任務,並徹底改變了人機互動。然而,在影像生成領域,能夠在單一框架內處理各種任務的統一模型在很大程度上仍未得到探索。近日,智源推出了新的擴散模型架構 OmniGen,一種新的用於統一影像生成的多模態模型。

OmniGen 具有以下特點:
  1. 統一性:OmniGen 天然地支援各種影像生成任務,例如文生圖、影像編輯、主題驅動生成和視覺條件生成等。此外,OmniGen 可以處理經典的計算機視覺任務,將其轉換為影像生成任務。

  2. 簡單性:OmniGen 的架構高度簡化。此外,與現有模型相比,它更加使用者友好,可以透過指令完成複雜的任務,而不需要冗長的處理步驟和額外的模組 (如 ControlNet 或 IP-Adapter),從而大大簡化了工作流程。

  3. 知識遷移:受益於統一格式的學習,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 集多項能力於一體,包括但不限於:
  1. 文字到影像生成 (Text to Image Generation)

  2. 指代表達生成 (Referring Expression Generation)

  3. 通用影像條件生成 (General Image Conditional Generation)

  4. 影像編輯 (Image Edit)

  5. 經典計算機視覺任務:影像去噪、邊緣檢測、姿態估計等

  6. 一定的上下文學習能力 (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 的輸入形式非常多樣,使用者可自行定義各式各樣的微調任務,賦予模型更多有意思的能力。

相關文章