Skip to content
Tools / UGC Video Generator
UGC Video Generator icon

UGC Video Generator

UGC videos and photos from product to post

UGC Video Generator takes a product description and produces complete UGC-style videos from scratch — audience research, scripts, AI-generated frames, video clips, and a final assembled video ready to post. It covers 16 formats across talking-to-camera, unboxing, GRWM, product demos, lifestyle stills, and more.

The full pipeline runs as a guided workflow: research your audience's language and pain points, generate hooks and scripts tailored to those insights, create visual scenes, generate the first frame of each scene as an image, then animate those frames into video clips, and finally assemble everything into a finished video with transitions and text overlays. Each step is reviewable before you move on.

What you can do

  • research_audience — deep audience research: pain points, emotional triggers, language patterns, objections
  • generate_creative — hooks, scripts, and scenes in one fast call; supports all 16 UGC formats
  • generate_frames — AI-generated first-frame images for each scene with persona and style consistency
  • generate_videos — animate frames into video clips using the full pipeline
  • composite_product — insert a real product image into generated frames before video generation
  • regenerate_frame — fix a single weak frame without re-running the whole pipeline
  • assemble_final — stitch clips into a finished video with transitions and text overlays
  • check_video / check_image — poll for pending generation jobs

Who it's for

DTC brands, performance marketers, content agencies, and social media teams who need authentic UGC-style video content at scale without a production crew.

How to use it

  1. Start with research_audience — pass company name, product name, and description; wait 1–3 minutes for results
  2. Run generate_creative with the full research output, your chosen format, and ugc_style — review hooks and scripts before proceeding
  3. Call generate_frames to generate the first frame of each scene — review frames and use regenerate_frame for any that need fixing
  4. Run generate_videos to animate frames into clips (takes 2–10 minutes — do not retrigger)
  5. Finish with assemble_final to stitch clips into a complete video

Getting started

Upload persona, scene, product, and outfit assets to your file library before starting — pass their file IDs throughout the pipeline for visual consistency.

Research Audience

Step 1: Research audience pain points, language, triggers, and objections. Async (1-3 min). Do NOT skip. Pass full output to generate_creative.

Returns: Structured audience research with pain points, problems, language patterns, emotional triggers, objections, and research summary
Write Hooks

Generate UGC video hooks using the 3-variable framework (Angle + Aesthetic + Action). Uses RAG from the UGC playbook to apply proven hook patterns targeting 60%+ 3-second view rate. ⏱ Takes ~5 seconds. Step 2 of the UGC workflow — requires research output from step 1.

Returns: Array of hooks, each with text, angle, aesthetic, action, emotional trigger, and target pain point
Write Scripts

Generate authentic UGC scripts using But/Therefore zigzag structure. Creates script variations for each hook with mini-hooks at key drop-off timestamps. Targets ~20 second duration with conversational, non-salesy tone. ⏱ Takes ~5-10 seconds per hook. Step 3 — requires hooks from step 2.

Returns: Array of scripts, each with hook_id, variation, hook_text, script_body, CTA, duration estimate, and mini-hooks at drop-off timestamps
Generate Scenes

Generate visual scene descriptions for each script, optimized for AI image/video generation. Set "format" for format-specific direction. Takes ~5s per script. Step 4 — requires scripts from step 3.

Returns: Array of scenes, each with scene description, setting, lighting, wardrobe, camera angle, mood, and shot list with visual changes
Generate Creative (Fast)

Generate hooks, scripts, and scene descriptions in one call (~8s). Set "format" for format-specific output (e.g. product_demo, grwm, unboxing, lifestyle_still). Photo formats return compositions instead of hooks/scripts. Step 2 — pass FULL research output from step 1.

Returns: Video: hooks, scripts, scenes arrays. Photo: compositions + scenes. Includes output_type, format_name, persona info, aspect_ratio.
Generate First Frames

Step 3: Generate first-frame images from scenes. ~30s async. Pass existing_frames to skip frames that already have image_url. Do NOT re-call if you have frames — pass them as existing_frames instead. persona_image_url for face consistency.

Returns: Array of frames with image URLs and scene descriptions, plus asset paths for auto-upload
Generate Videos

Step 5: Generate video clips from first frames using Kling 3.0 Pro. Takes 2-10 MINUTES — do NOT retrigger. Use check_video for pending clips.

Returns: Array of video clips with video URLs, script indices, segment indices, and duration. Long scripts are automatically split into multiple clips with consistent continuation keyframes.
Check Video Status

Check on a pending video that was still generating when generate_videos returned. Pass the fal_request_id and model_id from the pending_videos array. Returns the video URL if ready, or current status if still generating. You can check back any time.

Returns: Video URL if completed, or current status (queued/running/failed) with instructions to check again
Check Image Status

Check on a pending image that was still generating when generate_frames timed out. Pass the fal_request_id from pending_frames. Returns image URL if ready, or status if still generating.

Returns: Image URL if completed, or current status (queued/running/failed) with instructions to check again
Regenerate Frame

Re-generate a single frame without re-running the full pipeline. Accepts optional revision notes for targeted edits. Use when a specific frame needs adjustment — much faster than regenerating all frames.

Returns: Single frame object with image URL and scene description, plus asset path
Composite Product

Composite real product into frames. IMPORTANT: Inline chat images CANNOT be passed as URLs. Direct user to toolrouter.com/dashboard/files to upload their image and copy the hosted URL. They can reuse it anytime. Or use web-screenshot on product page.

Returns: Object with "frames" array (composited frames with product naturally placed in each scene) — pass directly to generate_videos
Assemble Final Video

