Identical corpus + caption format to the character LoRA, plus per-clip Canny edge videos extracted via OpenCV at the source resolution. Canny edges capture composition (where things are) and silhouette (subject outlines) without committing to specific identity or texture.
1python -m ltx_pipelines.ic_lora \
2 --prompt "char_0_person. Framed in a wide eye level shot, on a 24mm wide lens, with natural light. Set in a torch-lit Han dynasty palace courtyard, the subject walks slowly forward. Live-action photorealistic, cinematic Chinese drama." \
3 --negative-prompt "no CGI, no animation, no illustration, no painterly style, no anime" \
4 --lora <path_to>/lora_weights_step_06000.safetensors 1.0 \
5 --video-conditioning <canny_reference>.mp4 1.0 \
6 --width 1280 --height 544 --num-frames 89 \
7 --guidance-scale 4.0 --num-inference-steps 20 \
8 --skip-stage-2
1import cv2
2
3cap = cv2.VideoCapture("source.mp4")
4fps = cap.get(cv2.CAP_PROP_FPS)
5w, h = int(cap.get(3)), int(cap.get(4))
6out = cv2.VideoWriter("canny_ref.mp4", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
7
8while True:
9 ret, frame = cap.read()
10 if not ret:
11 break
12 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
13 gray = cv2.GaussianBlur(gray, (3, 3), 1.0)
14 edges = cv2.Canny(gray, 100, 200)
15 out.write(cv2.cvtColor(edges, cv2.COLOR_GRAY2BGR))
16
17cap.release()
18out.release()
Stack with the character LoRA for identity + composition. Validated stack: char 0.9 + canny 1.0.
Apache 2.0. See LICENSE for terms.