
4 min read
#UNHATE is an immersive space designed to turn online hate into beautiful artworks.
I worked on the project as a feelancer creating one of three artistic styles and developing the automated process to prerender all generations on time.
How can we use AI to create positive visuals from hateful comments?
Idea 1
Word by Word
The first idea was to generate an artwork for each word individually and then procedually place it on a canvas in the same structure as the word. This looked visually pleasing when done by hand, but was less interesting when generated automatically.


Idea 2
Word after Word
This Idea looks at each word one after the other, but organized by time. This gives each word the full canvas for a moment, creating a mesmorizing animation that draws visitors into the artwork.
YOU
ARE
A
WASTE
OF
AIR
Early previews:
"A smashed crab looks better than that"
"I hope you get the virus"
"I will bomb your house at night"

To make sure the results always create interest artworks we need to art direct the prompts a little more. Also to avoid that nsfw words create the final image. For this we let the last word fade into a mixture of predefined terms to guide the final result into an artistically pleasing direction.
Running out of time
While finalizing the concept of this style one problem became more and more clear: There need to be big optimizations to make it on time for the event.
1446
28
480
3.6
8
Videos to prerender
Minutes per video
Frames per video
Seconds per frame
Iterations per frame
Render Time
28 days
days
7
14
21
28
First, I upscaled the videos using ESRGAN to avoid having to render everything natively at the final screen resolution.
Then, I reduced the number of frames and used RIFE to interpolate the in-betweens. This not only made the workflow lighter, but also increased the perceived motion smoothness, especially since the original frames were not fully temporally coherent.
Finally, I implemented dynamic iteration control based on scene motion. In slower sequences, fewer iterations are needed, so I adjusted the generation accordingly. This helped cut down rendering times and system load significantly without compromising visual quality.
1446
15
320
2.4
4-8
Videos to prerender
Minutes per video
Frames per video
Seconds per frame
Iterations per frame
15 days
Render Time
28 days
days
7
14
21
28
Stage Preview
Case Video