Image-to-Video
English
Chinese
video-generation
lora
ltx-video
dual-character
dialogue
cinematic
chinese-drama
Instructions to use Leon1000/LTX2.3-Dual-Character-en with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Inference
- Notebooks
- Google Colab
- Kaggle
File size: 11,999 Bytes
e986e35 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | ---
license: apache-2.0
base_model:
- Lightricks/LTX-2.3
tags:
- video-generation
- lora
- ltx-video
- dual-character
- dialogue
- cinematic
- chinese-drama
- image-to-video
pipeline_tag: image-to-video
language:
- en
- zh
---
# LTX-Video 2.3 — Dual-Character LoRA (English mirror)
A field-tested **image-to-video character-consistency LoRA** for `Lightricks/LTX-2.3` (22B distilled), tuned for two-character dialogue scenes and multi-shot cinematic video generation.
> ⚠️ **Naming note (corrected 2026-05-21):**
> The original filename and ModelScope repo include the string "IC-LORA", but **this is NOT an IC-LoRA** in the strict technical sense (parallel-canvas / `video_conditioning` mechanism). An A/B/C test (same prompt + seed, three reference-channel variants) confirmed that the LoRA's actual conditioning mechanism is **first-frame pixel pinning** (the regular i2v path), not parallel-canvas attention. Earlier copy on this card incorrectly described it as IC-LoRA — that has been removed. Credit to ZKong for raising the discrepancy in the discussions tab.
---
## Example renders
Episode is an 8-shot Chinese palace drama (《玉佩定情》 + 《暗夜阴谋》) with three characters: 沈月华 (Shen Yuehua, heroine), 萧云霄 (Xiao Yunxiao, prince), 慕容静 (Murong Jing, antagonist). Render config: 1280×704, 121 frames @ 24 fps, ambient audio.
### Single-character identity — Shen Yuehua walking in the garden, picks up a jade pendant
<video controls autoplay muted loop src="https://huggingface.co/SyFeee/LTX2.3-Dual-Character-en/resolve/main/examples/E1S1_garden_walk_single_character.mp4"></video>
### Dual-character dialogue — Shen + Xiao meet (the LoRA's signature use case)
<video controls autoplay muted loop src="https://huggingface.co/SyFeee/LTX2.3-Dual-Character-en/resolve/main/examples/E1S2_prince_meets_dual_character.mp4"></video>
### Cross-scene identity — Murong Jing in a different location (palace night chamber)
<video controls autoplay muted loop src="https://huggingface.co/SyFeee/LTX2.3-Dual-Character-en/resolve/main/examples/E2S1_murong_plots_cross_scene.mp4"></video>
### Three-character composition — the LoRA's upper limit
<video controls autoplay muted loop src="https://huggingface.co/SyFeee/LTX2.3-Dual-Character-en/resolve/main/examples/E2S4_three_character_confrontation.mp4"></video>
---
## What this LoRA does
Fine-tuned on `Lightricks/LTX-2.3` (22B distilled), specifically for:
1. **Two-character dialogue scenes** — significantly reduces character drift when two people appear in the same frame
2. **Cinematic shot composition** — reinforced for dialogue-driven framing (close-up ↔ medium ↔ wide)
3. **Multi-shot narrative continuity** — better understanding of multi-segment prompts (storyboard-style descriptions)
4. **Style compatibility** — works well across 古风仙侠 (ancient Chinese fantasy), 现代都市 (modern urban), and 3D 动漫 styles
The reference image is consumed via **first-frame pixel pin** (standard i2v conditioning), not via the parallel-canvas / `video_conditioning` channel.
---
## How to use (correct pattern)
### Single-character shot
```python
# Upstream LTX-2.3 distilled pipeline — single reference as first-frame pin
from ltx_pipelines.distilled import DistilledPipeline
from ltx_pipelines.utils.args import ImageConditioningInput
from ltx_core.loader import LoraPathStrengthAndSDOps, sd_ops as _sd_ops_mod
import torch
lora = LoraPathStrengthAndSDOps(
"LTX2.3-IC-LORA-Dual-Character.safetensors",
0.8, # strength (standalone)
_sd_ops_mod.LTXV_LORA_COMFY_RENAMING_MAP,
)
pipe = DistilledPipeline(
distilled_checkpoint_path="ltx-2.3-22b-distilled-1.1.safetensors",
spatial_upsampler_path="ltx-2.3-spatial-upscaler-x2-1.1.safetensors",
gemma_root="google/gemma-3-12b-it-qat-q4_0-unquantized",
loras=[lora],
device=torch.device("cuda:0"),
)
video, audio = pipe(
prompt="...",
seed=42,
height=704, width=1280,
num_frames=121, # 5 s @ 24 fps, satisfies 8k+1
frame_rate=24,
images=[ImageConditioningInput( # first-frame pin = THE reference mechanism
path="character_ref.png",
frame_idx=0,
strength=0.9,
)],
enhance_prompt=False,
)
```
### Dual-character shot
LTX's i2v pin rejects two pins at the same `frame_idx`, so two refs can't both be pinned at frame 0. Two workable patterns:
**Pattern A (recommended): composite reference image.** Build one image with character A on the left and character B on the right (e.g., via PIL `Image.paste` or any image editor), pin THAT at `frame_idx=0`. Both identities transfer in one pin.
**Pattern B: stagger the pins.** Pin character A at frame 0, character B at a later latent boundary (e.g., frame 64 — must be a multiple of 8 per the VAE's temporal compression). Only works if B doesn't need to be visible from the very first frame.
### Recommended parameters
| Setting | Value |
|---|---|
| Resolution | 1280 × 704 (16:9, native LTX-2.3 distilled training resolution) |
| Faster preview | 960 × 544 (~40% faster, slightly less detail) |
| Frames | satisfy 8k+1 — e.g. 121 (5 s), 193 (8 s), 241 (10 s), 361 (15 s) at 24 fps |
| Strength | Standalone 0.7-0.9 · stacked with style LoRAs 0.3-0.5 |
| Pin strength | 0.85-0.95 for tight identity, 0.7 for looser "inspired-by" |
| Trigger word | None |
---
## Field-tested production tips
Quirks of this LoRA + the LTX-2.3 distilled backbone that aren't in the original card but matter in practice.
### 1. Repeat color tokens for dark-clothed characters
This LoRA has a light-wuxia-robe bias. Dark outfits drift toward white at low pin strength. **Repeat the color token glued to each clothing noun**:
```text
BAD: black fedora and black suit
GOOD: BLACK fedora, white shirt, BLACK suit jacket, BLACK trousers,
... BLACK suit, BLACK trousers throughout
```
Also bump pin strength to ~0.95 for color fidelity on dark outfits.
### 2. **Never use quoted dialogue in prompts**
This LoRA was trained on Chinese drama clips with burned-in Chinese subtitles. **Any quoted dialogue (`「…」` or `"…"`) in the prompt causes the LoRA to hallucinate subtitle characters at the bottom of the frame.** Single biggest gotcha.
```text
BAD: 低声警告 「此茶不可饮!」 ← fake on-screen subtitles
GOOD: 低声急切警告她茶水有毒 ← clean output, indirect narration
```
If your app needs subtitles, burn them post-hoc via `ffmpeg drawtext`.
### 3. Avoid "object detaches" prompts during action
At high motion intensity, the model loses object tracking. A directive like "fedora flies off mid-spin and tumbles to the floor" produces broken output — the hat dematerialises. Either:
- Keep the object attached and say so explicitly ("the fedora STAYS ON his head throughout the spin")
- Or render attach + detach as two clips and concat
### 4. Cross-shot identity drift
For multi-shot dialogue scenes, character identity drifts across cuts. Workaround: re-pin the reference image at frame 0 of every shot. (Deterministic seed + same first-frame pin + same prompt scaffolding produces good repeatability.)
### Render performance
- **Resolution:** 1280 × 704, 121 frames @ 24 fps (~5 s output)
- **Hardware:** NVIDIA A800 80 GB → ~70 s per shot
- **Output:** mp4 with ambient audio track (no TTS)
On consumer hardware (RTX 4090 24 GB), expect ~3-4 minutes per shot.
---
## Limitations
1. **Subtitle hallucination** with quoted dialogue (see tip #2)
2. **Complex physical interactions** (wrestling, hugging, intricate hand-on-hand) can deform
3. **Tail-frame artifact** of LTX-2.3 — last 6-8 frames may smear; trim post-hoc if needed
4. **Action complexity ceiling** — the 8-step distilled budget caps motion complexity at action peaks
5. **Portrait orientation** degrades identity (LoRA trained on landscape only)
6. **Dual-character via two separate refs is awkward** (see "How to use" above) — composite-image pin is the cleanest workaround
---
## Original Chinese README (preserved)
The original Chinese model card from ModelScope is reproduced below for users who want the unmodified original documentation. (Note: the original card uses the "IC-LoRA" label — the term has been kept here for fidelity, even though the A/B/C test described above shows the conditioning mechanism is first-frame i2v pinning rather than parallel-canvas IC-LoRA.)
<details>
<summary>点击展开原版中文模型卡片 (click to expand original Chinese README)</summary>
### LTX-Video (2.3) IC-LoRA: 双人分镜头对话增强模型
本模型是基于 Lightricks LTX-2.3 底模训练的 IC-LoRA,专为双人同框对话、角色互动及分镜头视频生成场景深度优化。
**一、模型核心提升**
1. 角色参考稳定性:显著提升双人同框时的人物特征一致性,减少角色漂移。
2. 分镜构图稳定性:针对影视化对话构图进行了加固,支持更精准的镜头控制。
3. 叙事连贯性:增强了对多段描述的理解力,使分镜间的过渡衔接更自然。
4. 风格兼容性:完美支持古风仙侠、现代都市、3D 动漫等主流视觉风格。
**二、模型基本信息**
1. 基础模型:Lightricks/LTX-2.3
2. 许可证:Apache-2.0
3. 管道标签:image-to-video, text-to-video
4. 模型用途:仅供学习交流使用
5. 开发者:麻雀 AI
**三、运行指南**
1. 推荐平台:ComfyUI
2. 支持工作流:ComfyUI 官方 LTX 工作流、KJ-LTX 插件工作流
3. 生成模式:文生视频 (T2V) 与 图生视频 (I2V) 均支持
4. 硬件参考:RTX 5090 显卡在 720P 分辨率下,单条视频生成耗时约 2 分钟
**四、推荐参数配置**
1. 分辨率:建议使用 16:9 (如 1280x720)
2. 时长与帧率:建议时长 ≥10 秒,帧率设定为 24 FPS
3. LoRA 权重设定:
- 独立使用建议:0.6 - 1.0
- 叠加其他 LoRA 使用时建议:0.3 - 0.5
**五、Prompt 编写规范**
1. 编写逻辑:需包含完整的场景描述 + 角色设定 + 分镜设计 + 镜头语言,强化双人对话互动逻辑。
2. 触发词说明:无需特定触发词。
**六、效果说明与局限性**
1. 优势风格:在古风、现代、3D 动漫类双人对话场景中表现最佳。
2. 已知限制:受限于 LTX-2.3 底模性能,极其复杂的双人肢体互动(如缠绕、打斗)可能出现形变。
3. 运动幅度:建议以对话和微动作为主,大动态动作的连贯性仍有提升空间。
</details>
---
## Hardware requirements
| GPU | VRAM | Works? |
|---|---|---|
| A100 / A800 80 GB | 80 GB | ✅ ~70 s per 5 s shot |
| RTX 4090 / 3090 | 24 GB | ✅ ~3-4 min per 5 s shot |
| RTX 4080 / 4070 Ti Super | 16 GB | ❌ won't fit 22B in bf16 |
| anything < 24 GB | — | ❌ no |
---
## Acknowledgements
- **麻雀 AI (Maque AI)** — original author of this LoRA, [original ModelScope repository](https://www.modelscope.cn/models/fxj1131/LTX2.3-IC-LORA-Dual-Character)
- **[Lightricks](https://www.lightricks.com/)** — for the LTX-Video 2.3 base model
- **ZKong** — for catching the IC-LoRA labeling discrepancy in the discussion thread; the empirical A/B/C test ran in response settled it
---
## Source attribution
> This is an English-language mirror of [fxj1131's LTX2.3 Dual-Character LoRA on ModelScope](https://www.modelscope.cn/models/fxj1131/LTX2.3-IC-LORA-Dual-Character).
> All credit for the model weights belongs to the original author, **麻雀 AI (Maque AI)**.
> This mirror exists to make the model + documentation accessible to HuggingFace users who cannot easily access ModelScope, and to share field-tested usage notes from a production deployment.
> **The `.safetensors` weights file is unmodified and byte-identical to the ModelScope upload.**
---
## License
Apache License 2.0 — same as the original. See `LICENSE` and `NOTICE`.
|