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.
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):
System Overview
Here's the overall flow of the tool I built:
- Upload a banner image with a transparent background
- Generate a background video using Nova Reel
- Extract video frames using
moviepy
- Composite each frame with the banner image
- Convert the result into a GIF
- Upload the final GIF to S3
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
This UI is deployed to Hugging Face Spaces and access is restricted to my organization members.
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:
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:
2. Cyberpunk Neon Background × Luxury Car
Designed to reinforce a futuristic, high-end brand image.
Banner image:
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:
3. Data Center Vibes × Penguin
Combines a high-tech look with a playful character.
Banner image:
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:
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 🍔👑