フォントやタイポグラフィを正しく綴ることができない、または対処できないテキストから画像へのモデルにうんざりしていませんか?この秘密は、BYT5や犬Cなどの多言語、トークン化のない、キャラクター認識の変圧器エンコーダーの使用にあるようです。
text-to-imageパイプラインのクリップをBYT5に置き換えます抱きしめるFace Jax Diffuser Sprintの一部として、HFのJax/Flaxテキストから画像のトレーニングコードのBYT5にClipのトークナーとエンコーダを交換し、イベントのためにGoogleが提供するスポンサー付きのTPU Ressourcesで実行します。
より具体的には、スプリント中に達成しようとする主なタスクを次に示します。
トレーニング前のデータセットの準備: lambdalabs/pokemon-blip-captionsをトレーニングするつもりはありません。それで、それは何になるでしょうか、オプションは何ですか?ここまたはここに何かがあなたの空想を取りますか?それともdiffusiondb?または、多くのデータセットのサバントミックスですか?これらの要件をカバーしようとしているため、おそらく多くのデータセットを組み合わせる必要があります。
Jaxを箱から出してサポートするため、ハグFace Datasets Libraryを可能な限り使用します。簡単にするために、Laion2b En、Multi、Nolangなどのフェイスデータセットを連結した連結に制限します。ただし、トレーニングする前に、ディスクのデータセットを事前処理し、キャッシュし、キャッシュします。
元のコードの改善:
jnp (NPの代わりに) jit 、 grad 、 vmap 、 pmap 、 pjitどこにでもコードを監査および最適化します!また、スプリントコードで行われた最適化も見逃さないようにする必要があります。FlaxStableDiffusionSafetyChecker邪魔にならないようにします。元のコードでクリップをBYT5に置き換えます。
CLIPTokenizer ByT5Tokenizerに置き換えます。これはCPUで実行されるため、パフォーマンスの大幅な改善が希望がない限り、Jax/Flaxは必要ありません。これは些細なことです。FlaxCLIPTextModel FlaxT5EncoderModelに置き換えます。これは、トークン剤を交換するのとほぼ同じくらい簡単かもしれません。CLIPImageProcessor書き直します。これはまだ調査中です。それがどれほど難しいかは不明です。FlaxAutoencoderKLおよびFlaxUNet2DConditionModel 。第二に、生成された画像をより適切に制御するために、上記の抱きしめるface jax/flax controlnetの実装に統合します。上記の正書法に啓発されたSDに対して、Peter von Platenの提案に従って、テキストコンテンツ、フォント、重量、ケルニング、リーディング、スラント、およびCSSS3のfort firt mods by as fort fids as as fort fort sems as a suted mods as a suted mods as a suptographic属性によってサポートされている属性のある属性のある属性のある属性の多言語、kerning、先頭、スラント、およびその他のタイパグラフィーのマルチに対応した画像の合成データセットで訓練されたタイポグラフィコントロールネットを紹介するアイデアも紹介します。クロム。