DLSS 神经画质增强 V2 - Star7
It says DLSS. It's not DLSS upscaling — but it's a great RTX cleanup pass.
- 图像
- 优化图像
Let's get the name out of the way, because it will mislead you exactly once. Star7DLSSNeuralEnhance does not call DLSS Super Resolution, needs no motion vectors, no depth buffer and no nvngx_dlss.dll. What it actually loads is NVIDIA's other DLSS-family runtime - nvngx_dlssnr.dll, the Neural Rendering denoiser from game engines - and runs it over your image or video frames as a GPU cleanup pass. Think "one-click denoise/sharpness/nice-texture" more than "4x upscaler." It's in the same weight class as the community's other NVIDIA-hardware-path sharpeners: it cleans and de-blocks and makes pixels look more natural, but it will not invent pores, lashes or fabric weave the way a generative upscaler like SeedVR2 will.
It ships in star7code's minimax-h3-chunk-star7 pack, alongside its H3 video nodes - which makes sense, because its real home is polishing those generated frame batches before you encode.
What it does under the hood
The node grabs the runtime from ComfyUI/models/upscale_models/nvngx_dlssnr.dll, loads it through the NVIDIA NGX ABI, and pushes each frame through the GPU denoiser via a small C binding. Because the runtime stubbornly ignores its own DLSSNR.Intensity control (the author A/B-tested it), the on-screen NR 强度 is synthesized on the CPU side afterward: it blends the NR output against the original, where 0 keeps the source, 1 applies full NR, and 2 doubles the difference for a punchier effect.
Then there's the "enhance" part. 目标像素 (MP) sets a total pixel target - 1.0 is about a megapixel. If your input is already bigger, nothing gets upscaled and it tells you so. If it's smaller, each frame is enlarged with high-quality Lanczos first, then run through the denoiser at the target size, one frame at a time so a long video never balloons into VRAM.
The real trick is video. On RTX 30-series and newer with working NVIDIA Optical Flow, the node feeds temporal state between frames. On older Turing cards (or when NVOF isn't available) it falls back to a motion-gated residual smoother - it averages the enhancement residual on static regions and drops history at moving edges, which kills most of the per-frame flicker without smearing motion. Single images skip all of that.
Inputs and what to set
All the widget labels are Chinese in the UI, so here's the map:
图像- an IMAGE: one still or a whole batch of frames. Channels can be 1/3/4 (it preserves alpha).风格预设- 真实风格 (realistic, default), 真实人像优化 (portrait-leaning), 3D 动漫风格, 2D 动漫风格, or 自定义参数. The old aggressive "真实风格加强" preset was removed in V2 because it aged people - it exaggerated pores and wrinkles after enlargement. Old workflows still load and migrate silently.目标像素 (MP)- target megapixels, default 1.0.NR 强度,局部结构,局部色调,皮肤结构- the four dials, roughly intensity / structure / tone / skin-detail. 皮肤结构 defaults to −1, which is "off"; anything above 0 tells the denoiser to work the skin specifically.时序稳定- temporal stabilization strength for the no-Optical-Flow path (default 0.55).自动蒙版- let the runtime auto-mask regions (on for realistic, off for the anime presets).
Changing any dial drops you into custom mode, and your values stick even if you switch presets around. Output is 优化图像, an IMAGE you can save or feed onward.
Installing
Drop the one model file exactly where it expects it:
ComfyUI/models/upscale_models/nvngx_dlssnr.dll
…or don't, because the first run downloads it for you (HF mirror → HuggingFace → a GitHub fallback), with file-size, PE-format and SHA-256 checks before it's written anywhere loadable. The pack itself installs the usual way:
cd ComfyUI/custom_nodes
git clone https://github.com/star7code/minimax-h3-chunk-star7.git
then restart ComfyUI (or use ComfyUI Manager, search "MiniMax H3 Activation Chunk - Star7").
Where people trip over it
- It is Windows + RTX + D3D12 + NVIDIA NGX only. No NVIDIA card, or a non-Windows host, and it raises a clear error rather than silently doing nothing. Don't try to run this in a Linux container.
- "Resolution didn't change!" - that's the log line saying your target MP isn't above the input, which is by design. It's an enhancer first and an upscaler second.
- Inputs under 64×64 are rejected. Batch frames and it processes them one at a time on CPU-side output to save VRAM - don't be alarmed that the tensor comes back off-GPU; that's deliberate for long videos.
Reach for this when you want NVIDIA's clean, natural-looking "more pixels / less compression junk" pass on an already-good render - the one the community keeps reading as more realistic than generative upscalers on clean sources. Want new detail that was never in the frame? That's a different tool's job.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| 图像 | IMAGE | — | |
| 风格预设 | COMBO | 真实风格 | 6 options: 真实风格, 真实人像优化, 3D 动漫风格, 2D 动漫风格, 自定义参数, 真实风格加强 |
| 目标像素 (MP) | FLOAT | 1.00.1–16 | — |
| NR 强度 | FLOAT | 0.900–2 | — |
| 局部结构 | FLOAT | 0.700–2 | — |
| 局部色调 | FLOAT | 0.750–2 | — |
| 皮肤结构 | FLOAT | -1.00-1–2 | — |
| 时序稳定 | FLOAT | 0.550–0.9 | — |
| 自动蒙版 | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 优化图像 | IMAGE | — |