About CharCanvas
Inspiration
I am obsessed with image generation models and was interested in the idea: can a language model create art and understand art? That is how I started the project. There is no good LLM which can make good ASCII art, and that was my inspiration.
What it does
CharCanvas takes a text prompt like “basketball” and makes a 32×32 ASCII artwork of it. For example, if you say “1st place medal”, it generates an ASCII artwork of the medal. It works this way for any object or emoji given as input.
How we built it
We took the Rocco dataset and selected the OpenMoji emoji dataset from it. We processed it and created a density art dataset.
Each training sample had a prompt like this:
You are a density-based ASCII artist. Generate ASCII art representation of the requested emoji in a 32x32 format using various density characters. Create ASCII art of: 1st place medal
The output section contained the ASCII artwork.
We fine-tuned the GPT-OSS 20B model using the Unsloth library and created an adapter for ASCII art generation.
Challenges we ran into
- First, we planned to train on the entire Rocco dataset and on various art styles like:
classic_dot_art, braille_dot_art, stipple_art, density_art, circle_art, block_art, ascii_art, ascii_outline_art.
But the dataset size was 1.8 GB, which was too large. - Then we planned to use only the OpenMoji dataset across art styles, but even that was around 300 MB.
- So we focused only on the OpenMoji dataset and the density art style. Density art was chosen because it can later be post-processed into other art styles.
- The GPT-OSS 20B model is very large, and training it for free was difficult. On Kaggle, training time is limited to 12 hours, and we faced many OOM (out of memory) errors.
- Despite all these restrictions, we finally managed to train the model.
Accomplishments that we're proud of
- We trained a model that can generate decent ASCII art. The outputs somewhat look like the intended objects.
- We trained the model completely free, without spending a single rupee.
- We open-sourced everything so others can use and improve it.
What we learned
- How to fine-tune the GPT-OSS 20B model, which is the first reasoning-based LLM we have fine-tuned.
- How to come up with a plan B every time we faced a roadblock.
- The process gave us practical experience in handling large models and resource limits.
What's next for CharCanvas
- Train on larger datasets with more art styles.
- Improve the model so it produces clearer and better ASCII artworks.
- Explore post-processing techniques to convert density art into other ASCII art styles.
Log in or sign up for Devpost to join the conversation.