My first attempt at an AI rain video looked like a dusty windshield, not a storm. My second looked like static. It took a dozen failed prompts before I noticed I was describing "rain" as one thing, when it's actually four things stacked on top of each other.
This post covers those four ingredients, a script that combines them so you're not rewriting the same prompt from scratch, where I generate the actual clip, and a color-grade pass that sells the mood after generation.
How to make rain videos with AI: rain is four ingredients, not one word
Typing "rainy scene" and hoping gives the model too little to work with. What actually controls how a rain shot reads:
- Intensity. Fine mist, steady rain, or a heavy streaking downpour are three different shots, not degrees of the same one.
- Light source. Neon reflections, a warm streetlamp, or flat overcast light change the whole mood before a single drop matters.
- Surface. Wet asphalt, a rain-streaked window, and rippling puddles reflect and move completely differently.
- Camera move. A locked-off shot reads as observational. A push-in or pan reads as narrative.
Mixing these four deliberately is the difference between a convincing storm and a blurry mess. Guessing at all four in your head every time is also how you end up rewriting the same prompt with small variations and losing track of what you already tried.
Rain shots show up more than you'd expect: mood establishing shots for a story, atmosphere for a game trailer, even an AI product video generator adding weather to a lifestyle shot of outdoor gear. The four ingredients are the same regardless of why you're reaching for rain.
Build the prompt from the four ingredients
I stopped writing rain prompts from scratch and started assembling them:
# rain_prompt.py - build a rain-scene prompt from four ingredients
# usage: python rain_prompt.py --intensity heavy --light neon --surface asphalt --move static
import argparse
INTENSITY = {
"light": "light rain, fine mist",
"steady": "steady rain, visible droplets",
"heavy": "heavy rain, streaking downpour",
}
LIGHT = {
"neon": "neon signs reflecting in wet surfaces",
"streetlamp": "warm streetlamp glow through the rain",
"overcast": "flat grey overcast light, no direct source",
}
SURFACE = {
"asphalt": "wet asphalt with rippling reflections",
"glass": "rain streaking down a glass window",
"puddles": "puddles rippling with each drop",
}
MOVE = {
"static": "locked-off static shot",
"push_in": "slow push-in",
"pan": "slow pan across the scene",
}
def build(intensity, light, surface, move):
parts = [INTENSITY[intensity], LIGHT[light], SURFACE[surface], MOVE[move]]
return ", ".join(parts) + ", cinematic color grade"
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--intensity", choices=INTENSITY, default="steady")
p.add_argument("--light", choices=LIGHT, default="streetlamp")
p.add_argument("--surface", choices=SURFACE, default="asphalt")
p.add_argument("--move", choices=MOVE, default="static")
args = p.parse_args()
print(build(args.intensity, args.light, args.surface, args.move))
python rain_prompt.py --intensity heavy --light neon --surface asphalt --move static gives a full prompt in one line, and changing one flag changes exactly one ingredient. That's the whole point: when a shot doesn't work, you know which of the four to blame.
Where I generate the clip: AI video in one workspace
For the generating itself, I used VOKOO, a multi-model AI creation platform built around video. Its tagline is "Create more. Switch less," and for rain specifically, being able to try the same four-ingredient prompt on more than one model mattered, since some models handle streaking motion and reflections better than others. I dropped in a prompt from the script above and had a clip to review before I finished my coffee.
Prompt straight to clip
The AI video generator turns a prompt, or a prompt plus an image, into a video. Make a video before the idea gets cold. This is the image to video AI case when you start from a still frame of a location instead of text alone, and it's also the fastest way to animate a photo of a place you already have a shot of.
Fix the source if you're starting from a photo
A soft or oddly lit photo makes rain look fake no matter how good the prompt is. The AI photo editor and image upscaler let me edit, refine, and make small or blurry images crisp and usable without leaving the flow.
Switch models when reflections look wrong
The AI agent lets me try different models without rebuilding my workflow. Reflective surfaces are where models differ the most, so this is the ingredient combination worth testing across more than one model before you commit.
Check the cost before testing four intensities
I can pick quality and generation specs per stage and see the estimated credit cost before I submit. Testing intensity alone across four generations adds up fast; seeing the cost up front keeps that experiment affordable. One place to generate, edit, enhance, and animate.
Sell the mood after generation with one color pass
A good rain prompt still benefits from a color grade that pushes cooler and slightly desaturated, the way actual overcast light reads on camera:
ffmpeg -i clip.mp4 -vf "eq=saturation=0.85:contrast=1.05:brightness=-0.03,colorbalance=bs=0.08:bm=0.08:bh=0.05,vignette=PI/4" -c:a copy clip_graded.mp4
This pushes blue into the shadows, midtones, and highlights, drops saturation slightly, and adds a light vignette. It won't fix a shot with the wrong ingredients, but it's a cheap, repeatable finishing pass on a shot that already works.
Keeping the four-ingredient tests affordable
Testing all four ingredients against each other would be 81 combinations. Don't. Lock three and vary one at a time, starting with intensity and light source, since those two change the mood the most. Draft at a lower spec while you're narrowing it down, and only render the final combination at full quality.
If you'd like an LLM to suggest ingredient combinations for a specific mood you're describing, RouteAI provides a cost-effective, OpenAI-compatible API gateway with multiple models, so setup stays simple.
Try this next
How to make rain videos with AI comes down to naming the four things that make rain read as rain, instead of hoping one word does the work. VOKOO handled the generating; the script and the grade did the rest. Stop managing tools. Start making things.
Here's a short test you can run today:
- Generate the default prompt from
rain_prompt.pywith no flags. - Change only
--intensityand regenerate twice more. - Apply the color grade to your favorite of the three.
- Check the estimated cost before you test the other three ingredients.
If you want an easy AI video generator that keeps simple AI video creation simple and still leaves room to explore, try VOKOO at https://vokoo.ai.

Top comments (0)