Skip to content

Record a real NVIDIA render for the LTX-2.5 generative video upscale and mark the CUDA backend verified #6537

Description

@atomantic

The LTX-2.5 generative video upscale is code complete on both backends and verified end to end on macOS MLX (#6514). The Windows / Linux CUDA runner (scripts/upscale_ltx25_cuda.py, shipped in #6520 and corrected in #6534) carries the same recipe, argv, grid and adapter contract (scripts/_upscale_contract.py) and is covered without a GPU, but nobody has yet run it on an NVIDIA card. Until that evidence exists the backend is deliberately documented as unverified and stays capability-gated per host.

This is the one hands-on task that closes the loop. It needs an NVIDIA host with the LTX-2.5 CUDA runtime installed (requirements-ltx25-cuda.txt), the ltx25_cuda_distilled base pack cached, the Lightricks license accepted and the gated Lightricks/LTX-2.5-22b-IC-LoRA-Pixel-Spatial-Upscaler weight downloaded through the model download/verify surface.

What to do

  1. Run the verification matrix from docs/features/video-upscale.md "Readiness" through the real route → media-job queue → scripts/upscale_ltx25_cuda.py → gallery row path. The macOS pass in Verify the generative video upscale end to end on both backends and advertise it as ready #6514 (comment of 2026-09-07) is the template: conforming source with audio, frame-padded source with audio, spatially padded source without audio, cancellation mid-render, legacy Lanczos before and after, the refusal codes, the pre-submit plan, and provenance against ffprobe.
  2. Confirm the existing LTX-2.5 text-to-video and image-conditioned paths through scripts/generate_ltx25_cuda.py still render unchanged on the same host.
  3. Record source/output dimensions, frame count, duration, audio sync, seed, runtime fingerprint and wall-clock render time per case in a comment here.
  4. Flip the CUDA row of the readiness table in docs/features/video-upscale.md to verified and supported, mirroring the MLX row, in a PR that closes this issue.

Acceptance

  • At least one real generative upscale rendered on an NVIDIA card with the numbers above posted here.
  • The readiness table no longer describes the CUDA backend as unverified.
  • No change to the shared contract; if the render exposes a runner defect, fix it in the same PR with a GPU-free regression test as in scripts/upscale_ltx25_cuda.test.js.

Why needs-input

This needs a licensed NVIDIA machine with at least 64 GB of system memory — not merely any NVIDIA card. ltx25_cuda_distilled declares minMemoryGb: 64, and a dispatch to a 32 GB / RTX 3090 host on 2026-09-07 confirmed the floor is real: every download and pre-submit check passed, but both LTX-2.5 CUDA runners die in ltx_core's safetensors loader ~18 s in, on the pack's 26 GB text encoder. See the comment of 2026-09-07 for the full evidence and the six-line repro.

Remove the label only when dispatching from (or with access to) a machine that meets BOTH requirements. PortOS now refuses the upscale up front on a host below the floor (#6541), so a wrong-host dispatch fails fast at submit instead of after a queued GPU job.

Refs #6502, #6513, #6514

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:mediaeffort:mediumDispatch effort: mediumhelp wantedExtra hands welcomemodel:lightMechanical single-file changeneeds-inputNeeds human clarification before it can be claimed autonomouslyplanner:fable-5-1Plan authored by the fable-5-1 model

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions