{"id":51547808,"url":"https://github.com/jondamvi/flowframes-intel-vulkan-hacks","last_synced_at":"2026-07-09T20:01:30.100Z","repository":{"id":363768085,"uuid":"1264442550","full_name":"jondamvi/flowframes-intel-vulkan-hacks","owner":"jondamvi","description":"Workarounds for Flowframes + Intel GPU (Vulkan) + HEVC QSV hardware encoding + RIFE-NCNN-VS v4.25 model.","archived":false,"fork":false,"pushed_at":"2026-06-21T23:24:55.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-22T02:13:05.545Z","etag":null,"topics":["flowframes","gpu-accelerated","hevc","hevc-qsv","rife-ncnn-vs","rife-ncnn-vulkan","vapoursynth","video-interpolation"],"latest_commit_sha":null,"homepage":"","language":"AutoHotkey","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jondamvi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-09T22:20:55.000Z","updated_at":"2026-06-21T23:24:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jondamvi/flowframes-intel-vulkan-hacks","commit_stats":null,"previous_names":["jondamvi/flowframes-intel-vulkan-hacks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jondamvi/flowframes-intel-vulkan-hacks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jondamvi%2Fflowframes-intel-vulkan-hacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jondamvi%2Fflowframes-intel-vulkan-hacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jondamvi%2Fflowframes-intel-vulkan-hacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jondamvi%2Fflowframes-intel-vulkan-hacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jondamvi","download_url":"https://codeload.github.com/jondamvi/flowframes-intel-vulkan-hacks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jondamvi%2Fflowframes-intel-vulkan-hacks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35311289,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flowframes","gpu-accelerated","hevc","hevc-qsv","rife-ncnn-vs","rife-ncnn-vulkan","vapoursynth","video-interpolation"],"created_at":"2026-07-09T20:01:28.951Z","updated_at":"2026-07-09T20:01:30.092Z","avatar_url":"https://github.com/jondamvi.png","language":"AutoHotkey","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flowframes-intel-vulkan-hacks\nWorkarounds for Flowframes + Intel GPU (Vulkan) + HEVC QSV hardware encoding + RIFE-NCNN-VS v4.25 model.\n\n\nHere will be shown possible workarounds for running Flowframes with Intel GPU (Vulkan) and HEVC QSV hardware encoding, plus support for RIFE v4.25 model.\n\nTested on Flowframes 1.40.0 (Patreon release). Whether this works on the free public release 1.36.0 is unknown.\n\nHardware tested: Intel Iris Xe Graphics (Intel Tiger Lake Core i5).\n\n---\n\n## Who is this Repo for?\n\nIf you have only integrated Intel Graphics (with Vulkan supported) and want to run faster Flowframes video interpolation (GPU-accelerated), then workarounds described here may help to achieve this.\n\n## What this is\n\nTwo Flowframes calls intercepting executables - 'ffmpeg.exe' and 'VSPipe.exe' that can be compiled from AHK v2 scripts.\n\n**ffmpeg_wrapper** - Intercepts ffmpeg encoding calls and replaces libx265 (CPU-bound) with `hevc_qsv` (Intel Quick Sync hardware encoder). Result: Interpolation to 50FPS and encoding 1080p video that was estimated as 23+ hours completed in 3.5 hours, shifting workload to GPU, and with CPU usage dropping from 95% to ~10%.\n\n**vspipe_wrapper** - Intercepts VSPipe calls and patches the generated rife.vpy script on the fly. Required because Flowframes 1.40 generates `multiplier=` parameter in the vpy, but newer RIFE DLLs (from Flowframes 1.42 packages) use `factor_num`/`factor_den` instead. Without this patch, interpolation fails immediately.\n\n---\n\n## Requirements\n\n- Flowframes 1.40.0 (Patreon)\n- AutoHotkey v2 (for compiling AHK scripts to .exe)\n- Intel GPU with Quick Sync Video support (HEVC encoding)\n- Autohotkey may need adding Windows Defender exception\n\n---\n\n## Warning\n\n**Make a backup of your Flowframes application directory before making any changes!**\n\n`%LocalAppData%\\Flowframes`\n\nThese wrappers allow arbitrary ffmpeg parameters to be passed to your GPU encoder. Use at your own risk. No support provided. Different hardware/video type/encoding options - may need manual investigation and ffmpeg/vspipe/interceptor script tuning.\n\n---\n\n## Part 1 - HEVC QSV encoding wrapper\n\n### What it does\n\nBy default Flowframes calls ffmpeg with `-c:v libx265` for encoding. \nBut not all GPU's can work with libx265 codec.\nFor example Intel Graphics Xe cannot.\nIf in Flowfraes encoding MP4 HEVC is selected, then this wrapper intercepts Flowframes call to ffmpeg.exe and changes encoding parameters from libx265 to hevc_qsv, which is supported with Intel Graphics Xe. It also injects `format=nv12` into the VapourSynth pipe filter chain, which is required because the VS pipe outputs yuv444p16le and hevc_qsv needs nv12.\n\n### Files\n\n- `ffmpeg_wrapper.ahk` - wrapper source\n- `ffmpeg_wrapper_config.json` - encoder settings\n\n### Setup\n\n1. Go to `%LocalAppData%\\Flowframes\\FlowframesData\\pkgs\\av\\`\n2. Rename `ffmpeg.exe` to `ffmpeg_real.exe`\n3. Compile `ffmpeg_wrapper.ahk` as **64-bit console app** using Ahk2Exe with AutoHotkey64.exe as base\n4. Place compiled `ffmpeg.exe` in the same folder\n5. Place `ffmpeg_wrapper_config.json` in the same folder\n\n### Config\n\n```json\n{\n  \"OverrideH265EncodingEnable\": \"True\",\n  \"OverrideH265EncodingSettings\": {\n    \"OverrideEncodingArgs\": \"-c:v hevc_qsv -global_quality 17 -preset slow -async_depth 8 -g 50 -keyint_min 1 -forced_idr 1 -movflags +faststart\",\n    \"LogEnable\": \"True\",\n    \"DebugLogEnable\": \"False\"\n  }\n}\n```\n\nThis allows overriding Flowframes encoding parameters, because Flowframes can override additional encoding arguments specified in Developer Options with own pre-defined settings. For example, if you set additional encoding arguments in developer options to different video codec like `-c:v hevc_qsv` then Flowframes will append its own pre-defined arguments as `... -c:v libx265 ...` after these developer options and this makes ffmpeg to respect only the latest video codec argument in command line. \nWith these ffmpeg settings configured in OverrideEncodingArgs achieved faster encoding speed and great quality results.\nFor your video type and goal parameters needed may be different.\n\n*Refer to ffmpeg documentation for argument and value descriptions*: https://ffmpeg.org/ffmpeg.html\n\nLog files are written to the `%LocalAppData%\\Flowframes\\FlowframesData\\pkgs\\av\\ffmpeg_wrapper.log` folder when `LogEnable` is True.\n\n---\n\n## Part 2 - RIFE v4.25 model + VSPipe wrapper\n\n### What it does\n\nFlowframes 1.40 only includes RIFE v4.6. This section adds RIFE v4.25 support (released September 2024, the last stable RIFE release) and patches the VSPipe call to fix a parameter name incompatibility between the old and new RIFE DLL.\n\n### Step 1 - Copy packages from Flowframes 1.42\n\nFlowframes 1.42 (Patreon) ships with an updated rife-ncnn-vs package which can handle latest RIFE v4.25. Copy the entire directory:\n\nIn Flowframes 1.40 installation delete directory `%LocalAppData%\\Flowframes\\FlowframesData\\pkgs\\rife-ncnn-vs`.\nThen copy `rife-ncnn-vs` directory Flowframes 1.42 in Flowframes 1.40 installation directory to same path.\n\nThis brings in the updated VSPipe.exe, python scripts, VapourSynth DLLs and RIFE DLL `librife_windows_x86-64.dll` that supports newer models.\n\nNote that this public community repository from [styler00dollar/VapourSynth-RIFE-ncnn-Vulkan] https://github.com/styler00dollar/VapourSynth-RIFE-ncnn-Vulkan/releases/tag/r9_mod_v33 provides latest binary of `librife_windows_x86-64.dll` but that is not enough. You need entire RIFE-NCNN-VS stack including other plugin DLLs, VSPipe.exe and python scripts. Therefore easiest is to copy full `rife-ncnn-vs` directory from latest version of Flowframes as it includes everything bundled-in.\n\n### Step 2 - Download RIFE v4.25 model files\n\nDownload `flownet.param` and `flownet.bin` for rife-v4.25_ensembleFalse from:\n\nhttps://github.com/styler00dollar/VapourSynth-RIFE-ncnn-Vulkan/tree/master/RIFE/models/rife-v4.25_ensembleFalse\n\nCreate folder: `%LocalAppData%\\Flowframes\\FlowframesData\\pkgs\\rife-ncnn-vs\\rife-v4.25\\`\n\nPlace both files there.\n\nAlternatively, Flowframes can download the model automatically once it is registered in models.json (see next step).\n\n### Step 3 - Register the model in models.json\n\nEdit `%LocalAppData%\\Flowframes\\FlowframesData\\pkgs\\rife-ncnn-vs\\models.json`. Add the v4.25 entry and set it as default:\n\n```json\n[\n{\n    \"name\": \"RIFE 2.3\",\n    \"desc\": \"Old Model\",\n    \"dir\": \"rife-v2.3\",\n    \"isDefault\": \"false\",\n    \"fixedFactors\": [2]\n},\n{\n    \"name\": \"RIFE 4.0\",\n    \"desc\": \"New Fast General Model\",\n    \"dir\": \"rife-v4\",\n    \"isDefault\": \"false\"\n},\n{\n    \"name\": \"RIFE 4.3\",\n    \"desc\": \"New Fast General Model\",\n    \"dir\": \"rife-v4.3\",\n    \"isDefault\": \"false\"\n},\n{\n    \"name\": \"RIFE 4.4\",\n    \"desc\": \"Latest Fast General Model\",\n    \"dir\": \"rife-v4.4\",\n    \"isDefault\": \"false\"\n},\n{\n    \"name\": \"RIFE 4.6\",\n    \"desc\": \"Previous General Model\",\n    \"dir\": \"rife-v4.6\",\n    \"isDefault\": \"false\"\n},\n{\n    \"name\": \"RIFE 4.25\",\n    \"desc\": \"Latest General Model\",\n    \"dir\": \"rife-v4.25\",\n    \"isDefault\": \"true\"\n}\n]\n```\n\n### Step 4 - VSPipe wrapper\n\nFlowframes 1.40 generates VSPipe.exe command line with parameter `multiplier=X` in rife.vpy. The newer RIFE DLL `librife_windows_x86-64.dll` does not accept this parameter and fails. This VSPipe wrapper patches the `rife.vpy` file with correct parameters for RIFE v4.25 before then calling real VSPipe.\n\n1. Go to `%LocalAppData%\\Flowframes\\FlowframesData\\pkgs\\rife-ncnn-vs\\`\n2. Rename `VSPipe.exe` to `VSPipe_real.exe`\n3. Compile `vspipe_wrapper.ahk` as **64-bit console app** using Ahk2Exe with AutoHotkey64.exe as base\n4. Place compiled `VSPipe.exe` in the same folder\n\n### Screenshots\n\n\u003cimg width=\"701\" height=\"400\" alt=\"Flowframes_with_RIFEv4 25\" src=\"https://github.com/user-attachments/assets/aefc8807-f15a-4084-9390-9154b32e7387\" /\u003e\n\n\n---\n\n## Folder structure after setup\n\n```\npkgs\\\n  av\\\n    ffmpeg.exe              \u003c- compiled ffmpeg_wrapper\n    ffmpeg_real.exe         \u003c- original ffmpeg renamed\n    ffmpeg_wrapper_config.json\n    ffmpeg_wrapper.log      \u003c- created at runtime\n\n  rife-ncnn-vs\\\n    VSPipe.exe              \u003c- compiled vspipe_wrapper\n    VSPipe_real.exe         \u003c- original VSPipe renamed\n    vspipe_wrapper.log      \u003c- created at runtime\n    rife-v4.6\\\n      flownet.bin\n      flownet.param\n      files.json\n    rife-v4.25\\\n      flownet.bin\n      flownet.param\n      files.json\n    models.json\n    rife.vpy                \u003c- generated by Flowframes, patched by wrapper\n```\n\n---\n\n## Notes\n\nHere you get an idea of what can be done to make wanted features work.\nIf your hardware/video/encoding parameters are different and you get errors - then you may need to do additional research and change this solution to make it work.\n\n---\n\n## License\n\nDo whatever you want with this. No warranty.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjondamvi%2Fflowframes-intel-vulkan-hacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjondamvi%2Fflowframes-intel-vulkan-hacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjondamvi%2Fflowframes-intel-vulkan-hacks/lists"}