AMD Video Upscaler
ComfyUI nodes for AMD AMF VideoSR/HQ video upscaling through FFmpeg sr_amf.
ComfyUI AMD Video Upscaler
ComfyUI custom nodes for AMD AMF VideoSR / HQ upscaling through FFmpeg's sr_amf filter.
This project does not call the private Radeon Software "Video Upscaling" playback toggle directly. AMD exposes that feature as an Adrenalin UI feature for video playback, not as a documented frame-processing SDK. The programmable backend here is AMD Advanced Media Framework (AMF), using the public FFmpeg sr_amf filter.
Nodes
AMD Video Super Resolution: the main node. Itsimages,resize_type,quality, andupscaled_imagesinterface matchesRTX Video Super Resolutionfrom Comfy-Org/Nvidia_RTX_Nodes_ComfyUI.AMD AMF Video Upscale (Advanced): exposes explicit AMF algorithm, backend, fallback, sharpness, aspect-ratio, FFmpeg path, and timeout controls.AMD AMF Video Upscaler Diagnostics: checks the FFmpeg binary, AMF hwaccel,sr_amf,vpp_amf, and optionally runs a tiny AMF smoke test.
Video Files
Video files are supported with the same component workflow used by the Nvidia RTX node:
Load Video -> Get Video Components -> AMD Video Super Resolution -> Create Video -> Save Video
Connect audio and fps directly from Get Video Components to Create Video. This keeps the source audio and frame rate while only the IMAGE frame batch passes through the upscaler. See example_workflows/amd_amf_video_upscale_video.json for a ready-to-load workflow.
Requirements
- Windows 10 or Windows 11.
- AMD Radeon driver with AMF runtime support.
- An FFmpeg build compiled with AMF filters. The tested local build is
ffmpeg 8.1.1-full_build-www.gyan.devwith--enable-amf. - ComfyUI with PyTorch and NumPy available.
Check your FFmpeg build:
ffmpeg -hide_banner -filters | Select-String -Pattern 'sr_amf|vpp_amf'
ffmpeg -hide_banner -hwaccels | Select-String -Pattern '^amf$'
Expected filters:
sr_amf AMF HQ video upscaling
vpp_amf AMF video scaling and format conversion
Install
Clone into ComfyUI's custom_nodes directory:
cd C:\ComfyUI\custom_nodes
git clone https://github.com/Yasei-no-otoko/ComfyUI-AMD-Video-Upscaler.git
Restart ComfyUI, then search for AMD AMF or AMD Video.
If ffmpeg.exe is not on PATH, set the node's ffmpeg_path input to the full path, for example:
C:\Tools\ffmpeg\bin\ffmpeg.exe
Backend Behavior
Both upscale nodes work with RGB ComfyUI image tensors and return an RGB image tensor. This is intentionally compatible with ComfyUI's standard video component nodes and the Nvidia RTX node's video workflow.
The compatible node maps Nvidia's four quality values to FFmpeg AMF algorithms:
LOW: bilinearMEDIUM: bicubicHIGH: Video SR1.0 (sr1-0)ULTRA: Video SR1.1 (sr1-1)
The default is ULTRA, matching the Nvidia node. Use the advanced node with sr1-0 when a driver or GPU does not support SR1.1.
Backends:
auto: usesr_amfwhen available.amf_sr: require FFmpegsr_amf.amf_vpp: require FFmpegvpp_amfbicubic scaling.cpu_lanczos: use FFmpeg CPU Lanczos scaling.
Fallback policy:
erroris the default. The node fails if AMF VideoSR is unavailable or fails.amf_vpp_bicubicfalls back to AMD AMF VPP bicubic scaling.cpu_lanczosfalls back to FFmpeg CPU Lanczos scaling.
The default avoids silently returning a non-VideoSR result when the AMD path is not available.
AMF VideoSR Options
sr_algorithm:sr1-0,sr1-1,bicubic,bilinear, orpoint.sharpness:-1uses AMF/FFmpeg default. Values0.0to2.0are passed tosr_amf.resize_mode: scale by multiplier or target dimensions.divisible_by: output dimensions are rounded up. The default2keeps NV12 AMF surfaces valid.
Use sr1-0 as the conservative default. sr1-1 exists in current FFmpeg/AMF builds, but users should validate quality and compatibility on their hardware.
When sr1-1 is selected, this node uses an RGBA AMF surface path because AMD documents VideoSR1.1 as not supporting NV12/P010 input/output formats.
Limitations
- Input is converted through 8-bit RGB rawvideo and NV12 AMF surfaces. This is intended for practical image/video-frame upscaling, not HDR or high-bit-depth preservation.
- Alpha channels are not supported.
- AMF support depends on GPU, driver, and FFmpeg build.
- The node invokes FFmpeg as a subprocess. This keeps the package pure Python and ComfyUI-Manager friendly, but it is not zero-copy.
- Non-Windows support depends on the user's FFmpeg AMF build and AMF runtime availability.
Publishing
This repository includes Comfy Registry metadata in pyproject.toml and a publish workflow at .github/workflows/publish_node.yml.
Before publishing to the registry:
- Create or confirm the Comfy Registry publisher id.
- If the publisher id is not
yasei-no-otoko, update[tool.comfy].PublisherId. - Add
REGISTRY_ACCESS_TOKENas a GitHub Actions repository secret. - Push a version tag, or run the publish workflow manually.
Development
Run local checks from the repository root with the same Python used to launch ComfyUI:
python -m compileall .
python -m pytest -q -c tests\pytest.ini tests
Run a live backend check:
@'
from amd_video_upscaler import probe_ffmpeg, run_smoke_test
print(probe_ffmpeg("ffmpeg"))
print(run_smoke_test("ffmpeg"))
'@ | python -
References
- AMD AMF SDK: https://gpuopen.com/advanced-media-framework/
- AMD AMF GitHub repository: https://github.com/GPUOpen-LibrariesAndSDKs/AMF
- AMD AMF FFmpeg guide: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/FFmpeg-and-AMF-HW-Acceleration
- ComfyUI Registry publishing docs: https://docs.comfy.org/registry/publishing
- Reference NVIDIA node repository: https://github.com/Comfy-Org/Nvidia_RTX_Nodes_ComfyUI