Loading...
Loading...
Generate AI videos using varg SDK. Use for videos, animations, talking characters, slideshows, social content. JSX-based - describe scenes, render videos.
npx skill4agent add varghq/skills media-generation| term | meaning |
|---|---|
| Render | root container - sets dimensions (1080x1920 for tiktok, 1920x1080 for youtube) |
| Clip | timeline segment with duration, contains visual/audio layers |
| Image | static image - generated from prompt or loaded from file |
| Video | video clip - text-to-video OR image-to-video animation |
| Music | background audio - generated from prompt or loaded from file |
| Speech | text-to-speech with voice selection |
| Title/Subtitle | text overlays with positioning |
| Captions | auto-generated captions from Speech element |
| Grid | layout helper for multi-image/video grids |
<Render width={1080} height={1920}> {/* tiktok dimensions */}
<Music prompt="upbeat electronic" duration={10} />
<Clip duration={3}>
<Image prompt="cyberpunk cityscape" />
<Title position="bottom">Welcome</Title>
</Clip>
<Clip duration={5}>
<Video prompt="camera flies through neon streets" />
</Clip>
</Render>RenderClipVideoImageMusicSpeechTitleGridfalelevenlabsVideo// text-to-video - generate from scratch
<Video prompt="cat playing piano in a jazz club" />
// image-to-video - animate an image with motion description
<Video
prompt={{
text: "eyes widen, head tilts forward, subtle smile forming",
images: [<Image prompt="portrait of woman" />]
}}
/>const hero = <Image prompt="warrior princess, crimson hair, emerald eyes" />;
<Clip><Video image={hero} prompt="she draws her sword" /></Clip>
<Clip><Video image={hero} prompt="she leaps into battle" /></Clip><Image
prompt={{
text: "same person, different scene",
images: ["https://reference-photo.jpg"]
}}
model={fal.imageModel("nano-banana-pro/edit")}
/>[Subject Description] + [Scene Description] + [Motion/Action] + [Cinematic Controls]"a woman""a young woman with shoulder-length auburn hair, wearing a worn leather jacket over a white t-shirt, her green eyes reflecting determination, jaw set with quiet resolve""in a city""on a rain-slicked tokyo street at night, neon signs reflecting pink and blue on wet pavement, steam rising from a nearby food stall, warm yellow light spilling from a ramen shop window""walking""walking slowly through the crowd, shoulders hunched against the rain, one hand raised to shield her eyes, water droplets catching the neon light as they fall from her fingertips"camera push-incamera pull-outtracking shotdolly shotpan left/righttilt up/downstatic camerafixed camerahandheldsteadicamextreme close-upclose-upmedium close-upmedium shotmedium wide shotwide shotextreme wide shotover-the-shoulder shotcenter compositionrule of thirdsleft-side compositionright-side compositionsymmetrical compositionlow anglehigh angleeye-levelsoft lighthard lightedge lightrim lightbacklightside lightgolden hourblue hourmoonlightpractical lightmixed lightcinematicfilm grainanamorphiccyberpunknoirpost-apocalypticghibli styleanimephotorealisticvintageretrofuturistictilt-shift photographytime-lapseCharacter says: "Your line here.""speaking quietly""calling out over wind""no dialogue""actors not speaking""running forward, hair flowing behind""slow push-in on face""subtle movement""dramatic action"<Video prompt="a warrior fighting" /><Video prompt="medium close-up, side light, golden hour. a battle-hardened samurai with a weathered face and grey-streaked topknot, wearing damaged traditional armor with visible scratches and dents. he raises his katana in a fluid motion, blade catching the dying sunlight, muscles tensing as he shifts into fighting stance. dust particles float in the amber light, his breath visible in the cold air. slow camera push-in on his focused expression, eyes narrowed with lethal intent. cinematic, film grain, anamorphic lens flare." />// Warrior Princess - Cinematic Character Video
// run: bunx vargai@latest render warrior-princess.tsx --verbose
const hero = (
<Image prompt="portrait, soft light, center composition. warrior princess with flowing crimson hair reaching past her shoulders, piercing emerald eyes reflecting inner fire, wearing battle-worn silver armor with intricate celtic knot engravings, a thin scar across her left cheek from an old battle, expression of quiet determination mixed with weariness. ghibli style, painterly brushstrokes, warm color palette with golden undertones" />
);
export default (
<Render width={1080} height={1920}>
<Clip duration={4}>
<Video
image={hero}
prompt="wide shot, golden hour, dramatic edge lighting from behind. she stands at the edge of a windswept cliff overlooking a vast misty valley with ancient ruins below, her crimson hair and tattered cape billowing dramatically in the wind, one hand resting on sword hilt at her side. slow camera pull-out revealing the epic landscape, dust particles catching the amber sunlight. cinematic, ghibli style, film grain, anamorphic lens"
/>
</Clip>
<Clip duration={3}>
<Video
image={hero}
prompt="medium close-up, dramatic side lighting with hard shadows. she draws her sword in one fluid motion, blade singing as it leaves the scabbard, polished steel catching the dying sunlight with a bright gleam. her eyes narrow with fierce focus, jaw set with lethal intent. camera tracks the sword movement upward. cinematic, ghibli style, shallow depth of field"
/>
</Clip>
<Clip duration={3}>
<Video
image={hero}
prompt="extreme close-up on her face, rim light from behind creating a golden halo effect. a single tear rolls down her scarred cheek as she whispers a prayer, eyes closed in concentration, lips barely moving. subtle camera push-in, dust motes floating in the light. emotional, ghibli style, soft focus on background"
/>
</Clip>
<Music prompt="epic orchestral score, soaring strings building tension, triumphant french horns, taiko drums in the distance, celtic flute melody, building from quiet contemplation to heroic crescendo" duration={12} />
</Render>
);// Skincare Product TikTok - Talking Head with Captions
// run: bunx vargai@latest render skincare-promo.tsx --verbose
const influencer = (
<Image
prompt={{
text: "extreme close-up face shot, ring light reflection in eyes, surprised expression with wide eyes and raised eyebrows, mouth slightly open in excitement, looking directly at camera. young woman with short platinum blonde hair, minimal makeup, silver hoop earrings, wearing oversized vintage band t-shirt. clean white background, professional studio lighting, tiktok creator aesthetic",
images: ["https://reference-photo-url.jpg"] // optional: reference for likeness
}}
model={fal.imageModel("nano-banana-pro/edit")}
aspectRatio="9:16"
/>
);
const speech = (
<Speech voice="bella" model={elevenlabs.speechModel("turbo")}>
Oh my god you guys, I literally cannot believe this actually works! I've been using this for like two weeks and my skin has never looked better. Link in bio, seriously go get it!
</Speech>
);
export default (
<Render width={1080} height={1920}>
<Music
prompt="upbeat electronic pop, energetic female vocal chops, modern tiktok trending sound, catchy synth melody, punchy drums, high energy throughout"
duration={12}
volume={0.4}
/>
<Clip duration={3}>
<Video
prompt={{
text: "eyes widen dramatically in genuine surprise, eyebrows shoot up, mouth opens into excited smile, subtle forward lean toward camera as if sharing a secret. natural blinking, authentic micro-expressions",
images: [influencer]
}}
model={fal.videoModel("wan-2.5")}
/>
{speech}
</Clip>
<Clip duration={4}>
<Video
prompt="product shot: sleek skincare bottle rotating slowly on marble surface, soft key light from above, pink and gold gradient background, light rays catching the glass, water droplets on bottle suggesting freshness. smooth 360 rotation, professional product photography, beauty commercial aesthetic"
model={fal.videoModel("kling-v2.5")}
/>
<Title position="bottom" color="#ffffff">LINK IN BIO</Title>
</Clip>
<Clip duration={3}>
<Video
prompt={{
text: "enthusiastic nodding while speaking, hands come into frame gesturing excitedly, genuine smile reaching her eyes, occasional hair flip, pointing at camera on 'go get it'",
images: [influencer]
}}
model={fal.videoModel("wan-2.5")}
/>
</Clip>
<Captions src={speech} style="tiktok" activeColor="#ff00ff" />
</Render>
);// Four Elements - 2x2 Video Grid
// run: bunx vargai@latest render four-elements.tsx --verbose
export default (
<Render width={1920} height={1080}>
<Clip duration={6}>
<Grid columns={2}>
<Video
prompt="extreme close-up of ocean wave crashing against volcanic black rocks, slow motion 120fps, crystal clear turquoise water exploding into white foam spray, individual water droplets suspended in golden hour sunlight, mist rising. cinematic, national geographic style, shallow depth of field on water texture"
model={fal.videoModel("wan-2.5")}
/>
<Video
prompt="intimate close-up of flames dancing in stone fireplace, warm orange and yellow tongues of fire licking weathered logs, glowing embers pulsing beneath, sparks occasionally rising. cozy cabin atmosphere, soft crackling implied, shallow focus on flame tips, hygge aesthetic"
model={fal.videoModel("wan-2.5")}
/>
<Video
prompt="macro shot of rain droplets hitting window glass, each drop creating expanding ripples and trails, city lights blurred into colorful bokeh beyond the glass, melancholic blue hour lighting. asmr visual aesthetic, slow motion, focus pulling between drops"
model={fal.videoModel("wan-2.5")}
/>
<Video
prompt="timelapse of cumulus clouds drifting across deep blue sky, dramatic god rays breaking through cloud gaps, cloud shadows moving across distant mountain range. epic landscape, wide angle, peaceful meditative mood, nature documentary cinematography"
model={fal.videoModel("wan-2.5")}
/>
</Grid>
<Title position="bottom" color="#ffffff">THE FOUR ELEMENTS</Title>
</Clip>
<Music prompt="ambient electronic, peaceful synthesizer pads, gentle nature sounds mixed in, meditative atmosphere, spa music vibes but more cinematic, slow build with subtle percussion" duration={8} />
</Render>
);--previewbunx vargai@latest render video.tsx --preview --verbosebunx vargai@latest render video.tsx --verboseopen output/video.mp4.envFAL_KEYELEVENLABS_API_KEY// image generation
fal.imageModel("flux-schnell") // fast, good quality
fal.imageModel("flux-pro") // highest quality
fal.imageModel("nano-banana-pro/edit") // reference-based (character consistency)
// video generation
fal.videoModel("wan-2.5") // balanced speed/quality
fal.videoModel("kling-v2.5") // highest quality, 10s max
fal.videoModel("sync-v2") // lipsync
// audio
elevenlabs.speechModel("turbo") // fast TTS
elevenlabs.musicModel() // music generation| component | key props |
|---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |