Skip to main content

How I Turned Die Hard into a Romance Movie: A Valentine's Day Story

Love is in the air, and like many couples, my girlfriend and I have our Valentine's Day traditions. Hers involves cuddling up to watch a romantic movie, while I secretly wish we were watching Bruce Willis jump off a building. This year, I decided to bridge this divide with a creative solution: I built an AI-powered app that can transform any movie into a romantic masterpiece.


The Valentine's Day Dilemma

We've all been there. It's February 14th, and you're staring at a choice between "The Notebook" and literally anything else. While I appreciate a good love story, my heart belongs to action sequences, plot twists, and the occasional explosion. But how do you convince your romantic partner that "Die Hard" is actually a touching love story about a man trying to reunite with his wife on Christmas Eve?

Enter the Romantic Movie Night Generator

That's where my new web application comes in. It uses Azure OpenAI to analyze any movie poster and description, then transforms them into a romantic alternative that would make Nicholas Sparks proud. Here's how it works:

  • Upload your favorite non-romantic movie poster
  • Add the movie title and description

 

  • Watch as AI transforms it into a swooning love story

 

Azure OpenAI configuration

The application requires Azure OpenAI API access. You need to specify the endpoint name and the API key:


For the text generation part, you can specify the model you want. I’m using gpt-4-o as an example. For the image generation, I’m expecting that Dall-E 3 is available.

More information on how to setup Azure OpenAI and deploy the required models can be found here: How-to: Create and deploy an Azure OpenAI Service resource - Azure OpenAI | Microsoft Learn

The Valentine's Day Compromise

This project started as a fun way to bridge the movie preference gap in my relationship, but it's become something more. It's a reminder that with a little creativity (and some help from AI), we can find common ground in our entertainment choices. After all, isn't every movie a love story if you look at it the right way?

  • "Jaws" is about a man's passionate dedication to ocean conservation
  • "The Shining" explores the complexities of marriage in isolation
  • "Fight Club" is actually about self-love (okay, maybe that's stretching it)

Try It Yourself

Whether you're trying to convince your partner to watch "Mad Max: Fury Road" on Valentine's Day, or you just want to see what "The Godfather" would look like as a romantic comedy, give the Romantic Movie Night Generator a try here: Romantic Movie Night Generator . Who knows? You might discover that the action-packed thriller you love is actually the perfect Valentine's Day movie in disguise.

Important: To guarantee the security, the application is not storing or logging your Azure OpenAI key in any way.

Of course, feel free to run the application locally by downloading the code from my Github repo:

wullemsb/happyvalentine: What is better than having a romantic movie night at Valentines Day?

Happy Valentine's Day to all the couples out there navigating their own movie-choice adventures!

P.S. My girlfriend wants me to clarify that we're still watching "The Notebook" next year.

More information

I was explaining what I was building yesterday to my colleague Jan Van Wassenhove and he crafted his own version in one short(long?) night: Loveflix.

Certainly check out his implementation using OpenAI: janvanwassenhove/LoveFlix: Because even horror movies get a happily ever after... and everything is better with a romantic twist!





Popular posts from this blog

Podman– Command execution failed with exit code 125

After updating WSL on one of the developer machines, Podman failed to work. When we took a look through Podman Desktop, we noticed that Podman had stopped running and returned the following error message: Error: Command execution failed with exit code 125 Here are the steps we tried to fix the issue: We started by running podman info to get some extra details on what could be wrong: >podman info OS: windows/amd64 provider: wsl version: 5.3.1 Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM Error: unable to connect to Podman socket: failed to connect: dial tcp 127.0.0.1:2655: connectex: No connection could be made because the target machine actively refused it. That makes sense as the podman VM was not running. Let’s check the VM: >podman machine list NAME         ...

Cache stampede: when our cache turned against us

While investigating some performance issues, we ran into an ASP.NET Core API that cached a fairly expensive aggregation query for 60 seconds. Under normal load, that was fine: one request rebuilds the cache, everyone else reads from it. Under peak load, dozens of requests would arrive in that same expiry window, all see a cache miss, and all fire the same expensive query in parallel. The database didn't like that. That was the moment when our caching layer stopped helping and started hurting. A burst of requests comes in at the same time, all miss the cache, and all go hammer the database or the downstream API at once. That's a cache stampede . The cache was supposed to protect our backend, and for a few hundred milliseconds it did the opposite. Why this happens IMemoryCache.GetOrCreate (and its async sibling) looks like it protects you, but it doesn't add any locking on its own. Look at the naive version: public async Task<Report> GetReportAsync(string key) ...

Azure DevOps/ GitHub emoji

I’m really bad at remembering emoji’s. So here is cheat sheet with all emoji’s that can be used in tools that support the github emoji markdown markup: All credits go to rcaviers who created this list.