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的多种语言规格。铬。