KitCut 將 AI 影片工作室由 Azure 搬到二手遊戲電腦,8 分鐘影片渲染快 4.6 倍
Hacker house hardware: our vibe-coded AI video startup runs on a used gaming PC, a borrowed cable and a TV
KitCut 將 AI 影片工作室由 Azure VM 搬到二手遊戲電腦後,同一段 8 分鐘、1080p、60 fps 影片的渲染時間由 17 分 42 秒縮至 3 分 49 秒(4.6 倍)。
The photo at the top is night one: a TV on the living-room floor showing the Ubuntu installer, and the little PC with the blue glow that now renders every film on kitcut.ai.
TL;DR: our AI video studio went from an overheating laptop, to a slow $250/month Azure VM, to a second-hand gaming PC on my living-room floor. Same 8-minute film: 17 min 42 s in the cloud, 3 min 49 s at home. The install was a one-shot gamble with no USB stick, no monitor and a borrowed network cable.
What we render
KitCut turns an idea into a finished animated film. Claude writes the film as code (every drawing, camera move, caption and music cue), and the studio turns that code into an MP4:
idea -> Claude writes film.js -> headless Chromium draws 28,800 frames (8 min @ 60 fps)
-> TTS narration + word timing -> score + mix -> ffmpeg -> MP4
The whole product is vibe-coded: built by talking to Claude Code, commit after commit. It turns out rendering eats a lot of hardware.
v0: the laptop that couldn't take the heat
The very first kitcut.ai rendered on my own laptop, a Dell XPS 15 with an i9 and an NVIDIA RTX card. On paper, plenty of machine.
In practice it is an ultrabook. Put a headless browser, a TTS pipeline and ffmpeg on it at full tilt, and it went from "powerful" to "space heater" almost immediately, then throttled. Also, it is the laptop I work on.
v1: Azure, no GPU, $250 a month
So we moved to the cloud: an Azure VM with 4 vCPUs, 16 GB of RAM and no video card, for about $250 a month all in.
It was very, very slow: about 17 frames a second. Fine for a 30-second film; for an 8-minute one, the customer goes and makes coffee. Twice. Then, as demand grew, one film's narration step ballooned to 12.5 GB on that 16 GB box, the VM ran out of memory, and the studio went down.
The cloud fix was a bigger VM at double the price, forever. I went shopping instead.
v2: a used gaming PC
| Azure VM | The used gaming PC | |
|---|---|---|
| CPU | 4 vCPUs | Intel Core i7-12700, 20 threads |
| RAM | 16 GB | 32 GB |
| GPU | none | NVIDIA RTX 3070, 8 GB |
| Disk | 512 GB HDD | 1 TB NVMe |
| Cost | ~$250/month | paid once |
Two small problems:
- No monitor. I own laptops. Luckily we had just bought a TV, the first one I have owned in about 20 years. Into the living room it went, on the floor.
- No network cable. A friend gave me one. It is still the only cable between our production studio and the internet.
The one-shot Linux install
The PC came with a second-hand Windows I did not trust. Plan: wipe it, install Ubuntu Server.
The catch: no USB stick in the house. If the install failed after Windows was gone, there would be nothing left to boot an installer from. One shot.
I did not do this alone, or honestly at all. Claude Code, running on my laptop, SSH'd into the box and did the whole thing while I held the TV remote. The trick it used, from inside the old Windows:
- Shrink
C:and make an 8 GB FAT32 partition. - Copy the Ubuntu Server 24.04 ISO's files onto it, plus an
autoinstall.yaml. - Edit the first
linuxline inboot/grub/grub.cfg:
linux /casper/vmlinuz autoinstall toram subiquity-storage-version=2 ---
- Add a UEFI entry for the partition's
\EFI\boot\bootx64.efi(bcdedit /copy {bootmgr}, thenbootsequenceto boot it once). Reboot.
That is the GRUB menu on the TV. Three things made the one shot survivable:
-
toramruns the installer from RAM, so it does not care what happens to the disk. -
subiquity-storage-version=2: without it the installer sees a disk full of partitions, says "no gap found large enough", and your night is over. - An SSH key in the autoinstall's
early-commands, so even a failed install can be entered over the network instead of becoming a brick.
It worked first time. The Windows partitions were wiped afterwards, from Linux.
A server with no address
A box at home has no public IP, and I was never going to do port forwarding and certificates by hand. Then I discovered Cloudflare Tunnel: the machine dials out to Cloudflare, and kitcut.ai's traffic comes back down that connection. No open ports, no static IP, and SSH from anywhere. Claude Code set it up, along with the rest:
- Releases run as their own systemd instances: the new one starts, the old one finishes its films, then exits.
- Every film is mirrored to Cloudflare R2. The move was a restore of 496 films, 166.5 GB from that mirror.
- Every job runs under a memory cap. No more 12.5 GB surprises.
Cutover was at 2:15 a.m.: 16 minutes offline. Then we rebooted it on purpose, just to see. Back up in 30 seconds.
Numbers
Same 8-minute film, 1080p at 60 fps:
| Azure VM | Used gaming PC | |
|---|---|---|
| Drawing the film | 17 min 42 s | 3 min 49 s (4.6x) |
| A review still | 3-7 s | |
| A 30 s draft | ~10 s |
It is still the studio today: 258 films (about 6.4 hours of video) since the move, 13 days of uptime and counting.
And the RTX 3070? The studio's AI models run on it through CUDA, with a machine-wide GPU lock so jobs take turns on the 8 GB. It also runs an open video model at home (MiniMax H3, quantised: a 5-second 768p clip in about 7 minutes, no API bill), and NVENC hardware encoding is next on the list.
The fine print
- Home power and home internet. The upload measured 580-660 Mbit/s, but it is one line through one borrowed cable.
- No "restart VM" button. A frozen box needs a human.
- Backups are on us: hence the R2 mirror, and the old Azure VM kept switched off as a way back.
What we'd tell another hacker house
- Measure first. Every move here started from a timed render, not a feeling.
- RAM takes you down before CPU does. Size for the worst job, and cap every job.
- A tunnel makes any box a server. Moving the studio is pointing a tunnel somewhere else.
-
Make one-shot moments recoverable:
toram, the right flag, an SSH key in the installer. - An AI agent makes a decent sysadmin. Claude Code built the product, then built the server it runs on.
- Used gaming hardware beats a startup's cloud budget, by a lot.
Try it
Every film on kitcut.ai is drawn by the box in that photo. Type an idea and get back a finished, narrated film: a product explainer, a lesson, a cartoon series, a video a day for YouTube. Or plug kitcut.ai/mcp into Claude, ChatGPT or your own agent and let it make them.
來源:DEV Community · dev.to