{/* Hero video — phone-sized preview right under headline */}
Wan 2.2 I2V · AMD MI300X
Upload a few photos. Build a model of yourself. Generate photorealistic
images in any scene you can imagine. Animate them into short films.
Make the impossible, possible.
);
}
/* ── Feature Film Showcase ── */
function FeatureFilmShowcase() {
return (
{/* Section headline */}
Your Model. Your Film. Minutes.
You and Your Agent.
Co-Directing a Film.
This is what your film looks like. Once your model is trained from your photos,
you and your agent can assemble scenes, shots, and final cuts in minutes —
not the hours or days it used to take. You bring the vision. Your agent handles the rest.
{/* Film title card */}
Full Project Render
Multi-shot · assembled · AMD MI300X
Official Selection — AMD Developer Hackathon 2026
Nemoflix: A Debut Feature
LabLab.ai · World Premiere
{/* The Film */}
Try It Yourself
);
}
/* ── How It Works ── */
function HowItWorks() {
const steps = [
{
n: "01",
color: "text-amber-400",
ring: "ring-amber-500/30",
title: "Train Your Character LoRA",
body: "Upload 15–25 reference photos. Nemoflix fine-tunes a Flux.2 LoRA on AMD MI300X — 192 GB VRAM, ROCm, no CUDA. ~90 minutes to a character that looks consistent in every single frame.",
aside: (
AMD MI300X
Training Config
),
},
{
n: "02",
color: "text-rose-400",
ring: "ring-rose-500/30",
title: "Generate Images via API",
body: "Your AI agent calls the API with a prompt and character ID. Nemoflix builds the ComfyUI workflow, routes to the right GPU node, queues the job, and returns a prompt ID. Photorealistic results in seconds.",
aside: (
API call
POST /api/image/generate
{"{"}
"character":{" "}
"rigo",
"prompt":{" "}
"walking through a rainy street"
{"}"}
← prompt_id: a3f9c1d2
),
},
{
n: "03",
color: "text-fuchsia-400",
ring: "ring-fuchsia-500/30",
title: "Animate to Video",
body: "One more API call and Wan 2.2 I2V animates the image into a short video clip. The same character, moving. String clips together into a full scene. Your agent builds the whole sequence autonomously.",
aside: (
Wan 2.2 I2V
Video Config
),
},
{
n: "04",
color: "text-emerald-400",
ring: "ring-emerald-500/30",
title: "Build Films Scene by Scene",
body: "Projects hold Scenes, Scenes hold Shots — each with its own generated image and video. When every shot is animated, hit render and Nemoflix stitches the whole thing together into one finished video. Your agent wrote, directed, and rendered a short film, start to finish.",
aside: (
Projects
Film Structure
Project "Neon Nights"
Scene 1 "Alley Chase"
Shot 1A → image + video
Shot 1B → image + video
Scene 2 "Rooftop"
One API. Train → generate → animate → render.
),
},
];
return (
How It Works
From reference photos to a finished film in four steps.
{steps.map((step, i) => (
{step.n}
{step.title}
{step.body}
{step.aside}
))}
);
}
/* ── Features grid ── */
function Features() {
const features = [
{ icon: Cpu, color: "text-amber-400", title: "LoRA Training on AMD", body: "Fine-tune Flux.2 on AMD MI300X via ROCm. No CUDA required. Monitor job progress live in the Studio." },
{ icon: Server, color: "text-rose-400", title: "Self-Hosted", body: "Your hardware, your models, your data. No cloud dependency, no rate limits, no data leaving your machine." },
{ icon: Bot, color: "text-violet-400", title: "Agent API", body: "REST API any agent can call. Characters, images, video, training jobs — all simple HTTP endpoints." },
{ icon: Users, color: "text-fuchsia-400", title: "Character Registry", body: "Register characters with trigger words and LoRA weights. Every generation references them consistently." },
{ icon: Zap, color: "text-emerald-400", title: "Multi-GPU Routing", body: "Images and video automatically routed to the right node. Add more GPUs without changing any code." },
{ icon: Lock, color: "text-blue-400", title: "Open Source", body: "MIT license. Audit the code, fork it, extend it. No black boxes." },
];
return (
What's Inside
Everything you need to run a visual AI studio.
{features.map((f) => (
{f.title}
{f.body}
))}
);
}
/* ── CTA ── */
function CTA() {
return (
Ready to Run It?
Clone the repo, point it at your GPU nodes, and your agent is
generating in minutes.