Memanfaatkan CLIP dari OpenAI untuk generate lucid-dream image dari text.

Salah satu yang selalu kuikuti dalam perkembangan dunia AI adalah produk-produk dari OpenAI. CLIP sendiri kalau tidak salah sudah dirilis sejak tahun lalu, atau minimal beberapa bulan lalu lah. CLIP (Contrastive Language-Image Pre-Training), sebagaimana disebutkan di laman githubnya, menydiakan module untuk pengolahan neural networks untuk image dan teks.

Ada banyak sekali yang sudah mencoba memanfaatkan CLIP ini, kita bisa ikuti perkembangannya misalnya melalui thread di reddit ini. Dan saya tertarik untuk mencoba salah satunya, yaitu Text2Image FFT. Hasilnya, seperti yang bisa njenengan lihat di gambar di atas. Saya memakai kata kunci “burung terbang di atas perumahan”.

Sengaja saya memakai bahasa Indonesia, sekadar pingin melihat sejauh mana mesin translasinya bekerja. Dan ternyata memang google translate, library yang digunakan di script ini, udah makin jago. Tapi mengapa harus ditranslate? Simple saja, ya karena dataset yang paling banyak ada adalah yang berbasis bahasa Inggris.

Oke, tanpa lebih banyak cingcong lagi, njenengan semua bisa langsung menuju ke google colab ini. Oh iya, kenapa Google Colab? Karena untuk membangun mesin yang layak untuk machine learning itu mwahal. Menjalankan training neural network di mesin berbasis CPU, meskipun njenengan numpuk-numpuk CPU sampai puluhan core, tetap tidak akan secepat jika menggunakan GPU. Ditambah lagi, ketika bicara machine learning, menggunakan pytorch misalnya, maka yang supportnya paling ramai ya yang berbasis CUDA, alias mesin produksi NVIDIA.

Saya kebetulan beberapa waktu lalu diberi kesempatan mencicipi naik CUDA ini. Demi membuat mesin text to speech, saya dimodali (baca: diijinkan mengakses via ssh), mesin seharga 40 juta! Dan harga itu sebenarnya 80%nya cuma untuk beli GPUnya, sebiji. Hihi.. Makanya kalau kantong ndak tebal, udah paling bener merapat ke mbah google. Dengan google colab, sebagai gambaran, saya hanya butuh waktu 14 menit untuk menjalankan training untuk text processing (NER extraction, clustering, dll), yang mana sebelumnya butuh seminggu — SATU MINGGU!! — hanya untuk mendapatkan satu model pakai mesin berbasis CPU 32 Core.

Jadi, ya sudah, silakan menuju ke google colab tadi, lalu jalankan masing-masing cellnya. Masukkan kata kunci memakai bahasa inggris, atau bisa juga menggunakan bahasa lain yang sudah ada di mesin translasi google, lalu aktifkan centangan translate. Jika dalam menjalankan cell-cell tersebut njenengan menemukan error seperti ini:

ValueError: too many values to unpack (expected 2) 

Itu karena img.shape yang dipanggil adalah bukan grayscale. Untuk image berwarna, di dalam img.shape ada nilai channelnya. Maka tinggal ubah saja menjadi:

params, image_f, channels = param_f(shape) 

Dah, mestinya setelah itu lancar saja, dan njenengan akan mendapatkan image “bergaya” lucid dream dari kata kunci yang njenengan masukkan. Output dari scriptnya sendiri berupa file mp4 (video timelapse) dan file checkpoint (.pt).

Selamat menggambar!