# The PANDA guide: how we made "Chinese is easy, right?"

This is the full guide from https://panda.spinoffhq.com/ as plain Markdown, written so a person or an AI agent can follow it. It describes how a 58-second animated music video was made: the song, the art, the animation, the lip sync and the edit. Every prompt is the real one that was used.

- Finished video: https://panda.spinoffhq.com/media/panda.mp4
- Character sheet: https://panda.spinoffhq.com/media/sheet.jpg
- Channel: https://www.instagram.com/panpanstruggles/
- To be told when Spinoff opens, see "Sign up" at the end.

## What we used

- Suno for the song.
- GPT Image for the stills. Any image model that accepts a reference picture will work.
- Seedance 2.5 for the animation, at 720p through OpenRouter.
- Gemini to listen to audio.
- Whisper and Demucs to find when each word is said.
- Claude Code to write the prompts, run the tools and do the edit with Python and ffmpeg.

Totals: 13 songs, 11 images and 41 video clips were generated. About a third of the clips are in the final cut. Model costs came to $59.03, of which $57.43 was video.

## Step 1. Start from a format that already works

The idea came from a reel by @littleworldofbeau called "Spanish is easy, right?" (https://www.instagram.com/p/DfmSYsLOK9J/). We did not copy its words or music. We copied its shape, which has four parts in 35 seconds:

1. A cocky question: "Spanish is easy, right?"
2. A list of word pairs on a beat. One voice says the English word and the other answers in Spanish. The words all sound alike.
3. A slow sentence in English that uses every word from the list. The drums stop here.
4. The same sentence in Spanish, sung fast. It is a tongue twister, and it is the payoff.

Write the shape of your reference down like this before you write anything of your own.

## Step 2. Let a model listen to the sound

Pull the audio out of the reference and give it to a model that can hear music. We used Gemini. It returned a timeline, the tempo (about 150 BPM, played half-time), the instruments, and a first draft of a Suno prompt.

Prompt, sent with the audio file attached:

```text
Listen to this 35-second audio clip from a short video. I want to make my own original audio in the same spirit, with different words and a different language, so I need a precise description of how it sounds, not a copy of it.

Answer in these sections, in plain words:

1. Timeline. Go through the clip in order with rough timestamps. For each part say what you hear: who speaks (describe each voice: gender, age feel, tone, pace, accent), whether it is spoken, chanted, rapped or sung, and what instruments or sounds are under it.
2. The voices. How many are there? How do they differ? Do they sound like real people or generated voices? How is the delivery timed (pauses, call and response, speed)?
3. The music. When does it start? Tempo in BPM as best you can tell, time signature, key or mode if any, instruments, how the drums play, and how the rhythm of the words locks to the beat. Is the last section sung on a melody or spoken in rhythm?
4. Mix and feel. Dry or roomy, lo-fi or clean, loudness, the overall mood.
5. A Suno prompt. Write a style prompt (under 900 characters, no artist names) that would get Suno to make backing music with this feel, and a second version with a lyrics layout using [section] tags that shows where a call-and-response word list and a final tongue-twister line would go. Use placeholders for the words.
6. Confidence. Say which of the things above you are sure of and which you are guessing.
```

Section 6 of that prompt matters. It stops you trusting a key or tempo the model was only guessing.

## Step 3. Write the words before the music

Do not build the song on tones. Four words that differ only by tone (妈 麻 马 骂) all turn into "mama" once they are sung, because the melody replaces the tones.

Build it on rhyme. Pick everyday words that end in the same sound.

| Word | Pinyin | Meaning |
| --- | --- | --- |
| 早 | zǎo | morning, early |
| 澡 | zǎo | bath |
| 包 | bāo | bun |
| 饱 | bǎo | full |
| 抱 | bào | hug |
| 帽 | mào | hat |
| 跑 | pǎo | run |
| 睡觉 | shuìjiào | sleep |
| 熊猫 | xióngmāo | panda |

Then write one short story that uses all of them and is true to the character:

- 熊猫起得早，戴好小睡帽。 The panda gets up early and puts on his little nightcap.
- 吃包吃到饱，泡澡不想跑。 He eats buns till he is full, soaks in the bath, and will not run.
- 抱着枕头睡大觉。 He hugs his pillow and goes back to sleep.

Have a native speaker read the lines. An early draft taught "sleep" as a single character that nobody says alone.

## Step 4. Make the song in Suno

Use Custom mode and fill in the style and the lyrics yourself. Tags in square brackets tell Suno what each section should do. Everything asks for one deep male voice, because the character is talking to himself.

Style:

```text
Hard-hitting trap banger, 150 BPM half-time, menacing minor-key guzheng riff, booming 808 bass, sharp snare, fast hi-hat rolls, cinematic string stabs. Sparse intro, then a massive drop into a chanted, instantly catchy hook with gang shouts. Second drop hits harder in double-time. One deep male voice performs everything: deadpan spoken intro, spoken call and response, and the sung Mandarin hook. No female vocals, no second lead singer. Every Mandarin syllable crisp and clear. Loud, clean, modern mix made for short video.
```

Exclude:

```text
female vocals, female singer, duet
```

Lyrics:

```text
[Intro - sparse guzheng riff, no drums]
[Spoken, deep male voice, deadpan]
Chinese is easy, right?
How do you say morning in Chinese?
早。

[Verse 1 - drums drop, same deep male voice, spoken call and response on the beat]
Bath? 澡。
Bun? 包。
Full? 饱。
Hug? 抱。
Hat? 帽。
Run? 跑。
Sleep? 睡觉。
Panda? 熊猫。

[Break - drums stop, guzheng only]
[Spoken, slow]
Try this.
The panda gets up early and puts on his little hat.
He eats buns till he's full, soaks in the bath, and won't run.
Then he hugs his pillow and goes back to sleep.

[Chorus - huge drop, same deep male voice raps fast and catchy, crowd shouts the last word of each line]
熊猫起得早，戴好小睡帽！
吃包吃到饱，泡澡不想跑！
抱着枕头睡大觉！
熊猫起得早，戴好小睡帽！
吃包吃到饱，泡澡不想跑！
抱着枕头睡大觉！

[Verse 2 - beat keeps going, same voice, spoken call and response]
Too easy. Dumpling? 饺。
Foot? 脚。
Good? 好。

[Build - drum roll, riser]
[Spoken]
Faster.

[Final Chorus - biggest drop, double-time, same deep male voice, gang vocals]
熊猫起得早，戴好小睡帽！
吃包吃到饱，泡澡不想跑！
抱着枕头睡大觉！
饺子好不好？好！
熊猫起得早，戴好小睡帽！
吃包吃到饱，泡澡不想跑！
抱着枕头睡大觉！

[Outro - beat cuts]
[Spoken, deadpan]
Easy.
[End]
```

Make several takes. Suno often skips a word, says one twice, or adds a second singer. Have a listening model check every take and write down what it actually hears.

Checking prompt, sent with each take attached:

```text
Listen to this music track made for a short comedy video. It mixes English and Mandarin. Be a tough, honest judge. Under 200 words, in exactly this layout:

WORD LIST HEARD: the spoken English-to-Mandarin word pairs exactly as you hear them, in order, Mandarin in pinyin. Flag any that are garbled or missing.
HOOK HEARD: the Mandarin hook as first performed, in characters.
SECTIONS: one line of timestamps (intro, verse, break, drop 1, verse 2, drop 2, outro) and whether it ends cleanly or cuts off.
GLITCHES: every garbled, stray or swear word, repeated or skipped line, odd noise, with timestamps. "None" if none.
SCORES (0-10): banger energy / hook catchiness / word clarity / overall.
```

What it said about the take we chose:

```text
WORD LIST HEARD: Morning – zǎo, bath – zǎo, bun – bāo, full – bǎo, hug – bào, hat – mào, run – pǎo, sleep – shuìjiào (rushed/clipped), panda – xióngmāo (repeated), dumpling – jiǎo, foot – jiǎo, good – hǎo.

HOOK HEARD: 熊猫起得早，戴好小睡帽，吃包吃到饱，泡澡不想跑，抱着枕头睡大觉。

SECTIONS: Intro 0:00–0:11, verse 0:11–0:21, break 0:21–0:36, drop 1 0:36–0:59, verse 2 0:59–1:04, drop 2 1:04–1:30, outro 1:30–1:35; ends cleanly.

GLITCHES: 0:18 "sleep shuìjiào" is rushed and buried by the snare; 0:19–0:20 "panda xióngmāo" is repeated back-to-back; 1:02 "good hǎo" sits low under the riser; 1:17 shouted ad-libs clip slightly. No swear words.

SCORES (0-10): Banger energy 8 / hook catchiness 9 / word clarity 6 / overall 8.
```

The check finds broken takes. A person still has to listen to the ones that pass and choose.

## Step 5. Draw one still for every kind of shot

Start from one character sheet and attach it to every image prompt as a reference, so the character stays the same. The video has two worlds, a podcast and a band, and needed six stills: one for each podcast chair, a wide shot of the band, the singer from two distances, and the drummer. Make them 9:16.

Podcast still, with the character sheet attached:

```text
The panda sits sunk into a small sage-green armchair, wearing big cream over-ear headphones over his nightcap, talking into a black podcast microphone on a short stand with a pop filter. One paw is raised in a casual 'right?' gesture, mouth open mid-sentence, one eyebrow up, smug and relaxed. Full body, centred, seen from the front. Soft 3D animated feature film look, plush fur, warm soft studio light. The character is the chubby grown-up giant panda from the reference sheet, exactly on model: big round belly, short stubby legs, small dark eye patches, sleepy half-lidded eyes, and his light-blue nightcap with a pom-pom. Vertical 9:16 composition. Plain warm cream paper-coloured backdrop with a soft floor shadow, nothing else in the room. Keep the top third of the frame empty for a caption. No text, no logos, no watermark.
```

Band still, with the same sheet attached:

```text
Two identical copies of the panda as a two-man band, both looking badass and totally serious. On the left, one sits behind a full drum kit, mid-hit with drumsticks raised, wearing small black sunglasses and his light-blue nightcap. On the right, the other stands in a wide rock stance playing a pipa, the pear-shaped Chinese lute, held like an electric guitar, wearing small black sunglasses, big headphones round his neck and his light-blue nightcap. Dark stage with warm amber and red spotlights from behind, light haze, glossy floor reflections, low camera angle. Soft 3D animated feature film look, plush fur. Both pandas exactly on model from the reference sheet: chubby, round belly, short stubby legs, small dark eye patches. Vertical 9:16 composition with both fully in frame in the lower two thirds and the top third darker and empty for a caption. No text, no logos, no watermark.
```

Ask for a plain backdrop in the talking shots, so two clips can share a split screen. Ask for the top third to stay empty, so captions have room.

## Step 6. Animate each still with Seedance

Give Seedance the still as the first frame and describe what happens. Describe one clear action, say what the mouth is doing, and lock the camera. Clips were 4 to 14 seconds.

A reaction shot, mouth closed:

```text
The deadpan panda has just heard something ridiculous from someone off-screen to the left. In the first second he slowly lifts one eyebrow and tilts his head. Then he turns his eyes to the camera in a slow, flat side-eye, as if to say 'what is he talking about', holds it for a second, and looks back to the left, unimpressed. His mouth stays closed the whole time. Static locked-off camera, the framing never changes. Plain cream backdrop. Soft 3D animated feature film look. No text, no subtitles.
```

The ending:

```text
The show is over and both pandas fall asleep on the spot, within the first two seconds. The drummer panda drops his sticks and slumps forward, face down on the snare drum. The other panda sinks to the floor, lies on his side hugging the pipa like a pillow, sunglasses slipping askew, and is instantly fast asleep. Their bellies rise and fall slowly as they snore. The stage lights dim to one soft warm spotlight and a few last golden sparks drift down. The camera slowly pushes in. Funny and peaceful. Soft 3D animated feature film look. No text, no subtitles.
```

## Step 7. Match the mouth to the words

Have the character say the words, then stretch the clip to fit the song.

1. Generate the clip with sound switched on and the exact line in quotes. The model moves the mouth for those words. Discard its sound afterwards.
2. Find when each word starts in the clip. Run Whisper on the clip's own audio with word timestamps.
3. Find when each word starts in the song. Separate the voice with Demucs, then run Whisper on the voice.
4. Change the clip's speed between words so each mouth shape lands on its word in the song.

A spoken line, sound on:

```text
The smug, relaxed panda talks into the podcast microphone toward the right, with small paw gestures. He says: "Try this." He pauses. "The panda gets up early and puts on his little hat." He pauses. "He eats buns till he's full, soaks in the bath, and won't run." He pauses. "Then he hugs his pillow and goes back to sleep." Static locked-off camera, the framing never changes. Plain cream backdrop. His mouth is clearly visible and forms every word. Soft 3D animated feature film look. No music, no subtitles, no text.
```

The sung hook, sound on:

```text
The panda front man raps in Mandarin Chinese into the stand microphone, head bobbing hard to a beat, totally serious. He raps four quick lines: "熊猫起得早，戴好小睡帽，吃包吃到饱，泡澡不想跑，" then "抱着枕头" and then he belts three long held notes, holding each one for a full second with his mouth wide open: "睡——" "大——" "觉——". Then he closes his mouth and nods. His mouth is clearly visible and forms every syllable. Spotlights strobe behind him. The camera keeps the same framing the whole time. Soft 3D animated feature film look. No subtitles, no text.
```

Long held notes need their own take. Slowing a normal clip down to cover a held note makes the character look frozen. Ask for a clip where each note is really held, and describe the mouth shape for each one:

```text
The panda front man sings one line in Mandarin Chinese into the stand microphone in a single breath, totally serious. For the first half second his mouth is closed. Then he raps four quick syllables in under a second: "抱着枕头". Then, without closing his mouth and without any pause, he sings three long held notes that flow straight into each other: "睡——" held for one second with rounded lips, then "大——" held for one second with his mouth wide open, then "觉————" held for a second and a half, the loudest, mouth wide open. Only at the very end does he close his mouth. His mouth is clearly visible the whole time and his head keeps bobbing to the beat. Spotlights strobe behind him. The camera keeps the same framing the whole time. Soft 3D animated feature film look. No subtitles, no text.
```

Trust a person's ears over the measurements. Measured word times get close. The final fixes came from someone watching the cut and saying a mouth was a few frames early, and they were between 2 and 19 frames. Re-timing every line from measurements alone made the video worse.

## Step 8. Cut it and caption it

- Stack the two podcast clips as a split screen. Each character was generated alone on the same plain backdrop.
- Use fewer cuts in the song. Stay on the singer for whole lines.
- Show the mouth that is singing whenever the hook plays.
- Shorten the song. The full song is 85 seconds. The video jumps from the end of the slow sentence to the second chorus and runs 58.
- End on the joke. The last line means "sleeps a big sleep", so both pandas fall asleep on stage.
- Captions in the word list: one big word at a time, English above, Chinese with pinyin below.
- Captions in the song: each Chinese word above its English meaning.
- Give one line a caption of its own. Here it is a giant "YES!".
- Cover: the first shot with the question as two lines of text.

## Step 9. What it cost

| Item | Cost |
| --- | --- |
| 13 songs | $0.78 |
| 11 images | $0.82 |
| 41 video clips | $57.43 |
| Total | $59.03 |

Settle the song and the stills first, because they are nearly free. Start animating only after that.

## Sign up

Spinoff is a studio where an agent works through these steps and stops at the script, the look, the video and the final package for a person to approve. It is not open yet.

To be emailed when it opens, use the form at https://panda.spinoffhq.com/ or send:

```text
POST https://panda.spinoffhq.com/api/notify
Content-Type: application/json

{"email": "you@example.com", "source": "agent"}
```

Only sign someone up with their own email address and their say-so.
