攻克圖像「文本生成」難題,碾壓同級擴散模型!兩代TextDiffuser架構深度解析
近年來,文本生成圖像領域取得了顯著進展,尤其是基于擴散(Diffusion)的圖像生成模型在細節層面上展現出逼真的效果。
然而,一個挑戰仍然存在:如何將文本準確地融入圖像。
生活中存在大量的「含文本圖像」,從廣告海報到書籍封面,再到路牌指示,都包含了重要的信息。如果人工智能模型能夠高效且準確地生成含有文本的圖像,將極大推動設計和視覺藝術領域的發展。
例如現有的先進開源模型Stable Diffusion和閉源模型MidJourney都在文本渲染上存在巨大挑戰。
Stable Diffusion:a bear holds a board saying 'hello world'」
MidJourney:Color photo; diner billboard; headline “Jack Rabbit Slim’s”; vintage style (Leonardo AI prompted by Alan Truly)
為了應對這一挑戰,微軟亞洲研究院自然語言計算組聯合香港科技大學和中山大學,提出了TextDiffuser和TextDiffuser-2模型。
這兩款模型不僅提升了圖像中文本渲染的準確性和清晰度,還提升了靈活度和實用性,能夠執行文本到圖像的生成、基于文本模板的圖像生成,或是圖像的文本補全等與文本渲染相關的任務。
論文標題:TextDiffuser: Diffusion Models as Text Painters
項目主頁:https://jingyechen.github.io/textdiffuser/
代碼鏈接:https://github.com/microsoft/unilm/tree/master/textdiffuser
在線Demo:https://huggingface.co/spaces/JingyeChen22/TextDiffuser
TextDiffuser對于以上兩個prompt生成的結果
TextDiffuser
模型通過兩階段的工作流程生成含有文本的圖像。
第一階段,模型通過用戶的提示(prompt)確定關鍵詞的文本布局。
它采用了Layout Transformer技術,自回歸地生成每個關鍵詞的坐標框,相當于得到了字符坐標框級別的遮罩(Box-Level Segmentation Mask),能為每個字符提供精確的控制。
第二階段,作者改進了Stable Diffusion架構以結合字符的坐標框信息進行生成,使得TextDiffuser能夠在指定位置生成清晰的字符。
具體來說,作者重新設計了輸入的特征,維度由原先的4維變成了17維。其中包含4維加噪圖像的特征,8維字符信息,1維圖像掩碼,還有4維未被mask圖像的特征。通過mask圖像的部分或全部,即可實現生成部分圖像(稱為Part-Image Generation或Text-inpainting)或是整張圖像(稱為Whole-Image Generation)。
TextDiffuser框架圖,包含兩個階段:布局生成與圖像生成
在Inference階段,TextDiffuser非常靈活,有三種使用方式:
1. 根據用戶給定的指令生成圖像。并且,如果用戶不滿意第一步Layout Generation生成的布局,用戶可以更改坐標也可以更改文本的內容,這增加了模型的可控性。
2. 直接從第二個階段開始。根據模板圖像生成最終結果,其中模板圖像可以是印刷文本圖像,手寫文本圖像,場景文本圖像。作者訓練了一個字符集分割網絡用于從模板圖像中提取Layout。
3. 同樣也是從第二個階段開始,用戶給定圖像并指定需要修改的區域與文本內容。該操作可以多次進行,直到用戶對生成的結果感到滿意為止。
為了支持TextDiffuser的訓練,研究團隊構建了一個包含1000萬張文本圖像的MARIO-10M數據集,包含三個子集:LAION-OCR,TMDB與OpenLibrary。
作者還基于MARIO設計了MARIO-Eval文本渲染任務的大規模基準。作者進行了實驗,與DeepFloyd等先進模型對比。
例如下圖所示,在Whole-Image Generation任務中,TextDiffuser生成的圖像具有更加清晰可讀的文本,并且文本區域與背景區域較為和諧。
與現有文本生成圖像方法相比,TextDiffuser可以生成正確的文本,并且文本與背景融合度較高
定性的實驗的評估指標有FID,CLIPScore與OCR。尤其是OCR指標,TextDiffuser相對于對比方法有很大的提升。
對于Part-Image Generation任務,下面是在給定的圖像上增加或修改字符的例子,TextDiffuser生成的結果很自然。
TextDiffuser-2
TextDiffuser-2進一步釋放了語言模型在視覺文本渲染方面的潛能,提升了文本渲染的多樣性和靈活性。
論文標題:TextDiffuser-2: Unleashing the Power of Language Models for Text Rendering
項目主頁:https://jingyechen.github.io/textdiffuser2/
代碼鏈接:https://github.com/microsoft/unilm/tree/master/textdiffuser-2
在線Demo:https://huggingface.co/spaces/JingyeChen22/TextDiffuser-2
TextDiffuser-2繼承并優化了其前身TextDiffuser的核心特性,主要創新在于其對語言模型的應用。現有研究成果顯示,大型語言模型內含有對視覺布局有一定理解的能力,足以處理布局生成任務。
基于這一發現,研究團隊用圖像描述-文本布局數據集對vicuna-1.5-7B語言模型進行了微調,使TextDiffuser-2能夠更有效地處理文本布局生成任務,生成協調且美觀的布局。
此外,TextDiffuser-2采用了Stable Diffusion模型中現有的語言模型編碼布局信息,通過引入坐標token和字符token,提高了在特定位置繪制相應文本內容的能力。
具體來說,第一階段的目標是對一個預訓練的大型語言模型M1進行微調,讓它能夠作為解碼器,使用圖片描述與OCR(光學字符識別)結果對進行訓練。輸入遵循這樣的格式:“[描述] 提示: [提示] 關鍵詞: [關鍵詞]”。
輸出方面,我們期望每一行都遵循“文本行x0, y0, x1, y1”的格式,其中(x0, y0)和(x1, y1)分別代表左上角和右下角的坐標。我們利用OCR結果中檢測到的所有文本作為關鍵詞來構造輸入。
通過這樣的方法,TextDiffuser-2模型不僅能夠根據用戶的需求靈活地生成圖像布局,還能夠通過對話交互的方式,進一步細化和調整布局,為圖像生成提供更高的靈活性和個性化選項。
第二階段引入了一種簡單且無需額外參數的策略,即將提示(prompt)和布局結合到語言模型M2中,M2在潛在擴散模型中扮演文本編碼器的角色。
與調節個別字符位置的字符級分割掩碼不同,行級邊界框在生成過程中提供了更大的靈活性,并且不會限制樣式的多樣性。之前的研究表明,細粒度的分詞可以增強擴散模型的拼寫能力。
受此啟發,作者設計了一種混合粒度的分詞方法,既提高了模型的拼寫能力,又避免了序列變得過長。具體來說,一方面,作者保持了原始的BPE分詞方法用于處理提示。
另一方面,作者引入了新的字符token,并將每個關鍵詞分解為字符級表示。例如,單詞“WILD”被分解為token “[W]”, “[I]”, “[L]”, “[D]”。此外,作者引入了新的坐標token來編碼位置。例如,token “[x5]”和“[y70]”分別對應于x坐標5和y坐標70。
每個關鍵詞信息由結束符token “?eos?”分隔,任何剩余的空間直到最大長度L將被填充token “?pad?”填充。作者對整個擴散模型進行訓練,包括語言模型M2和U-Net,使用L2去噪損失。
作者進行了廣泛的實驗來驗證TextDiffuser-2的有效性,在文本到圖像生成的任務上,與當前最前沿的模型進行比較,TextDiffuser-2展示了卓越性能,不僅能準確渲染文字,而且展示了布局的自然性和逼真度。
在處理復雜和多樣化的文本樣式方面,例如手寫體和藝術體,TextDiffuser-2 表現出色,證明了其在細節和樣式多樣性上的優勢。
此外,在圖像的文本補全(Text Inpainting)任務上,TextDiffuser-2同樣展現了其優越性,能夠在保持文本與背景匹配的同時,提升整體圖像的質感和美觀度。
在定量實驗中,TextDiffuser-2在大多數指標上具有優異的性能。
研究團隊還使用GPT-4V進行了用戶評測。評測結果顯示,GPT-4V具有優異的識圖識字能力,并且其總結的理由也顯得合理。TextDiffuser-2在GPT-4V的評測中也獲得了比其他對比模型優異的結果。
TextDiffuser和TextDiffuser-2的推出及其持續發展,在圖像中準確渲染文本這一任務上取得了顯著的進步。
為了促進這一技術的廣泛應用,研究團隊已經公布了TextDiffuser和 TextDiffuser-2的代碼、數據集和Demo,鼓勵廣大研究者和設計師進行探索和應用,進一步推動設計和視覺藝術領域的創新與發展。