Inspiration

For the past 15 years, I've been doing stand-up comedy as a hobby while I work as a go to market and PLG expert for startups. I figured I would combine these two passions to contribute something amusing to the world. I've also been very intrigued by the power of AI to be creative and thought I would give it a try.

What it does

RiffRoll creates stand-up comedy from anything. Give it a topic, URL, or any text, and it will generate a stand-up comedy routine complete with laughter. We also have a unique workshopping feature that bounces ideas off of our AI just by talking to it. Refine your jokes, generate a script, and output a polished stand-up comedy routine by talking to a virtual voice clone of the RiffRoll creator. From there, you can generate a video of the comedy routine using one of 14 different AI comedians. Those videos can be automatically posted to social media channels connected to RiffRoll.

How we built it

RiffRoll was built almost entirely with bolt.new, with input from Claude, images from ChatGPT, external APIs built in Python, a backend in Supabase, video creation through Shotstack, and a custom domain from Ionos. RiffRoll relies heavily on ElevenLabs for voice functionality, utilizing both their text to speech API's and their conversational voice AI.

As we built it, we evolved the product into a faceless, social media channel manager as well. The ability to auto generate videos and automatically post them to social media was added in the later stages of the project.

Challenges we ran into

ElevenLabs has an incredible AI that can include applause, laughter, emotional cues, and more. It is their V3 system but unfortunately, it is only available through the UI and not the API. I reached out to a couple of people at ElevenLabs but came up short. So instead of using their newest model, I use their older V2 model, inserted pauses, and then use their sound effects to generate laughter to insert into the pauses. I had to build my own external API to insert the laughter. The result is fine, but when V3 is available, I will switch.

Another notable hindrance was the fact that I am recovering from shoulder surgery and only have one hand to type with. Therefore, this entire application was coded by voice. Using dictation on my Mac, I literally told Bolt what I needed, only typing when I absolutely had to. I have gotten very good at speaking clearly into a computer mic.

Accomplishments that we're proud of

I am extremely proud of the way I used ElevenLabs to clone my own voice, feed my own stand-up comedy material and style to its agent, and integrated it into the workshop feature in RiffRoll. I literally poured my soul (OK, my comedy persona) into this project, and I'm quite pleased with the results.

I am also proud of the many creative workflows that I built to generate scripts, insert laughter, create pacing, etc. There are multiple LLM calls on the backend refining and formatting the scripts. I also built video production pipelines using ShotStack and Pexels for footage.

Finally, I'm pretty proud of the name. I had it built as RiffReader, but my wife suggested RiffRoll and the rest is history. She gets credit for the cool name!

What we learned

I had a ton of fun this project. I learned a great deal about how to carefully prompt an LLM to get the output that you want. Not just from an application building perspective, but also from a joke writing perspective. Coaxing what you need out of an LLM is both art and science. In fact, this project spawned another idea that I am submitting when I set out to test LLMs humor abilities. ModelMash.site is the other one.

I also learned when to give up when I'm off on a tangent. I tried creating custom open graph images, but found that that was a bigger challenge that is best left to another time. I wanted to have play buttons for each riff when they are shared socially but settled on a generic image when the complexity got out of hand.

I also learned a ton about prompt engineering, RAG, and real-time interaction APIs. I know a little bit about programming, but I'm not an engineer by trade. Building a full stack application forces you to learn an awful lot about software, whether you started from zero or have some background like I do.

What's next for RiffRoll - AI Stand Up Comedy

What I'm most excited about are the applications that I can create with RiffRoll. I built and tested an API and the next steps are to integrate it everywhere. Imagine being able to summon an instant stand-up comedy video in response to a Slack message, a Reddit comment, or text message. It is entirely possible with the platform I have built.

I am also exploring additional video generation applications to go beyond faceless video production using stock footage, and actually create AI comedians who have their own social media following and consistent style and tone.

Finally, repeatedly tuning and tweaking my prompting and trying the latest models to try to eke out the funniest jokes I possibly can. It's really exciting to have built something I can be proud of, and that blows the minds of the people that run across it.

Built With

Share this project:

Updates

posted an update —

As I was building RiffRoll, I realized that the LLM I was using through Groq was not very funny. It kept talking about existential dread (which is probably a different problem with LLMs), and was sometimes so absurd as to not make sense.

To solve this problem, I started testing different language models to see, which was funniest. However, I don't trust myself to know what's funny and so I started feeding the results back to other models to get a peer consensus.

Well, that turned into an entirely separate project, and I ended up building and submitting another hackathon project, https://modelmash.site

In case you're wondering, xAI's Grok is the best at one-liners and dark humor, having been trained on billions of tweets, and some Deepseek models are better at observational humor. Claude 3.5 haiku seemed to be best at puns.

Of course, this warrants further study!

Log in or sign up for Devpost to join the conversation.

posted an update —

After my initial submission, I started tinkering around with other features. I am adding an API that will auto generate not only the audio, but I also added video generation.

The video generation uses Pexels stock footage and an AI generated photo of a comedian. Since I had started generating video, I took it a step further and added social media posting. I effectively turned this into a means of pumping out faceless, comedy content, and posting it on YouTube, TikTok, and Instagram. I am still waiting for final approval from all of these platforms, but the functionality is there and tested.

Log in or sign up for Devpost to join the conversation.

Submission history