For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Contact SalesDeveloper Console
API DocumentationOpen Source ModelAPI Changelog
API DocumentationOpen Source ModelAPI Changelog
  • Getting Started
    • Overview
    • Quick Start
    • System Requirements
  • Integration & Tools
    • ComfyUI
    • LTX-2 ComfyUI Nodes
    • IC-LoRA Adapters
    • Pytorch API
  • LTX-2 Trainer
    • LTX-2 Training
  • Usage Guides
    • LoRA
    • IC-LoRA
    • Prompting Guide
    • Text-to-Video
    • Image-to-Video
  • Advanced Workflows
    • HDR Video (BETA)
    • LipDub (BETA)
    • Two-Stage Distilled
  • Links
    • LTX Discord
    • LTX Models
LogoLogo
Contact SalesDeveloper Console
On this page
  • What You’ll Need
  • ComfyUI Workflow
  • Setup
  • Example Workflow Steps
  • Key Nodes
  • Performance
  • Python Script
  • Setup
  • Single Video
  • Batch Processing
  • Output
  • Options
  • Performance
  • Viewing EXR Files
  • What the EXR Files Contain
  • OCIO-Aware Viewers
  • Importing EXR Files into DaVinci Resolve
  • Configuration Settings
Advanced Workflows

HDR Video (IC-LoRA) Beta

Was this page helpful?
Edit this page
Previous

LipDub (IC-LoRA) Beta

Next
Built with

The HDR IC-LoRA converts standard dynamic range (SDR) video into high dynamic range (HDR) output, producing per-frame EXR files suitable for professional color grading and post-production workflows.

Unlike other IC-LoRA adapters that guide video generation, the HDR IC-LoRA is a post-processing tool. It takes existing video as input and upscales the bit depth to capture significantly more color and luminance information than standard formats.

HDR conversion can be run via a ComfyUI workflow or a standalone Python script.

What You’ll Need

Model: HDR IC-LoRA: https://huggingface.co/Lightricks/LTX-2.3-22b-IC-LoRA-HDR

All files are available in our HuggingFace collection: https://huggingface.co/collections/Lightricks/ltx-23

ComfyUI Workflow

Setup

Files for ComfyUI:

FileDescriptionPlacement
ltx-2.3-22b-dev.safetensorsDev model checkpointComfyUI/models/checkpoints/
ltx-2.3-22b-distilled-lora-384-1.1.safetensorsDistilled LoRAComfyUI/models/loras/
ltx-2.3-22b-ic-lora-hdr-0.9.safetensorsHDR IC-LoRA weightsComfyUI/models/loras/

Steps:

  1. Install ComfyUI-LTXVideo custom nodes (see ComfyUI installation)
  2. Download the HDR IC-LoRA checkpoint (ltx-2.3-22b-ic-lora-hdr-0.9.safetensors) from Lightricks/LTX-2.3-22b-IC-LoRA-HDR
  3. Place in ComfyUI/models/loras/
  4. Download the model checkpoint (ltx-2.3-22b-dev.safetensors) and the distilled LoRA (ltx-2.3-22b-distilled-lora-384-1.1.safetensors) if you don’t already have it
  5. Get a free LTX API key from console.ltx.video. The workflow uses the Gemma API for text encoding
  6. Load the HDR workflow in ComfyUI and enter your API key in the LTX API KEY node

Note: Before launching ComfyUI, you must set the following environment variable to enable EXR file saving:

$export OPENCV_IO_ENABLE_OPENEXR=1

Without this, OpenCV will silently fail to write EXR files.

Example Workflow Steps

  1. Load your source SDR video
  2. The HDR IC-LoRA is applied via the LTX IC-LoRA Loader Model Only node
  3. Text conditioning uses the prompt "HDR footage" with a negative prompt for quality control
  4. Generation runs with CFG 1, euler_ancestral sampler, and 8 inference steps
  5. The LTXVHDRDecodePostprocess node decodes the result into both SDR preview and HDR linear outputs
  6. Save the HDR output as EXR frames

Key Nodes

  • LTX IC-LoRA Loader Model Only — Loads the HDR IC-LoRA checkpoint and applies it to the model. Supports latent downscale for the new generation pipeline.
  • LTXVHDRDecodePostprocess — Decodes and post-processes the HDR output. Produces two outputs:
    • tonemapped — SDR preview suitable for standard displays
    • hdr_linear — Full HDR linear data for EXR export

LTXVHDRDecodePostprocess parameters:

ParameterDescription
exposureAdjusts the SDR tonemapped preview brightness, in stops (±10 EV). Does not affect the HDR linear output.

