Müde von Text-to-Image-Modellen, die nicht korrekt mit Schriftarten und Typografie buchstabieren oder umgehen können? Das Geheimnis scheint in der Verwendung von mehrsprachigen, tokenisierungsfreien, charakterbewussten Transformator-Encodern wie Byt5 und Canine-C zu stehen.
text-to-image -Pipeline von HFIm Rahmen des Umarmungsgesichts-Jax-Diffusor-Sprint werden wir Clips Tokenizer und Encoder durch Byt5 in dem JAX/Flachs-Text-zu-Image-Pre-Training-Code des HF von HF ersetzen und auf den von Google für die Veranstaltung bereitgestellten TPU-Ressourcen ausführen.
Insbesondere hier sind die Hauptaufgaben, die wir während des Sprint erledigen werden:
Vorbereitung vor der Ausbildung: Wir werden nicht auf lambdalabs/pokemon-blip-captions trainieren. Also, was wird es sein, welche Optionen sind die Optionen? Etwas hier oder hier nimmt sich Ihre Phantasie? Oder vielleicht DiffusionDB? Oder eine Savant -Mischung aus vielen Datensätzen? Wir müssen wahrscheinlich viele Datensätze kombinieren, da wir diese Anforderungen erfüllen möchten:
Wir sollten die Bibliothek der umarmenden Gesichtsdatensätze so weit wie möglich verwenden, da sie JAX unterstützt. Um den Einfachheit halber werden wir uns auf verkettete Umarmungsdatensätze wie Laion2B EN, Multi und Nolang beschränken. Wir werden den Datensatz auf der Festplatte vor dem Training vor dem Training vor dem Training vor dem Training vor dem Training.
Verbesserungen des ursprünglichen Code:
jnp (anstelle von NP) jit , grad , vmap , pmap , pjit überall! Und wir sollten sicherstellen, dass wir auch keine Optimierung im Sprint -Code verpassen.FlaxStableDiffusionSafetyChecker aus dem Weg.Ersetzen Sie Clip durch BYT5 im Originalcode:
CLIPTokenizer durch ByT5Tokenizer ersetzen. Da dies auf dem CPUs läuft, besteht keine Notwendigkeit für Jax/Flachs, es sei denn, es gibt Hoffnung auf enorme Leistungsverbesserungen. Dies sollte trivial sein.FlaxCLIPTextModel durch FlaxT5EncoderModel . Dies könnte fast so einfach sein wie das Ersetzen des Tokenizers.CLIPImageProcessor für BYT5 um. Dies wird noch untersucht. Es ist unklar, wie schwer es sein wird.FlaxAutoencoderKL und FlaxUNet2DConditionModel für Byt5 gegebenenfalls.Zweitens werden wir uns in die oben genannte Implementierung von Jax/Flax ControlNET integrieren, um die generierten Bilder bessere typografische Steuerung zu erhalten. To the orthographically-enanced SD above and as per Peter von Platen's suggestion, we also introduce the idea a typographic ControlNet trained on an synthetic dataset of images paired with multilingual specifications of the textual content, font taxonomy, weight, kerning, leading, slant and any other typographic attribute supported by the CSS3 Text, Fonts and Writing Modes modules, as implemented by the latest version of Chromium.