I've explored a variety of generative AI tools like Bedrock and Claude, but I hadn’t really ventured into image or video generation until recently.

Back in March this year, I attended AWS Innovate in Japan, where I came across an inspiring case study by Dentsu Digital. They showcased how they used Amazon Nova Reel to generate background videos and combine them with banner images to automatically create animated GIF banners. It seemed like a practical use case for internal tooling, so I decided to build my own version as a learning project.

Amazon Nova for Advertising & Marketing

What is Nova Reel?

Nova Reel is a generative video model built into Amazon Bedrock. It can generate looping videos up to 6 seconds long based on a text prompt, and it’s designed to support commercial use cases.

Amazon Nova Foundation Models

For example, you can provide a prompt like this:

A seamless loop of glowing neon lights forming a tunnel in a futuristic cyberpunk city, vivid pinks, blues, and purples, flying particles, digital haze, sci-fi ambiance

...and you’ll get a futuristic animation like the one below (this one already has the banner composited):

animated_banner_generated_video (1).gif

System Overview

Here's the overall flow of the tool I built:

  1. Upload a banner image with a transparent background
  2. Generate a background video using Nova Reel
  3. Extract video frames using moviepy
  4. Composite each frame with the banner image
  5. Convert the result into a GIF
  6. Upload the final GIF to S3

GitHub Repository

Gradio UI

To make the tool easy to use, I built a UI with Gradio:

  • Upload a transparent PNG
  • Enter a Nova Reel prompt
  • Option to use a manually prepared transparent image
  • Click to generate the GIF
  • View logs, the generated GIF, and the S3 URL
  • Download the final GIF

gradio UI screenshot

This UI is deployed to Hugging Face Spaces and access is restricted to my organization members.

Hugging Face Spaces

AWS Integration

The Gradio app integrates with the following AWS services:

  • S3: for storing input banners, generated videos, and final GIFs
  • Bedrock: for generating videos with Nova Reel

For security, credentials are stored as secrets in Hugging Face Spaces and accessed via environment variables in boto3.

s3 = boto3.client("s3", region_name=os.environ["AWS_REGION"])
s3_bucket = os.environ["S3_BUCKET"]

Sample Outputs

1. Gold Glow Background × Sale Banner

Aimed at evoking a sense of luxury and exclusivity for promotions.

Banner image:

Big-sale-banner-design-template-on-transparent-background-PNG.png

Prompt:

A radiant golden light background, with shimmering beams of light radiating outward from the center, glowing and elegant, soft gradients, luxurious and ethereal atmosphere, seamless and loopable

Result:

gradio_generated_banner.gif

2. Cyberpunk Neon Background × Luxury Car

Designed to reinforce a futuristic, high-end brand image.

Banner image:

luxury_car_banner_500.png

Prompt:

A seamless loop of glowing neon lights forming a tunnel in a futuristic cyberpunk city, vivid pinks, blues, and purples, flying particles, digital haze, sci-fi ambiance

Result:

animated_banner_generated_video (1).gif

3. Data Center Vibes × Penguin

Combines a high-tech look with a playful character.

Banner image:

penguin_running_box_500.png

Prompt:

A high-tech data center corridor with glowing blue server racks, animated fast-scrolling binary code and data streams flying through the aisles, motion blur, futuristic cyberpunk lighting, ultra detailed

Result:

animated_banner_generated_video.gif

Final Thoughts

It takes about 5 minutes per banner to generate, but the result feels like something that could be repurposed for LPs or social ads with minimal effort.

Nova Reel may still be under the radar compared to other generative models, but it definitely has unique potential when paired with creative prompts.

Bonus: Running Burger King

Just for fun—here’s a banner of the burger king running behind a Whopper 🍔👑

gradio_generated_banner (1).gif