工作流 /
视频工具 /
视频放大:RelayVSR 4x
视频放大:RelayVSR 4x
Video Upscale: RelayVSR 4x
用 RelayVSR 把实拍素材放大 4 倍:大模型只为稀疏关键帧写参考潜变量,紧凑的 Flash 解码器把这些参考带到每一帧,整段视频一次流式完成、只需一步采样。输出正好是输入的 4 倍,帧率与音轨保持不变,适合作为 480p-768p 生成之后的收尾放大,也适合翻新旧素材。
视频工具
7 个节点 1 个输入 ComfyUI ≥ 0.45.0 ComfyUI 34 KB
需要的权重
这个工作流引用了 2 个权重文件,其中 2 个能在本站模型库里找到。
节点构成
MarkdownNote
× 3
LoadVideo
× 1
SaveVideo
× 1
655021b4-71af-43ca-91cd-267bb1bd9167
× 1
Video Slice
× 1
官方标注的模型
RelayVSR
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "6fce58e3-5712-414f-9fc8-daa030e61e1f",
3 "revision": 0,
4 "last_node_id": 203,
5 "last_link_id": 42,
6 "nodes": [
7 {
8 "id": 1,
9 "type": "LoadVideo",
10 "pos": [
11 -1280,
12 -200
13 ],
14 "size": [
15 300,
16 460
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [
23 {
24 "name": "VIDEO",
25 "type": "VIDEO",
26 "slot_index": 0,
27 "links": [
28 30
29 ]
30 }
31 ],
32 "properties": {
33 "Node name for S&R": "LoadVideo"
34 },
35 "widgets_values": [
36 "cyber_samurai_chainsaw_lunge_video.mp4",
37 "image"
38 ],
39 "widgets_values_named": {
40 "file": "cyber_samurai_chainsaw_lunge_video.mp4",
41 "upload": "image"
42 }
43 },
44 {
45 "id": 106,
46 "type": "SaveVideo",
47 "pos": [
48 -480,
49 -200
50 ],
51 "size": [
52 330,
53 480
54 ],
55 "flags": [],
56 "order": 6,
57 "mode": 0,
58 "inputs": [
59 {
60 "name": "video",
61 "type": "VIDEO",
62 "link": 31
63 }
64 ],
65 "outputs": [
66 {
67 "name": "video",
68 "type": "VIDEO",
69 "links": null
70 }
71 ],
72 "properties": [],
73 "widgets_values": [
74 "video/RelayVSR",
75 "auto",
76 "auto",
77 "auto"
78 ],
79 "widgets_values_named": {
80 "filename_prefix": "video/RelayVSR",
81 "format": "auto",
82 "format.codec": "auto",
83 "codec": "auto"
84 }
85 },
86 {
87 "id": 108,
88 "type": "655021b4-71af-43ca-91cd-267bb1bd9167",
89 "pos": [
90 -930,
91 -200
92 ],
93 "size": [
94 410,
95 440
96 ],
97 "flags": [],
98 "order": 5,
99 "mode": 0,
100 "inputs": [
101 {
102 "label": "output_bit_depth",
103 "name": "bit_depth",
104 "shape": 7,
105 "type": "COMBO",
106 "widget": {
107 "name": "bit_depth"
108 },
109 "link": null
110 },
111 {
112 "label": "output_color_space",
113 "name": "color_space",
114 "shape": 7,
115 "type": "COMBO",
116 "widget": {
117 "name": "color_space"
118 },
119 "link": null
120 },
121 {
122 "label": "output_chroma_subsampling",
123 "name": "chroma_subsampling",
124 "shape": 7,
125 "type": "COMBO",
126 "widget": {
127 "name": "chroma_subsampling"
128 },
129 "link": null
130 },
131 {
132 "name": "video",
133 "type": "VIDEO",
134 "link": 30
135 }
136 ],
137 "outputs": [
138 {
139 "name": "VIDEO",
140 "type": "VIDEO",
141 "links": [
142 31
143 ]
144 }
145 ],
146 "properties": {
147 "previewExposures": [
148 {
149 "name": "$$canvas-image-preview",
150 "sourceNodeId": "6",
151 "sourcePreviewName": "$$canvas-image-preview"
152 }
153 ]
154 },
155 "widgets_values": [
156 1,
157 1,
158 184958125111612,
159 "euler",
160 "simple",
161 "auto",
162 "sRGB",
163 "auto",
164 "relayvsr_x4_int8_convrot.safetensors",
165 "relayvsr_flash_vae_x4_fp32.safetensors"
166 ],
167 "widgets_values_named": {
168 "steps": 1,
169 "cfg": 1,
170 "seed": 184958125111612,
171 "sampler_name": "euler",
172 "scheduler": "simple",
173 "bit_depth": "auto",
174 "color_space": "sRGB",
175 "chroma_subsampling": "auto",
176 "unet_name": "relayvsr_x4_int8_convrot.safetensors",
177 "vae_name": "relayvsr_flash_vae_x4_fp32.safetensors"
178 }
179 },
180 {
181 "id": 109,
182 "type": "MarkdownNote",
183 "pos": [
184 -2260,
185 -220
186 ],
187 "size": [
188 430,
189 620
190 ],
191 "flags": [],
192 "order": 1,
193 "mode": 0,
194 "inputs": [],
195 "outputs": [],
196 "title": "Note: Model links",
197 "properties": [],
198 "widgets_values": [
199 "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Input Asset\n\n- [cyber_samurai_chainsaw_lunge_video.mp4](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/cyber_samurai_chainsaw_lunge_video.mp4)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/RelayVSR](https://huggingface.co/Comfy-Org/RelayVSR)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/RelayVSR](https://modelscope.cn/models/Comfy-Org/RelayVSR)\n\n**diffusion_models**\n\n- [relayvsr_x4_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/diffusion_models/relayvsr_x4_int8_convrot.safetensors) (4.81 GB)\n\n**vae**\n\n- [relayvsr_flash_vae_x4_fp32.safetensors](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/vae/relayvsr_flash_vae_x4_fp32.safetensors) (121.8 MB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── relayvsr_x4_int8_convrot.safetensors\n│ └── 📂 vae/\n│ └── relayvsr_flash_vae_x4_fp32.safetensors\n```\n\n## About this model\n\nRelayVSR upscales real video in one step: a large Wan-based model paints reference latents for sparse keyframes and a light \"Flash\" decoder carries them across every frame, so a long clip is restored in a streaming pass. The 4x pair here multiplies each side of the frame by four, so a 576x736 clip comes out at 2304x2944; native in ComfyUI since #17511.\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
200 ],
201 "widgets_values_named": {
202 "text": "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Input Asset\n\n- [cyber_samurai_chainsaw_lunge_video.mp4](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/cyber_samurai_chainsaw_lunge_video.mp4)\n\n## Model Links\n\n- [Hugging Face:Comfy-Org/RelayVSR](https://huggingface.co/Comfy-Org/RelayVSR)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/RelayVSR](https://modelscope.cn/models/Comfy-Org/RelayVSR)\n\n**diffusion_models**\n\n- [relayvsr_x4_int8_convrot.safetensors](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/diffusion_models/relayvsr_x4_int8_convrot.safetensors) (4.81 GB)\n\n**vae**\n\n- [relayvsr_flash_vae_x4_fp32.safetensors](https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/vae/relayvsr_flash_vae_x4_fp32.safetensors) (121.8 MB)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 diffusion_models/\n│ │ └── relayvsr_x4_int8_convrot.safetensors\n│ └── 📂 vae/\n│ └── relayvsr_flash_vae_x4_fp32.safetensors\n```\n\n## About this model\n\nRelayVSR upscales real video in one step: a large Wan-based model paints reference latents for sparse keyframes and a light \"Flash\" decoder carries them across every frame, so a long clip is restored in a streaming pass. The 4x pair here multiplies each side of the frame by four, so a 576x736 clip comes out at 2304x2944; native in ComfyUI since #17511.\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
203 },
204 "color": "#222",
205 "bgcolor": "#000"
206 },
207 {
208 "id": 200,
209 "type": "MarkdownNote",
210 "pos": [
211 -1790,
212 -210
213 ],
214 "size": [
215 400,
216 490
217 ],
218 "flags": [],
219 "order": 2,
220 "mode": 0,
221 "inputs": [],
222 "outputs": [],
223 "title": "Note",
224 "properties": {
225 "text": ""
226 },
227 "widgets_values": [
228 "## How to use\n\n**Load Video** → **RelayVSR Video Upscaler** (subgraph) → **Save Video**. Frame rate and audio pass through; only the picture is scaled, exactly 4x.\n\nIn the subgraph: `steps 1`, `cfg 1`, `euler` / `simple`, and a matching weight pair — `relayvsr_x4_int8_convrot` with `relayvsr_flash_vae_x4_fp32`.\n\nThe factor comes from the checkpoint, not from a widget, and mixing x4 with x2 files fails. The big model writes a keyframe every 15 frames; `VSRDecode` expands them to every frame.\n\n- For 2x, swap in `relayvsr_x2_lightx2v_int8_convrot` + `relayvsr_flash_vae_x2_fp32`. Nothing else changes.\n"
229 ],
230 "widgets_values_named": {
231 "text": "## How to use\n\n**Load Video** → **RelayVSR Video Upscaler** (subgraph) → **Save Video**. Frame rate and audio pass through; only the picture is scaled, exactly 4x.\n\nIn the subgraph: `steps 1`, `cfg 1`, `euler` / `simple`, and a matching weight pair — `relayvsr_x4_int8_convrot` with `relayvsr_flash_vae_x4_fp32`.\n\nThe factor comes from the checkpoint, not from a widget, and mixing x4 with x2 files fails. The big model writes a keyframe every 15 frames; `VSRDecode` expands them to every frame.\n\n- For 2x, swap in `relayvsr_x2_lightx2v_int8_convrot` + `relayvsr_flash_vae_x2_fp32`. Nothing else changes.\n"
232 },
233 "color": "#222",
234 "bgcolor": "#000"
235 },
236 {
237 "id": 202,
238 "type": "Video Slice",
239 "pos": [
240 -1270,
241 330
242 ],
243 "size": [
244 270,
245 110
246 ],
247 "flags": [],
248 "order": 3,
249 "mode": 0,
250 "inputs": [
251 {
252 "name": "video",
253 "type": "VIDEO",
254 "link": null
255 }
256 ],
257 "outputs": [
258 {
259 "name": "VIDEO",
260 "type": "VIDEO",
261 "links": null
262 }
263 ],
264 "properties": {
265 "Node name for S&R": "Video Slice"
266 },
267 "widgets_values": [
268 0,
269 5,
270 false
271 ],
272 "widgets_values_named": {
273 "start_time": 0,
274 "duration": 5,
275 "strict_duration": false
276 }
277 },
278 {
279 "id": 203,
280 "type": "MarkdownNote",
281 "pos": [
282 -1270,
283 490
284 ],
285 "size": [
286 270,
287 90
288 ],
289 "flags": [],
290 "order": 4,
291 "mode": 0,
292 "inputs": [],
293 "outputs": [],
294 "properties": [],
295 "widgets_values": [
296 "If you get OOM while using this workflow, try to trim the input and split the whole process into several passes"
297 ],
298 "widgets_values_named": {
299 "text": "If you get OOM while using this workflow, try to trim the input and split the whole process into several passes"
300 },
301 "color": "#222",
302 "bgcolor": "#000"
303 }
304 ],
305 "links": [
306 [
307 31,
308 108,
309 0,
310 106,
311 0,
312 "VIDEO"
313 ],
314 [
315 30,
316 1,
317 0,
318 108,
319 3,
320 "VIDEO"
321 ]
322 ],
323 "groups": [],
324 "definitions": {
325 "subgraphs": [
326 {
327 "id": "655021b4-71af-43ca-91cd-267bb1bd9167",
328 "version": 1,
329 "state": {
330 "lastGroupId": 2,
331 "lastNodeId": 203,
332 "lastLinkId": 42,
333 "lastRerouteId": 0
334 },
335 "revision": 0,
336 "config": [],
337 "name": "RelayVSR Video Upscaler",
338 "inputNode": {
339 "id": -10,
340 "bounding": [
341 -476.2763123874787,
342 360.99369632984616,
343 210.216796875,
344 268.00000000000006
345 ]
346 },
347 "outputNode": {
348 "id": -20,
349 "bounding": [
350 1873.6723518072329,
351 395.5975473722079,
352 128,
353 68
354 ]
355 },
356 "inputs": [
357 {
358 "id": "1377e673-937d-4fa0-8fc9-c5710e72a612",
359 "name": "steps",
360 "type": "INT",
361 "linkIds": [
362 33
363 ],
364 "pos": [
365 -290.0595155124787,
366 384.99369632984616
367 ]
368 },
369 {
370 "id": "0bcb2c73-0510-4898-b632-2047f9a8e867",
371 "name": "cfg",
372 "type": "FLOAT",
373 "linkIds": [
374 34
375 ],
376 "pos": [
377 -290.0595155124787,
378 404.99369632984616
379 ]
380 },
381 {
382 "id": "de8baacb-fb30-421c-9afd-6bf43fe5c44e",
383 "name": "seed",
384 "type": "INT",
385 "linkIds": [
386 32
387 ],
388 "pos": [
389 -290.0595155124787,
390 424.99369632984616
391 ]
392 },
393 {
394 "id": "ff7a8224-3d5e-410a-af46-5c500167cbfe",
395 "name": "sampler_name",
396 "type": "COMBO",
397 "linkIds": [
398 36
399 ],
400 "pos": [
401 -290.0595155124787,
402 444.99369632984616
403 ]
404 },
405 {
406 "id": "a09dfa31-e6ae-4585-b9f3-6abb8e3eee21",
407 "name": "scheduler",
408 "type": "COMBO",
409 "linkIds": [
410 37
411 ],
412 "pos": [
413 -290.0595155124787,
414 464.99369632984616
415 ]
416 },
417 {
418 "id": "3aa35cc0-9d14-4d8f-9a5e-cbcc692554c2",
419 "name": "bit_depth",
420 "type": "COMBO",
421 "linkIds": [
422 38
423 ],
424 "label": "output_bit_depth",
425 "pos": [
426 -290.0595155124787,
427 484.99369632984616
428 ]
429 },
430 {
431 "id": "f978aa27-3209-4f79-8eb7-08b91ef89617",
432 "name": "color_space",
433 "type": "COMBO",
434 "linkIds": [
435 39
436 ],
437 "label": "output_color_space",
438 "pos": [
439 -290.0595155124787,
440 504.99369632984616
441 ]
442 },
443 {
444 "id": "380c1a64-f3a5-4458-a9e3-38a280b7af60",
445 "name": "chroma_subsampling",
446 "type": "COMBO",
447 "linkIds": [
448 40
449 ],
450 "label": "output_chroma_subsampling",
451 "pos": [
452 -290.0595155124787,
453 524.9936963298462
454 ]
455 },
456 {
457 "id": "8cb01e99-2606-4970-84be-abdc96cf2733",
458 "name": "unet_name",
459 "type": "COMBO",
460 "linkIds": [
461 41
462 ],
463 "pos": [
464 -290.0595155124787,
465 544.9936963298462
466 ]
467 },
468 {
469 "id": "10d25e22-ba5f-443e-9f3c-c5cff1f37756",
470 "name": "vae_name",
471 "type": "COMBO",
472 "linkIds": [
473 42
474 ],
475 "pos": [
476 -290.0595155124787,
477 564.9936963298462
478 ]
479 },
480 {
481 "id": "6cd668fd-a5d2-4b3d-9249-c7979d88285c",
482 "name": "video",
483 "type": "VIDEO",
484 "linkIds": [
485 1
486 ],
487 "localized_name": "video",
488 "pos": [
489 -290.0595155124787,
490 584.9936963298462
491 ]
492 }
493 ],
494 "outputs": [
495 {
496 "id": "d24339c8-ea16-46fe-a2c7-f54e1e20ac04",
497 "name": "VIDEO",
498 "type": "VIDEO",
499 "linkIds": [
500 27
501 ],
502 "localized_name": "VIDEO",
503 "pos": [
504 1897.6723518072329,
505 419.5975473722079
506 ]
507 }
508 ],
509 "widgets": [],
510 "nodes": [
511 {
512 "id": 4,
513 "type": "UNETLoader",
514 "pos": [
515 40,
516 170
517 ],
518 "size": [
519 420,
520 90
521 ],
522 "flags": [],
523 "order": 1,
524 "mode": 0,
525 "inputs": [
526 {
527 "localized_name": "unet_name",
528 "name": "unet_name",
529 "type": "COMBO",
530 "widget": {
531 "name": "unet_name"
532 },
533 "link": 41
534 }
535 ],
536 "outputs": [
537 {
538 "localized_name": "MODEL",
539 "name": "MODEL",
540 "type": "MODEL",
541 "slot_index": 0,
542 "links": [
543 2,
544 4
545 ]
546 }
547 ],
548 "properties": {
549 "Node name for S&R": "UNETLoader",
550 "models": [
551 {
552 "name": "relayvsr_x4_int8_convrot.safetensors",
553 "url": "https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/diffusion_models/relayvsr_x4_int8_convrot.safetensors",
554 "directory": "diffusion_models"
555 }
556 ]
557 },
558 "widgets_values": [
559 "relayvsr_x4_int8_convrot.safetensors",
560 "default"
561 ],
562 "widgets_values_named": {
563 "unet_name": "relayvsr_x4_int8_convrot.safetensors",
564 "weight_dtype": "default"
565 },
566 "color": "#223",
567 "bgcolor": "#335"
568 },
569 {
570 "id": 5,
571 "type": "RelayVSRConditioning",
572 "pos": [
573 530,
574 200
575 ],
576 "size": [
577 260,
578 70
579 ],
580 "flags": [],
581 "order": 2,
582 "mode": 0,
583 "inputs": [
584 {
585 "localized_name": "model",
586 "name": "model",
587 "type": "MODEL",
588 "link": 2
589 },
590 {
591 "localized_name": "images",
592 "name": "images",
593 "type": "IMAGE",
594 "link": 3
595 }
596 ],
597 "outputs": [
598 {
599 "localized_name": "positive",
600 "name": "positive",
601 "type": "CONDITIONING",
602 "slot_index": 0,
603 "links": [
604 5,
605 6
606 ]
607 },
608 {
609 "localized_name": "latent",
610 "name": "latent",
611 "type": "LATENT",
612 "slot_index": 1,
613 "links": [
614 7
615 ]
616 }
617 ],
618 "properties": {
619 "Node name for S&R": "RelayVSRConditioning"
620 }
621 },
622 {
623 "id": 7,
624 "type": "VAELoader",
625 "pos": [
626 40,
627 310
628 ],
629 "size": [
630 420,
631 70
632 ],
633 "flags": [],
634 "order": 4,
635 "mode": 0,
636 "inputs": [
637 {
638 "localized_name": "vae_name",
639 "name": "vae_name",
640 "type": "COMBO",
641 "widget": {
642 "name": "vae_name"
643 },
644 "link": 42
645 }
646 ],
647 "outputs": [
648 {
649 "localized_name": "VAE",
650 "name": "VAE",
651 "type": "VAE",
652 "slot_index": 0,
653 "links": [
654 18
655 ]
656 }
657 ],
658 "properties": {
659 "Node name for S&R": "VAELoader",
660 "models": [
661 {
662 "name": "relayvsr_flash_vae_x4_fp32.safetensors",
663 "url": "https://huggingface.co/Comfy-Org/RelayVSR/resolve/main/vae/relayvsr_flash_vae_x4_fp32.safetensors",
664 "directory": "vae"
665 }
666 ]
667 },
668 "widgets_values": [
669 "relayvsr_flash_vae_x4_fp32.safetensors"
670 ],
671 "widgets_values_named": {
672 "vae_name": "relayvsr_flash_vae_x4_fp32.safetensors"
673 },
674 "color": "#322",
675 "bgcolor": "#533"
676 },
677 {
678 "id": 6,
679 "type": "KSampler",
680 "pos": [
681 840,
682 140
683 ],
684 "size": [
685 300,
686 440
687 ],
688 "flags": [],
689 "order": 3,
690 "mode": 0,
691 "inputs": [
692 {
693 "localized_name": "model",
694 "name": "model",
695 "type": "MODEL",
696 "link": 4
697 },
698 {
699 "localized_name": "positive",
700 "name": "positive",
701 "type": "CONDITIONING",
702 "link": 5
703 },
704 {
705 "localized_name": "negative",
706 "name": "negative",
707 "type": "CONDITIONING",
708 "link": 6
709 },
710 {
711 "localized_name": "latent_image",
712 "name": "latent_image",
713 "type": "LATENT",
714 "link": 7
715 },
716 {
717 "localized_name": "seed",
718 "name": "seed",
719 "type": "INT",
720 "widget": {
721 "name": "seed"
722 },
723 "link": 32
724 },
725 {
726 "localized_name": "steps",
727 "name": "steps",
728 "type": "INT",
729 "widget": {
730 "name": "steps"
731 },
732 "link": 33
733 },
734 {
735 "localized_name": "cfg",
736 "name": "cfg",
737 "type": "FLOAT",
738 "widget": {
739 "name": "cfg"
740 },
741 "link": 34
742 },
743 {
744 "localized_name": "sampler_name",
745 "name": "sampler_name",
746 "type": "COMBO",
747 "widget": {
748 "name": "sampler_name"
749 },
750 "link": 36
751 },
752 {
753 "localized_name": "scheduler",
754 "name": "scheduler",
755 "type": "COMBO",
756 "widget": {
757 "name": "scheduler"
758 },
759 "link": 37
760 }
761 ],
762 "outputs": [
763 {
764 "localized_name": "LATENT",
765 "name": "LATENT",
766 "type": "LATENT",
767 "slot_index": 0,
768 "links": [
769 19
770 ]
771 }
772 ],
773 "properties": {
774 "Node name for S&R": "KSampler"
775 },
776 "widgets_values": [
777 0,
778 "randomize",
779 1,
780 1,
781 "euler",
782 "simple",
783 1
784 ],
785 "widgets_values_named": {
786 "seed": 0,
787 "control_after_generate": "randomize",
788 "steps": 1,
789 "cfg": 1,
790 "sampler_name": "euler",
791 "scheduler": "simple",
792 "denoise": 1
793 }
794 },
795 {
796 "id": 2,
797 "type": "GetVideoComponents",
798 "pos": [
799 30,
800 580
801 ],
802 "size": [
803 230,
804 120
805 ],
806 "flags": [],
807 "order": 0,
808 "mode": 0,
809 "inputs": [
810 {
811 "localized_name": "video",
812 "name": "video",
813 "type": "VIDEO",
814 "link": 1
815 }
816 ],
817 "outputs": [
818 {
819 "localized_name": "images",
820 "name": "images",
821 "type": "IMAGE",
822 "slot_index": 0,
823 "links": [
824 3,
825 20
826 ]
827 },
828 {
829 "localized_name": "audio",
830 "name": "audio",
831 "type": "AUDIO",
832 "slot_index": 1,
833 "links": [
834 29
835 ]
836 },
837 {
838 "localized_name": "fps",
839 "name": "fps",
840 "type": "FLOAT",
841 "slot_index": 2,
842 "links": [
843 28
844 ]
845 },
846 {
847 "localized_name": "bit_depth",
848 "name": "bit_depth",
849 "type": "COMBO",
850 "slot_index": 3,
851 "links": []
852 },
853 {
854 "localized_name": "color_space",
855 "name": "color_space",
856 "type": "COMBO",
857 "slot_index": 4,
858 "links": []
859 }
860 ],
861 "properties": {
862 "Node name for S&R": "GetVideoComponents"
863 }
864 },
865 {
866 "id": 104,
867 "type": "VSRDecode",
868 "pos": [
869 1190,
870 150
871 ],
872 "size": [
873 220,
874 100
875 ],
876 "flags": [],
877 "order": 5,
878 "mode": 0,
879 "inputs": [
880 {
881 "localized_name": "vae",
882 "name": "vae",
883 "type": "VAE",
884 "link": 18
885 },
886 {
887 "localized_name": "samples",
888 "name": "samples",
889 "type": "LATENT",
890 "link": 19
891 },
892 {
893 "localized_name": "images",
894 "name": "images",
895 "type": "IMAGE",
896 "link": 20
897 }
898 ],
899 "outputs": [
900 {
901 "localized_name": "IMAGE",
902 "name": "IMAGE",
903 "type": "IMAGE",
904 "slot_index": 0,
905 "links": [
906 26
907 ]
908 }
909 ],
910 "properties": {
911 "Node name for S&R": "VSRDecode"
912 },
913 "widgets_values": [
914 1
915 ],
916 "widgets_values_named": {
917 "detail": 1
918 }
919 },
920 {
921 "id": 105,
922 "type": "CreateVideo",
923 "pos": [
924 1530,
925 580
926 ],
927 "size": [
928 290,
929 180
930 ],
931 "flags": [],
932 "order": 6,
933 "mode": 0,
934 "inputs": [
935 {
936 "localized_name": "images",
937 "name": "images",
938 "type": "IMAGE",
939 "link": 26
940 },
941 {
942 "localized_name": "audio",
943 "name": "audio",
944 "shape": 7,
945 "type": "AUDIO",
946 "link": 29
947 },
948 {
949 "localized_name": "fps",
950 "name": "fps",
951 "type": "FLOAT",
952 "widget": {
953 "name": "fps"
954 },
955 "link": 28
956 },
957 {
958 "localized_name": "bit_depth",
959 "name": "bit_depth",
960 "shape": 7,
961 "type": "COMBO",
962 "widget": {
963 "name": "bit_depth"
964 },
965 "link": 38
966 },
967 {
968 "localized_name": "color_space",
969 "name": "color_space",
970 "shape": 7,
971 "type": "COMBO",
972 "widget": {
973 "name": "color_space"
974 },
975 "link": 39
976 },
977 {
978 "localized_name": "chroma_subsampling",
979 "name": "chroma_subsampling",
980 "shape": 7,
981 "type": "COMBO",
982 "widget": {
983 "name": "chroma_subsampling"
984 },
985 "link": 40
986 }
987 ],
988 "outputs": [
989 {
990 "localized_name": "VIDEO",
991 "name": "VIDEO",
992 "type": "VIDEO",
993 "links": [
994 27
995 ]
996 }
997 ],
998 "properties": {
999 "Node name for S&R": "CreateVideo"
1000 },
1001 "widgets_values": [
1002 30,
1003 "auto",
1004 "sRGB",
1005 "auto",
1006 "none"
1007 ],
1008 "widgets_values_named": {
1009 "fps": 30,
1010 "bit_depth": "auto",
1011 "color_space": "sRGB",
1012 "chroma_subsampling": "auto",
1013 "codec": "none"
1014 }
1015 }
1016 ],
1017 "groups": [
1018 {
1019 "id": 1,
1020 "title": "Models",
1021 "bounding": [
1022 30,
1023 100,
1024 440,
1025 282.2362382590054
1026 ],
1027 "color": "#3f789e",
1028 "flags": []
1029 }
1030 ],
1031 "links": [
1032 {
1033 "id": 2,
1034 "origin_id": 4,
1035 "origin_slot": 0,
1036 "target_id": 5,
1037 "target_slot": 0,
1038 "type": "MODEL"
1039 },
1040 {
1041 "id": 3,
1042 "origin_id": 2,
1043 "origin_slot": 0,
1044 "target_id": 5,
1045 "target_slot": 1,
1046 "type": "IMAGE"
1047 },
1048 {
1049 "id": 4,
1050 "origin_id": 4,
1051 "origin_slot": 0,
1052 "target_id": 6,
1053 "target_slot": 0,
1054 "type": "MODEL"
1055 },
1056 {
1057 "id": 5,
1058 "origin_id": 5,
1059 "origin_slot": 0,
1060 "target_id": 6,
1061 "target_slot": 1,
1062 "type": "CONDITIONING"
1063 },
1064 {
1065 "id": 6,
1066 "origin_id": 5,
1067 "origin_slot": 0,
1068 "target_id": 6,
1069 "target_slot": 2,
1070 "type": "CONDITIONING"
1071 },
1072 {
1073 "id": 7,
1074 "origin_id": 5,
1075 "origin_slot": 1,
1076 "target_id": 6,
1077 "target_slot": 3,
1078 "type": "LATENT"
1079 },
1080 {
1081 "id": 18,
1082 "origin_id": 7,
1083 "origin_slot": 0,
1084 "target_id": 104,
1085 "target_slot": 0,
1086 "type": "VAE"
1087 },
1088 {
1089 "id": 19,
1090 "origin_id": 6,
1091 "origin_slot": 0,
1092 "target_id": 104,
1093 "target_slot": 1,
1094 "type": "LATENT"
1095 },
1096 {
1097 "id": 20,
1098 "origin_id": 2,
1099 "origin_slot": 0,
1100 "target_id": 104,
1101 "target_slot": 2,
1102 "type": "IMAGE"
1103 },
1104 {
1105 "id": 26,
1106 "origin_id": 104,
1107 "origin_slot": 0,
1108 "target_id": 105,
1109 "target_slot": 0,
1110 "type": "IMAGE"
1111 },
1112 {
1113 "id": 29,
1114 "origin_id": 2,
1115 "origin_slot": 1,
1116 "target_id": 105,
1117 "target_slot": 1,
1118 "type": "AUDIO"
1119 },
1120 {
1121 "id": 28,
1122 "origin_id": 2,
1123 "origin_slot": 2,
1124 "target_id": 105,
1125 "target_slot": 2,
1126 "type": "FLOAT"
1127 },
1128 {
1129 "id": 27,
1130 "origin_id": 105,
1131 "origin_slot": 0,
1132 "target_id": -20,
1133 "target_slot": 0,
1134 "type": "VIDEO"
1135 },
1136 {
1137 "id": 33,
1138 "origin_id": -10,
1139 "origin_slot": 0,
1140 "target_id": 6,
1141 "target_slot": 5,
1142 "type": "INT"
1143 },
1144 {
1145 "id": 34,
1146 "origin_id": -10,
1147 "origin_slot": 1,
1148 "target_id": 6,
1149 "target_slot": 6,
1150 "type": "FLOAT"
1151 },
1152 {
1153 "id": 32,
1154 "origin_id": -10,
1155 "origin_slot": 2,
1156 "target_id": 6,
1157 "target_slot": 4,
1158 "type": "INT"
1159 },
1160 {
1161 "id": 36,
1162 "origin_id": -10,
1163 "origin_slot": 3,
1164 "target_id": 6,
1165 "target_slot": 7,
1166 "type": "COMBO"
1167 },
1168 {
1169 "id": 37,
1170 "origin_id": -10,
1171 "origin_slot": 4,
1172 "target_id": 6,
1173 "target_slot": 8,
1174 "type": "COMBO"
1175 },
1176 {
1177 "id": 38,
1178 "origin_id": -10,
1179 "origin_slot": 5,
1180 "target_id": 105,
1181 "target_slot": 3,
1182 "type": "COMBO"
1183 },
1184 {
1185 "id": 39,
1186 "origin_id": -10,
1187 "origin_slot": 6,
1188 "target_id": 105,
1189 "target_slot": 4,
1190 "type": "COMBO"
1191 },
1192 {
1193 "id": 40,
1194 "origin_id": -10,
1195 "origin_slot": 7,
1196 "target_id": 105,
1197 "target_slot": 5,
1198 "type": "COMBO"
1199 },
1200 {
1201 "id": 41,
1202 "origin_id": -10,
1203 "origin_slot": 8,
1204 "target_id": 4,
1205 "target_slot": 0,
1206 "type": "COMBO"
1207 },
1208 {
1209 "id": 42,
1210 "origin_id": -10,
1211 "origin_slot": 9,
1212 "target_id": 7,
1213 "target_slot": 0,
1214 "type": "COMBO"
1215 },
1216 {
1217 "id": 1,
1218 "origin_id": -10,
1219 "origin_slot": 10,
1220 "target_id": 2,
1221 "target_slot": 0,
1222 "type": "VIDEO"
1223 }
1224 ],
1225 "extra": []
1226 }
1227 ]
1228 },
1229 "config": [],
1230 "extra": {
1231 "ds": {
1232 "scale": 0.8372807552940132,
1233 "offset": [
1234 1719.6705786283612,
1235 534.1809578485413
1236 ]
1237 },
1238 "frontendVersion": "1.59.1",
1239 "VHS_latentpreview": false,
1240 "VHS_latentpreviewrate": 0,
1241 "VHS_MetadataImage": true,
1242 "VHS_KeepIntermediate": true
1243 },
1244 "version": 0.4
1245}