Od samego początku projektu wiedzieliśmy, że praca z dość nową technologią będzie mocno nieprzewidywalna. Finalnie powstało kilka prototypów, a iterowaliśmy niemalże codziennie. Jak to dokładnie wyglądało?
Jak tylko udało się nam wybrać najlepszy, na nasze potrzeby, model AI do przetwarzania obrazów, to jedną z pierwszych trudności było dotrenowanie go tak, aby bezbłędnie:
- przetwarzał zdjęcia na kolorowankę, nie dodając elementów od siebie, nie przetwarzając istniejących elementów ani ich nie usuwając;
- trzymał się obranego stylu kolorowanki.
Kolejnym wyzwaniem było zapewnienie bezpieczeństwa wizerunkowego, tj. aby osoby skłonne do trollowania nie generowały kolorowanek zawierających, m.in. nagość, przemoc czy inne niestosowne treści. Tutaj z pomocą przyszedł model ML klasyfikujący takie treści (tzw. NSFW - not safe for work), którego użyliśmy jako filtra. Dodatkową warstwą zabezpieczenia był filtr wyłapujący zdjęcia z wizerunkiem konkurencji. W tym przypadku sięgnęliśmy po model AI typu LoRA, który wytrenowaliśmy, aby z większą precyzją wyłapywał takie zdjęcia.
Jednak najważniejsze zagadnienia były związane z kartami graficznymi RTX4090, niezbędnymi do działania aplikacji. Jak odpowiednio zbalansować czas generowania kolorowanki (czystej i pokolorowanej) z liczbą kart? Jak zapewnić dostępność niesamowicie popularnych kart i nie przeznaczyć na nie astronomicznych kwot? Brzmi skomplikowanie? Takie było! Postawiliśmy na wynajem, opracowaliśmy mechanizm automatycznego wykupywania i startowania kolejnych kart w okresach wzmożonego ruchu, a to wszystko utrzymując czas generowania kolorowanek na poziomie poniżej 10 sekund, i w założonym budżecie!