The workflow includes the GemmaAPITextEncode node for text encoding via Lightricks’ free API, avoiding the VRAM cost of loading Gemma locally. On 32GB GPUs (e.g. RTX 5090), using the API encoder is required to avoid out-of-memory errors.

Performance

GPUVRAMResolutionDurationNotes
RTX 509032GB720x12805sConsumer GPU minimum
H10080GB1080x1920161 frames (~6.7s)~100s inference

Python Script

Setup

$# Install uv (if needed)
$curl -LsSf https://astral.sh/uv/install.sh | sh
$
$# Create venv and install packages
$uv venv --python 3.11
$source .venv/bin/activate
$uv pip install -e packages/ltx-core -e packages/ltx-pipelines -e packages/ltx-trainer

Files for the Python script:

FileDescription
ltx-2.3-22b-distilled.safetensorsDistilled model checkpoint
ltx-2.3-spatial-upscaler-x2-1.1.safetensorsSpatial upscaler (v1.1)
ltx-2.3-22b-ic-lora-hdr-0.9.safetensorsHDR IC-LoRA weights
ltx-2.3-22b-ic-lora-hdr-scene-emb.safetensorsPre-computed text embedding

Single Video

$python run_hdr_ic_lora.py \
> --input ./my_video.mp4 \
> --output-dir ./hdr_output \
> --distilled-checkpoint /path/to/ltx-2.3-22b-distilled.safetensors \
> --upscaler /path/to/ltx-2.3-spatial-upscaler-x2-1.1.safetensors \
> --lora /path/to/ltx-2.3-22b-ic-lora-hdr-0.9.safetensors \
> --text-embeddings ltx-2.3-22b-ic-lora-hdr-scene-emb.safetensors \
> --exr-half \
> --high-quality

Batch Processing

Point --input at a directory of .mp4 files. The pipeline loads once and processes all videos sequentially:

$python run_hdr_ic_lora.py \
> --input ./sdr_videos/ \
> --output-dir ./hdr_output \
> --distilled-checkpoint /path/to/ltx-2.3-22b-distilled.safetensors \
> --upscaler /path/to/ltx-2.3-spatial-upscaler-x2-1.1.safetensors \
> --lora /path/to/ltx-2.3-22b-ic-lora-hdr-0.9.safetensors \
> --text-embeddings ltx-2.3-22b-ic-lora-hdr-scene-emb.safetensors \
> --exr-half \
> --high-quality

A batch shell script (run_hdr_batch.sh) is also provided, which spawns a fresh process per video for better memory isolation.

Output

Each video produces two outputs:

hdr_output/
my_video.mp4 # Tonemapped SDR preview
my_video_exr/ # Per-frame HDR EXR files
frame_00000.exr
frame_00001.exr
...

The EXR frames contain linear scene-referred values in Rec.709/sRGB primaries. Use --skip-mp4 to produce only EXR frames, or --no-save-exr to produce only the MP4 preview.

Options

FlagDefaultDescription
--exr-halfoffSave EXR as float16 — 2.5x smaller files with negligible quality loss
--high-qualityoffDoubles internal frame count to reduce motion artifacts, outputs the original number of frames. Recommended for fast-motion videos; not needed for slow-motion content. ~2x slower.
--skip-mp4offOnly produce EXR frames
--no-save-exroffOnly produce MP4 preview
--seed N10Random seed
--max-frames N161Maximum frames per video. Must satisfy (N-1) % 8 == 0

Performance

Pipeline load is approximately 60 seconds (one-time). Per-video inference times on an H100 80GB:

ResolutionFramesTime
1920x1088161±180s

Viewing EXR Files

Standard image viewers cannot display HDR EXR files correctly.

What the EXR Files Contain

  • Linear scene-referred values in Rec.709/sRGB primaries
  • No tonemapping needed for standard viewing

OCIO-Aware Viewers

In any OCIO-aware viewer (DJV, Nuke, Mari), use the following settings:

SettingValue
InputLinear Rec.709 (sRGB)
DisplaysRGB
ViewUn-tone-mapped
LookNone

DJV is a free, open-source viewer designed for professional image sequences including EXR.

Importing EXR Files into DaVinci Resolve

HDR EXR files require specific project settings in DaVinci Resolve to display correctly.

Configuration Settings

  1. In the General Preferences, enable “use 10-bit precision in viewers if available”.

  2. Open Project Settings → Color Management and set the following:

SettingValue
Color scienceACEScct
ACES versionACES 2.0
ACES Input TransformsRGB (Linear) - CSC
ACES Output TransformRec.2100 ST.2084 (1000 nit)

Leave all other settings at their defaults. Dolby Vision, HDR10+, and HDR Vivid should remain disabled.