Skip to content

Releases: criso2hd-alt/DLSS5-Image-Converter

v0.3.1: Cyrillic paths, Base/Large downloads, point-cloud reveal, video autoplay

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 08 Sep 20:23
d8dfd74

What's new in 0.3.1

Fixes

  • Non-English / Cyrillic folder paths now work. If the app or your photo sat under a folder with non-Latin characters, it refused to load or crashed on the depth plane. Fixed.
  • Switching the depth model no longer errors (the "ensure_downloaded" crash).
  • Cleaner controls: Extra sharpness only shows under Boost, Amount greys out when Detail is Off, and Live preview turns off properly.
  • "Find my files" now copies the whole Streamline set (sl.*.dll), a common cause of setups that would not hook.

New

  • Base and Large depth models download on demand (verified fp16). Small still ships built in.
  • Depth model choice moved to the main panel. Neural strengths now start at max, so the effect is obvious out of the box; dial down to taste.
  • New point-cloud loading animation: your shot rebuilds as a 3D depth point cloud while it processes, then lands into the result. Also in the style-compare panes.
  • Videos auto-play once loaded, so a loaded video shows motion instead of a black frame.
  • New first-run intro showing real DLSS 5 off vs on.

Notes

  • The Depth Contrast slider was removed. Testing showed it does not change a still image's output (DLSS only uses depth when there is motion). Depth is being put to work in video next.
  • You still bring your own DLSS 5 files into dlss_files\. Nothing from NVIDIA ships with the app. If setup gives you trouble, use the required-files pack and follow the steps.

v0.3.0 — no more PyTorch download, DirectML GPU, easier setup

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 08 Sep 05:47

The big one: no more 2.7 GB PyTorch download. Depth now runs on ONNX Runtime with the model bundled, so the app starts and works out of the box — and the first-run "unpacking" freeze is gone.

Highlights

  • No PyTorch, no download. Depth Anything V2 Small ships inside the app (Apache-2.0). Fixes the unpack/freeze reported in #3 and #7.
  • GPU via DirectML. Runs on any DirectX 12 GPU (NVIDIA/AMD/Intel) through the driver you already have — no CUDA toolkit. The whole app is ~0.5 GB.
  • Easier, more honest setup. The app now stages the whole Streamline runtime (not just nvngx_dlss.dll), "Check runtime" picks up file changes without a restart, and onboarding tells you clearly when the neural pass did not load instead of dropping you into the tour as if it worked.
  • Clearer controls. Style now offers Default / Natural / Cinematic (matching the add-on); Boost is plain "Extra sharpness" and can no longer be set past the GPU's texture limit; saved files are tagged with the style (_natural / _cinematic / _default).
  • Better diagnostics. A failed runtime check now names the first broken link (ReShade → add-on → neural module) in plain language.

Setup

Put your own DLSS 5 files in dlss_files\ (see the READ ME there). None of NVIDIA's or ReShade's binaries ship with this app.

Notes

  • This is a GPU depth build; on a machine with no supported GPU it falls back to CPU.
  • The native DLSS path still needs your own runtime files — the app does not distribute them.

🤖 Generated with Claude Code

Depth models (fp16 ONNX)

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 08 Sep 13:03
2a3b05f

Optional Depth Anything V2 depth models for the DLSS 5 Image & Video Converter, exported to fp16 ONNX. The app downloads these on demand when you pick Base or Large in the sidebar; Small ships bundled. Base and Large are CC-BY-NC 4.0 (non-commercial), which is why they are a separate opt-in download rather than bundled in the release zip.

v0.2.1 — first-run unpack freeze, zip extraction, AutoImageProcessor, HDR panel

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 07 Sep 15:47
0f138c5

Bug-fix release for the issues reported after v0.2.0.

Fixes

  • First run no longer freezes/crashes at the end of "unpacking" PyTorch. The CUDA torch tree has paths past Windows' 260-character limit; the unpack now handles them (via the extended-length path prefix), so it works without you enabling long paths in Windows.
  • The portable zip now extracts with Windows' built-in unzip. It previously carried license files nested deep enough to trip "Error 0x80010135: Path too long" in Explorer. Those are stripped from the download now.
  • "cannot import name 'AutoImageProcessor'" conversion crash fixed. The app now imports the depth model's processor in a way that survives the packaged build.
  • HDR / display panel is back in the main window (in the Single-image sidebar, under Detail), instead of being buried in Settings.
  • Dropdowns (Max size, Supersample) now show their arrow in the dark theme, so you can tell they're pickers.
  • README clarified: put your DLSS files in dlss_files\ only — the app copies what it needs into engine\ automatically. You never fill in both folders, and dlss5_eval.exe stays in engine\.

Note on "passes / styles / HDR look the same"

Those settings are correctly applied to the neural pass. On already-clean content the difference is genuinely subtle — click Difference to see what actually changed. This was not a bug in the pipeline.

Install

