How I Made an AI Short Film with Consistent Characters (Every Prompt)
The full workflow behind my post-apocalyptic AI short film about a girl and her dog: a film plan written with Claude, character sheets made with Seedream 5.0 Pro, and nine scenes generated with Seedance 2.5 on the RunningHub canvas. Every prompt is on this page, ready to copy.
What you'll learn
Learning outcomes
ai-short-film workflow implementation & automation
ai-filmmaking workflow implementation & automation
runninghub workflow implementation & automation
seedance workflow implementation & automation
seedream workflow implementation & automation
claude workflow implementation & automation
character-consistency workflow implementation & automation
This short film has no camera, no actors and no set. It's a girl and her German Shepherd in a zombie world, and the same two characters show up in every shot. I made the whole thing on a laptop.
The video above shows the full build. This page has every prompt I used, so you can copy them and make your own version. There are three prompts and three steps: plan the film, build the characters, generate the scenes.
What you need
- Claude to write the film plan, the character sheet prompts and the scene prompts. ChatGPT or Gemini work too.
- RunningHub for everything visual. I used its rhTV AI canvas, Seedream 5.0 Pro for the images and Seedance 2.5 for the video clips. All the models are in one place, so you never switch tools.
- A selfie if you want the girl to have your face, plus a few reference images from Pinterest.
The RunningHub link is my invite link. Signing up through it gives you 1,000 free RH Coins to try it.
Step 1: Write the film plan with Claude
Start with a small story idea. Mine was a zombie short that was already doing well on Instagram. Paste the idea into Claude and it turns it into a full film plan: the timeline, the characters, the locations and the props.
We're making a short, sad reel. Dramatic, cinematic, hyper-realistic. The story: a girl has to shoot her own dog because he's infected with a virus. At the last second, a familiar sound stops her, and memories of their life together flood back. But the dog isn't who he was anymore.
First block is the present. Close-up of the girl with a rifle, handheld, a little shaky. She's trembling, sweaty, scrapes on her face. Hands shaking. Eyes watering, but she holds it in and doesn't cry. Heavy breathing through her nose. In the background, the low, angry growl of an infected one. She flicks the safety off, clicks. Closes her eyes, ready to shoot. And right then, a hoarse whimper. A tear falls, she opens her eyes to the familiar sound, and sees her German Shepherd. He's sitting still, but he's almost turned into a zombie.
Then the transition: a match cut from this exact pose into the past. Same dog, same pose, but healthy, in a different location, with a tennis ball in his mouth.
The plan gives you two versions of each character. The girl is clean in the past and wounded in the present. The dog is healthy in the past and infected in the present. Each timeline also gets its own location.
That present/past split is what makes the film hit. Every flashback reminds you what the dog used to be.
Step 2: Write the character sheet prompts
Go to Pinterest and search for post-apocalyptic references. I picked four: one for the girl's outfit, one for the dog and one for each location. Upload them to Claude with your selfie and send this:
I'm uploading a selfie of me, plus reference pics for the girl's outfit, the dog, and 2 locations.
Write me character sheet prompts. The girl's face must be identical to my selfie, so use the selfie only for the face and take the outfit and style from the girl reference.
Girl:
About 18 years old, 45kg, 165cm tall
- Clean version for flashback scenes: no wounds, fresh face, neat clothes
- Post-apocalyptic version: wounds, scratches, dirt and blood on her face, messy hair, worn clothes
Dog (German Shepherd from the reference):
A large male German Shepherd, five years old, 35 kilos, 65 centimeters at the withers, with a tennis ball in his mouth
- Normal healthy version
- Zombified version: infected, milky white eyes, matted fur, wounds
Locations:
- The abandoned supermarket from the reference
- A similar abandoned school basketball court for the final scene, where the girl and the dog play with a tennis ball
Keep the girl and the dog consistent between both versions. Each prompt in a separate code block, hyperrealistic.
This is where most people go wrong. They think a character prompt is just "a girl" and "a dog". Look at what's in this one: age, weight, height, the dog's weight and height at the withers. Claude carries those details into every prompt it writes, like a slim 18-year-old at around 45 kg. Physical details like these are what make the result look real instead of generic.
Using the selfie only for the face and the reference only for the outfit keeps the face consistent while the clothes change between the two versions.
Step 3: Generate the characters and locations in RunningHub
Sign up at runninghub.ai and open the rhTV AI canvas. Everything from here on happens on this one canvas.
- Paste a reference image onto the canvas, for example the girl.
- Drag from it and choose Image to create an image node connected to the reference.
- Paste the matching character sheet prompt from Claude.
- Select Seedream 5.0 Pro. It's the best model I've found for realistic faces.
- Set the aspect ratio to 16:9 and the resolution to 1K. You can upscale to 2K later.
- Generate, then repeat for every asset.
By the end you should have six assets on the canvas:
- Clean girl (the flashbacks)
- Post-apocalyptic girl, wounded and holding the rifle (the present)
- Healthy dog
- Zombified dog
- Abandoned supermarket (the present)
- Abandoned school basketball court (the past)
Optional: new angles with the RunningHub agent
The canvas has a built-in AI agent. Select an asset and ask for something like a new angle of the dog. It asks a couple of questions (I picked "new poses and angles"), writes the prompt itself and adds a ready-to-run node to the canvas. It worked out which dog was the healthy one without me telling it, and the result was the same dog.
Step 4: Write the scene prompts with Claude
Go back to Claude. Attach every asset you generated (both girls, both dogs and both locations) and send your rough script. Claude maps each scene to the right assets and writes a detailed video prompt for each one.
I'm making a short AI film in RunningHub with Seedance 2.5. I'm uploading my character sheets (clean girl, post-apocalyptic girl, healthy dog, zombified dog) and 2 locations (abandoned supermarket and school basketball court).
Here's my script. Scenes 1–4 and 6 happen in the present (supermarket, wounded girl, zombie dog). Scenes 5, 7, 8 and 9 are the past (basketball court, clean girl, healthy dog).
Write me a separate video prompt for each scene and tell me which assets to attach to each one. Keep the girl and the dog consistent across all scenes. Each prompt in a separate code block.
Scene 1
A girl holds a rifle, trembling, eyes watering, breathing heavily through her nose, trying to calm down, hands shaking. Natural, realistic facial expressions. In the background, a dog growls almost silently. She prepares to close her eyes, lowers her head, and at that moment the dog whimpers. Hearing it, she can't hold back a tear and lowers the rifle, but doesn't sob. She just looks at him, lowers her head, and shakes it. Camera stays on the girl the whole time. Handheld, cinematic lighting, ultra-realistic.
Scene 2
Over-the-shoulder shot from behind the girl. The dog sits looking at her, whimpering and growling; the inner zombie fighting the real dog. Static framing the dog only, no movement, no zoom, handheld.
Scene 3
Medium shot. The girl squats, slowly sets the rifle on the ground, wipes her tears, and says to the dog, "Wanna play?" She takes out a tennis ball and rolls it to him. Camera lowers with her, handheld.
Scene 4
Close-up tracking the ball as it rolls and stops at the dog's feet. MATCH CUT to the past: the dog immediately grabs the ball in his mouth and plays with it. Handheld, shaky camera.
Scene 5
Close-up of the girl laughing, playing with and tickling the dog as he jumps on her. Start on her close-up, then a wide shot of them playing.
Scene 6
Back to the present, again starting with the ball. It stops at the dog's paw as his blood drips beside it. The camera tilts up to the dog's face. He stares straight at his owner, growling, ignoring the ball.
Scene 7
Back to the past. Wide shot from above of the whole basketball court: cracked asphalt, faded lines, rusted hoop. The girl stands small at one end and throws the ball low across the court. The dog runs after it with real physical weight, grabs it and runs back to her. One continuous take, no cuts, sunny warm light.
Scene 8
Wide shot of the two of them playing on the court. She tickles him, he bounces on his front paws, spins, then jumps up on her and knocks her over onto the asphalt. She lies there laughing while he licks her face. Pure joy. Handheld, natural movement.
Scene 9
The final image. Extreme wide shot from far across the court. The girl and the dog sit together on the roof of a rusted chain-link fence, toy in the frame. She feeds him from her hand. Calm, quiet, golden-hour light. Static camera, no movement, no zoom. The film breathes here.
Splitting the scenes by timeline in the prompt is what keeps the continuity right. Claude knows the wounded girl and the infected dog never appear on the basketball court, and the clean versions never appear in the supermarket.
| Scenes | Timeline | Attach these assets |
|---|---|---|
| 1, 2, 3, 4, 6 | Present | Abandoned supermarket, post-apocalyptic girl, zombified dog |
| 5, 7, 8, 9 | Past | Basketball court, clean girl, healthy dog |
Scene 4 is the match cut. The ball stops at the infected dog's feet, and the healthy dog picks it up in the past.
Step 5: Generate the video scenes
Back on the canvas, click + and choose Video. For each scene:
- Connect the assets Claude told you to attach. For scene 1, that's the supermarket and the post-apocalyptic girl.
- Paste that scene's prompt.
- Choose Seedance 2.5 Global.
- Set the duration to 8 seconds, the quality to 480p and the aspect ratio to 16:9.
- Use draft mode with the bitrate set to high.
- Generate.
Each clip cost me about $1 at these settings, so nine scenes come to roughly $9. The 480p drafts still look good. Generate every scene first, then upscale them all together at the end, so you only pay for higher resolution on the clips you keep.
Step 6: Put the film together
Once all nine clips are generated, upscale them and put them in order from scene 1 to scene 9. The final shot, the girl and the dog on the fence at golden hour, is a static wide. Let it play out and don't cut away early.
Why it feels emotional
- Small physical details. Breathing through her nose, hands shaking, a tear that falls without a sob. Real people hold it in, and the prompts ask for exactly that.
- Two timelines. Cutting between the infected dog and the healthy one makes the viewer feel the loss.
- The match cut. Same dog, same pose, different life. It's the moment the whole film turns on.
- Consistency. Detailed character sheets and the same assets on every scene make it read as one film, not nine random clips.
Resources & Downloads
Ready to build this for your business?
I help ambitious founders and businesses build production-ready automation systems. Let's discuss your specific needs.
Book a Discovery CallRelated Tutorials

Build an AI Second Brain in Telegram with n8n and Supabase
A complete walkthrough of the AI Second Brain I use daily — a Telegram bot that captures anything I send it, searches my memories semantically instead of by keyword, and resurfaces important items using spaced repetition. Two n8n workflows, one Supabase table, and around $2-5 a month in OpenAI credits.

FREE Claude Code + Claude Desktop Setup With Official Anthropic Models (2026 Guide)
Learn how to set up Claude Code and Claude Desktop for free using official Anthropic models including Claude Fable 5, Sonnet 5, Opus 4.8, and Sonnet 4.6. Full step-by-step tutorial with gateway configuration, API keys, and VS Code integration.

The AI Video Trend Blowing Up Instagram - How to Copy It and Get Brand Deals
Faceless Instagram pages are going viral with AI generated videos and landing brand deals — and most people have no idea how it's done. In this tutorial I break down the exact workflow using Higgsfield, GPT Image 2, and Seedance 2.0 to create these videos from scratch and show you how to turn them into a monetized Instagram page.