- This adds water to footage you already shot, holding identity, clothing, pose, framing and background geometry fixed. It needs a dry reference clip at 24 fps, at least as long as your output, at full resolution, and it has no mask support.
- Prompt in the dual-panel format with the literal
ADD WATERtrigger. The general LTX prompting advice does not apply; this adapter has its own trained format. - Run distilled stage 1 only at native resolution. The two-stage path drifts identity because reference conditioning applies only in stage 1, and lowering strength does not fix it.
Adding water to a shot used to mean simulating it. Now there is a third option between a fluid solver and generating the shot from scratch: take the plate you already filmed and re-render it wet.
The LTX-2.3 22B IC-LoRA Water Simulation adds rivers, surf, rain, waterfalls, floods, splashes, spray and wet-surface specularities to an existing clip, while keeping the subject's identity, clothing, pose, camera framing and background geometry identical to what you shot.
That is the whole proposition. Your camera move stays your camera move. The actor stays the actor. The water is the only thing that changes.
What it actually does
This is an IC-LoRA, an in-context LoRA trained on paired reference and target video rather than on a style. It conditions on a "dry" reference clip and predicts the same shot with water added.
The training data explains why it behaves the way it does. Roughly 572 paired examples, where the target is an original clip with real water in it, and the reference is that same clip with the water digitally removed, frame-matched for exact parity. The model learned to put real water back into scenes it had been taken out of.
Sixty-one of those pairs are identity pairs, where reference and target are the same clip with no water added at all. Those teach it to leave a scene alone and preserve the subject, which is why framing and identity survive the pass.
What you need to feed it
The control signal is a dry reference video. No preprocessing, no depth pass, no pose extraction. The clip is VAE-encoded directly and used as the conditioning.
Three requirements on that clip, and all three are hard.
It must be 24 fps. The model conditions on the first F frames with no resampling, so a 30 fps plate will not silently work.
It must be at least F frames long, where F is your output frame count. A reference shorter than the output is the most common setup failure.
The reference runs at 1x the output resolution, not downscaled. Unlike most IC-LoRA workflows, where the reference is processed at half resolution to save tokens, this one processes it at full size. Budget memory accordingly.
There is no mask support. The effect applies to the whole frame, so if you need water in one region only, that is a comp problem rather than a generation parameter.
The prompt format is not optional
This LoRA was trained on a specific dual-panel caption structure, and it expects prompts in that structure. It also expects a literal trigger phrase.
The template:
Reference shows <the dry scene>. Edited shows the same scene with water added.
ADD WATER <vivid description of the water: type, motion, how it interacts with the subject>.
Subject identity, clothing, framing, and background geometry are identical to the
reference; only water-related elements differ between reference and edited.
ADD WATER goes in every prompt, in capitals, as written. It is a trigger, not a description.
A worked example from the published samples: "Reference shows a brown rabbit sitting on mossy rocks. Edited shows the same scene with water added. ADD WATER a fast-flowing river with white foam rushing over and around the rocks behind the rabbit. Subject identity, clothing, framing, and background geometry are identical to the reference; only water-related elements differ between reference and edited."
Be concrete in the middle section. "A clear shallow stream braiding around their legs with white foam crests" gives the model more to work with than "a river." The amount and drama of the water scales with both your wording and the LoRA strength, so the two levers compound.
Note what this does to the usual prompting advice. The general LTX prompting guidance about chronological single-paragraph descriptions does not apply here. This adapter has its own format and you follow it literally.
The setting that decides whether it works
This is the most important paragraph on the page, and it is counterintuitive.
Run the distilled stage 1 only, at your native output resolution. Do not use the two-stage path for identity-critical clips.
The reason is structural. The two-stage distilled pipeline applies the reference conditioning only in stage 1. The stage-2 upscaler then refines from the prompt alone, which drifts the subject's identity. If you force the dry reference into stage 2 instead, it erases the water you just added.
Lowering the LoRA strength does not fix this. The cause is architectural, not a tuning problem.
Generating stage 1 at native resolution keeps both the identity and the water, and it matches the regime the adapter was trained under. This is the single detail most likely to separate a usable result from a frustrating afternoon.
Getting the strength right
Start at 1.0 and adjust to taste. The documentation names 1.2 as the best all-round value, while the strength guide describes 1.0 to 1.05 as the natural, identity-safe range. Treat anything in that band as a reasonable opening position and tune against your own plate.
Above that, the trade becomes explicit. Between 1.1 and 1.5 is where hard surface replacement lives, turning ground into sea. Around 1.25 to 1.45 gives maximum drama for tsunamis and full floods, with a higher risk of identity drift.
At 1.5 and above you maximise water drama and start warping faces and fine detail. If features are distorting, lower the strength before you change anything else.
The rest of the settings
Base checkpoint is ltx-2.3-22b-distilled. The adapter was trained on the dev base but inference is recommended on distilled.
Guidance is 1.0, which is the distilled path: no negative prompt, no STG.
Resolution is 1920x1088 landscape or 1088x1920 portrait at 24 fps. That 1088 is not a typo. The Video VAE compresses 32x spatially, so both dimensions must be divisible by 32, and 1080 is not.
Frame count must satisfy (F-1) % 8 == 0, which gives you 121, 153, 169 and 185. At 24 fps that caps you at roughly 7.7 seconds per pass.
Seed is free. The published samples used 1212.
Running it
In ComfyUI, copy ltx-2.3-22b-ic-lora-water-simulation-0.9.safetensors into models/loras, load the LTX-2.3-22B base, and add it as the LoRA. Then use the V2V IC-LoRA single-stage distilled workflow from the LTX ComfyUI repository, which already wires the reference-video control nodes. Connect your dry clip as the reference and include the trigger.
The IC-LoRA walkthrough covers the general workflow, and the LoRA adapters guide covers loading adapters on the Python pipelines.
If you would rather render on the dev base through the trainer sampler, the published validation regime was guidance scale 2.5, 20 inference steps, stg_mode stg_v, stg_blocks [29], stg_scale 1.0, at 960x544, with a negative prompt targeting deformed water, frozen water, morphing faces and shifting features.
What it will not do
Trained on real water, it generalises to other liquids only loosely. Lava, slime and paint will produce something, but results vary and you should not plan a shot around it.
It has no mask support, so region-limited effects are a comp task.
And it is bounded by the reference. This is a video-to-video adapter, so it cannot invent a shot. If you do not have a plate, you are in text-to-video territory and this is the wrong tool.
When you still need a solver
A fluid solver in Houdini, Blender or Cinema 4D gives you a directable, physically parameterised volume. You can dial viscosity, change collision geometry, re-time the sim, and render at any resolution from any angle.
That remains irreplaceable when the water has to hit a specific mark on a specific frame, or interact with 3D geometry already in your scene.
This adapter gives you a finished look in one pass, directed by a prompt and a reference rather than a parameter set. The practical division most VFX teams land on: use the adapter for plates where the water is environmental and the performance is what matters, and reach for the solver when the water is the performance.
A note on LTX-2.5
This adapter is published against LTX-2.3, and its recommended settings are LTX-2.3 settings.
LTX's own model card states that the large majority of LoRAs and IC-LoRAs trained on LTX-2.3 run on LTX-2.5 without changes, with a small number of exceptions to validate before production. That makes testing it on 2.5 reasonable, but the documented recipe here, the distilled base, the stage-1-only regime, the strength band, was established on 2.3.
If you need this to work today on a deadline, run it as documented on LTX-2.3. If you are exploring, test it on LTX-2.5 and validate identity preservation specifically, since that is the property most likely to shift.
Training your own
If your water need is more specific than this adapter covers, the recipe is published and reproducible.
It is a rank 128, alpha 128 IC-LoRA with 0.05 dropout on the DiT transformer, targeting attn1.to_q, attn1.to_k, attn1.to_v, attn1.to_out.0, ff.net.0.proj and ff.net.2. Trained in bf16 with AdamW at a 1.5e-4 learning rate on a cosine schedule, with reference conditioning at p=1.0 and first-frame conditioning at p=0.15.
Roughly 453M trainable parameters, 3,000 steps at 960x544 on 97 to 121 frames, across 8 NVIDIA H100s in about four and a half hours.
The same LTX Trainer produced it, and LoRA training covers the wider process. The community library carries other IC-LoRAs worth checking before you train your own.
Summary
The Water Simulation IC-LoRA re-renders an existing clip with water added, holding subject identity, clothing, pose, camera framing and background geometry fixed.
Feed it a dry reference clip at 24 fps with at least as many frames as your output, processed at full output resolution, with no mask support.
Prompt in the dual-panel format with the literal ADD WATER trigger, and be concrete about the water.
Run distilled stage 1 only at native resolution. The two-stage path drifts identity because the reference conditioning applies only in stage 1, and lowering strength will not fix it.
Start strength around 1.0, push toward 1.2 for all-round results and higher for full surface replacement, and back off before 1.5 where faces begin to warp.
Frame counts satisfy (F-1) % 8 == 0 at 1920x1088 or 1088x1920, capping a pass at about 7.7 seconds.
Got a dry plate? Pull the adapter and run the rabbit-and-river prompt against it before you write your own.