Unzip anywhere (Explorer is fine now) and run DLSS5Converter.exe. First launch downloads PyTorch (~1.8 GB) and a depth model once. You still bring your own DLSS 5 files — see dlss_files\READ ME FIRST.txt. Some antivirus may flag the PyInstaller build; see SECURITY.md.

v0.2.0 — new look, guided first run, and the startup freeze fixed

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 07 Sep 07:08
16cc805

What's new

A redesigned interface. A command bar with your GPU and live VRAM, a full-width tab band, grouped instrument-style cards, chip and segmented controls, and the app's own bundled fonts — it finally looks like the tool it is rather than a stock window.

A guided first run. The app locates your DLSS files, then walks you through your first conversion with a short spotlight tour of the real controls, so you can go from a fresh install to a finished image without hunting for anything.

On-image controls, out of your way. The view switch, the before/after divider grip, the SOURCE / DLSS pills and the resolution readout now live on the image and fade in only while your mouse is over it — a clean picture while you judge it, every control the moment you reach for one.

The startup freeze is fixed. The "Checking DLSS 5" step used to hang for some people until they force-quit the app. That check now runs in the background with a watchdog that can't hold up the app or trap you: first run goes straight to the tutorial, and Settings → Check runtime is cancellable.

262 automated tests pass.


Portable build below — unzip and run DLSS5Converter.exe. You still bring your own DLSS 5 files (dlss_files\READ ME FIRST.txt explains what and where). Windows SmartScreen or some antivirus may flag the PyInstaller executable as a false positive; see SECURITY.md.

v0.1.23 — Video, with audio (now DLSS 5 Image & Video Converter)

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 03 Sep 19:14

The big one: video conversion, with audio. Plus a stronger default and a fistful of fixes.

Video

A full Video tab, between Single image and Image sequence, sharing the same sidebar.

  • Scrub and play the clip with sound before you convert.
  • In/Out range on the timeline — drag the brackets, scroll to zoom the timeline for a frame-precise trim. The audio is trimmed to match, so a 1.5-second selection is 1.5 seconds of picture and sound, in sync.
  • H.264/MP4 by default, hardware-encoded (NVENC) — the format every editor takes. H.265 and VP9/WebM also available.
  • Audio carried across, and an explicit Output picker.
  • Fast: the neural pass is ~0.1s a frame, so a 10-second clip is under a minute. Quick (1 pass) or Quality (4 passes).

Each frame is converted independently, so it stays stable — no added flicker. Video support (~28 MB) downloads on first use of the tab, like PyTorch.

Stronger default

Intensity, Skin, Local Tone and Structure now start at 1.0 instead of the old gentle ~0.5. The effect is visible out of the box; push toward 2.0 or pull back as you like. "It does nothing" was almost always the defaults being too soft on already-photographic content.

Better result view

  • The result is shown at full resolution — zoom in and you see real pore/weave/reflection detail, not a magnified preview. It stays sharp when idle and only softens while a colour slider is moving.
  • Before/After labels are pinned to the frame corners with a shadow, staying put when you zoom past the edges.

Fixes

  • The video crash is gone. Converting a video could crash to desktop — a threading fault in the component download. The crash log added last release pinned it exactly.
  • Video conversion couldn't silently drop single-image quality any more: the video Effort setting no longer leaks into the sidebar pass count.
  • Video falls back to CPU encoding if the GPU encoder can't run, instead of failing.
  • A finished video now shows a "conversion complete" dialog with Open folder.
  • Any crash now writes a crash.log next to the app.

New to the project? There's an illustrated tour of every feature in the wiki.


Windows Security warning (false positive)

Windows Defender may flag this as Trojan:Win32/Wacatac.C!ml. It is a false
positive — the !ml suffix is Defender's machine-learning guess, not a real
signature match, and it is the most common false flag for unsigned PyInstaller
apps like this one. A VirusTotal scan shows the file clean across the other
engines. It is safe to choose Allow on device; see the
wiki
for the full explanation.

Verify your download matches the file published here (Get-FileHash):

zip  SHA-256: 42a148cf4a55e67e5b6f5feb276a4b97093d37313adf8865acb1ab64f85a9e4a
exe  SHA-256: 8852b8f3bc0f720fbf557b97467c19ebe591ce4d9e5c7f054c7c522c47cc5acc

v0.1.22 — full-resolution result view

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 03 Sep 17:13

The result view now shows your image at full resolution. Zoom in and you see the real output — pores, fabric weave, reflections — instead of a magnified low-res preview.

What changed

The comparison was drawn from a 1200px preview, so zooming in only magnified blur and you couldn't actually check the fine detail this tool adds. That preview size was there for a reason — grading a 4K frame live takes about 1.5 seconds, 8K about six — so it wasn't a lazy choice, just the wrong trade-off for inspection.

Now the view holds the full image whenever it's sitting still, and only drops to the fast preview while you're actually dragging a colour slider, snapping back to full resolution the instant you let go. What you inspect is graded exactly the way the saved file is.

