
This ComfyUI tutorial workflow turns a single image into a short, voice-driven video with strong visual identity and perceived lip alignment. It combines Lightricks LTX 2.3 for video generation with an ID-LoRA (CelebVHQ) to keep the subject’s face and styling consistent across frames, while Qwen 3 TTS produces a matching voice track. The pipeline is organized into clear groups: Load Image, Create Prompts, Prompt Extraction, Create Voice, and Create Video.
Under the hood, GeminiNode analyzes your uploaded image (via LoadImage) and drafts two complementary texts: a speech line with expressive cues and a scene/appearance description. RegexExtract then parses these into an ID-LoRA-ready format with three tagged sections: [VISUAL], [SPEECH], and [SOUNDS]. FB_Qwen3TTSCustomVoice uses the [SPEECH] and style hints from [SOUNDS] to synthesize a voice track, saved with SaveAudioMP3. The LTX 2.3 video node (the custom node in this graph) consumes the structured prompt plus your reference image to render a talking video, with the CelebVHQ ID-LoRA improving identity retention in dynamic, in-the-wild scenarios. PreviewAny lets you iterate quickly, and SaveVideo writes the final clip. Local users can optionally load the LTX spatial upscaler (ltx-2.3-spatial-upscaler-x2-1.1.safetensors) for cleaner details at higher resolution.
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.
GET https://comfy.org/workflows/download/f0257c86b3a0.jsonFetching workflow JSON…
Run it from Python or TypeScript with the Comfy SDK. The same code targets Comfy Cloud or a ComfyUI you host yourself — only the base URL changes.
# Install (beta)
pip install comfy-sdk # Python
npm i @comfyorg/sdk # TypeScript
# Run this workflow (Python)
from comfy_sdk import Comfy
client = Comfy(api_key="comfyui-...")
wf = client.workflows.from_file("workflow_api.json")
job = client.run(wf)
for output in job.get_outputs("<output-node-id>"):
output.to_file(output.name)The SDK takes a workflow in API format: open this workflow in ComfyUI and use File → Export Workflow (API). API access requires a Comfy Cloud plan with an API key. SDK docs · Get an API key
FAQ














