Kling AI ยท time freeze ยท native audio

The chicken came out alive from the oven and time froze

A ~38-second short made only with a Kling AI subscription through the official CLI: your real face in the first frame, 4 chained clips, the freeze effect and assembly with sound.

Congelou banner: a scared man and a frozen roasted chicken in mid-air
The result

Watch (with sound)

Chicken in the oven โ†’ coffee โ†’ opens the oven โ†’ the chicken comes out alive โ†’ everything freezes and the camera glides through the scene โ†’ time resumes and the mess arrives.

Version 1 ยท the original

Version 2 ยท total freeze + stops

The chicken bursts out the instant the door opens. During the freeze everything stops, you included, and only the camera moves. When time resumes, the motion moves a little and stops, moves and stops again โ€” 4 stops, each one shorter, with the sound cutting out at every stop โ€” and only then carries on at natural speed. No slow motion: real frames held in ffmpeg (montar_paradas.sh).

Version 3 ยท the cat in the microwave (4K)

You are holding the plate and open the microwave to put the food in, and a live, frightened cat leaps out. In the scare, the plate slips. Two frozen moments, in 4K with no blur: the cat in mid-air with the food flying, and the plate shattering on the floor with shards and rice suspended. Then you knock over the whole kitchen. Each freeze is a sharp 4K still (nitido.sh) with the camera move done in ffmpeg (freeze.sh), so nothing in it moves or blurs. Prompts k4, N1, N3, F2, N5.

What it is

A short, repeatable AI video pipeline

It's not an app, it's a tested recipe: 3 shell scripts + text prompts. Each piece can be swapped to tell a different story.

๐Ÿ™‚ You are the protagonist

The first frame is generated from a real photo of your face (Nano Banana Pro, inside Kling itself). The rest of the film inherits that face.

๐Ÿ”— Continuity through chaining

Each clip starts from the last frame of the previous one. Same character, same kitchen, same light, with no "jump" between scenes.

๐Ÿ”Š Sound included

Kling 3.0 with enable_audio: doors, footsteps, coffee, clucking and the silence of the freeze all come out along with the image. ffmpeg just joins and normalizes.

How it works

Keyframe โ†’ chained clips โ†’ assembly

All through your own Kling AI account (the kling CLI). No Magnific, RunComfy or other reseller: it's your subscription, your credits.

๐Ÿ“ธ photo of the faceโ†’ ๐Ÿ–ผ๏ธ keyframe k1โ†’ ๐ŸŽฌ clip Aโ†’ last frameโ†’ ๐ŸŽฌ clip Bโ†’ ๐ŸŽฌ clip C (freeze)โ†’ ๐ŸŽฌ clip Dโ†’ โœ‚๏ธ ffmpegโ†’ ๐ŸŽž๏ธ final.mp4
ClipWhat happensDurationKling credits
k1Still: you putting the chicken in the oven2k image20
APushes the pan in, closes the oven, turns the knob5s60
BPours coffee, takes a sip, goes back and grabs the door8s96
CChicken jumps alive, time freezes, camera orbits, time resumes15s180
DThe mess in normal time: flour, pans, a slip, an escape through the window10s120

Measured on the account (Pro plan): Kling 3.0 at 1080p with audio costs 12 credits/second. The whole film cost around 476 credits.

Prerequisites

What needs to be on the machine

Three things: the official Kling CLI logged into your account, ffmpeg and Python 3.

Kling CLI

Official CLI, a client of Kling's MCP. Login via browser (OAuth).

npm i -g @klingai/cli-global
kling login
kling account   # plan + credits

ffmpeg / ffprobe

For extracting the last frame, generating contact sheets and assembling the final video.

sudo apt install ffmpeg

Python 3 + curl

Used by the scripts to read Kling's JSON and download the files.

python3 --version
curl --version
User guide ยท step by step

How this video was made (and how you redo it)

The commands below are exactly the ones that generated the video. Run them inside the repo folder.

1

Check your account and models

who_am_i lists the models and parameters your subscription unlocks. Watch the defaults: Kling 3.0 ships with 4k, audio off and multi-shot on, and the scripts override all three.

kling who_am_i -q > who_am_i.json
kling account
2

Initial keyframe with your face

A photo of you + the scene prompt. Out comes a 2k 16:9 still that becomes the film's first frame.

./keyframe.sh ref/nei.jpg prompts/k1.txt   # โ†’ keyframes/k1.png
3

Generate the clips in a chain

Each clip.sh generates the clip, downloads it, measures the audio, makes a contact sheet and saves the last frame, which is the start of the next one.

./clip.sh A keyframes/k1.png      5    # chicken in the oven
./clip.sh B keyframes/A_last.png  8    # coffee and back to the oven
./clip.sh C keyframes/B_last.png  15   # chicken alive + TIME FREEZE
./clip.sh D keyframes/C_last.png  10   # the mess
4

Look at each clip before moving on

Open clips/X_sheet.png (8 frames across the clip). If something broke, redo only that clip: the following ones start from its last frame.

