Generated reference · ComfyUI workflow · motion

FlashVSR Upscale

Video super-resolution with FlashVSR v1.1. The source audio is carried through GetVideoComponents and re-muxed, so an upscaled clip does not come back silent.

motion5nodesGPU H100out unspecified~240sv1.0.0

On this page
5Graph nodes
5Node classes
8Inputs
4Models

Tags: motionflashvsrupscalesuper-resolutionrunpod-serverlessvolume-backed

Inputs (8)#

The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.

source_videovideorequired
The clip to upscale.
pipelineenumdefault tiny
tiny is the fast path; tiny-long cuts VRAM materially on a long clip; full is the heaviest and the only one that can take a replacement VAE. Note the hyphen: the pack spells it tiny-long.
options: tinytiny-longfull
scaleintegerdefault 2min 2max 4
Output is this many times the source on each edge. The node accepts 2, 3 or 4 — it is an integer range, not a 2/4 choice — and the result is capped to 1080p by the motion caps.
tiled_ditbooleandefault true
Tile the transformer. Much less VRAM, slower. On by default because a 24 GB card cannot run this untiled at 4x.
tiled_vaebooleandefault true
Tile the VAE decode. Same trade.
unload_ditbooleandefault false
Unload the transformer before decoding to cut the VRAM peak, at the cost of reloading it next frame batch.
seedintegerdefault 0min 0
FlashVSR samples; the same inputs and seed give the same frames.
output_fpsfloatdefault 16.0min 1.0max 60.0
Frame rate written into the output. Upscaling does not change the frame count, so this should match the source.

ComfyUI node graph (5)#

The executable ComfyUI prompt graph: 5 nodes across 5 distinct node classes, wired by 5 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.

flowchart TD n0["1: LoadVideo"] n1["2: GetVideoComponents"] n2["3: FlashVSRNode"] n3["4: CreateVideo"] n4["5: SaveVideo"] n0 -->|video| n1 n1 -->|frames| n2 n2 -->|images| n3 n1 -->|audio| n3 n3 -->|video| n4
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (5)#

1LoadVideocore
file = {{source_video}} tmpl
outputs: VIDEO
2GetVideoComponentscore
video = ◂ node 1 · out[0]
outputs: IMAGEAUDIOFLOATCOMBOCOMBO
3FlashVSRNodecore
frames = ◂ node 2 · out[0]model = FlashVSR-v1.1mode = {{pipeline}} tmplscale = {{scale}} tmpltiled_vae = {{tiled_vae}} tmpltiled_dit = {{tiled_dit}} tmplunload_dit = {{unload_dit}} tmplseed = {{seed}} tmpl
outputs: IMAGE
4CreateVideocore
images = ◂ node 3 · out[0]fps = {{output_fps}} tmplaudio = ◂ node 2 · out[1]
outputs: VIDEO
5SaveVideocore
video = ◂ node 4 · out[0]filename_prefix = flashvsrformat = mp4

Parameter banks (1)#

The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.

requires_families (1)#

flashvsr

Models & dependencies#

Custom node packs (1)#

The non-core ComfyUI node classes this graph requires; the RunPod worker image the workflow runs on must bake or install a pack that provides every one of them.

ComfyUI-FlashVSR_Ultra_Fast

Models required (4)#

diffusion_pytorch_model_streaming_dmd.safetensors
LQ_proj_in.ckpt
TCDecoder.ckpt
Wan2.1_VAE.pth

Output contract#

What a successful run of this workflow returns.

primary
{"type": "video", "format": "mp4", "codec": "h264", "fps_source": "declared", "audio": true, "alpha": false, "description": "The upscaled clip with the source audio re-muxed."}

Taxonomy & routing#

How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.

assetFamily
restored-video-master
outputPackageProfile
video-master-profile
controlModalities
model-lockseed-locktemporal-lock
consistencyDimensions
motion
notes
FlashVSR v1.1 super-resolution. Like the interpolator it restores rather than authors: identity, lighting and environment come from the source, and the only dimension this workflow holds is temporal coherence across the upscaled frames.