克雷西 發自 凹非寺
量子位 | 公衆号 QbitAI
能準确寫漢字的AI繪圖工具,終于登場了!
包括中文在内一共支援四種語言,而且還能文字的位置還能任意指定。
從此,人們終于可以和AI繪圖模型的“鬼畫符”說再見了。
這款名為AnyText的繪圖工具來自阿裡巴巴,可以按照指定位置精準地向圖中加入文字。
此前的繪圖模型普遍無法準确地向圖中添加文字,即便有也很難支援像中文這樣結構複雜的文字。
而目前Anytext支援中英日韓四種語言,不僅字形準确,風格也可以與圖檔完美融合。
除了可以在繪制時加入文字,修改圖檔中已有的文字,甚至向其中加字也都不是問題。
究竟AnyText效果如何,我們也實際體驗了一番。
各種風格輕松駕馭
官方在GitHub文檔中提供了AnyText的部署教程,也可以在魔搭社群中體驗。
此外還有網友制作了PyTorch筆記,可以在本地或Colab中一鍵部署,我們采用的也是這種方式。
AnyText支援中英文Prompt,不過從程式日志來看,中文提示詞會被自動翻譯成英文。
比如我們想讓AnyText給馬斯克換上一件白色T恤,讓他來給量子位(QbitAI)打個call。
隻需要輸入提示詞,然後設定文本的位置,然後直接運作就可以了。
如果需要調整尺寸等參數,可以将上方的菜單展開;如果不會操作,頁面中還附有中英雙語教程。
最終,在搭載V100的Colab上,AnyText用了10多秒繪制出了四張圖檔。
效果還是不錯的,不論是圖本身還是文字,看上去都沒有什麼破綻。
而且各種文字材質AnyText都能準确模仿,比如黑闆上的粉筆字,甚至是傳統書法……
街景中的文字,甚至是電商促銷海報,都難不倒AnyText。
而且不僅是平面上各式各樣的文字,立體風格同樣也不在話下。
而其中的文本編輯功能,還可以修改已有圖檔中的文字,幾乎不會留下破綻。
在測試當中,AnyText也是取得了不錯的成績——無論是中英文,準确度都顯著高于ControlNet,FID誤差也大幅減少。
此外,如果自行部署,還可以對字型進行自定義,隻需準備好字型檔案并對代碼簡單修改就可以了。
那麼,研究人員是怎樣讓AnyText學會寫字的呢?
文本渲染獨立完成
AnyText是基于擴散模型開發的,主要分為兩個子產品,文字生成的過程是相對獨立的。
這兩個子產品分别是隐空間輔助子產品和文本嵌入子產品。
其中,輔助子產品對字形、文字位置和掩碼這三種資訊進行編碼并建構隐空間特征圖像,用來輔助視覺文字的生成;
文本嵌入子產品則将描述詞中的語義部分與待生成文本部分解耦,使用圖像編碼子產品單獨提取字形資訊後,再與語義資訊做融合。
在實際工作過程中,嵌入的文本輸送給繪圖子產品時被用星号代替,在嵌入空間預留位置并用符号填充。
然後文本嵌入子產品得到的字形圖像被輸入預訓練OCR模型,提取出字形特征,然後調整其次元并替換預留位置中的符号,得到新的序列。
最後,這個序清單示被輸入到CLIP的文本編碼器中,形成最終指導圖像生成的指令。
這種“分而治之”的方式,既有助于文字的書寫精度,也有利于提升文字與背景的一緻性。
此外,AnyText還支援嵌入其他擴散模型,為之提供文本生成支援。
論文位址:
https://arxiv.org/abs/2311.03054
GitHub:
https://github.com/tyxsspa/AnyText
魔搭社群:
https://modelscope.cn/models/damo/cv_anytext_text_generation_editing/summary
筆記:
https://colab.research.google.com/github/camenduru/AnyText-colab/blob/main/AnyText_colab.ipynb
— 完 —
量子位 QbitAI · 頭條号簽約
關注我們,第一時間獲知前沿科技動态