charred
1.0.0
厭倦了無法正確拼寫或處理字體和版式的文本對圖像模型?秘密似乎是在使用多語言,無令牌,角色感知的變壓器編碼器,例如Byt5和Canine-C。
text-to-image管道中,用BYT5替換剪輯作為擁抱臉Jax擴散器Sprint的一部分,我們將用HF的JAX/FLAX文本對圖像預訓練代碼中的BYT5代替Clip的令牌和編碼器,並在Google提供的tpu ressources上運行它。
更具體地說,這是我們將在衝刺期間嘗試完成的主要任務:
預培訓數據集準備:我們不會在lambdalabs/pokemon-blip-captions上進行培訓。那麼,這將是什麼,有什麼選擇?這里或這裡有什麼想像您的幻想嗎?還是dibfusiondb?還是許多數據集的Savant組合?我們可能需要將許多數據集結合起來,因為我們希望涵蓋這些要求:
由於它支持JAX開箱即用,因此我們盡可能多地使用擁抱面部數據集庫。為了簡單起見,我們將限制我們將擁抱面部數據集(例如Laion2b EN,Multi和Nolang)串聯。但是,我們將在對其進行培訓之前進行預加工和磁盤上的數據集緩存。
對原始代碼的改進:
jnp (而不是NP) jit , grad ,VMAP, vmap , pmap , pjit無處不在!而且我們應該確保我們也不會錯過Sprint代碼中的任何優化。FlaxStableDiffusionSafetyChecker擺脫困境。用原始代碼中的Byt5替換剪輯:
ByT5Tokenizer代替CLIPTokenizer 。由於這將在CPU上運行,因此除非有巨大的性能改善,否則不需要JAX/Flax。這應該是微不足道的。FlaxT5EncoderModel替換FlaxCLIPTextModel 。這可能幾乎與更換令牌儀一樣容易。CLIPImageProcessor 。這仍在調查中。目前尚不清楚它將有多困難。FlaxAutoencoderKL和FlaxUNet2DConditionModel 。其次,我們將集成到上面的擁抱式JAX/FLAX CONTROLNET實現,以更好地對生成的圖像進行印刷控制。在上面的截形式SD上,按照彼得·馮·普拉頓(Peter von Platen)的建議,我們還介紹了在圖像的合成數據集中培訓的印刷控製網絡,並與文本內容,字體分類,重量,重量,領先,領先,傾向和任何其他字體屬於CSS和其他版本的文本和其他版本的文本屬性和任何其他版本的文本屬於Font,Fonthe的屬性和任何其他版本的版本,Fonthe和任何其他版本的文本,FONTES 3的多種語言規格。鉻。