Your zoom is held through all of this — through the slider drag, and through a live-preview re-convert — so you can zoom into a face, adjust intensity, and stay right there to compare instead of being bounced back to fit every time.

Thanks to paraDiXson for the clear report that pinned this down.


Everything from v0.1.21 is here, including the video crash fix.

v0.1.21 — the video crash, fixed

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 03 Sep 16:59

The video crash is fixed. If converting a video crashed the app for you, this is the one.

What was happening

Downloading the video component ran its progress updates on a background thread, then reached across to update the on-screen progress bar from there. Touching the interface from a background thread is not allowed — it worked on some machines and hard-crashed others, which is why it was so hard to pin down.

The crash log added in v0.1.20 is what caught it: it pointed at the exact five lines, on the exact thread. Thanks to everyone who sent one in — that turned "it crashes to desktop" into a five-minute fix. The progress updates now run on the interface thread where they belong.

(For the record, it was the ~28 MB video component downloading, not PyTorch — the two look the same on screen.)

Also in v0.1.20, if you skipped it

  • Video falls back to CPU encoding when your GPU's hardware encoder can't run (a driver, a laptop's graphics switch, another app already using it). Before, that could fail the whole conversion.
  • Crashes now write a crash.log next to the app and tell you where it is — so any future crash is a real report instead of a shrug.

Everything from v0.1.19's video feature is here and working: H.264/MP4 with audio, hardware-encoded, editor-ready.

v0.1.20 — video crash fix, and crashes that finally leave a trace

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 03 Sep 16:46

A crash fix and, more importantly, an end to silent crashes.

Video conversion no longer dies when NVENC can't run

A real bug behind "it crashes when I convert a video." The app encodes with your GPU (NVENC) by default, and the fall-back to the CPU encoder (libx264) never actually happened — NVENC's stream setup succeeds and it only fails on the first frame, past where the fallback was checked. So anything that stops NVENC from running — a driver, a laptop's graphics switch, another app already using every NVENC session, or an unusual frame size — took the whole conversion down instead of quietly switching to the CPU.

Encoders are now tested for real before use. NVENC is still used whenever it works (which is almost always, since DLSS needs an RTX card); libx264 takes over cleanly when it doesn't.

Crashes now leave a trace

The bigger fix. A windowed app has no console, and this one sends its error output to nowhere, so any crash — Python or a native one from a bad library — ended the app in total silence. Every report was "it crashed to desktop," with nothing to work from.

Now any crash writes a crash.log beside the app, and a dialog tells you where it is. It captures native faults too (the kind a misbehaving video library causes), which nothing else would have caught. If anything still crashes, that file is what turns "it crashed" into a fixable report — please attach it.

For anyone who hit the video crash

Run this from a terminal in the app folder and send me the output plus crash.log:

DLSS5Converter.exe --selftest --with-video 2> report.txt

It downloads the video component and converts a test clip in the exact setup the app ships as, so it reproduces the problem where I can see it.


Everything from v0.1.19 is here.

v0.1.19 — Video, with audio

Choose a tag to compare

@criso2hd-alt criso2hd-alt released this 03 Sep 16:01

The one people kept asking for: convert a video, audio and all.

Video tab

Between Single image and Image sequence, sharing the same sidebar — the neural strengths, style and colour all mean the same thing on a frame of video. Drop a clip, pick a codec, convert.

A video is not run like a game. Each frame is an independent single-image conversion, with DLSS's history reset between frames, so nothing smears from one frame into the next. That independence is what keeps it stable: a Blender test render measured −4% frame-to-frame change versus the source — the neural pass adds no flicker.

Output that editors actually take

H.264/MP4 by default, hardware-encoded on your GPU (NVENC). It is the one format every editor and player ingests, and hardware encoding is free because DLSS already needs an RTX card.

  • H.265/MP4 — smaller files, modern editors
  • VP9/WebM — offered, but for web upload only. Editors (Premiere, Resolve, After Effects, Final Cut) do not import WebM cleanly, so it is not the default

Audio is carried across — copied from the source unchanged and muxed back in, so the clip keeps its sound and stays in sync. A silent source gives a silent output.

Fast

The neural pass is about 0.1 seconds a frame, and NVENC encoding is near-instant. A 10-second clip converts in well under a minute.

Two controls shape it:

  • EffortQuick (1 pass) or Quality (4 passes). On footage that already looks clean, Quick is usually indistinguishable and much faster.
  • Range — convert the first few seconds to check the look before committing to the whole clip.

There is also an Estimate depth per frame toggle, off by default and labelled honestly: DLSS does not read the depth plane on a still frame, so it changes nothing in the output and is by far the slowest step. It is there only for parity with the photo path.

Downloaded, not bundled

Video support (PyAV, ~28 MB — a full FFmpeg with H.264, H.265, NVENC and AAC) downloads on first use of the tab, exactly like PyTorch does on first launch. Nothing is added to the base app.


Everything from v0.1.18 is here.