A practical guide for artists

A wider range.
A simple workflow.

Meet RUDRA. Turn existing SDR images and footage into an estimated HDR result, review the reconstruction, and save a master for your next creative step.

DESKTOP BETA 2NO PYTHON TO USE THE APPEXR / HDR VIDEO

What is RUDRA?

SDR stores a limited brightness range. Highlights can flatten and shadows can lose detail. RUDRA combines mathematical brightness expansion with a trained model to estimate a wider-range image.

01 / Your sourceA still, sequence, or movie
→
02 / Your decisionsReconstruct, compare, grade
→
03 / Your masterScene-linear EXR or HDR video
Estimation, not a perfect restoration.Once detail is clipped away, there is no unique original to recover. Some shots benefit more than others. Always compare your source and result.

Choose where to start.

This guide covers the native desktop beta. Python/browser Studio features may differ. Beta 2 includes the existing sdr2hdr_shadow_v1 model, not newly trained weights.

01 / Set up your workspace

Install. Open.
Start creating.

The desktop app includes its model. Choose your operating system; still images need no extra tools.

Download the installer

Get the Beta 2 setup file from the official release.

Windows installer ↓

Install, then open RUDRA

Follow the installer and launch RUDRA from the Start menu. The default install is for your Windows user.

Check the display and model

Use Help → Check the display and the model. A compatible DirectX 12 GPU can accelerate inference; CPU operation is also available.

Prefer a portable app? Download the Windows ZIP, extract the entire folder, then open RUDRA.exe. Keep its supporting files together.

Download the disk image

Mac DMG ↓

Drag RUDRA into Applications

Open the DMG, copy the app, and launch it from Applications. Intel Macs are not supported by this download.

Review the first-run checks

Open Help → Check the display and the model. Mac HDR output and Core ML support still need broader hardware validation.

Beta 2 has no Linux installer. Building the native app requires development tools and is separate from the simple desktop installation.

Read Linux build instructions ↗
About this beta’s installerWindows packages are unsigned and the Mac app is not notarised. Check the official release and follow your organisation’s security policy. SHA-256 files are available beside each download.

Working with movies?

Install FFmpeg and FFprobe separately. The build needs libx265, prores_ks, and zscale. On macOS, the tested family is FFmpeg 6.1; 7 and 9 are not qualified for this beta.

Run rudra-native ffmpeg-check from the app’s command-line tools before a movie job. Windows movie testing remains incomplete. Follow the release-specific setup notes.

Next: your first render →
02 / Learn by doing

Your first
HDR image.

Start with one still image. Use the included model and make a comparison before committing to a full sequence.

Open your source

Use Open to choose a PNG, JPEG, TIFF, WebP, or BMP. Start with the original file where possible; messaging apps often recompress images.

Reconstruct

On Reconstruct, start with the default settings. Compare RUDRA with Baseline, or use Wipe to inspect the difference.

Baseline is the mathematical expansion without the learned reconstruction. It is a useful comparison, not the original SDR view.

Adjust only what your shot needs

Use Residual strength to control the model’s contribution. Try highlight or shadow recovery modes for a focused change. Reduce strength if texture, contrast, or colour looks unnatural.

Grade and inspect

On Grade, adjust region exposure if needed. Use scopes, the probe, and false colour to inspect brightness. Look closely at bright edges, skin, skies, and dark textures.

Save a master

Go to Deliver, choose the render folder and name, select the image or sequence range, and export. Check the destination shown before starting.

Choose the right export →

Read the scopes in plain language.

ScopeWhat it helps you see
WaveformWhere bright and dark areas sit across the image. A value in nits describes brightness.
HistogramHow much of the image occupies each brightness range.
VectorscopeColour direction and saturation. Notice unexpected colour shifts.
False colour / probeIdentify brightness regions and inspect a specific area rather than judging the preview alone.
Your screen and your file are different things.An SDR monitor cannot show the full HDR brightness range. A preview or screenshot is not proof that the exported HDR master is correct. Review the file in a colour-managed HDR workflow.
03 / Deliver your work

