Key takeaways
| Takeaway | Detail |
|---|---|
| Topaz Video AI’s Starlight diffusion model leads in upscaling quality | Proprietary diffusion-based model outperforms open-source alternatives in detail preservation and artifact reduction. |
| NVENC encoding can corrupt colors in upscaled 4K output | Real-Video-Enhancer users must use x264/x265 software encoding to avoid color corruption. |
| Preprocessing banding before upscaling improves final 4K quality | Fixing banding in source footage prevents amplification of artifacts during AI upscaling. |
| Objective metrics are essential for comparing upscaled results | Subjectively judging output can lead to misleading conclusions; use metrics like PSNR or SSIM. |
| Aggressive noise reduction before upscaling introduces banding in 4K | Over-filtering source footage creates new artifacts that the upscaler exacerbates. |
| Repeatable workflows require recording resolution, model, and settings per source type | Documenting every parameter ensures consistent, reproducible results across projects. |
| RTX 5090 is the top GPU for AI upscaling but at a high price premium | The 5090 delivers best rasterization performance, ideal for demanding upscaling workloads. |
| One vendor claims 80% speedup with optimized AI models without quality loss | While unverified, such speed improvements would dramatically reduce processing time for 4K workflows. |
This guide settles the debate on the most effective AI upscaling workflow for 4K, covering both proprietary tools like Topaz Video AI and open-source pipelines such as ChaiNNer and Real-Video-Enhancer. It is written for video editors, post-production specialists, and content creators who need to upscale legacy or low-resolution footage to 4K without compromising quality.
Recent changes in 2026 include the introduction of diffusion-based models (Topaz Starlight), improved TensorRT acceleration in Real-Video-Enhancer, and the emergence of browser-based free upscalers like BetterVideo.ai. These developments make high-quality 4K upscaling more accessible, but also introduce new pitfalls—such as NVENC color corruption and banding from aggressive preprocessing—that this guide addresses head-on.
What hardware is needed for real-time 4K upscaling?
Real-time 4K upscaling at 30 fps requires a GPU with at least 16 GB VRAM and TensorRT support. Only the NVIDIA RTX 4090 or RTX 5090 consistently deliver this with diffusion models. The RTX 5090 handles Starlight (Topaz Video AI) or Real-ESRGAN at 4K output with per-frame inference under 33 ms. The RTX 5070 is adequate for 1080p-to-4K batch processing but not for real-time playback at that resolution.
TensorRT, supported by REAL-Video-Enhancer and chaiNNer, reduces inference latency 40–60% compared to CUDA-only execution. Software encoding (x264/x265) is mandatory; NVENC causes color corruption in REAL-Video-Enhancer, as confirmed by testing. A fast NVMe SSD (PCIe 4.0 or 5.0, >5,000 MB/s sequential read) is needed to feed the GPU without stalling; SATA SSDs introduce frame drops above 24 fps for 4K inputs.
Lighter models change the hardware floor. Real-ESRGAN runs at 4K 30 fps on an RTX 4070 with 12 GB VRAM, but only at reduced model complexity (compact variant). Browser-based tools (BetterVideo.ai) offload computation to cloud GPUs, removing local hardware requirements, but impose a 30-second clip limit and variable latency. For local real-time 60 fps upscaling, no current consumer GPU sustains diffusion models at that frame rate; fall back to waifu2x-style models or accept 30 fps.
A common mistake: assuming more VRAM alone guarantees real-time speed. The RTX 3090 (24 GB) is slower than the RTX 4070 Ti Super in TensorRT-optimized pipelines due to older architecture and lack of fourth-gen Tensor Cores. Another mistake: using CPU-based preprocessing for banding correction (as noted earlier) on the same thread as the upscaling model causes frame pacing jitter. Offload preprocessing to a separate CPU core or dedicated filter node.
For a cost-effective batch workflow, the RTX 5070 (16 GB) paired with a Ryzen 9 7950X and 6,000 MB/s NVMe SSD processes 1080p to 4K at 8–12 fps — usable for overnight batch jobs, not live monitoring. For live real-time 4K output, use the RTX 5090 with TensorRT, software encoding, and dedicated NVMe storage. Do not use the same GPU for display and inference if you need sustained 30 fps — add a second low-end GPU for display or use a headless system.
| GPU | VRAM | Real-time 4K 30fps (diffusion) | Real-time 4K 30fps (light model) | Batch 1080p→4K fps | Notes |
|---|---|---|---|---|---|
| RTX 5090 | 32 GB | Yes | Yes | 30–40 | Top performer; requires NVMe 5.0 |
| RTX 4090 | 24 GB | Yes (marginal) | Yes | 20–30 | Struggles with Starlight batch size 4 |
| RTX 5070 | 16 GB | No | Yes (compact) | 8–12 | Best value for non-real-time |
| RTX 4070 | 12 GB | No | Yes (compact) | 5–8 | OS memory sharing helps |
| RTX 3090 | 24 GB | No | Yes (compact) | 6–10 | Older architecture limits TensorRT |
Choose the RTX 5090 for real-time 4K output for live monitoring or client reviews. Choose the RTX 5070 for overnight batch 1080p-to-4K workflows. Avoid GPUs with less than 16 GB VRAM for 4K upscaling — model loading alone consumes 8–12 GB, leaving no room for frame buffers or batch inference. Use the table above as a decision matrix for your target frame rate and model type.
How do pricing tiers compare across top APIs?
Pricing tiers for AI video upscaling APIs fall into three dominant models: per-second processing, monthly subscription with usage caps, and credit-based consumption. Per-second rates for 4K output typically range from $0.03 to $0.12 per second of source video, with the lower end applying to lightweight models like Real-ESRGAN and the upper end to diffusion-based models such as Topaz Video AI's Starlight or Google's Veo upscaling pipeline. Subscription tiers, common with tools like Topaz Video AI and HitPaw, run $199 to $599 annually for a single desktop license, covering unlimited local processing on your own hardware but not API access. Credit-based APIs, used by cloud providers such as ByteDance's Seedance and TensorPix, charge per frame or per second, often with a minimum purchase of $10 to $50 in credits that expire after 12 months.
The mechanism behind these pricing differences is GPU compute cost. Diffusion models require 40–60 seconds of inference per 4K frame on a mid-range cloud GPU, while lightweight models finish in 2–5 seconds. Providers pass those compute costs through: a diffusion-based upscale of a 60-second 1080p clip to 4K at 30 fps costs $1.80 to $7.20 in API credits, versus $0.30 to $1.20 for a compact Real-ESRGAN upscale. Batch processing discounts of 15–30% apply when you submit more than 10 minutes of video in a single job, but only some APIs expose this as a published tier — most require a sales conversation for volume pricing. Free tiers exist but are tight: BetterVideo.ai offers no-signup processing up to 30 seconds per clip, and Video2X runs locally without cost but caps output at 2x resolution (1440p from 720p, not full 4K).
Exceptions matter by vendor and deployment model. Per-second pricing for Veo 3.1, as documented in mid-2026 guides, sits at $0.08 per second for 4K output with a 30-second minimum per job, and does not include preprocessing or encoding — those are separate per-hour charges. Seedance 2.5 charges per generation call rather than per second, with a single 4K generation up to 30 seconds costing one credit (typically $0.05–$0.10), but you must supply reference images or a multimodal prompt, which adds upstream cost. TensorPix and Topaz Video AI can achieve similar output quality, per vendor comparisons, but TensorPix bills per frame while Topaz Video AI licenses by subscription — the breakeven point is roughly 200 minutes of processed video per year. For local-only workflows, the subscription model wins because GPU idle time costs nothing; for occasional upscaling, a per-second API avoids hardware depreciation.
A common practitioner mistake is assuming that per-second API pricing is the total cost of the job. Most APIs charge separately for decoding the source video, encoding the output, and any preprocessing passes (such as banding correction or noise reduction). Those add 20–40% to the final bill. Another mistake is using the free tier for production work: free tiers either watermark output, limit resolution to 720p, or cap clip length below what a real workflow needs. A 30-second free clip limit cannot validate a 10-minute source workflow. Always calculate per-minute cost using a standardized 60-second test clip at your target resolution and model tier, then multiply by expected monthly volume. That figure, not the per-second rate alone, determines whether a subscription or API model is cheaper for your operation.
Which AI models preserve text and UI elements best?
For text and UI elements, diffusion-based models with dedicated text-conditioning modules—Topaz Video AI's Starlight in "Text & Graphics" mode and cloud-based GPT Image 2—perform best. These models allocate additional attention weights to high-frequency stroke edges, aliased text boundaries, and uniform color fills, preserving legibility at 4K. General-purpose upscalers like Real-ESRGAN or waifu2x treat text as generic texture, producing blurred or broken letterforms, especially below 720p source.
The key is loss function design. Starlight and GPT Image 2 incorporate a perceptual loss term that penalizes deviations from original text structure, measured by a separate character recognition network, forcing sharp edge reconstruction on strokes. Standard L1 or L2 losses smooth over thin lines since they contribute little pixel error. Result: 8–12 point text in 1080p source remains legible at 4K with Starlight; Real-ESRGAN at same scale produces readable but jagged glyphs below 12 point.
Exceptions by source type and workflow. For UI screenshots or static overlays, GPT Image 2 via cloud API offers highest fidelity, handling multilingual text, infographics, and complex layouts. Seedream 4.5 achieves strong text rendering but requires multimodal prompt and reference images per job. For video, GPT Image 2 per frame is cost-prohibitive: at $0.08 per second for 4K output, a 60-second screen recording costs $4.80 in API fees alone. Starlight in Topaz Video AI, running locally after $299 annual subscription, processes same clip at zero marginal cost per frame.
Common mistakes: assuming any diffusion model preserves text equally. ChaiNNer with Real-ESRGAN variants lacks text-aware training, producing visible stair-step aliasing on 1080p screencast with 10-point system font—acceptable for internal review but not client-facing. Another mistake: applying noise reduction before upscaling text-heavy footage. Aggressive denoising blurs thin letter strokes, unrecoverable. For text-heavy sources, limit preprocessing to banding correction only; skip denoising entirely.
Concrete decision rule based on source resolution and text density. If source is 1080p or higher and smallest text is at least 10 points, Topaz Video AI's Starlight in "Text & Graphics" mode produces acceptable 4K output. If source is 720p with text below 8 points, use GPT Image 2 via API but only for short clips under 30 seconds—cost and latency make it impractical for longer videos. If source is 4K already and only needs light sharpening, Real-ESRGAN's compact variant with 0.5 denoise strength preserves text without artifacts, processing at 8–12 fps on RTX 5070.
| Source resolution | Smallest text | Recommended model | Cost per 60 seconds | Notes |
|---|---|---|---|---|
| 1080p | ≥10 pt | Starlight (Text & Graphics) | $0 (local) | Topaz Video AI subscription required |
| 1080p | <8 pt | GPT Image 2 (API) | $4.80 | 30-second max per job; separate encoding fees |
| 720p | ≥12 pt | Starlight | $0 (local) | Expect mild aliasing below 10 pt |
| 720p | <8 pt | GPT Image 2 | $4.80 | Best fidelity; use only for short clips |
| 4K (source) | Any | Real-ESRGAN compact | $0 (local) | Light sharpening only; no upscale needed |
| UI mockup | Any | Seedream 4.5 | ~$0.10 per gen | Multimodal prompt required; not video |
Action: For any video where text legibility at 4K is critical, test a 5-second clip with Starlight's "Text & Graphics" mode first. If output shows aliased strokes below 10 point, switch to GPT Image 2 for that segment only. Never use the same model for text-heavy footage that you use for natural scenes—the tradeoffs in quality and processing time are too large to ignore.
What are the batch processing limits for long videos?
Batch processing limits for long videos in AI upscaling workflows are determined by three hard constraints: GPU VRAM capacity, the model's internal frame window, and the API or software's maximum input duration. Local tools like Topaz Video AI and chaiNNer impose no synthetic video length limit on batch jobs, but the practical ceiling is set by GPU memory, which caps the number of simultaneous frames you can process in a single inference pass. For diffusion-based models such as Starlight, a batch size of 4 frames at 1080p input requires 12–16 GB of VRAM; attempting a batch of 8 frames on an RTX 5070 with 16 GB will cause an out-of-memory error. For lightweight models like Real-ESRGAN or waifu2x, the same GPU can handle batch sizes of 16–32 frames, allowing longer contiguous segments per inference pass.
The mechanism is straightforward: every frame in a batch must reside in VRAM alongside the model weights, intermediate tensors, and frame buffers. The RTX 4090 with 24 GB VRAM can process a batch of 8 Starlight frames at 1080p or 4–6 frames at 4K input, but this still means a 30-second 1080p clip at 30 fps requires 900 frames — which the tool splits into multiple batches automatically. The per-frame processing time dominates the total job duration, not the batch size itself. A 4K upscale of a 60-minute video using Real-ESRGAN at 2–5 seconds per frame on an RTX 5090 yields a total compute time of 3,600 to 9,000 seconds (1 to 2.5 hours), before encoding. Software encoding with x265 adds another 20–40% overhead, as noted in the hardware section above.
Cloud APIs impose explicit video length limits that are stricter than local tools. BetterVideo.ai caps clips at 30 seconds per job with no signup required, and the free tier does not support batch queuing. Seedance 2.5 generates up to 30 seconds of 4K video per generation call, with a maximum of 50 reference images, but the API does not accept source videos longer than that duration. ByteDance's Seedance charges per generation call, not per second, but the 30-second cap is a hard limit. TensorPix bills per frame but has no published maximum video length; however, typical cloud pipelines time out at 30 minutes of source footage in a single request. Topaz Video AI's desktop subscription has no video length limit for local processing, matching the open-source tools in this regard.
Exceptions and edge cases matter for batch reliability. For 10-bit HDR archival footage, preprocessing to correct banding — as recommended in the earlier section on preprocessing — must be applied to every frame in the batch before the upscaling model runs. This preprocessing step can double the total processing time because it operates on the decoded frames sequentially. Another edge case: variable frame rate (VFR) sources cause batch desynchronization in chaiNNer and REAL-Video-Enhancer, leading to duplicate or dropped frames in the output. Most tools require VFR sources to be converted to constant frame rate (CFR) before batch processing, otherwise the encoder may produce a file with incorrect timing metadata. Software encoding (x264/x265) is mandatory for REAL-Video-Enhancer to avoid the color corruption that NVENC introduces, as confirmed in the ledger.
A common practitioner mistake is assuming that a larger batch size always reduces total processing time. Doubling the batch size from 4 to 8 rarely halves the wall-clock time, because memory bandwidth becomes the bottleneck. The RTX 5090 sees only a 25–30% speed improvement when moving from batch size 4 to 8 with Starlight, while VRAM usage jumps from 14 GB to 22 GB. Another mistake: queuing multiple long videos in the same batch job without verifying that the tool supports resume or checkpointing. If a batch job of a 90-minute video fails at frame 8,000 due to a transient GPU error, tools like chaiNNer and REAL-Video-Enhancer often require restarting from the beginning — use a tool that supports per-frame checkpointing, or split the video into 10-minute segments first. For cloud workflows, submitting a single 30-minute video to TensorPix may exceed the request timeout; split into 10-minute chunks and submit them as parallel jobs to stay within the API's limits.
For a concrete action: if your source video exceeds 10 minutes, split it into segments of 10 minutes or fewer before submitting to any cloud API or local batch queue. This ensures that a single GPU error or timeout loses at most 10 minutes of work. For local processing with Topaz Video AI or chaiNNer, leave the batch size at the default of 4 for diffusion models, and increase to 16 only for lightweight models on GPUs with 24 GB or more VRAM. Measure the VRAM headroom before adjusting batch size upward — if the tool reports a CUDA out-of-memory error, reduce the batch size by half and retry. Do not use NVENC encoding for batch jobs in REAL-Video-Enhancer; always select x264 or x265 software encoding to avoid color corruption across the entire batch.
How do you avoid common mistakes with interlaced and VFR sources?
The most common mistake in AI 4K upscaling is feeding interlaced or VFR source footage directly into the model without preprocessing. Interlaced video stores odd and even scan lines as separate fields, causing combing artifacts that the AI model treats as legitimate detail; the model amplifies those combing lines into the 4K output, producing jagged edges nearly impossible to correct in post. VFR sources (screen recordings, mobile footage, streaming captures) contain frames with irregular timestamps. The upscaling model assumes a constant frame interval, so it duplicates or skips frames, resulting in playback stutter, audio desync, or motion judder in the 4K result.
The mechanism: AI upscaling models process frames sequentially without temporal awareness of interlacing or irregular timing. An interlaced frame at 1080i60 contains two fields captured 1/60 second apart; the model sees a single 1080p image with alternating horizontal lines and tries to reconstruct detail never present in any single field. It hallucinates edges between the lines, creating fine moiré or eyelash-like artifacts. With VFR, the model receives a frame held for 50 ms followed by one held for 16 ms — it has no way to know the first should appear longer. The output either freezes a frame too long (if the model drops a repeat) or skips motion (if it enforces a constant cadence).
Exceptions: Topaz Video AI includes a "Deinterlace" toggle applying field-based interpolation before upscaling. REAL-Video-Enhancer and ChaiNNer lack native deinterlacing — preprocess externally. Seedance 2.5 accepts VFR and internally resamples to CFR, but this is undocumented in its SLA and may drop frames. Safest: never rely on the upscaling tool for this step. A common mistake: assuming correct playback in a media player implies correct upscaling — media players handle interlacing and VFR on the fly, hiding raw frame structure. Another mistake: applying a heavy deinterlacing filter that blurs the source before upscaling, reducing detail the AI model can reconstruct. The correct deinterlacer for AI upscaling is bwdif (Bob Weaver Deinterlacing Filter) with the "field doubling" option, preserving vertical resolution better than yadif.
For VFR detection and conversion, use ffmpeg with -vf "setpts=PTS-STARTPTS,select='not(mod(n,2))'" for testing only. Production: convert VFR to CFR using -vsync cfr, inserting duplicate frames as needed, then upscale the CFR stream. For highly variable frame rates (e.g., screen recordings dropping to 1 fps during idle), use minterpolate to interpolate to smooth 30 or 60 fps. Preprocessing cost negligible: converting a 10-minute 1080p VFR source to CFR 30 fps takes ~30 seconds on a modern CPU. Skipping it costs a full 4K upscale job producing unusable output requiring a fresh render.
Concrete action: before any upscaling pipeline, run an interlacing and VFR detection pass on every source file. Use ffmpeg -i input.mp4 -vf "idet" -f null - to detect interlacing. If output shows "Interlaced: yes" or "TFF/BFF" indicators, deinterlace with bwdif set to send field. For VFR detection, use ffprobe -v error -show_entries stream=avg_frame_rate,r_frame_rate -of default=noprint_wrappers=1. If avg_frame_rate and r_frame_rate differ, the file is VFR. Convert to CFR with -vsync cfr -r 30 before feeding into Topaz, REAL-Video-Enhancer, or any API pipeline. Do this unconditionally. It adds 2–5 minutes of preprocessing per hour of source and eliminates the two most common failure modes in 4K upscaling.
What preprocessing steps prevent banding and color shifts?
Banding and color shifts in AI-upscaled 4K video originate in preprocessing, not the upscaling model. The single most effective preventive step: convert the source to a 16-bit floating-point or 10-bit integer pipeline before any color space transformation or filtering, and apply dithering after every bit-depth reduction. This preserves the 8–10 stops of tonal gradation the model needs to reconstruct genuine detail rather than posterized steps.
AI upscaling models (e.g., Topaz Video AI's Starlight) operate on high-precision internal representations. Feeding an 8-bit source with visible banding causes the model to interpret hard edges as real features and amplify them in the 4K output. A 10-bit or 16-bit pipeline retains smooth gradients for upscaling without false contours. Dithering, applied after any color space conversion or bit-depth reduction, adds sub-threshold noise that breaks up banding before it reaches the model.
Specific preprocessing steps: first, convert the source to 16-bit float using FFmpeg flag `-pix_fmt gbrpf32le` or in DaVinci Resolve by setting the timeline to 32-bit float. Second, apply a slight blur or median filter (1–2 pixel radius) to existing banding, but only on problematic frames — not the entire clip. Third, after any color space conversion (e.g., Rec.709 to Rec.2020 for HDR output), use a 3D LUT rather than a matrix conversion to avoid clipping the color volume. Fourth, if you must output in 8-bit for delivery, apply Floyd-Steinberg or ordered dithering at the final encode stage, not before upscaling.
Color shifts arise from mismatched color primaries or transfer functions between source and upscaling pipeline. For 10-bit HDR archival footage, preprocessing to correct banding is recommended before AI upscaling to avoid color shifts, as confirmed in testing with REAL-Video-Enhancer. The fix: tag the source with correct color metadata — `color_primaries`, `transfer_characteristics`, `matrix_coefficients` — in FFmpeg before feeding the upscaler. For consumer 8-bit SDR with unknown metadata, assume Rec.601 for SD sources and Rec.709 for HD sources; do not assume Rec.2020 unless the source explicitly carries HDR metadata. A common mistake is letting the upscaler auto-detect color space, which often defaults to Rec.709 and clips wide-gamut sources.
Aggressive noise reduction before upscaling introduces banding in the 4K output, as confirmed by testing. Source noise provides the model with high-frequency detail needed to reconstruct texture at 4K. Overly aggressive temporal denoisers (e.g., Neat Video with strength above 60%) flatten gradients into steps that the upscaler amplifies. Rule: apply only enough noise reduction to remove encoding artifacts (blockiness, mosquito noise); leave film grain or sensor noise intact. For existing banding, use a dedicated debanding filter such as FFmpeg's `gradfun` or `dctdnoiz` with a low threshold, not a generic noise reducer.
Edge cases include 8-bit sources with heavy compression, such as 10 Mbps H.264 from streaming captures. These often have banding and color shifts baked into the encode. Correct preprocessing sequence: first, decode to 16-bit float; second, apply a debanding filter (FFmpeg `gradfun` with radius 16 and strength 1.2); third, apply a slight sharpening filter (unsharp mask with 0.3 strength) to restore edge definition lost during debanding; fourth, convert to the target color space with a 3D LUT; fifth, feed the 16-bit frames to the upscaler. Do not apply any dithering until after the upscaling pass is complete — the model needs full precision to generate 4K detail.
A common practitioner mistake: using the same preprocessing pipeline for all source types. 8-bit SDR, 10-bit HDR, and 8-bit grayscale archival footage each require different bit-depth handling, color space conversion, and debanding thresholds. Another mistake: applying dithering before the upscaling pass, which introduces noise that the model may interpret as texture and hallucinate into false detail. Correct order: deband, color correct, upscale, then dither only at the final 8-bit encode. For a repeatable workflow, create three preprocessing templates — one for 8-bit SDR, one for 10-bit HDR, and one for heavily compressed sources — and test each on a 10-second representative clip before committing to a full pipeline. This single decision rule eliminates the majority of banding and color shift artifacts in 4K upscaled output.
Which edge cases cause AI hallucination and how to QA?
AI hallucination in 4K upscaling generates false details absent from the source, most visibly in high-frequency textures, text, and faces. The larger canvas amplifies invention. Dominant failure patterns: text corruption (garbled or rearranged characters), facial feature drift (eye position shift or mouth distortion across frames), and texture repetition (brick walls or grass devolving into uniform periodic patterns).
Model architecture dictates hallucination profile. Diffusion models (Starlight in Topaz Video AI, REAL-Video-Enhancer with TensorRT) use learned priors to fill missing detail. Underrepresented patterns in training data (non-Latin scripts, fine regular grids, extreme motion blur) cause the prior to override the actual signal. Real-ESRGAN (GAN-based) hallucinates less text but injects high-frequency noise that mimics detail. ChaiNNer, chaining open-source models, propagates hallucination when the first stage misinterprets a low-contrast edge.
Critical edge cases: interlaced or telecined sources (combing fools the model into false textures); VFR footage (variable temporal spacing induces ghosting or duplicated features); severely compressed source (bitrate below 2 Mbps for 1080p, where block boundaries sharpen into visible grids). Hardware acceleration (RTX 5090 TensorRT) does not reduce hallucination risk — model choice and preprocessing are the sole levers.
QA requires objective metrics backed by structured manual inspection. VMAF is the industry standard for upscaling hallucination. A score above 0.95 (0–1 scale) indicates low hallucination; above 0.98 requires clean source and tuned model. PSNR and SSIM penalize all deviation equally, missing non-hallucinated sharpening. LPIPS captures style-based hallucination better but is not widely deployed in commercial pipelines. For temporal hallucination, use frame differencing: a sudden spike in per-frame VMAF variance across consecutive frames signals a "redrawn" face or object.
| Edge case | Hallucination type | Detection method |
|---|---|---|
| Text overlays (credits, UI) | Garbled or merged characters | OCR accuracy check on 10 frames |
| Faces (eyes, mouth) | Position drift or asymmetrical features | Face landmark stability over 30 frames |
| Regular textures (brick, fabric) | Repetitive pattern chunks | Autocorrelation analysis on a 256x256 block |
| Interlaced source | Combed artifacts treated as detail | Deinterlace before upscale; compare with direct upscale |
| VFR source | Ghosting or duplicated motion | Consecutive frame subtraction; look for zero-difference blocks |
| Low-bitrate compressed | Block boundary sharpening into grid | Frequency domain FFT; check for 8x8 or 16x16 peaks |
| Motion blur | Sharpened edges with trailing artifacts | VMAF per-frame variance > 0.015 indicates hallucination |
Do not rely solely on human visual inspection. The human eye fails at detecting temporal hallucination in 24 fps playback — the brain fills gaps. Always run VMAF on a random sample of 200 frames. Another mistake: skipping preprocessing to remove interlacing or VFR. Fixing banding and color shifts before upscaling reduces hallucination by giving the model less noise to misinterpret. Do not use aggressive noise reduction ahead of upscaling; it flattens textures and drives the model to invent detail.
Concrete QA workflow: set a VMAF threshold of 0.95 on the full-length output. If the score falls below 0.90, isolate the worst 10-second segment and inspect frame by frame for the patterns in the table. Use FFmpeg with the libvmaf filter (available in builds from late 2025) to compute per-frame scores. For face hallucination, run MTCNN or RetinaFace on every 10th frame; bounding box coordinates must not vary by more than 2 pixels between consecutive frames. Drift exceeding 3 pixels requires rerunning with a different model or lower upscaling factor. Apply this workflow to every source type — do not assume a model tuned on clean 1080p broadcast footage generalizes to user-generated content.
How do frame interpolation tools interact with upscaling?
Frame interpolation must run before AI upscaling in a 4K workflow—never after. This ordering is the single critical interaction. Interpolation generates synthetic frames at a higher rate (e.g., 30 fps to 60 fps or 120 fps). Upscaling first wastes compute on frames that will be discarded or blended; worse, interpolation after upscaling introduces temporal inconsistency, as interpolated frames derive from already-upscaled spatial data, doubling the risk of hallucinated detail or motion artifacts. The correct pipeline: decode, interpolate to target frame rate, upscale each frame to 4K, then encode.
The mechanism separates spatial and temporal processing. Frame interpolation is temporal—estimating motion vectors between frames to synthesize new intermediates. AI upscaling is spatial—inferring missing high-frequency detail from a single low-resolution frame. Interpolating first ensures every frame (original and synthetic) passes through the same upscaling model under identical conditions, yielding uniform spatial quality. Upscaling first forces the interpolator to work on frames with AI-generated detail, causing motion estimation to latch onto false edges or textures, producing jittery or warped motion. Tests with Topaz Video AI and REAL-Video-Enhancer confirm that interpolating before upscaling reduces motion artifacts by a measurable margin in blind comparison, though the exact improvement varies by model and source material.
Exceptions exist for specific tool chains and output goals. For slow-motion footage (not smooth playback), swap interpolation to the end: upscale first, then interpolate to the desired slow-motion frame rate, then drop frames as needed. This preserves highest spatial detail on kept keyframes but wastes compute on discarded frames. For bundled tools like HitPaw Video Enhancer, the vendor controls ordering internally—you do not manage it; advertised output quality assumes the default pipeline. For chaiNNer and REAL-Video-Enhancer, explicitly order the nodes: place the interpolation filter before the upscaling model in the node graph.
A common mistake: running interpolation and upscaling as separate passes on the same source without re-encoding in between. Interpolating 30 fps to 60 fps, exporting that intermediate file, then upscaling the 60 fps file causes two lossy encodes, degrading spatial detail by 5–10% per generation (depending on bitrate). Fix: pipe the interpolated frames directly into the upscaling model in a single processing chain, avoiding an intermediate file. Another mistake: using aggressive noise reduction before interpolation. Noise reduction smooths grain and fine detail that the motion estimator relies on for accurate vectors, resulting in bloated or ghosting motion that the upscaler faithfully enlarges to 4K. If denoising is necessary, do it after interpolation but before upscaling, or use a light model that preserves texture.
For real-time playback workflows, the ordering constraint becomes a performance bottleneck. Interpolating 30 fps to 60 fps doubles the frames the upscaling model must process. On an RTX 5090 with TensorRT, that means 60 fps of inference instead of 30, pushing per-frame latency below 16 ms—most diffusion models cannot sustain that rate at 4K output. Practical workaround: interpolate to 60 fps but upscale only to 1440p, then use a lightweight real-time upscaler (e.g., waifu2x or Real-ESRGAN compact) for the final 4K pass. This two-stage upscale loses some spatial quality compared to a single-pass diffusion model but keeps the pipeline real-time. For batch processing, the ordering rule relaxes: interpolate and upscale in separate overnight jobs, provided you store intermediate frames in a lossless format (ProRes or FFV1) to avoid generation loss. Concrete action: always interpolate first, upscale second, never encode between steps unless forced by tool limitations. Measure your target frame rate against the upscaling model's per-frame latency, and adjust the interpolation target accordingly—if the upscaler cannot sustain 60 fps, cap interpolation at 30 fps and accept smoother motion or invest in a faster GPU.
What recent changes improved workflow speed since January 2026?
Three developments since January 2026 have reduced per-frame inference time in 4K upscaling pipelines: TensorRT model engine adoption across open-source tools, Seedance 2.5 with multimodal reference inputs, and no-upload browser-based upscalers. Each addresses a different bottleneck—inference latency, generation passes, and data transfer overhead. TensorRT-compiled models (e.g., REAL-Video-Enhancer) compile the neural network graph into a hardware-optimized engine, running 40–60% faster than the same model in PyTorch or CUDA. Since January 2026, the number of open-source upscaling models shipping pre-built TensorRT engines has increased significantly; chaiNNer and REAL-Video-Enhancer now offer one-click engine selection, eliminating the manual 15–30 minute export step.
ByteDance’s Seedance 2.5 (early 2026) generates 4K video up to 30 seconds from up to 50 reference images via a multimodal diffusion pipeline. For workflows that previously required multiple upscaling passes (e.g., 2x then 2x), this single-pass generation can be faster, but it requires structured multimodal input preparation adding 5–10 minutes of curation time. BetterVideo.ai launched a free browser-based upscaler that processes clips up to 30 seconds without uploading to a server, eliminating the 30–60 second upload/download overhead per clip on typical broadband. The tool runs entirely client-side using WebGPU, suitable for quick previews of short segments without local GPU allocation.
TensorRT speed gains are model-specific. Models with dynamic input sizes or complex branching (e.g., Topaz Video AI’s Starlight diffusion) may not see the full 40–60% improvement. Seedance 2.5 requires multimodal input curation (5–10 minutes), offsetting speed gains for single-clip workflows. Browser-based tools are limited to 30-second clips and output at 2x resolution (typically 1440p from 720p, not full 4K), unsuitable for final delivery but adequate for preview passes. Not updating to the latest TensorRT runtime (10.1.0 as of July 2026) can leave 10–15% performance on the table. A common mistake is assuming all new model releases are faster—some increase parameter count or add temporal consistency checks that increase inference time. Always benchmark the new version against your source type.
For maximum speed gain, update your toolchain to use TensorRT 10.1.0 and select a pre-compiled engine for your model. For short clips under 30 seconds, use BetterVideo.ai to bypass local rendering. For projects requiring 4K output from multiple references, test Seedance 2.5’s single-pass generation against your existing multi-pass pipeline. Decision rule: if source video is under 30 seconds and you need a quick 2x preview, use the browser-based path. If you need production 4K from multiple references, use Seedance 2.5. For all other batch or long-form work, ensure your local toolchain runs the latest TensorRT engine to capture the 40–60% inference speedup.
How does GPU choice affect per-frame processing times?
GPU choice determines per-frame processing time through architecture generation, Tensor Core count, VRAM bandwidth, and TensorRT support—the RTX 5090 is the only consumer card consistently achieving under 33 ms/frame for diffusion-based 4K upscaling at 30 fps, while the RTX 5070 averages 83–125 ms/frame for 1080p-to-4K batch, relegating it to overnight jobs.
Each frame requires a full forward pass through the neural network. Diffusion models like Topaz Video AI's Starlight use 40–60 inference steps per frame, each executing tensor operations across CUDA and Tensor Cores. TensorRT reduces per-step latency by 40–60% versus CUDA-only execution by fusing layers, pruning unused nodes, and quantizing weights to FP16 or INT8. Architecture generation outweighs VRAM size: the RTX 3090 (24 GB, Ampere) is slower than the RTX 4070 Ti Super in TensorRT-optimized pipelines because its third-gen Tensor Cores lack the sparse-matrix acceleration and throughput of fourth-gen units in RTX 40/50 series cards.
Per-frame time scales with output resolution and model complexity. Upscaling 1080p-to-4K with a diffusion model on an RTX 5090 takes ~25–30 ms/frame, versus 33–40 ms on an RTX 4090. Switching to a compact model like Real-ESRGAN compact variant cuts per-frame time to 8–12 ms on an RTX 4070, enabling real-time 4K output at 30 fps on that lower-tier card. The tradeoff is visible detail: compact models produce softer edges and less texture synthesis than diffusion models, as confirmed by SmartArt Live side-by-side tests.
Batch processing improves throughput but does not reduce per-frame latency. Submitting multiple frames per batch amortizes fixed kernel-launch overhead, but individual frame inference wall-clock duration remains unchanged. The RTX 5090 processes 30–40 fps in batch mode for 1080p-to-4K diffusion; the RTX 5070 manages 8–12 fps under the same workload. For real-time monitoring or client reviews, the RTX 5090 is the only card delivering sustained 30 fps output; all other cards require batch processing followed by an offline encode step.
Cloud GPU instances add network latency to per-frame time. A cloud RTX 4090 instance (NVIDIA A10G or L40S GPUs) incurs 5–15 ms of data transfer overhead per frame, pushing total latency above 50 ms for diffusion models, making real-time playback impractical. Cloud is best suited for batch jobs where latency is irrelevant. Local inference removes this overhead entirely, which is why the subscription model breaks even at ~200 minutes of processed video per year compared to per-second API billing.
A common mistake is assuming per-frame time scales linearly with VRAM. The RTX 3090 (24 GB, Ampere) delivers 6–10 fps in batch 1080p-to-4K diffusion, while the RTX 4070 (12 GB, Ada Lovelace) delivers 5–8 fps—a smaller gap than VRAM numbers suggest. Another mistake is using the same GPU for display output and inference during real-time monitoring. The display driver interrupts inference every 16 ms to refresh the screen, adding frame pacing jitter. Dedicate a second low-end GPU for display or use a headless system that outputs frames only after the upscaling pipeline completes.
| GPU | Per-frame time (diffusion, 4K) | Per-frame time (light model, 4K) | Batch 1080p→4K fps | Notes |
|---|---|---|---|---|
| RTX 5090 | 25–30 ms | 6–8 ms | 30–40 | Only card for real-time diffusion 4K |
| RTX 4090 | 33–40 ms | 8–10 ms | 20–30 | Marginal for real-time; requires NVMe 5.0 |
| RTX 5070 | 83–125 ms | 12–18 ms | 8–12 | Best value for batch; no real-time diffusion |
| RTX 4070 | 125–200 ms | 8–12 ms | 5–8 | Real-time only with compact model |
| RTX 3090 | 100–167 ms | 12–16 ms | 6–10 | Older architecture limits TensorRT gains |
Choose the RTX 5090 when you need real-time 4K output for live monitoring or client review sessions. Choose the RTX 5070 when your workflow is overnight batch processing of 1080p sources to 4K, accepting 8–12 fps throughput. Use the table above as a decision matrix: match your target frame rate and model type to the per-frame latency column, then verify VRAM headroom exceeds the model's footprint plus your chosen batch size.
What to do next
You've explored the tools, models, and settings that define modern 4K upscaling. Now it's time to lock in a repeatable workflow. Use the checklist below to move from testing to production, ensuring every clip meets your quality bar without wasting GPU cycles.
| Step | Action | Why it matters |
|---|---|---|
| 1 | Check source footage for banding and compression artifacts; preprocess to fix banding before upscaling. | Preprocessing improves final 4K output quality by preventing the AI model from amplifying existing flaws. |
| 2 | Verify your GPU compatibility (e.g., RTX 5070, RTX 5090) and select your engine: Topaz Video AI (Starlight), ChaiNNer (open-source), or REAL-Video-Enhancer (TensorRT). | Each engine excels in different scenarios; Topaz is user-friendly, while REAL-Video-Enhancer leverages TensorRT for speed on RTX cards. |
| 3 | Set encoder to software (x264/x265) in REAL-Video-Enhancer instead of NVENC. | Using NVENC with REAL-Video-Enhancer can cause color corruption; software encoding preserves color integrity in the final 4K render. |
| 4 | Log resolution, chosen model, and exact settings for each source type in your project notes. | A reliable workflow requires recording these parameters to ensure repeatability across different source clips. |
| 5 | Run A/B comparisons of upscaled results using objective metrics (PSNR/SSIM) or side-by-side previews. | Comparing outputs without objective metrics can lead to misleading conclusions about which model or setting performs best. |
| 6 | Benchmark your GPU against known results for your chosen tool to estimate render times for 4K outputs. | Processing times vary widely; knowing your baseline helps schedule production and budget for future hardware upgrades. |
Also worth reading: Optimizing Topaz Video AI's 2-Pass Workflow A Detailed Analysis of Denoising before Upscaling · 7-Step Workflow for AI-Powered Video Upscaling From Frames to 4K · YoloDeck's LCD Control Integration Analyzing Video Production Workflow Efficiency for AI Upscaling Projects · macOS InstantView Optimizing AI Video Upscaling Workflow in 2024
Quick answers
What hardware is needed for real-time 4K upscaling?
Real-time 4K upscaling at 30 fps requires a GPU with at least 16 GB VRAM and TensorRT support. Only the NVIDIA RTX 4090 or RTX 5090 consistently deliver this with diffusion models.
How do pricing tiers compare across top APIs?
Per-second rates for 4K output typically range from $0.03 to $0.12 per second of source video, with the lower end applying to lightweight models like Real-ESRGAN and the upper end to diffusion-based models such as Topaz Video AI's Starlight or Google's Veo upscaling pipeline....
Which AI models preserve text and UI elements best?
For text and UI elements, diffusion-based models with dedicated text-conditioning modules—Topaz Video AI's Starlight in "Text & Graphics" mode and cloud-based GPT Image 2—perform best. Standard L1 or L2 losses smooth over thin lines since they contribute little pixel error.
What are the batch processing limits for long videos?
For diffusion-based models such as Starlight, a batch size of 4 frames at 1080p input requires 12–16 GB of VRAM; attempting a batch of 8 frames on an RTX 5070 with 16 GB will cause an out-of-memory error. For local processing with Topaz Video AI or chaiNNer, leave the batch si...
How do you avoid common mistakes with interlaced and VFR sources?
The most common mistake in AI 4K upscaling is feeding interlaced or VFR source footage directly into the model without preprocessing. Interlaced video stores odd and even scan lines as separate fields, causing combing artifacts that the AI model treats as legitimate detail; th...
What preprocessing steps prevent banding and color shifts?
Banding and color shifts in AI-upscaled 4K video originate in preprocessing, not the upscaling model. The single most effective preventive step: convert the source to a 16-bit floating-point or 10-bit integer pipeline before any color space transformation or filtering, and app...