Silent Film Reviver
Lovable AI writes modern narrative intertitles for vintage clips so old films entertain anew; AIsa scores it.
AIsa Video Generation· motion generation
Section · AIsa
full primer →The kernel.
Videographers describe the moment and AIsa's video models stitch a short reel for vintage media restoration — motion sketch, loop, or scene block — playable on the page.
Why this primitiveGenerative music produces authentic ragtime or orchestral accompaniment tailored to the frame rate and action of silent films.
Kernel
the AIsa Media Gen skill (Wan / Seed video models) submitted via `POST /v1/skills/mediagen` — returns a task id, the client polls until an MP4 URL is ready
Drives the UI as
a prompt → progress bar → playable MP4 surface for short motion sketches, loops, or scene reels
Required key.
AISA_API_KEY
Single key for AIsa chat completions, image generation, video generation and live skills. Free tier covers a hackathon weekend.
open ↗Add this in your Lovable project under Settings → Secrets before pasting the prompt below.
Appendix · Mega-prompt
The build prompt.
budget · 1 message
Paste into a fresh Lovable project. Make sure the key above is set first. read the build strategy →
Build "Silent Film Reviver" as a ONE-SHOT Lovable build. The participant has only
5 credits — this single message must produce a working demo with no follow-ups.
Single-page TanStack Start app. Cut scope ruthlessly.
CONCEPT
Lovable AI writes modern narrative intertitles for vintage clips so old films entertain anew; AIsa scores it.
Discipline: Videography & Film (vintage media restoration).
Recipe: AIsa Video Generation (motion generation) as the single creative surface.
Why this kernel: Generative music produces authentic ragtime or orchestral accompaniment tailored to the frame rate and action of silent films.
LOVABLE BUDGET (HARD CAP: ONE-SHOT, ~5 CREDITS TOTAL):
The participant has FIVE Lovable credits for the whole build. This prompt MUST
ship a working demo on the FIRST message with zero follow-ups. Engineer for that.
- ONE TanStack Start app, ONE route (`src/routes/index.tsx`). No extra pages, no auth, no nav.
- ONE TanStack server function in `src/lib/aisa.functions.ts` that proxies the AIsa call.
- ONE client surface (a textarea + button, or chat box, or prompt-to-canvas) wired to it.
- NO database, NO Lovable Cloud, NO auth, NO file uploads, NO extra integrations.
- NO tests, NO docs pages, NO settings screens, NO theming toggles.
- Libraries: template defaults + `zod`. Nothing else.
- Keep the diff small enough to land in one build pass. If a feature is not on
screen in the user flow below, do not build it. Cut scope before adding scope.
STACK
- TanStack Start app, the index route only.
- AIsa is the only AI dependency. All API calls live inside a `createServerFn`
handler so `AISA_API_KEY` stays on the server.
- Client surface fits the kernel: a prompt box that returns the result.
- Tailwind + shadcn. Editorial look: gold accent on a dark or warm-cream
background, generous type, one strong headline, one primary action.
- Footer renders: "Built during the AIsa Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14".
SERVER FUNCTION (src/lib/aisa.functions.ts) — AIsa video gen (Wan / Seed):
```ts
import { createServerFn } from "@tanstack/react-start";
import { z } from "zod";
/** Built during the AIsa Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14 */
export const animate = createServerFn({ method: "POST" })
.inputValidator((d) => z.object({ brief: z.string().min(1).max(800) }).parse(d))
.handler(async ({ data }) => {
// 1. Submit the video task to AIsa Media Gen (async).
const submit = await fetch("https://api.aisa.one/v1/skills/mediagen", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.AISA_API_KEY!}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "seedance-pro",
type: "video",
prompt: `vintage media restoration reel: ${data.brief}. 6 seconds, cinematic.`,
duration: 6,
}),
});
if (!submit.ok) throw new Error(`AIsa submit failed: ${submit.status}`);
const { task_id } = await submit.json();
// 2. Poll until the MP4 URL is ready (AIsa returns ~20-40s).
for (let i = 0; i < 30; i++) {
await new Promise((r) => setTimeout(r, 2000));
const p = await fetch(`https://api.aisa.one/v1/skills/mediagen/${task_id}`, {
headers: { "Authorization": `Bearer ${process.env.AISA_API_KEY!}` },
});
const j = await p.json();
if (j.status === "succeeded" && j.video_url) return { url: j.video_url as string };
if (j.status === "failed") throw new Error(`Video failed: ${j.error ?? "unknown"}`);
}
throw new Error("Video render timed out.");
});
```
CLIENT: textarea + "Render reel". While the server fn awaits, show a soft
"Rendering ~30s" pulse. On success, render `<video src={url} controls autoPlay loop />`.
Wan / Seed are async — surface progress; one render at a time keeps it within
the 5-credit budget. See https://aisa.one/docs/agent-skills/mediagen.md.
USER FLOW (the entire app — nothing else exists)
1. Land on the page; the headline previews what the demo does for vintage media restoration.
2. The primary action (a prompt → progress bar → playable MP4 surface for short motion sketches, loops, or scene reels) is one tap away; the rest of the layout supports it.
3. AIsa runs the kernel server-side, the result lands on screen, the user can retry or copy.
KEY — only ONE secret is required:
1. `AISA_API_KEY`. Sign up at https://console.aisa.one, copy the key into
Project Settings -> Secrets. Read it only on the server via
`process.env.AISA_API_KEY`. Never prefix with `VITE_`, never expose
to the client. A single key unlocks chat, image, video and skills.
CREDIT (must appear in UI footer AND as JSDoc on the server function):
Built during the AIsa Creative Hackathon organised by StreetKode Fam during Indian Krump Festival 14
Market sizing.
TAM
$1.1B
global video editing software market
SAM
$100M
archival footage restoration and remastering
SOM
$15M
film historian and archive curator audio tools
Indicative figures for hackathon pitches — refine with your own research before raising.
Adjacent entries.
foley drafting
Foley Prompt Crafter
Lovable AI writes foley prompts for silent scenes so editors hear their vision; AIsa generates the SFX.
temp scoringRough Cut Scorer
Lovable AI writes emotional beat sheets for rough cuts so directors feel the story; AIsa scores it.
ambience layeringIndie Room Toner
Lovable AI designs room tone profiles for indie sets so audio feels grounded; AIsa generates the SFX.
trailer sound designTrailer Riser Builder
Lovable AI plans trailer pacing and hit points so editors build anticipation; AIsa generates the SFX.