xdg-open clips/C_sheet.png
5

Assemble the film

Standardizes to 1920ร—1080/24fps, trims the repeated frame at each splice, joins with the native audio and normalizes to -14 LUFS.

./montar.sh A B C D   # โ†’ congelou_final.mp4
Prompts

The prompts used

They live in prompts/. The freeze one (C) was adapted from the freeze_effect_template_en.md template, which is a skeleton of scene, freeze, frozen camera, resume and continuity.

k1 ยท keyframe (image_to_image, gemini-3-pro-image)
Photorealistic cinematic film still, 35mm, natural warm daylight. The man from image 1 (same face, bald head with short white hair on the sides, white stubble beard, black rectangular glasses, plain dark green t-shirt) stands in a cozy rustic home kitchen with exposed brick walls and dark wooden ceiling beams. He is bending slightly and sliding a metal roasting pan with a whole raw seasoned chicken (pale skin, herbs, garlic, lemon halves) into an open built-in stainless steel oven at waist height. [...]
C ยท the freeze (15s)
ACTION: The man pulls the oven door open, holding his white coffee mug in his other hand. Hot steam pours out. Suddenly the whole plucked, half-roasted golden chicken jumps up ALIVE from the roasting pan and leaps out of the oven straight toward his face [...] droplets of hot grease, sprigs of rosemary, a lemon slice and a garlic clove fly out of the pan. [...]

TIME FREEZE: At the peak of the chicken's leap, time stops completely. The chicken hangs motionless in mid-air [...] Nothing moves except the camera.

FROZEN CAMERA: The camera slowly glides around the frozen scene [...]

RESUME: Time resumes instantly at normal speed with no effect. The chicken crashes onto the kitchen counter [...]

Sound: [...] during the freeze total silence with only a low high-pitched ringing tone [...]

Full prompts: github.com/inematds/congelou/prompts.

๐ŸงŠ The golden rule of the freeze

Every object suspended in the air needs a cause. The rosemary flies because the chicken jumped off the pan; the coffee flies because the mug tipped over from the scare.

๐ŸŽฅ The camera moves, the world doesn't

Ask for "nothing moves except the camera" and describe the camera's path between the suspended objects.

๐Ÿ”‡ The sound freezes too

Describe the audio of the freeze ("total silence with a low ringing tone"). The native audio follows the change.

Examples

The four clips, frame by frame

Real contact sheets generated by fetch.sh.

Clip A: the chicken goes into the oven
A ยท the chicken goes into the oven and you turn the knob
Clip B: coffee and back to the oven
B ยท coffee, a sip, and the hand on the oven door
Clip C: chicken alive, frozen in the air
C ยท the chicken jumps alive and time freezes
Clip D: the mess in the kitchen
D ยท time resumes and the mess arrives
Repeat with another subject

Change the story, keep the recipe

The pipeline knows nothing about chicken. To make another video, you rewrite the prompts and run the same three scripts.

1

Write the story in 3 to 5 beats with cause and effect

Setup โ†’ preparation โ†’ the impossible (freeze) โ†’ consequence. Each beat becomes a 5 to 15s clip. Example: "I wash the car โ†’ I go get the hose โ†’ the car drives off on its own โ†’ freezes mid-air over the puddle โ†’ lands and splashes mud on me".

2

Create a new folder and copy the scripts

mkdir ~/projetos/meu-freeze && cd ~/projetos/meu-freeze
cp ~/projetos/congelou/{keyframe,clip,fetch,montar}.sh .
mkdir prompts ref && cp minha-foto.jpg ref/
3

Write the prompts

prompts/k1.txt is the first frame, and A.txt, B.txtโ€ฆ are the clips. For the freeze clip, copy the skeleton from freeze_effect_template_en.md and change only the content. Always include a Sound: line at the end.

4

Run the chain and assemble

./keyframe.sh ref/minha-foto.jpg prompts/k1.txt
./clip.sh A keyframes/k1.png 5
./clip.sh B keyframes/A_last.png 8
./clip.sh C keyframes/B_last.png 15
OUT=meu_filme.mp4 ./montar.sh A B C
5

Asking Claude Code

You can ask in natural language. Say "use my klingai subscription" so it uses the kling CLI, and pass the story and the freeze template file.

# example request
"use klingai directly and create this story: ... freeze it like this prompt
 ~/projetos/congelou/prompts/freeze_effect_template_en.md; join it with sound"
Lessons

What we learned along the way

Details that save credits next time.

Defaults
Override resolution, audio and multi-shotKling 3.0 ships with 4k (more expensive), audio off and multi-shot on (which cuts the scene). For the freeze, use 1080p, enable_audio true and prefer_multi_shots false.
15s
15 seconds in a single shot worksClip C ran 15s without multi-shot and held the freeze while the camera orbited.
URLs
Download right awayKling's result URLs expire in 24h. fetch.sh downloads as soon as the clip finishes.
Cover
Use a real frameThe best cover is a frame from the freeze itself. A generic image generator tends to be too literal.