A master.
In your folder.

Set the destination before rendering. RUDRA writes to the folder you choose on your computer.

Choose the render folder and name

On Deliver, select your destination and a clear name, such as shot010_hdr. Use a separate folder for each shot or version.

Select the output range

Render a current image first. For a sequence, confirm the loaded frame order and numbering. The current grade is applied to the sequence, so check representative frames.

Choose a format, then export

Open the export options, check the destination and signal description, then select Export. Reopen a result in your finishing application.

Your next stepChooseRemember
Compositing / an ACES pipelineACES 2065-1 EXRScene-linear AP0. Interpret it as ACES 2065-1 in the receiving app.
A linear Rec.2020 pipelineLinear Rec.2020 EXRUse the matching input transform in your grading or compositing tool.
HDR video reviewHDR10, HLG, or ProRes 422 HQRequires a movie input and compatible FFmpeg. Check the exported signal and metadata.
An sRGB web imageFinish in a colour-managed toolTone-map the HDR master to SDR, then encode as sRGB. Do not simply relabel linear HDR as sRGB.

Do not assume the Python/browser Studio’s export or OCIO controls are available in this native beta. Use the formats shown in your installed application.

For moving shotsPlay the whole result, not only a few frames. Frame-by-frame reconstruction does not guarantee temporal consistency. Watch for flicker, unstable grain, and changes around bright edges.
04 / Optional advanced workflow

Train for
your material.

Training is separate from using the desktop app. It creates a candidate model from HDR reference footage. Better results are something to measure, not something to assume.

You do not need to train to use RUDRA.The desktop download already includes a model. Continue here only if you have HDR reference data and want to run a measured experiment.

1. Gather the right dataset.

What you haveWhat to do
Scene-linear EXR / Radiance HDRConfirm colour space and luminance scale. Float values alone do not establish real brightness.
PQ / HLG HDR mastersRecord transfer, primaries, diffuse white, and mastering ceiling. Review the scanner’s interpretation.
Camera logConvert to correctly interpreted scene-linear EXR first using your colour pipeline.
SDR-only JPEGs or videosNot sufficient for this supervised workflow: the HDR target is missing.

The pipeline generates SDR/HDR pairs from your HDR material. Include different scenes, lighting, bright regions, shadows, and textures. Thousands of adjacent frames from one shot do not replace independent scenes.

Keep whole scenes separate between training, validation, and testing. Review scene IDs before training. Reserve an additional independent set for final confirmation, especially after repeated experiments.

How should I organise my files?
my_hdr_dataset/
  scene_001/
    frame_0001.exr
    frame_0002.exr
  scene_002/
    hdr_master.mov
  scene_003/
    frame_0001.exr

This is an organisational example, not a promise that folders alone set the split. Inspect the inventory and generated scene assignments. Keep source, rights, colour-space, scale, and grading-ceiling notes for each scene.

2. Prepare a training environment.

Use the source repository and Python 3.10–3.13; Python 3.12 is a practical choice. The current driver supports NVIDIA CUDA or CPU, not Apple’s MPS backend. CPU training can be very slow. You also need FFmpeg/FFprobe for video sources and disk space for generated pairs.

Clone the release source and enter its folder:

git clone --branch v0.9.0-beta.2 https://github.com/FXTD-Studios/RUDRA.git
cd RUDRA

Create and activate a Python environment. Install a CUDA-enabled PyTorch build matching your GPU and driver using the official PyTorch selector. Then install the project and evaluation dependencies:

python -m pip install -e ".[metrics]" onnx onnxruntime OpenEXR
python -c "import torch; print('CUDA available:', torch.cuda.is_available())"
Show environment commands

Windows PowerShell:

py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1

