Tools / UGC Video Generator
UGC Video Generator icon

UGC Video Generator

UGC videos and photos from product to post

Create authentic UGC-style videos and photos from a product description. Researches audience, writes scripts, generates AI scenes and clips across 16 formats — from product showcase and unboxing to lifestyle stills and flat lays. For marketers, DTC brands, and agencies.

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.
Create Voice Profile

Create a reusable voice profile for consistent voice across clips. Provide a voice_sample_url or auto-match from persona + accent. Returns a voice_id for generate_videos. Call after generate_creative.

Returns: Object with voice_id (reusable Kling voice profile ID), source ("user_sample" or "auto_generated"), and optionally elevenlabs_voice_id and elevenlabs_voice_name
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 Seedance 2.0 with native lip-sync. Takes 2-10 MINUTES — do NOT retrigger. Pass elevenlabs_voice_id for consistent voice across clips. 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)
List Models

List available models for this tool, sorted by popularity. Returns provider details and pricing.

Returns: List of available models with pricing and provider info
Loading reviews...

Loading activity...

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

Use Cases

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
View all use cases for UGC Video Generator

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.