Nodes/AetherScale/AetherScale • MFG Video
ComfyUI Node

AetherScale • MFG Video

4x the frames without ever building the batch

By vizart-vj·Created 22 days ago·Updated 6 days ago· 80
AetherScale • MFG Video
  • images
  • motion
  • video_path
  • stats
source_frame_rate24.00
multiplier4x
motion_sourceinternal_dis
surrogate_methodmv_blend
scene_cut_strategyrepeat_previous
codech264_nvenc
presetp4
bitrate_mbps16
pixel_formatyuv420p
filename_prefixAetherScale/MFG
cuda_device0
artifact_guard1.00
emissive_protection0.85
thin_detail_protection0.75
mv_confidence_threshold0.45
fallback_modelinear_blend
synthesis_modecontinuous_temporal
backendnative_dlssg
native_auto_bootstraptrue
native_guide_sourceinternal_dis
native_scene_cut_threshold0.24
nvenc_gpuauto

This is the node you want if you already know that AetherScale • MFG produces frames and you intend to end up with an MP4. Same DLSSG frame generation under the hood, but the generated frames go straight into FFmpeg/NVENC one at a time. The multiplied sequence never exists as a ComfyUI IMAGE tensor, which is the entire point.

Do the maths on a real job and it stops being a luxury. A 15-second 2464×512@24 clip is about 5 GiB as RGB float32 just sitting in RAM - now multiply the frame count by four. The README's own framing is that a 2x/4x materialisation at multi-megapixel resolution can run to tens or hundreds of GiB even in FP16. The streaming path is what makes 4x–6x on a long clip something you can run twice.

The mechanism, short version

Source frames go in, generated frames come out one at a time, get quantised to RGB24 and written to the encoder's stdin:

source IMAGE batch → DLSSG frame generation → one frame → RGB24 → FFmpeg/NVENC → MP4

Motion guides work as they do on the MFG node: internal_dis optical-flow analysis at roughly 640px width, or the AETHERSCALE_MOTION packet from AetherScale • Motion Analysis when you pick connected_motion. The generator is shared, so the settings reasoning is too - read the MFG article for the native-vs-surrogate split and the probe_only trick.

Inputs that matter

source_frame_rate is the one people fumble. The encoder writes at source_frame_rate × multiplier, so 4x on 24 fps gives you a 96 fps file that plays at its original duration. That's the correct default and why this field is required here rather than optional - the node has no way to guess, and a wrong value silently re-times your clip.

multiplier - 2x/3x/4x/5x/6x, default 4x. backend - native_dlssg (default) or surrogate_mv for the legacy software path. codec - h264_nvenc default, plus hevc_nvenc, av1_nvenc, libx264, and the full prores_* ladder. There's no container dropdown: ProRes profiles write .mov, everything else writes .mp4.

preset (p1–p7, default p4), bitrate_mbps (default 16), pixel_format (yuv420p for compatibility, yuv444p for chroma you care about), filename_prefix (default AetherScale/MFG), nvenc_gpu (auto picks the highest-generation NVIDIA GPU it finds via nvidia-smi) and cuda_device.

Everything prefixed native_ - native_auto_bootstrap, native_guide_source, native_scene_cut_threshold - behaves as on the MFG node, as do the legacy artifact_guard / emissive_protection / thin_detail_protection / mv_confidence_threshold / fallback_mode / synthesis_mode controls, which only do anything in surrogate mode. There is no AUDIO input - this node writes a silent file.

Outputs

video_path is a string you can hand to a save-text node or use in a script; stats is the JSON report (frame counts, encoder, GPU routing, backend resolved). There's no inline preview widget here - the file lands in ComfyUI's output directory like any other save node, so grab it from there. If you need audio muxed in, run the frames through AetherScale • Video Combine and wire audio there instead.

Install

Same pack, same one-liner - Manager search for AetherScale, or:

cd ComfyUI/custom_nodes
git clone https://github.com/vizart-vj/ComfyUI-AetherScale.git

Restart, and expect a first-run download: the native path fetches dlssg-worker.exe and nvngx_dlssg.dll (hash-verified, ~7.6 MB for the DLL) into runtime/dlssg_native/. No pip dependencies; nvidia-vfx is bootstrapped into the pack's own vendor folder rather than installed into your environment.

Where people get burned

FFmpeg is a hard requirement. AetherScale looks in PATH, then at the binary bundled with VideoHelperSuite, then a few known VHS paths. If none exist you get an explicit "FFmpeg was not found" error - worth fixing before a long render, since this node encodes inline and has nothing to show you if the encoder dies.

Windows + NVIDIA only, and the native DLSSG runtime targets RTX 50-series first. On other hardware you may be forced onto surrogate_mv, which warps and blends frames instead of using DLSSG - fine for a look, not the same result. probe_only on the MFG node tells you which path you're on.

Slow-motion confusion. If your 4x file plays back at normal speed and you wanted slow motion, nothing is broken - that's the intended duration-preserving output. Save frames from AetherScale • MFG and play them at source fps instead.

Last thing: this pack has no community history to cross-check against and the author flags the DLSS paths as experimental. Do a 2-second test clip before trusting it with a 20-minute sequence.

CategoryAetherScale/MFG

Inputs (24)

NameTypeDefaultDescription
imagesIMAGE
source_frame_rateFLOAT24.000.01–240
multiplierCOMBO4x5 options: 2x, 3x, 4x, 5x, 6x
motion_sourceCOMBOinternal_dis4 options: internal_dis, connected_motion, internal_compact, rgb_only
surrogate_methodCOMBOmv_blend3 options: mv_blend, linear_blend, frame_repeat
scene_cut_strategyCOMBOrepeat_previous3 options: repeat_previous, repeat_current, linear_blend
codecCOMBOh264_nvenc10 options: h264_nvenc, hevc_nvenc, av1_nvenc, libx264, prores_proxy, prores_lt, +4
presetCOMBOp47 options: p1, p2, p3, p4, p5, p6, +1
bitrate_mbpsINT161–500
pixel_formatCOMBOyuv420p2 options: yuv420p, yuv444p
filename_prefixSTRINGAetherScale/MFG
cuda_deviceINT00–0
motionoptAETHERSCALE_MOTION
artifact_guardoptFLOAT1.000–1
emissive_protectionoptFLOAT0.850–1
thin_detail_protectionoptFLOAT0.750–1
mv_confidence_thresholdoptFLOAT0.450–1
fallback_modeoptCOMBOlinear_blend2 options: linear_blend, closest_source
synthesis_modeoptCOMBOcontinuous_temporal2 options: continuous_temporal, legacy_guarded
backendoptCOMBOnative_dlssg2 options: native_dlssg, surrogate_mv
native_auto_bootstrapoptBOOLEANtrue
native_guide_sourceoptCOMBOinternal_dis3 options: internal_dis, connected_motion, zero_motion
native_scene_cut_thresholdoptFLOAT0.240.01–1
nvenc_gpuoptCOMBOauto1 options: auto

Outputs (2)

NameTypeDescription
video_pathSTRING
statsSTRING