If your policy prevents activation, invoke .\.venv\Scripts\python.exe in place of python. macOS/Linux:

python3 -m venv .venv
source .venv/bin/activate

3. Preview your training plan.

Choose a new work folder for each experiment. These controls only create commands; they do not start training or upload your data.

Dry run prints the commands; it does not validate footage, GPU, or dependencies. The normal run performs those checks. Step count is a budget, not a quality target.

4. Train, then follow the stages.

1 Scan2 Build pairs3 Split scenes4 Verify data5 Train backbone6 Train shadow gate7 Benchmark

Watch the terminal for the active stage, training step, and validation output. Time depends on the GPU, image sizes, and dataset. If verification fails, fix the data rather than bypassing the checks.

Pause and resume safely

Interrupt with Ctrl+C and keep the work folder. Resume the backbone explicitly with --only backbone; it reloads last.pt when available. A normal rerun can skip training if best.pt already exists, even if the intended step budget was not finished.

After changing or extending the backbone, regenerate the shadow gate and benchmarks; previous downstream outputs are stale. Use a fresh work folder for a changed dataset or new experiment. See the training reference for individual stages.

5. Decide whether the model is better.

Look in your work folder for checkpoints/image/, checkpoints/shadow/, and results.json. Keep the included model until the candidate proves useful.

  • Compare against both the analytic baseline and the shipped model.
  • Evaluate clean and degraded inputs. The driver’s default benchmark covers the hard condition only.
  • Read PU21-PSNR and perceptual scores together; low training loss alone is not approval.
  • Inspect unseen scenes and complete sequences for colour shifts, lost detail, and flicker.
  • Repeated validation tuning is not independent evaluation. Keep a genuinely unseen final set.

6. Try an approved candidate in the app.

The native app loads an exported model package, not a bare checkpoint. Export the candidate you have evaluated:

Use File → Model packages… to add the exported package folder containing manifest.json. Keep the included model available for comparison and review the first-run checks on the target computer.

Dataset and model rights still matter.Check the source-code, dataset, and starting-checkpoint licences separately. Training on your own footage does not automatically remove existing restrictions or grant commercial rights.
05 / Keep moving

A few useful
answers.

The result looks almost unchanged. Is it working?

Some images have little recoverable structure or need little reconstruction. Compare against Baseline, check recovery mode and strength, inspect brightness, and verify the model loaded. A clipped white region does not contain a hidden original image.

My HDR export looks dark or washed out elsewhere.

Check the receiving app’s input colour space and viewing transform. ACES 2065-1 EXR is linear AP0, not sRGB. A PQ or HLG movie also needs the matching interpretation and an appropriate display pipeline.

I see “Torch not compiled with CUDA enabled”.

This concerns the Python training or browser workflow, not the compiled desktop app’s DirectML runtime. Install CUDA-enabled PyTorch in the exact environment running training and verify torch.cuda.is_available().

Can I train on a Mac?

The current driver supports CUDA and CPU. Apple silicon can use the CPU option, but this guide does not promise fast or validated MPS training. The desktop app’s Core ML inference is a separate capability.

Can I use Beta 2 commercially?

The native code uses PolyForm Noncommercial 1.0.0 and the weights have separate non-commercial terms. Review both licences and obtain appropriate permission for uses outside those terms.

Does Beta 2 contain a new model?

No. It retains sdr2hdr_shadow_v1. The beta updates the native application and packaging, including a highlight-grain correction.

The command-line version says 0.1.0.

Beta 2 has a known legacy CLI banner. Check the desktop executable or Mac bundle metadata, which reports 0.9.0-beta.2.

Need a hand?

Include your app version, operating system, GPU, input format, export format, and the exact error. Share a small reproducible example only if you have permission to share the footage.

References

Training guide   /   Research status   /   September 2026 paper   /   Models

The paper predates the later September experiments and Beta 2 packaging. This guide does not claim independent HDR-display or clean-machine certification.