Generate UGC Video With Voice Clone

This ComfyUI tutorial workflow turns a single image into a short, lip‑synced UGC-style video with cloned or selected voice. It chains three stages: prompt creation from your uploaded image, speech synthesis with ElevenLabs, and video generation with LTX‑2.3. The Create Prompt group routes the image from LoadImage into GeminiNode to auto-generate two texts: a performance-ready speech script (with expression tags) and a scene description. RegexExtract parses the Gemini response to separate the “speech” and “scene” sections cleanly for downstream nodes.

For audio, you can pick a preset voice via ElevenLabsVoiceSelector or bring your own tone with ElevenLabsInstantVoiceClone, then synthesize the final narration in ElevenLabsTextToSpeech and optionally save it with SaveAudioMP3. The Create Video group feeds the scene description and the audio into the LTX‑2.3 video node (UUID: 98fb87e2-23b5-4ecb-aacc-365912414a12) to produce a talking-style video with accurate lip sync, previewed by PreviewAny and written with SaveVideo. This setup is practical for rapid UGC, product explainers, testimonials, or social posts because it automates script writing from an image and guarantees voice-to-lips alignment through ElevenLabs + LTX.

API

Use this workflow from code

Every Comfy workflow is a JSON graph. The payload below is this workflow, exactly as ComfyUI runs it — fetch it from the URL, keep it in version control, or load it in ComfyUI and run it node by node.

template_image_speech_to_video.json
Fetching workflow JSON…

Run it from TypeScript or Python with the Comfy SDK. The same code targets Comfy Cloud or a ComfyUI you host yourself — only the base URL changes.

// Install (beta)
npm i @comfyorg/sdk

// Run "Generate UGC Video With Voice Clone" (TypeScript)
import { Comfy } from "@comfyorg/sdk";

const client = new Comfy({ apiKey: "comfyui-..." });

// This workflow, exported in API format (see note below)
const wf = await client.workflows.fromFile("template_image_speech_to_video_api.json");

const asset = client.assets.fromFile("input.png");
wf.setInput("440", "image", asset); // LoadImage

const job = await client.run(wf);
await job.getOutputs("445")[0].toFile("output.png"); // SaveAudioMP3

The SDK takes a workflow in API format: open this workflow in ComfyUI and use File → Export Workflow (API).

Comfy Cloud API access requires a plan with an API key.

FAQ

Frequently Asked Questions

View all workflows
Showing 30 of 30 templates