Stitch video clips into one final video with text overlays and transitions. Last step after generate_videos. Takes ~30-120s. Async — poll with get_job_result.

Returns: Final assembled video file (auto-uploaded via asset system)
Loading reviews...

Loading activity...

v0.142026-04-24
  • Added ugc_style — choose how the video is filmed: hand-held selfie, outfit showcase (propped camera, full body, closing shot), mirror selfie, GRWM, unboxing, or walk-and-talk. Style drives camera setup, scene direction, and video motion across the full pipeline.
v0.132026-04-22
  • Video generation now uses Kling 3.0 Pro — removed ElevenLabs voice sync and model selection
v0.122026-04-14
  • Renamed to UGC Video Generator — accept scenes, products, and outfits from your file library
v0.112026-04-06
  • Style references now supported — pass a style reference for consistent visual direction across UGC content
v0.102026-04-05
  • Personas from your library are now auto-discovered and injected — pass persona_file_id instead of manual persona fields
v0.092026-04-04
  • Improved error messages for person-driven formats — agents now get clear guidance to ask the user for appearance details
v0.082026-03-31
  • BREAKING: write_scripts now always returns full script dialogue (script_body, hook_text, cta, mini_hooks) — removed table format that stripped content in concise mode
  • BREAKING: generate_scenes now always returns full scene data (shot_list, setting, lighting, mood, camera_angle, wardrobe) — removed table format
  • BREAKING: generate_videos now returns full videos/pending_videos data — removed media format that stripped content in concise mode
  • generate_videos: added duration awareness — clips capped to match script target duration instead of generating one per frame
  • generate_videos: video clips now download to temp for reliable asset pipeline upload (video_N_path keys)
  • write_scripts + generate_creative: improved CTA generation — natural sentences, not bare brand names
  • Updated tool instructions with recommended workflow, voice profile guidance, and URL handling
  • assemble_final: captions now default to false — users add captions natively on social platforms
  • assemble_final: documented max 20 clips per call limit in skill schema
  • Instructions now mention regenerate_frame for fixing weak hero frames before expensive video gen
  • generate_frames: timeout now returns pending_frames with fal_request_id instead of failing — images can be retrieved later via check_image
  • Added check_image skill for polling pending image jobs (mirrors check_video for videos)
v0.072026-03-30
  • generate_frames: added existing_frames param to skip frames that already have image_url — prevents redundant regeneration
  • composite_product: output key renamed from composited_frames to frames for consistency with generate_videos input
  • generate_videos: increased estimatedSeconds to 300 and timeoutSeconds to 900 to prevent premature retrigger
  • Updated instructions to warn agents against re-calling generate_frames and retriggering generate_videos
v0.062026-03-26
  • Added 16 UGC format templates: 11 video (talking_to_camera, product_demo, product_showcase, grwm, unboxing, before_after, problem_solution, storytime, pov, voiceover_broll, reaction) + 5 photo (lifestyle_still, product_flat_lay, in_use_shot, aesthetic_moment, mirror_selfie)
  • generate_creative now accepts "format" param for format-specific creative direction and scene generation
  • Photo formats produce compositions instead of hooks/scripts, mapped to scenes for generate_frames compatibility
  • Added "aspect_ratio" param for custom aspect ratios independent of platform presets
  • generate_scenes now accepts "format" param for format-specific video scene direction
v0.052026-03-23
  • Added create_voice_profile skill for consistent voice across video clips
  • Wired voice_id into generate_videos for synced lip movement across all clips
v0.042026-03-22
  • Added subtitle, expanded description, and agent instructions
v0.032026-03-21
  • Enhanced realism prompts across all image and video generation skills
v0.022026-03-20
  • Added platform-aware variants (tiktok, instagram_reels, youtube_shorts, instagram_stories, twitter)
  • Added wardrobe reference image support for clothing consistency
  • Added composite_product skill for real product placement via nano-banana-2 edit
  • Added regenerate_frame skill for scene-level iteration
  • Added assemble_final skill for video assembly via Remotion render server
v0.012026-03-20
  • Initial release

UGC Video Generator Use Cases(8)

Browse all 8 UGC Video Generatorguides →
Open Generate UGC-Style Content at Scale

Generate UGC-Style Content at Scale

Create authentic-looking user-generated content for social media ads and organic posts without hiring creators.

UGC Video Generator icon
UGC Video Generator
4 agent guides
Open Create Authentic Product Review Content

Create Authentic Product Review Content

Generate realistic product review content that mimics the honest, conversational tone of genuine customer reviews.

UGC Video Generator icon
UGC Video Generator
4 agent guides
Open Research Competitor Ad Creatives

Research Competitor Ad Creatives

Research what ads your competitors are running across Facebook and Google to understand their messaging and creative strategy.

Ad Library Search icon
Ad Library Search
4 agent guides
See every UGC Video Generatoruse case (Claude, ChatGPT, Copilot, OpenClaw guides) →

Related Tools

Frequently Asked Questions

What is the fastest way to get a finished UGC ad?

Use the full pipeline when you want speed with structure: research the audience, generate creative, make frames and videos, then assemble the final cut. The tool also has a single-step creative path if you want a quicker draft.

How do I keep the same face or outfit across clips?

Pass a persona plus `persona_image_url` for face consistency, and use `wardrobe_image_url` when you want the outfit to stay the same from scene to scene.

Can I use a real product image in the generated scene?

Yes. `composite_product` is built for placing a real product into generated frames, which is useful when the ad needs to show the actual package or device.

What if one frame or clip looks off?

You do not have to rerun everything. `regenerate_frame` can fix a single scene, and `check_video` lets you inspect clips that are still rendering.