Short answer: This workflow animates one still image (the first frame) so that the motion and layout follow a control video. MoGe, a depth estimation model, turns the control video into depth frames. Those frames guide the ltx-2.3-22b-distilled-fp8 checkpoint through the LTX-2.3 IC-LoRA Union Control at strength 1. It samples once: 8 steps, CFG 1, euler_ancestral, linear_quadratic, at 1280 × 704 and 25 fps. The files total about 41 GB. LTX-2.3 uses the LTX-2 community licence (it has conditions); MoGe is MIT.

Output example

This workflow was run on a PC with an RTX 3090. We downloaded the saved output and inspected sampled video frames. It is one prompt and seed, not a general quality benchmark.

Continuous alpine lake push with stable foreground-water / distant-mountain depth order and visible ripples. Scene remains attractive but the ridge silhouette, tree detail and lighting visibly evolve away from the source; depth guidance is not exact geometry preservation. Sampled at one frame per second across full clip. Audio stream verified, not listened.

Audio stream checks confirm technical presence only. We have not verified sound quality, speech accuracy or lip sync by listening.

Input references

James Wheeler · Source licence. Centered 16:9 crop, Lanczos resize to 1280x720, JPEG quality 95. control.mp4: deterministic 10-second FFmpeg slow zoom/pan at 25 fps, 1280x704; anchors extracted at 0, 1.5, 3 and 8 seconds.

Prompt used for this example
Use the provided start image as the first frame. Follow the source control clip's slow forward camera push across this turquoise alpine lake. Preserve the orange-lit mountain ridge, the evergreen shoreline to the right and the small canoes beside the shore. Keep the camera level and match the gradual change in scale from the depth sequence, maintaining the foreground-water and distant-mountain depth order. Small natural ripples move across the reflection; trees and rocks stay rooted. One continuous ten-second shot, no cuts, no new subjects. Quiet lake water and light wind, no dialogue or music.

Observed limits: One fixture does not exercise optional inputs or establish general reliability. Audio stream presence does not establish speech accuracy, sound quality or lip sync.

Inside the First-Last-Frame to Video (LTX-2.3) subgraph: Prompt Enhancement group, Model group with Load Checkpoint, Load LTXV Audio VAE, Load LTXV Audio Text Encoder and Load LoRA, Prompt group with positive and negative CLIP Text Encode, Sampling group with KSampler, Decoding group with LTXVCropGuides and VAE Decode (Tiled), and Settings and Conditioning groups with LTXVImgToVideoInplace, LTXVAddGuide and Get IC-LoRA Parameters
Inside the LTX subgraph. The key part is the Conditioning group at the bottom: LTXVAddGuide takes the depth frames and the IC-LoRA settings, after the first frame is placed by LTXVImgToVideoInplace.

Download and load the workflow

Download workflow (JSON)

Drag the downloaded JSON file onto the ComfyUI canvas to load it.

Install the model files and any custom nodes listed below. If the workflow uses input images, video or audio, select your own files in the input nodes before running it.

Which files go where

PartFileSizeFolder
Checkpoint (video, audio VAE)ltx-2.3-22b-distilled-fp8.safetensors29.53 GBmodels/checkpoints
Text encodergemma_3_12B_it_fp4_mixed.safetensors9.45 GBmodels/text_encoders
IC-LoRA Union Controlltx-2.3-22b-ic-lora-union-control-ref0.5.safetensors0.65 GBmodels/loras
Prompt enhancer LoRAgemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors0.63 GBmodels/loras
Depth modelmoge_2_vitl_normal_fp16.safetensors0.66 GBmodels/geometry_estimation

The total is about 40.92 GB. No repository is gated and no custom node packs are needed. A LoRA is a small add-on file that changes a model's behaviour; an IC-LoRA is one that reads the guide frames you pass in with LTXVAddGuide.

Settings in this workflow

SettingValue
Control videoTrim Video from 0 for 10 seconds
MoGeResolution level 9, batch size 4, auto-resize above 2048 px on, depth output used
Output size and frame rate1280 × 704, 25 fps
Frame countOne frame per depth frame from the control video
KSampler8 steps, CFG 1, euler_ancestral, linear_quadratic, denoise 1
IC-LoRA strength1
GuideLTXVAddGuide frame_idx 0, strength 1
First-frame strength1
Prompt enhanceOff

CFG is how strongly the sampler pushes towards your prompt. The scheduler (linear_quadratic) sets how the noise level falls across the 8 steps.

How to use it

  1. Load your still image in the First Frame group.
  2. Load the clip whose motion you want in the Control Video group, and set the Trim Video start and duration.
  3. Write a prompt that describes the motion, camera and sound, matching the still image.
  4. Check width, height and fps on the LTX subgraph panel.
  5. Run the queue. Save Video uses the prefix video/ltx2.3_ic_lora.

Tips for this build

  • Frame rate: the output has one frame per control frame and plays at 25 fps. If your control clip has a different frame rate, the result runs longer or shorter than the clip.
  • Negative prompt: the one in the Prompt group came from another example and mentions items such as a microphone and cap lettering. Replace it with one that fits your scene.
  • Prompt enhancer: turning prompt_enhance on sends your prompt and the first frame to Generate LTX2 Prompt. It uses the Gemma 3 encoder with a community LoRA from Comfy-Org/ltx-2 that changes how Gemma responds. With it off, as shipped, your prompt goes straight to the standard gemma_3_12B_it_fp4_mixed encoder.

Licence

Lightricks/LTX-2.3-fp8 and Comfy-Org/ltx-2 list the LTX-2 Community License Agreement, and the IC-LoRA repository lists the LTX-2 community licence. It has conditions, so read it before commercial use. The Comfy-Org/MoGe repository lists MIT, which allows commercial use, but the video model's licence still applies to the result. See our licence tracker.

Troubleshooting

ProblemLikely causeFix
MoGe or LTXV nodes are missingComfyUI is out of dateUpdate ComfyUI and restart. The build uses core nodes only.
Load Video or Load Image shows an errorOur example files are not includedLoad your own image and clip.
Out of memory during depth estimationToo many frames per MoGe batchLower inference_batch_size on the MoGe subgraph.
Out of memory during samplingThe control clip gives too many framesShorten the Trim Video duration, or lower width and height.
The motion does not follow the control videoThe IC-LoRA is not loaded or its strength is lowCheck ic_lora and lora_strength (1) on the subgraph panel.

Where to go next

FAQ

Is this a built-in ComfyUI template?

No. It is our build on top of the LTX-2.3: FLF2V template, with the IC-LoRA Union Control and a MoGe depth subgraph added.

Does the output keep the length of my control video?

It keeps the number of frames. The frame count comes from the trimmed control clip, and the result plays at 25 fps.

Can I use the coloured depth view instead?

The MoGe subgraph also outputs a coloured depth view and a mask, but this build sends the plain depth output to the guide.

Sources