diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..c10c889
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+assets/* export-ignore
\ No newline at end of file
diff --git a/assets/time.gif b/assets/time.gif
new file mode 100644
index 0000000..57e1ac7
Binary files /dev/null and b/assets/time.gif differ
diff --git a/examples/mask_examples.json b/examples/mask_examples.json
index 8f4c141..dad096c 100644
--- a/examples/mask_examples.json
+++ b/examples/mask_examples.json
@@ -1,6 +1,6 @@
{
- "last_node_id": 227,
- "last_link_id": 325,
+ "last_node_id": 249,
+ "last_link_id": 391,
"nodes": [
{
"id": 103,
@@ -15,7 +15,7 @@
},
"flags": {},
"order": 0,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -68,7 +68,7 @@
"1": 130
},
"flags": {},
- "order": 26,
+ "order": 29,
"mode": 0,
"inputs": [
{
@@ -130,7 +130,7 @@
26
],
"flags": {},
- "order": 45,
+ "order": 53,
"mode": 0,
"inputs": [
{
@@ -172,8 +172,8 @@
"1": 270
},
"flags": {},
- "order": 40,
- "mode": 0,
+ "order": 44,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -225,8 +225,8 @@
"1": 270
},
"flags": {},
- "order": 32,
- "mode": 0,
+ "order": 33,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -279,8 +279,8 @@
"1": 270
},
"flags": {},
- "order": 19,
- "mode": 0,
+ "order": 18,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -334,7 +334,7 @@
},
"flags": {},
"order": 1,
- "mode": 0,
+ "mode": 4,
"outputs": [
{
"name": "EMITTER_MOVEMENT",
@@ -369,8 +369,8 @@
"1": 270
},
"flags": {},
- "order": 20,
- "mode": 0,
+ "order": 19,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -424,7 +424,7 @@
},
"flags": {},
"order": 2,
- "mode": 0,
+ "mode": 4,
"outputs": [
{
"name": "EMITTER_MOVEMENT",
@@ -459,8 +459,8 @@
"1": 270
},
"flags": {},
- "order": 21,
- "mode": 0,
+ "order": 20,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -513,7 +513,7 @@
},
"flags": {},
"order": 3,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -567,7 +567,7 @@
},
"flags": {},
"order": 4,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_vortex",
@@ -606,11 +606,11 @@
],
"size": [
410,
- 909
+ 310
],
"flags": {},
- "order": 74,
- "mode": 0,
+ "order": 83,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -681,7 +681,7 @@
},
"flags": {},
"order": 5,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -734,8 +734,8 @@
"1": 270
},
"flags": {},
- "order": 22,
- "mode": 0,
+ "order": 21,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -790,8 +790,8 @@
310
],
"flags": {},
- "order": 73,
- "mode": 0,
+ "order": 82,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -858,11 +858,11 @@
],
"size": [
410,
- 909
+ 310
],
"flags": {},
- "order": 71,
- "mode": 0,
+ "order": 80,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -932,8 +932,8 @@
"1": 130
},
"flags": {},
- "order": 33,
- "mode": 0,
+ "order": 34,
+ "mode": 4,
"inputs": [
{
"name": "image",
@@ -975,7 +975,7 @@
},
"flags": {},
"order": 6,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -1028,8 +1028,8 @@
"1": 270
},
"flags": {},
- "order": 23,
- "mode": 0,
+ "order": 22,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -1081,8 +1081,8 @@
"1": 154
},
"flags": {},
- "order": 24,
- "mode": 0,
+ "order": 23,
+ "mode": 4,
"inputs": [
{
"name": "previous_well",
@@ -1124,7 +1124,7 @@
},
"flags": {},
"order": 7,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_well",
@@ -1166,8 +1166,8 @@
310
],
"flags": {},
- "order": 78,
- "mode": 0,
+ "order": 86,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -1233,11 +1233,11 @@
1781
],
"size": [
- 235.1999969482422,
- 286
+ 240,
+ 630
],
"flags": {},
- "order": 25,
+ "order": 24,
"mode": 0,
"inputs": [
{
@@ -1331,7 +1331,7 @@
"1": 130
},
"flags": {},
- "order": 35,
+ "order": 39,
"mode": 0,
"inputs": [
{
@@ -1381,7 +1381,8 @@
"type": "INT",
"links": [
182,
- 231
+ 231,
+ 328
],
"slot_index": 0,
"widget": {
@@ -1397,42 +1398,6 @@
"fixed"
]
},
- {
- "id": 136,
- "type": "PrimitiveNode",
- "pos": [
- -2551,
- 1058
- ],
- "size": {
- "0": 210,
- "1": 82
- },
- "flags": {},
- "order": 9,
- "mode": 0,
- "outputs": [
- {
- "name": "INT",
- "type": "INT",
- "links": [
- 183,
- 232
- ],
- "slot_index": 0,
- "widget": {
- "name": "height"
- }
- }
- ],
- "properties": {
- "Run widget replace on values": false
- },
- "widgets_values": [
- 768,
- "fixed"
- ]
- },
{
"id": 130,
"type": "PrimitiveNode",
@@ -1445,7 +1410,7 @@
"1": 82
},
"flags": {},
- "order": 10,
+ "order": 9,
"mode": 0,
"outputs": [
{
@@ -1469,113 +1434,6 @@
"fixed"
]
},
- {
- "id": 138,
- "type": "VHS_VideoCombine",
- "pos": [
- 370,
- 877
- ],
- "size": [
- 315,
- 310
- ],
- "flags": {},
- "order": 80,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 193
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00094.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 139,
- "type": "MaskToImage",
- "pos": [
- -105,
- 1006
- ],
- "size": {
- "0": 210,
- "1": 26
- },
- "flags": {},
- "order": 63,
- "mode": 0,
- "inputs": [
- {
- "name": "mask",
- "type": "MASK",
- "link": 267
- }
- ],
- "outputs": [
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 193
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskToImage"
- }
- },
{
"id": 181,
"type": "ParticleEmitter",
@@ -1588,8 +1446,8 @@
"1": 270
},
"flags": {},
- "order": 27,
- "mode": 0,
+ "order": 25,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -1642,8 +1500,8 @@
"1": 181.7848663330078
},
"flags": {},
- "order": 11,
- "mode": 0,
+ "order": 10,
+ "mode": 4,
"outputs": [
{
"name": "EMITTER_MOVEMENT",
@@ -1679,8 +1537,8 @@
"1": 181.7848663330078
},
"flags": {},
- "order": 12,
- "mode": 0,
+ "order": 11,
+ "mode": 4,
"outputs": [
{
"name": "EMITTER_MOVEMENT",
@@ -1716,7 +1574,7 @@
},
"flags": {},
"order": 36,
- "mode": 0,
+ "mode": 4,
"inputs": [
{
"name": "previous_emitter",
@@ -1766,11 +1624,11 @@
],
"size": [
315,
- 310
+ 738.84375
],
"flags": {},
- "order": 67,
- "mode": 0,
+ "order": 74,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -1840,8 +1698,8 @@
"1": 26
},
"flags": {},
- "order": 53,
- "mode": 0,
+ "order": 59,
+ "mode": 4,
"inputs": [
{
"name": "mask",
@@ -1876,8 +1734,8 @@
310
],
"flags": {},
- "order": 70,
- "mode": 0,
+ "order": 77,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -1947,8 +1805,8 @@
"1": 298
},
"flags": {},
- "order": 44,
- "mode": 0,
+ "order": 48,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -1984,77 +1842,6 @@
0.39
]
},
- {
- "id": 190,
- "type": "VHS_VideoCombine",
- "pos": [
- 2430,
- 5520
- ],
- "size": [
- 315,
- 310
- ],
- "flags": {},
- "order": 86,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 253
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00112.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
{
"id": 185,
"type": "MaskMorph",
@@ -2067,8 +1854,8 @@
"1": 322
},
"flags": {},
- "order": 42,
- "mode": 0,
+ "order": 46,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -2117,7 +1904,7 @@
"1": 394
},
"flags": {},
- "order": 13,
+ "order": 12,
"mode": 0,
"outputs": [
{
@@ -2151,238 +1938,6 @@
0
]
},
- {
- "id": 199,
- "type": "MaskWarp",
- "pos": [
- 1184,
- 6469
- ],
- "size": {
- "0": 315,
- "1": 346
- },
- "flags": {},
- "order": 28,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 263
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [
- 265
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskWarp"
- },
- "widgets_values": [
- 1,
- false,
- 0,
- 0,
- 0,
- 0,
- 0,
- "ease_in_out",
- false,
- "perlin",
- 0.05,
- 298.90000000000003,
- 3
- ]
- },
- {
- "id": 203,
- "type": "MaskWarp",
- "pos": [
- -298,
- 1144
- ],
- "size": {
- "0": 315,
- "1": 346
- },
- "flags": {},
- "order": 48,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 266
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [
- 267,
- 268
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskWarp"
- },
- "widgets_values": [
- 1,
- false,
- 0,
- 0,
- 0,
- 0,
- 0,
- "ease_in_out",
- false,
- "perlin",
- 0.05,
- 298.90000000000003,
- 3
- ]
- },
- {
- "id": 179,
- "type": "ParticleEmitter",
- "pos": [
- 2455,
- 1141
- ],
- "size": {
- "0": 285.6000061035156,
- "1": 270
- },
- "flags": {},
- "order": 46,
- "mode": 0,
- "inputs": [
- {
- "name": "previous_emitter",
- "type": "PARTICLE_EMITTER",
- "link": 242,
- "slot_index": 0
- },
- {
- "name": "emitter_movement",
- "type": "EMITTER_MOVEMENT",
- "link": null,
- "slot_index": 1
- }
- ],
- "outputs": [
- {
- "name": "PARTICLE_EMITTER",
- "type": "PARTICLE_EMITTER",
- "links": [
- 241
- ],
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "ParticleEmitter"
- },
- "widgets_values": [
- 0,
- 0.48,
- 0,
- 7,
- 17.6,
- 351,
- 16.8,
- "(255,0,0)",
- 0.21
- ]
- },
- {
- "id": 133,
- "type": "TextMaskNode",
- "pos": [
- -1135,
- 1079
- ],
- "size": {
- "0": 315,
- "1": 342
- },
- "flags": {},
- "order": 29,
- "mode": 0,
- "inputs": [
- {
- "name": "width",
- "type": "INT",
- "link": 232,
- "widget": {
- "name": "width"
- }
- },
- {
- "name": "height",
- "type": "INT",
- "link": 231,
- "widget": {
- "name": "height"
- }
- },
- {
- "name": "batch_size",
- "type": "INT",
- "link": 262,
- "widget": {
- "name": "batch_size"
- }
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [
- 246
- ],
- "shape": 3,
- "slot_index": 0
- },
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [],
- "shape": 3,
- "slot_index": 1
- }
- ],
- "properties": {
- "Node name for S&R": "TextMaskNode"
- },
- "widgets_values": [
- 768,
- 512,
- "RyanOnTheInside",
- "Arial",
- 50,
- "(255,255,255)",
- "(0,0,0)",
- 0.5,
- 0.5,
- 0,
- 1,
- 30
- ]
- },
{
"id": 198,
"type": "PrimitiveNode",
@@ -2395,14 +1950,16 @@
"1": 82
},
"flags": {},
- "order": 14,
+ "order": 13,
"mode": 0,
"outputs": [
{
"name": "INT",
"type": "INT",
"links": [
- 262
+ 262,
+ 329,
+ 363
],
"slot_index": 0,
"widget": {
@@ -2418,56 +1975,6 @@
"fixed"
]
},
- {
- "id": 176,
- "type": "MaskMorph",
- "pos": [
- -704,
- 1137
- ],
- "size": {
- "0": 315,
- "1": 322
- },
- "flags": {},
- "order": 38,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 246
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [
- 266
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskMorph"
- },
- "widgets_values": [
- 0.34,
- false,
- 0,
- 0,
- 0,
- 0,
- 0,
- "ease_in_out",
- true,
- "dilate",
- 3,
- 4
- ]
- },
{
"id": 164,
"type": "VHS_VideoCombine",
@@ -2480,8 +1987,8 @@
310
],
"flags": {},
- "order": 77,
- "mode": 0,
+ "order": 85,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -2551,8 +2058,8 @@
"1": 454
},
"flags": {},
- "order": 58,
- "mode": 0,
+ "order": 66,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -2626,8 +2133,8 @@
"1": 454
},
"flags": {},
- "order": 62,
- "mode": 0,
+ "order": 70,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -2662,8 +2169,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 221,
- 282
+ 221
],
"shape": 3,
"slot_index": 1
@@ -2702,8 +2208,8 @@
"1": 454
},
"flags": {},
- "order": 61,
- "mode": 0,
+ "order": 69,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -2765,52 +2271,6 @@
0.68
]
},
- {
- "id": 213,
- "type": "TextMaskNode",
- "pos": [
- 7802.457575074447,
- -3784.9684488571847
- ],
- "size": {
- "0": 315,
- "1": 342
- },
- "flags": {},
- "order": 15,
- "mode": 0,
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": null,
- "shape": 3
- },
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "TextMaskNode"
- },
- "widgets_values": [
- 512,
- 512,
- "Hello World",
- "Arial",
- 32,
- "(255,255,255)",
- "(0,0,0)",
- 0.5,
- 0.5,
- 0,
- 0.9,
- 1
- ]
- },
{
"id": 104,
"type": "VHS_VideoCombine",
@@ -2823,8 +2283,8 @@
310
],
"flags": {},
- "order": 51,
- "mode": 0,
+ "order": 57,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -2894,8 +2354,8 @@
"1": 454
},
"flags": {},
- "order": 59,
- "mode": 0,
+ "order": 67,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -2930,8 +2390,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 194,
- 286
+ 194
],
"shape": 3,
"slot_index": 1
@@ -2970,8 +2429,8 @@
"1": 454
},
"flags": {},
- "order": 56,
- "mode": 0,
+ "order": 64,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -3006,8 +2465,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 157,
- 319
+ 157
],
"shape": 3,
"slot_index": 1
@@ -3046,8 +2504,8 @@
"1": 454
},
"flags": {},
- "order": 41,
- "mode": 0,
+ "order": 45,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -3083,8 +2541,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 145,
- 289
+ 145
],
"shape": 3,
"slot_index": 1
@@ -3115,16 +2572,16 @@
"id": 172,
"type": "VHS_VideoCombine",
"pos": [
- 1217,
- 3154
+ 1181.2037879868071,
+ 3343.3521874804596
],
"size": [
315,
310
],
"flags": {},
- "order": 83,
- "mode": 0,
+ "order": 78,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -3186,16 +2643,16 @@
"id": 208,
"type": "OpticalFlowMaskModulation",
"pos": [
- 299,
- 3373
+ 263.2037879868053,
+ 3562.3521874804596
],
"size": {
"0": 386.3999938964844,
"1": 366
},
"flags": {},
- "order": 49,
- "mode": 0,
+ "order": 51,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -3249,7 +2706,7 @@
"1": 130
},
"flags": {},
- "order": 34,
+ "order": 35,
"mode": 0,
"inputs": [
{
@@ -3285,16 +2742,16 @@
"id": 218,
"type": "VHS_VideoCombine",
"pos": [
- 1612,
- 3717
+ 1576.2037879868071,
+ 3906.352187480455
],
"size": [
315,
310
],
"flags": {},
- "order": 84,
- "mode": 0,
+ "order": 79,
+ "mode": 4,
"inputs": [
{
"name": "images",
@@ -3356,16 +2813,16 @@
"id": 171,
"type": "MaskToImage",
"pos": [
- 837,
- 3335
+ 801.2037879868059,
+ 3524.3521874804596
],
"size": {
"0": 210,
"1": 26
},
"flags": {},
- "order": 65,
- "mode": 0,
+ "order": 62,
+ "mode": 4,
"inputs": [
{
"name": "mask",
@@ -3378,8 +2835,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 229,
- 306
+ 229
],
"shape": 3,
"slot_index": 0
@@ -3393,16 +2849,16 @@
"id": 204,
"type": "MaskToImage",
"pos": [
- 762,
- 3944
+ 726.2037879868059,
+ 4133.35218748046
],
"size": {
"0": 296.50048828125,
"1": 26
},
"flags": {},
- "order": 66,
- "mode": 0,
+ "order": 63,
+ "mode": 4,
"inputs": [
{
"name": "mask",
@@ -3415,8 +2871,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 297,
- 307
+ 297
],
"shape": 3,
"slot_index": 0
@@ -3430,15 +2885,15 @@
"id": 217,
"type": "_mfc",
"pos": [
- -551,
- 3172
+ -550,
+ 3830
],
"size": {
"0": 315,
"1": 130
},
"flags": {},
- "order": 39,
+ "order": 38,
"mode": 0,
"inputs": [
{
@@ -3470,18 +2925,1793 @@
]
},
{
- "id": 216,
+ "id": 221,
+ "type": "PrimitiveNode",
+ "pos": [
+ -1720,
+ 3790
+ ],
+ "size": {
+ "0": 210,
+ "1": 82
+ },
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "outputs": [
+ {
+ "name": "INT",
+ "type": "INT",
+ "links": [
+ 303,
+ 304
+ ],
+ "widget": {
+ "name": "frame_load_cap"
+ },
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Run widget replace on values": false
+ },
+ "widgets_values": [
+ 30,
+ "fixed"
+ ]
+ },
+ {
+ "id": 207,
+ "type": "OpticalFlowMaskModulation",
+ "pos": [
+ 261.2037879868053,
+ 4073.352187480458
+ ],
+ "size": {
+ "0": 386.3999938964844,
+ "1": 366
+ },
+ "flags": {},
+ "order": 52,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 295
+ },
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 294
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 296
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "OpticalFlowMaskModulation"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 1,
+ 0,
+ "Farneback",
+ 0.04,
+ 0,
+ 1,
+ 5,
+ 15,
+ 0.8,
+ "fade",
+ 50
+ ]
+ },
+ {
+ "id": 56,
"type": "VHS_LoadVideo",
"pos": [
- -1248,
- 2851
+ -1350,
+ 4240
],
"size": [
235.1999969482422,
- 286
+ 622.7999954223633
],
"flags": {},
+ "order": 28,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "name": "frame_load_cap",
+ "type": "INT",
+ "link": 304,
+ "widget": {
+ "name": "frame_load_cap"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 273,
+ 294
+ ],
+ "shape": 3,
+ "slot_index": 0
+ },
+ {
+ "name": "frame_count",
+ "type": "INT",
+ "links": null,
+ "shape": 3
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "links": null,
+ "shape": 3
+ },
+ {
+ "name": "video_info",
+ "type": "VHS_VIDEOINFO",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_LoadVideo"
+ },
+ "widgets_values": {
+ "video": "pexels-polina-tankilevitch-5385809 (1080p).mp4",
+ "force_rate": 15,
+ "force_size": "Custom",
+ "custom_width": 512,
+ "custom_height": 768,
+ "frame_load_cap": 30,
+ "skip_first_frames": 0,
+ "select_every_nth": 1,
+ "choose video to upload": "image",
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "frame_load_cap": 30,
+ "skip_first_frames": 0,
+ "force_rate": 15,
+ "select_every_nth": 1,
+ "filename": "pexels-polina-tankilevitch-5385809 (1080p).mp4",
+ "type": "input",
+ "format": "video/mp4",
+ "force_size": "512x768"
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 202,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 5110,
+ 5325
+ ],
+ "size": [
+ 751.7349243164062,
+ 310
+ ],
+ "flags": {},
+ "order": 50,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 264
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "AnimateDiff",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_00098.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 186,
+ "type": "MaskTransform",
+ "pos": [
+ 1240,
+ 7860
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 47,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 251
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 259,
+ 310
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ true,
+ "rotate",
+ 169.5,
+ 171.4
+ ]
+ },
+ {
+ "id": 195,
+ "type": "MaskToImage",
+ "pos": [
+ 2040,
+ 8920
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 61,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 260
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 256
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 191,
+ "type": "MaskToImage",
+ "pos": [
+ 2030,
+ 6890
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 58,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 258
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 254
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 201,
+ "type": "MaskToImage",
+ "pos": [
+ 1808,
+ 6429
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 37,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 265
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 264
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 210,
+ "type": "ImageScaleBy",
+ "pos": [
+ 3297,
+ 1285
+ ],
+ "size": {
+ "0": 315,
+ "1": 82
+ },
+ "flags": {},
+ "order": 93,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 277
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageScaleBy"
+ },
+ "widgets_values": [
+ "nearest-exact",
+ 2
+ ]
+ },
+ {
+ "id": 177,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 3850,
+ 805
+ ],
+ "size": [
+ 602.3653564453125,
+ 664.2435709635417
+ ],
+ "flags": {},
+ "order": 94,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 318
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "masks/RyanOnTheInside",
+ "format": "video/ffmpeg-gif",
+ "dither": "sierra2_4a",
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "RyanOnTheInside_00014.gif",
+ "subfolder": "masks",
+ "type": "output",
+ "format": "video/ffmpeg-gif",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 120,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 2320,
+ -980
+ ],
+ "size": [
+ 410,
+ 310
+ ],
+ "flags": {},
+ "order": 81,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 163
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "gravwells",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": false,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "gravwells_00001.mp4",
+ "subfolder": "",
+ "type": "temp",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 121,
+ "type": "ParticleEmissionMask",
+ "pos": [
+ 1660,
+ -930
+ ],
+ "size": {
+ "0": 360.8669128417969,
+ "1": 454
+ },
+ "flags": {},
+ "order": 65,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 171
+ },
+ {
+ "name": "emitters",
+ "type": "PARTICLE_EMITTER",
+ "link": 165,
+ "slot_index": 1
+ },
+ {
+ "name": "vortices",
+ "type": "VORTEX",
+ "link": null
+ },
+ {
+ "name": "wells",
+ "type": "GRAVITY_WELL",
+ "link": 167,
+ "slot_index": 3
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [],
+ "shape": 3
+ },
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 163
+ ],
+ "shape": 3,
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ParticleEmissionMask"
+ },
+ "widgets_values": [
+ 0.99,
+ false,
+ 0,
+ 0,
+ 340,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ true,
+ 1,
+ 10,
+ 0.68
+ ]
+ },
+ {
+ "id": 155,
+ "type": "ParticleEmissionMask",
+ "pos": [
+ 4140,
+ -800
+ ],
+ "size": {
+ "0": 360.8669128417969,
+ "1": 454
+ },
+ "flags": {},
+ "order": 68,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 209
+ },
+ {
+ "name": "emitters",
+ "type": "PARTICLE_EMITTER",
+ "link": 210,
+ "slot_index": 1
+ },
+ {
+ "name": "vortices",
+ "type": "VORTEX",
+ "link": 214,
+ "slot_index": 2
+ },
+ {
+ "name": "wells",
+ "type": "GRAVITY_WELL",
+ "link": null,
+ "slot_index": 3
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [],
+ "shape": 3
+ },
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 208
+ ],
+ "shape": 3,
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ParticleEmissionMask"
+ },
+ "widgets_values": [
+ 0.99,
+ false,
+ 0,
+ 0,
+ 340,
+ 4,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ true,
+ 1,
+ 10,
+ 0.68
+ ]
+ },
+ {
+ "id": 154,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 4860,
+ -770
+ ],
+ "size": [
+ 410,
+ 310
+ ],
+ "flags": {},
+ "order": 84,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 208
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "vortex",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": false,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "vortex_00001.mp4",
+ "subfolder": "",
+ "type": "temp",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 139,
+ "type": "MaskToImage",
+ "pos": [
+ 281,
+ 899
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 88,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 348
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 193
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 236,
+ "type": "MaskTransform",
+ "pos": [
+ -941,
+ 579
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 40,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 342
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 0.97,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ false,
+ "scale",
+ 1.5,
+ 1.5
+ ]
+ },
+ {
+ "id": 176,
+ "type": "MaskMorph",
+ "pos": [
+ -462,
+ 1044
+ ],
+ "size": {
+ "0": 315,
+ "1": 322
+ },
+ "flags": {},
+ "order": 54,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 347
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 266
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskMorph"
+ },
+ "widgets_values": [
+ 0.34,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ true,
+ "dilate",
+ 3,
+ 4
+ ]
+ },
+ {
+ "id": 203,
+ "type": "MaskWarp",
+ "pos": [
+ -80,
+ 990
+ ],
+ "size": {
+ "0": 315,
+ "1": 346
+ },
+ "flags": {},
+ "order": 71,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 266
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 268,
+ 348
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskWarp"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ false,
+ "perlin",
+ 0.05,
+ 298.90000000000003,
+ 3
+ ]
+ },
+ {
+ "id": 179,
+ "type": "ParticleEmitter",
+ "pos": [
+ 2412,
+ 1037
+ ],
+ "size": {
+ "0": 285.6000061035156,
+ "1": 270
+ },
+ "flags": {},
+ "order": 49,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "previous_emitter",
+ "type": "PARTICLE_EMITTER",
+ "link": 242,
+ "slot_index": 0
+ },
+ {
+ "name": "emitter_movement",
+ "type": "EMITTER_MOVEMENT",
+ "link": null,
+ "slot_index": 1
+ }
+ ],
+ "outputs": [
+ {
+ "name": "PARTICLE_EMITTER",
+ "type": "PARTICLE_EMITTER",
+ "links": [
+ 241
+ ],
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ParticleEmitter"
+ },
+ "widgets_values": [
+ 0,
+ 0.48,
+ 0,
+ 7,
+ 17.6,
+ 351,
+ 16.8,
+ "(255,0,0)",
+ 0.21
+ ]
+ },
+ {
+ "id": 237,
+ "type": "MaskTransform",
+ "pos": [
+ -913,
+ 1070
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 41,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 344
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 347
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "none",
+ true,
+ "scale",
+ 0.4,
+ 0.4
+ ]
+ },
+ {
+ "id": 133,
+ "type": "TextMaskNode",
+ "pos": [
+ -1395,
+ 1021
+ ],
+ "size": {
+ "0": 315,
+ "1": 342
+ },
+ "flags": {},
"order": 30,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 232,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 231,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "batch_size",
+ "type": "INT",
+ "link": 262,
+ "widget": {
+ "name": "batch_size"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 342,
+ 344
+ ],
+ "shape": 3,
+ "slot_index": 0
+ },
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [],
+ "shape": 3,
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "TextMaskNode"
+ },
+ "widgets_values": [
+ 768,
+ 512,
+ "Particle Systems",
+ "Arial",
+ 45,
+ "(255,255,255)",
+ "(0,0,0)",
+ 0.5,
+ 0.5,
+ 0,
+ 1,
+ 30
+ ]
+ },
+ {
+ "id": 138,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 814,
+ 631
+ ],
+ "size": [
+ 315,
+ 521
+ ],
+ "flags": {},
+ "order": 96,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 193
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "AnimateDiff",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_02019.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 231,
+ "type": "MaskToImage",
+ "pos": [
+ -213,
+ 1846
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 72,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 352
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 333,
+ 338
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 234,
+ "type": "OpticalFlowMaskModulation",
+ "pos": [
+ 443,
+ 1595
+ ],
+ "size": {
+ "0": 386.3999938964844,
+ "1": 366
+ },
+ "flags": {},
+ "order": 90,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 351
+ },
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 338
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 335
+ ],
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "OpticalFlowMaskModulation"
+ },
+ "widgets_values": [
+ 0.99,
+ false,
+ 0,
+ 0,
+ "Farneback",
+ 0.04,
+ 0,
+ 1,
+ 5,
+ 15,
+ 0.8,
+ "fade",
+ 50
+ ]
+ },
+ {
+ "id": 194,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 2388,
+ 7859
+ ],
+ "size": [
+ 315,
+ 310
+ ],
+ "flags": {},
+ "order": 75,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 255
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "AnimateDiff",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_00090.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 229,
+ "type": "TextMaskNode",
+ "pos": [
+ -1597,
+ 1824
+ ],
+ "size": {
+ "0": 315,
+ "1": 342
+ },
+ "flags": {},
+ "order": 31,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 327,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 328,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "batch_size",
+ "type": "INT",
+ "link": 329,
+ "widget": {
+ "name": "batch_size"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 349
+ ],
+ "shape": 3,
+ "slot_index": 0
+ },
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [],
+ "shape": 3,
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "TextMaskNode"
+ },
+ "widgets_values": [
+ 768,
+ 512,
+ "Optical Flow",
+ "Arial",
+ 36,
+ "(255,255,255)",
+ "(0,0,0)",
+ 0.03,
+ 0.03,
+ 0,
+ 1,
+ 30
+ ]
+ },
+ {
+ "id": 228,
+ "type": "MaskTransform",
+ "pos": [
+ -1251,
+ 1839
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 42,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 349
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 350
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ false,
+ "translate",
+ 252,
+ 224.10000000000002
+ ]
+ },
+ {
+ "id": 235,
+ "type": "MaskTransform",
+ "pos": [
+ -817,
+ 1827
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 55,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 350
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 351,
+ 352
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 0,
+ 0,
+ 5,
+ 0,
+ 0,
+ "ease_in_out",
+ false,
+ "scale",
+ 1.3,
+ 1.3
+ ]
+ },
+ {
+ "id": 232,
+ "type": "MaskToImage",
+ "pos": [
+ 1225,
+ 1767
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 97,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 335
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 178,
+ "type": "ParticleEmissionMask",
+ "pos": [
+ 2825,
+ 925
+ ],
+ "size": {
+ "0": 360.8669128417969,
+ "1": 454
+ },
+ "flags": {},
+ "order": 87,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 268
+ },
+ {
+ "name": "emitters",
+ "type": "PARTICLE_EMITTER",
+ "link": 241,
+ "slot_index": 1
+ },
+ {
+ "name": "vortices",
+ "type": "VORTEX",
+ "link": null
+ },
+ {
+ "name": "wells",
+ "type": "GRAVITY_WELL",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [],
+ "shape": 3
+ },
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 277,
+ 318,
+ 359
+ ],
+ "shape": 3,
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ParticleEmissionMask"
+ },
+ "widgets_values": [
+ 0.99,
+ false,
+ 0,
+ 0,
+ 340,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ true,
+ 1,
+ 10,
+ 0.68
+ ]
+ },
+ {
+ "id": 240,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 4929,
+ 828
+ ],
+ "size": [
+ 601.5174560546875,
+ 663.6783040364583
+ ],
+ "flags": {},
+ "order": 95,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 359
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "masks/particle_systems",
+ "format": "video/ffmpeg-gif",
+ "dither": "sierra2_4a",
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "particle_systems_00001.gif",
+ "subfolder": "masks",
+ "type": "output",
+ "format": "video/ffmpeg-gif",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 216,
+ "type": "VHS_LoadVideo",
+ "pos": [
+ -1250,
+ 3510
+ ],
+ "size": [
+ 235.1999969482422,
+ 622.7999954223633
+ ],
+ "flags": {},
+ "order": 27,
"mode": 0,
"inputs": [
{
@@ -3564,11 +4794,120 @@
}
},
{
- "id": 221,
+ "id": 230,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 49,
+ 1703
+ ],
+ "size": [
+ 320,
+ 524
+ ],
+ "flags": {},
+ "order": 89,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 333
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "AnimateDiff",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_02031.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 136,
"type": "PrimitiveNode",
"pos": [
- -1721,
- 3131
+ -2572,
+ 1163
+ ],
+ "size": {
+ "0": 210,
+ "1": 80
+ },
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "outputs": [
+ {
+ "name": "INT",
+ "type": "INT",
+ "links": [
+ 183,
+ 232,
+ 327,
+ 361
+ ],
+ "slot_index": 0,
+ "widget": {
+ "name": "height"
+ }
+ }
+ ],
+ "properties": {
+ "Run widget replace on values": false
+ },
+ "widgets_values": [
+ 768,
+ "fixed"
+ ]
+ },
+ {
+ "id": 246,
+ "type": "PrimitiveNode",
+ "pos": [
+ -1563,
+ 2489
],
"size": {
"0": 210,
@@ -3582,47 +4921,41 @@
"name": "INT",
"type": "INT",
"links": [
- 303,
- 304
+ 368
],
+ "slot_index": 0,
"widget": {
- "name": "frame_load_cap"
- },
- "slot_index": 0
+ "name": "height"
+ }
}
],
"properties": {
"Run widget replace on values": false
},
"widgets_values": [
- 30,
+ 256,
"fixed"
]
},
{
- "id": 207,
- "type": "OpticalFlowMaskModulation",
+ "id": 199,
+ "type": "MaskWarp",
"pos": [
- 297,
- 3884
+ 1184,
+ 6469
],
"size": {
- "0": 386.3999938964844,
- "1": 366
+ "0": 315,
+ "1": 346
},
"flags": {},
- "order": 50,
- "mode": 0,
+ "order": 26,
+ "mode": 4,
"inputs": [
{
"name": "masks",
"type": "MASK",
- "link": 295
- },
- {
- "name": "images",
- "type": "IMAGE",
- "link": 294
+ "link": 263
}
],
"outputs": [
@@ -3630,425 +4963,14 @@
"name": "MASK",
"type": "MASK",
"links": [
- 296
+ 265
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
- "Node name for S&R": "OpticalFlowMaskModulation"
- },
- "widgets_values": [
- 1,
- false,
- 1,
- 0,
- "Farneback",
- 0.04,
- 0,
- 1,
- 5,
- 15,
- 0.8,
- "fade",
- 50
- ]
- },
- {
- "id": 222,
- "type": "VHS_VideoCombine",
- "pos": [
- 5559,
- 3351
- ],
- "size": [
- 315,
- 262
- ],
- "flags": {},
- "order": 90,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 305
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "masks/opticalflow_examples",
- "format": "video/ffmpeg-gif",
- "dither": "sierra2_4a",
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "opticalflow_examples_00001.gif",
- "subfolder": "masks",
- "type": "output",
- "format": "video/ffmpeg-gif",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 56,
- "type": "VHS_LoadVideo",
- "pos": [
- -1351,
- 3575
- ],
- "size": [
- 235.1999969482422,
- 682.5777723524305
- ],
- "flags": {},
- "order": 31,
- "mode": 0,
- "inputs": [
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- },
- {
- "name": "frame_load_cap",
- "type": "INT",
- "link": 304,
- "widget": {
- "name": "frame_load_cap"
- }
- }
- ],
- "outputs": [
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 273,
- 294,
- 298
- ],
- "shape": 3,
- "slot_index": 0
- },
- {
- "name": "frame_count",
- "type": "INT",
- "links": null,
- "shape": 3
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "links": null,
- "shape": 3
- },
- {
- "name": "video_info",
- "type": "VHS_VIDEOINFO",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_LoadVideo"
- },
- "widgets_values": {
- "video": "pexels-polina-tankilevitch-5385809 (1080p).mp4",
- "force_rate": 15,
- "force_size": "Custom",
- "custom_width": 512,
- "custom_height": 768,
- "frame_load_cap": 30,
- "skip_first_frames": 0,
- "select_every_nth": 1,
- "choose video to upload": "image",
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "frame_load_cap": 30,
- "skip_first_frames": 0,
- "force_rate": 15,
- "select_every_nth": 1,
- "filename": "pexels-polina-tankilevitch-5385809 (1080p).mp4",
- "type": "input",
- "format": "video/mp4",
- "force_size": "512x768"
- },
- "muted": false
- }
- }
- },
- {
- "id": 219,
- "type": "ImageConcatMulti",
- "pos": [
- 4919,
- 3218
- ],
- "size": {
- "0": 210,
- "1": 170
- },
- "flags": {},
- "order": 85,
- "mode": 0,
- "inputs": [
- {
- "name": "image_1",
- "type": "IMAGE",
- "link": 298
- },
- {
- "name": "image_2",
- "type": "IMAGE",
- "link": 306
- },
- {
- "name": "image_3",
- "type": "IMAGE",
- "link": 307
- }
- ],
- "outputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "links": [
- 302,
- 305
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "ImageConcatMulti"
- },
- "widgets_values": [
- 3,
- "right",
- false,
- null
- ]
- },
- {
- "id": 220,
- "type": "VHS_VideoCombine",
- "pos": [
- 5805,
- 1738
- ],
- "size": [
- 2078.699462890625,
- 310
- ],
- "flags": {},
- "order": 89,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 302
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00109.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 202,
- "type": "VHS_VideoCombine",
- "pos": [
- 5110,
- 5325
- ],
- "size": [
- 751.7349243164062,
- 310
- ],
- "flags": {},
- "order": 47,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 264
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00098.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 186,
- "type": "MaskTransform",
- "pos": [
- 1240,
- 7860
- ],
- "size": {
- "0": 344.3999938964844,
- "1": 322
- },
- "flags": {},
- "order": 43,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 251
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [
- 259,
- 310
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskTransform"
+ "Node name for S&R": "MaskWarp"
},
"widgets_values": [
1,
@@ -4059,26 +4981,144 @@
0,
0,
"ease_in_out",
+ false,
+ "perlin",
+ 0.05,
+ 298.90000000000003,
+ 3
+ ]
+ },
+ {
+ "id": 190,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 2373,
+ 5392
+ ],
+ "size": [
+ 315,
+ 738.84375
+ ],
+ "flags": {},
+ "order": 92,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 253
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "AnimateDiff",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_00112.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 197,
+ "type": "MovingShape",
+ "pos": [
+ 99,
+ 5443
+ ],
+ "size": {
+ "0": 315,
+ "1": 394
+ },
+ "flags": {},
+ "order": 17,
+ "mode": 4,
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 311
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MovingShape"
+ },
+ "widgets_values": [
+ 512,
+ 768,
+ 30,
+ "(255,255,255)",
+ "square",
+ 50,
+ 50,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ 0,
true,
- "rotate",
- 169.5,
- 171.4
+ 0
]
},
{
"id": 188,
"type": "MaskMath",
"pos": [
- 1825,
- 5961
+ 1337,
+ 5712
],
"size": {
"0": 315,
"1": 294
},
"flags": {},
- "order": 54,
- "mode": 0,
+ "order": 60,
+ "mode": 4,
"inputs": [
{
"name": "masks",
@@ -4118,248 +5158,20 @@
"subtract"
]
},
- {
- "id": 194,
- "type": "VHS_VideoCombine",
- "pos": [
- 1696,
- 7952
- ],
- "size": [
- 315,
- 310
- ],
- "flags": {},
- "order": 68,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 255
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00090.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 197,
- "type": "MovingShape",
- "pos": [
- 469,
- 5965
- ],
- "size": {
- "0": 315,
- "1": 394
- },
- "flags": {},
- "order": 17,
- "mode": 0,
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [
- 311
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MovingShape"
- },
- "widgets_values": [
- 512,
- 768,
- 30,
- "(255,255,255)",
- "square",
- 50,
- 50,
- 0,
- 0,
- 0,
- 0,
- "ease_in_out",
- 0,
- true,
- 0
- ]
- },
- {
- "id": 195,
- "type": "MaskToImage",
- "pos": [
- 2040,
- 8920
- ],
- "size": {
- "0": 210,
- "1": 26
- },
- "flags": {},
- "order": 55,
- "mode": 0,
- "inputs": [
- {
- "name": "mask",
- "type": "MASK",
- "link": 260
- }
- ],
- "outputs": [
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 256,
- 312
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskToImage"
- }
- },
- {
- "id": 191,
- "type": "MaskToImage",
- "pos": [
- 2030,
- 6890
- ],
- "size": {
- "0": 210,
- "1": 26
- },
- "flags": {},
- "order": 52,
- "mode": 0,
- "inputs": [
- {
- "name": "mask",
- "type": "MASK",
- "link": 258
- }
- ],
- "outputs": [
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 254,
- 313
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskToImage"
- }
- },
- {
- "id": 201,
- "type": "MaskToImage",
- "pos": [
- 1808,
- 6429
- ],
- "size": {
- "0": 210,
- "1": 26
- },
- "flags": {},
- "order": 37,
- "mode": 0,
- "inputs": [
- {
- "name": "mask",
- "type": "MASK",
- "link": 265
- }
- ],
- "outputs": [
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 264,
- 314
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "MaskToImage"
- }
- },
{
"id": 189,
"type": "MaskToImage",
"pos": [
- 2020,
- 5540
+ 1937,
+ 5611
],
"size": {
"0": 210,
"1": 26
},
"flags": {},
- "order": 69,
- "mode": 0,
+ "order": 76,
+ "mode": 4,
"inputs": [
{
"name": "mask",
@@ -4372,8 +5184,7 @@
"name": "IMAGE",
"type": "IMAGE",
"links": [
- 253,
- 315
+ 253
],
"shape": 3,
"slot_index": 0
@@ -4384,153 +5195,407 @@
}
},
{
- "id": 224,
+ "id": 243,
"type": "VHS_VideoCombine",
"pos": [
- 6573,
- 6632
+ 1330,
+ 2300
],
"size": [
- 751.7349243164062,
- 310
+ 320,
+ 424
],
"flags": {},
+ "order": 99,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 364
+ },
+ {
+ "name": "audio",
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "name": "meta_batch",
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null,
+ "shape": 3
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 15,
+ "loop_count": 0,
+ "filename_prefix": "AnimateDiff",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_02065.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 15
+ },
+ "muted": false
+ }
+ }
+ },
+ {
+ "id": 248,
+ "type": "MaskTransform",
+ "pos": [
+ -673,
+ 2373
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 43,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 386
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 387
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 0.47000000000000003,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ true,
+ "rotate",
+ 369,
+ 0
+ ]
+ },
+ {
+ "id": 242,
+ "type": "TextMaskNode",
+ "pos": [
+ -1142,
+ 2394
+ ],
+ "size": {
+ "0": 315,
+ "1": 342
+ },
+ "flags": {},
+ "order": 32,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 361,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 368,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "batch_size",
+ "type": "INT",
+ "link": 363,
+ "widget": {
+ "name": "batch_size"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 386
+ ],
+ "shape": 3,
+ "slot_index": 0
+ },
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [],
+ "shape": 3,
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "TextMaskNode"
+ },
+ "widgets_values": [
+ 768,
+ 256,
+ "Time",
+ "Arial",
+ 50,
+ "(255,255,255)",
+ "(0,0,0)",
+ 0.5,
+ 0.47000000000000003,
+ 0,
+ 1,
+ 30
+ ]
+ },
+ {
+ "id": 241,
+ "type": "MaskTransform",
+ "pos": [
+ -260,
+ 2373
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 56,
+ "mode": 4,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 387
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 388
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 0.47000000000000003,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ true,
+ "translate",
+ 700,
+ 0
+ ]
+ },
+ {
+ "id": 245,
+ "type": "MaskTransform",
+ "pos": [
+ 139,
+ 2373
+ ],
+ "size": {
+ "0": 344.3999938964844,
+ "1": 322
+ },
+ "flags": {},
+ "order": 73,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "masks",
+ "type": "MASK",
+ "link": 388
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 389
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskTransform"
+ },
+ "widgets_values": [
+ 1,
+ false,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "none",
+ false,
+ "scale",
+ 1.5,
+ 1.5
+ ]
+ },
+ {
+ "id": 249,
+ "type": "MaskRings",
+ "pos": [
+ 547,
+ 2392
+ ],
+ "size": {
+ "0": 315,
+ "1": 298
+ },
+ "flags": {},
"order": 91,
"mode": 0,
"inputs": [
{
- "name": "images",
- "type": "IMAGE",
- "link": 316
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
+ "name": "masks",
+ "type": "MASK",
+ "link": 389
}
],
"outputs": [
{
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00113.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 223,
- "type": "ImageConcatMulti",
- "pos": [
- 5800,
- 6981
- ],
- "size": {
- "0": 210,
- "1": 190
- },
- "flags": {},
- "order": 87,
- "mode": 0,
- "inputs": [
- {
- "name": "image_1",
- "type": "IMAGE",
- "link": 312
- },
- {
- "name": "image_2",
- "type": "IMAGE",
- "link": 313
- },
- {
- "name": "image_3",
- "type": "IMAGE",
- "link": 314
- },
- {
- "name": "image_4",
- "type": "IMAGE",
- "link": 315
- }
- ],
- "outputs": [
- {
- "name": "images",
- "type": "IMAGE",
+ "name": "MASK",
+ "type": "MASK",
"links": [
- 316,
- 317
+ 390
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
- "Node name for S&R": "ImageConcatMulti"
+ "Node name for S&R": "MaskRings"
},
"widgets_values": [
- 4,
- "right",
+ 1,
false,
- null
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ "ease_in_out",
+ true,
+ 4,
+ 0.5
]
},
{
- "id": 225,
+ "id": 244,
+ "type": "MaskToImage",
+ "pos": [
+ 930,
+ 2380
+ ],
+ "size": {
+ "0": 210,
+ "1": 26
+ },
+ "flags": {},
+ "order": 98,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 390
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 364,
+ 391
+ ],
+ "shape": 3,
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MaskToImage"
+ }
+ },
+ {
+ "id": 233,
"type": "VHS_VideoCombine",
"pos": [
- 6414,
- 7480
+ 2252,
+ 1914
],
"size": [
- 751.7349243164062,
- 262
+ 601.5174560546875,
+ 469.83915201822913
],
"flags": {},
- "order": 92,
+ "order": 100,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
- "link": 317
+ "link": 391
},
{
"name": "audio",
@@ -4562,7 +5627,7 @@
"widgets_values": {
"frame_rate": 15,
"loop_count": 0,
- "filename_prefix": "masks/temporal_examples",
+ "filename_prefix": "masks/time",
"format": "video/ffmpeg-gif",
"dither": "sierra2_4a",
"pingpong": false,
@@ -4571,7 +5636,7 @@
"hidden": false,
"paused": false,
"params": {
- "filename": "temporal_examples_00002.gif",
+ "filename": "time_00001.gif",
"subfolder": "masks",
"type": "output",
"format": "video/ffmpeg-gif",
@@ -4580,821 +5645,6 @@
"muted": false
}
}
- },
- {
- "id": 210,
- "type": "ImageScaleBy",
- "pos": [
- 3297,
- 1285
- ],
- "size": {
- "0": 315,
- "1": 82
- },
- "flags": {},
- "order": 81,
- "mode": 0,
- "inputs": [
- {
- "name": "image",
- "type": "IMAGE",
- "link": 277
- }
- ],
- "outputs": [
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "ImageScaleBy"
- },
- "widgets_values": [
- "nearest-exact",
- 2
- ]
- },
- {
- "id": 178,
- "type": "ParticleEmissionMask",
- "pos": [
- 2825,
- 925
- ],
- "size": {
- "0": 360.8669128417969,
- "1": 454
- },
- "flags": {},
- "order": 64,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 268
- },
- {
- "name": "emitters",
- "type": "PARTICLE_EMITTER",
- "link": 241,
- "slot_index": 1
- },
- {
- "name": "vortices",
- "type": "VORTEX",
- "link": null
- },
- {
- "name": "wells",
- "type": "GRAVITY_WELL",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [],
- "shape": 3
- },
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 277,
- 318
- ],
- "shape": 3,
- "slot_index": 1
- }
- ],
- "properties": {
- "Node name for S&R": "ParticleEmissionMask"
- },
- "widgets_values": [
- 0.99,
- false,
- 0,
- 0,
- 340,
- 4,
- 0,
- 0,
- 0,
- 0,
- 0,
- true,
- 1,
- 10,
- 0.68
- ]
- },
- {
- "id": 177,
- "type": "VHS_VideoCombine",
- "pos": [
- 3850,
- 805
- ],
- "size": [
- 602.3653564453125,
- 262
- ],
- "flags": {},
- "order": 82,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 318
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "masks/RyanOnTheInside",
- "format": "video/ffmpeg-gif",
- "dither": "sierra2_4a",
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "RyanOnTheInside_00001.gif",
- "subfolder": "masks",
- "type": "output",
- "format": "video/ffmpeg-gif",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 215,
- "type": "VHS_VideoCombine",
- "pos": [
- 9806,
- -2945
- ],
- "size": [
- 315,
- 262
- ],
- "flags": {},
- "order": 94,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 325
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "masks/particle_examples",
- "format": "video/ffmpeg-gif",
- "dither": "sierra2_4a",
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "particle_examples_00002.gif",
- "subfolder": "masks",
- "type": "output",
- "format": "video/ffmpeg-gif",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 120,
- "type": "VHS_VideoCombine",
- "pos": [
- 2320,
- -980
- ],
- "size": [
- 410,
- 310
- ],
- "flags": {},
- "order": 72,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 163
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "gravwells",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": false,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "gravwells_00001.mp4",
- "subfolder": "",
- "type": "temp",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 121,
- "type": "ParticleEmissionMask",
- "pos": [
- 1660,
- -930
- ],
- "size": {
- "0": 360.8669128417969,
- "1": 454
- },
- "flags": {},
- "order": 57,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 171
- },
- {
- "name": "emitters",
- "type": "PARTICLE_EMITTER",
- "link": 165,
- "slot_index": 1
- },
- {
- "name": "vortices",
- "type": "VORTEX",
- "link": null
- },
- {
- "name": "wells",
- "type": "GRAVITY_WELL",
- "link": 167,
- "slot_index": 3
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [],
- "shape": 3
- },
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 163,
- 321
- ],
- "shape": 3,
- "slot_index": 1
- }
- ],
- "properties": {
- "Node name for S&R": "ParticleEmissionMask"
- },
- "widgets_values": [
- 0.99,
- false,
- 0,
- 0,
- 340,
- 4,
- 0,
- 0,
- 0,
- 0,
- 0,
- true,
- 1,
- 10,
- 0.68
- ]
- },
- {
- "id": 211,
- "type": "ImageConcatMulti",
- "pos": [
- 8404,
- -3209
- ],
- "size": {
- "0": 210,
- "1": 170
- },
- "flags": {},
- "order": 79,
- "mode": 0,
- "inputs": [
- {
- "name": "image_1",
- "type": "IMAGE",
- "link": 289
- },
- {
- "name": "image_2",
- "type": "IMAGE",
- "link": 282
- },
- {
- "name": "image_3",
- "type": "IMAGE",
- "link": 286
- }
- ],
- "outputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "links": [
- 322
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "ImageConcatMulti"
- },
- "widgets_values": [
- 3,
- "right",
- false,
- null
- ]
- },
- {
- "id": 227,
- "type": "ImageConcatMulti",
- "pos": [
- 8628,
- -2961
- ],
- "size": {
- "0": 210,
- "1": 170
- },
- "flags": {},
- "order": 76,
- "mode": 0,
- "inputs": [
- {
- "name": "image_1",
- "type": "IMAGE",
- "link": 320
- },
- {
- "name": "image_2",
- "type": "IMAGE",
- "link": 321
- },
- {
- "name": "image_3",
- "type": "IMAGE",
- "link": 319
- }
- ],
- "outputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "links": [
- 323
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "ImageConcatMulti"
- },
- "widgets_values": [
- 3,
- "right",
- false,
- null
- ]
- },
- {
- "id": 214,
- "type": "MovingShape",
- "pos": [
- 8207,
- -3806
- ],
- "size": {
- "0": 315,
- "1": 394
- },
- "flags": {},
- "order": 18,
- "mode": 0,
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "MovingShape"
- },
- "widgets_values": [
- 512,
- 512,
- 30,
- "(255,255,255)",
- "square",
- 100,
- 100,
- 0,
- 0,
- 0,
- 0,
- "linear",
- 0,
- false,
- 0
- ]
- },
- {
- "id": 212,
- "type": "VHS_VideoCombine",
- "pos": [
- 10070,
- -4430
- ],
- "size": [
- 996.1886596679688,
- 310
- ],
- "flags": {},
- "order": 93,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 324
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "AnimateDiff",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": true,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "AnimateDiff_00115.mp4",
- "subfolder": "",
- "type": "output",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
- },
- {
- "id": 226,
- "type": "ImageConcatMulti",
- "pos": [
- 8976,
- -3005
- ],
- "size": {
- "0": 210,
- "1": 150
- },
- "flags": {},
- "order": 88,
- "mode": 0,
- "inputs": [
- {
- "name": "image_1",
- "type": "IMAGE",
- "link": 322
- },
- {
- "name": "image_2",
- "type": "IMAGE",
- "link": 323
- }
- ],
- "outputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "links": [
- 324,
- 325
- ],
- "shape": 3,
- "slot_index": 0
- }
- ],
- "properties": {
- "Node name for S&R": "ImageConcatMulti"
- },
- "widgets_values": [
- 2,
- "right",
- false,
- null
- ]
- },
- {
- "id": 155,
- "type": "ParticleEmissionMask",
- "pos": [
- 4140,
- -800
- ],
- "size": {
- "0": 360.8669128417969,
- "1": 454
- },
- "flags": {},
- "order": 60,
- "mode": 0,
- "inputs": [
- {
- "name": "masks",
- "type": "MASK",
- "link": 209
- },
- {
- "name": "emitters",
- "type": "PARTICLE_EMITTER",
- "link": 210,
- "slot_index": 1
- },
- {
- "name": "vortices",
- "type": "VORTEX",
- "link": 214,
- "slot_index": 2
- },
- {
- "name": "wells",
- "type": "GRAVITY_WELL",
- "link": null,
- "slot_index": 3
- }
- ],
- "outputs": [
- {
- "name": "MASK",
- "type": "MASK",
- "links": [],
- "shape": 3
- },
- {
- "name": "IMAGE",
- "type": "IMAGE",
- "links": [
- 208,
- 320
- ],
- "shape": 3,
- "slot_index": 1
- }
- ],
- "properties": {
- "Node name for S&R": "ParticleEmissionMask"
- },
- "widgets_values": [
- 0.99,
- false,
- 0,
- 0,
- 340,
- 4,
- 0,
- 0,
- 0,
- 1,
- 0,
- true,
- 1,
- 10,
- 0.68
- ]
- },
- {
- "id": 154,
- "type": "VHS_VideoCombine",
- "pos": [
- 4860,
- -770
- ],
- "size": [
- 410,
- 310
- ],
- "flags": {},
- "order": 75,
- "mode": 0,
- "inputs": [
- {
- "name": "images",
- "type": "IMAGE",
- "link": 208
- },
- {
- "name": "audio",
- "type": "AUDIO",
- "link": null
- },
- {
- "name": "meta_batch",
- "type": "VHS_BatchManager",
- "link": null
- },
- {
- "name": "vae",
- "type": "VAE",
- "link": null
- }
- ],
- "outputs": [
- {
- "name": "Filenames",
- "type": "VHS_FILENAMES",
- "links": null,
- "shape": 3
- }
- ],
- "properties": {
- "Node name for S&R": "VHS_VideoCombine"
- },
- "widgets_values": {
- "frame_rate": 15,
- "loop_count": 0,
- "filename_prefix": "vortex",
- "format": "video/h264-mp4",
- "pix_fmt": "yuv420p",
- "crf": 19,
- "save_metadata": true,
- "pingpong": false,
- "save_output": false,
- "videopreview": {
- "hidden": false,
- "paused": false,
- "params": {
- "filename": "vortex_00001.mp4",
- "subfolder": "",
- "type": "temp",
- "format": "video/h264-mp4",
- "frame_rate": 15
- },
- "muted": false
- }
- }
}
],
"links": [
@@ -5798,14 +6048,6 @@
1,
"EMITTER_MOVEMENT"
],
- [
- 246,
- 133,
- 0,
- 176,
- 0,
- "MASK"
- ],
[
247,
183,
@@ -5942,14 +6184,6 @@
0,
"MASK"
],
- [
- 267,
- 203,
- 0,
- 139,
- 0,
- "MASK"
- ],
[
268,
203,
@@ -5982,30 +6216,6 @@
0,
"IMAGE"
],
- [
- 282,
- 167,
- 1,
- 211,
- 1,
- "IMAGE"
- ],
- [
- 286,
- 141,
- 1,
- 211,
- 2,
- "IMAGE"
- ],
- [
- 289,
- 102,
- 1,
- 211,
- 0,
- "IMAGE"
- ],
[
291,
216,
@@ -6054,22 +6264,6 @@
0,
"IMAGE"
],
- [
- 298,
- 56,
- 0,
- 219,
- 0,
- "IMAGE"
- ],
- [
- 302,
- 219,
- 0,
- 220,
- 0,
- "IMAGE"
- ],
[
303,
221,
@@ -6086,30 +6280,6 @@
2,
"*"
],
- [
- 305,
- 219,
- 0,
- 222,
- 0,
- "IMAGE"
- ],
- [
- 306,
- 171,
- 0,
- 219,
- 1,
- "IMAGE"
- ],
- [
- 307,
- 204,
- 0,
- 219,
- 2,
- "IMAGE"
- ],
[
310,
186,
@@ -6126,54 +6296,6 @@
1,
"MASK"
],
- [
- 312,
- 195,
- 0,
- 223,
- 0,
- "IMAGE"
- ],
- [
- 313,
- 191,
- 0,
- 223,
- 1,
- "IMAGE"
- ],
- [
- 314,
- 201,
- 0,
- 223,
- 2,
- "IMAGE"
- ],
- [
- 315,
- 189,
- 0,
- 223,
- 3,
- "IMAGE"
- ],
- [
- 316,
- 223,
- 0,
- 224,
- 0,
- "IMAGE"
- ],
- [
- 317,
- 223,
- 0,
- 225,
- 0,
- "IMAGE"
- ],
[
318,
178,
@@ -6183,58 +6305,202 @@
"IMAGE"
],
[
- 319,
- 115,
+ 327,
+ 136,
+ 0,
+ 229,
+ 0,
+ "INT"
+ ],
+ [
+ 328,
+ 135,
+ 0,
+ 229,
1,
- 227,
+ "INT"
+ ],
+ [
+ 329,
+ 198,
+ 0,
+ 229,
2,
- "IMAGE"
+ "INT"
],
[
- 320,
- 155,
- 1,
- 227,
+ 333,
+ 231,
+ 0,
+ 230,
0,
"IMAGE"
],
[
- 321,
- 121,
- 1,
- 227,
+ 335,
+ 234,
+ 0,
+ 232,
+ 0,
+ "MASK"
+ ],
+ [
+ 338,
+ 231,
+ 0,
+ 234,
1,
"IMAGE"
],
[
- 322,
- 211,
+ 342,
+ 133,
0,
- 226,
+ 236,
0,
- "IMAGE"
+ "MASK"
],
[
- 323,
- 227,
+ 344,
+ 133,
0,
- 226,
+ 237,
+ 0,
+ "MASK"
+ ],
+ [
+ 347,
+ 237,
+ 0,
+ 176,
+ 0,
+ "MASK"
+ ],
+ [
+ 348,
+ 203,
+ 0,
+ 139,
+ 0,
+ "MASK"
+ ],
+ [
+ 349,
+ 229,
+ 0,
+ 228,
+ 0,
+ "MASK"
+ ],
+ [
+ 350,
+ 228,
+ 0,
+ 235,
+ 0,
+ "MASK"
+ ],
+ [
+ 351,
+ 235,
+ 0,
+ 234,
+ 0,
+ "MASK"
+ ],
+ [
+ 352,
+ 235,
+ 0,
+ 231,
+ 0,
+ "MASK"
+ ],
+ [
+ 359,
+ 178,
1,
- "IMAGE"
- ],
- [
- 324,
- 226,
- 0,
- 212,
+ 240,
0,
"IMAGE"
],
[
- 325,
- 226,
+ 361,
+ 136,
0,
- 215,
+ 242,
+ 0,
+ "INT"
+ ],
+ [
+ 363,
+ 198,
+ 0,
+ 242,
+ 2,
+ "INT"
+ ],
+ [
+ 364,
+ 244,
+ 0,
+ 243,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 368,
+ 246,
+ 0,
+ 242,
+ 1,
+ "INT"
+ ],
+ [
+ 386,
+ 242,
+ 0,
+ 248,
+ 0,
+ "MASK"
+ ],
+ [
+ 387,
+ 248,
+ 0,
+ 241,
+ 0,
+ "MASK"
+ ],
+ [
+ 388,
+ 241,
+ 0,
+ 245,
+ 0,
+ "MASK"
+ ],
+ [
+ 389,
+ 245,
+ 0,
+ 249,
+ 0,
+ "MASK"
+ ],
+ [
+ 390,
+ 249,
+ 0,
+ 244,
+ 0,
+ "MASK"
+ ],
+ [
+ 391,
+ 244,
+ 0,
+ 233,
0,
"IMAGE"
]
@@ -6249,7 +6515,8 @@
6053
],
"color": "#3f789e",
- "font_size": 500
+ "font_size": 500,
+ "locked": false
},
{
"title": "Initial Plume",
@@ -6260,7 +6527,8 @@
115
],
"color": "#A88",
- "font_size": 75
+ "font_size": 75,
+ "locked": false
},
{
"title": "Temporal Masks",
@@ -6271,7 +6539,8 @@
5214
],
"color": "#3f789e",
- "font_size": 300
+ "font_size": 300,
+ "locked": false
},
{
"title": "Simulation Gravity",
@@ -6282,7 +6551,8 @@
98
],
"color": "#A88",
- "font_size": 75
+ "font_size": 75,
+ "locked": false
},
{
"title": "Eastward simulation wind",
@@ -6293,18 +6563,20 @@
119
],
"color": "#A88",
- "font_size": 75
+ "font_size": 75,
+ "locked": false
},
{
"title": "Optical Flow",
"bounding": [
- -91,
- 2712,
+ -128,
+ 2902,
4320,
1834
],
"color": "#3f789e",
- "font_size": 300
+ "font_size": 300,
+ "locked": false
}
],
"config": {},
@@ -6312,8 +6584,8 @@
"ds": {
"scale": 0.1,
"offset": {
- "0": 5597.44268311216,
- "1": 3995.674021868648
+ "0": 6635.775639000176,
+ "1": 3039.0521128085834
}
}
},
diff --git a/nodes/masks/mask_base.py b/nodes/masks/mask_base.py
index 7de0cb9..d1ed1c8 100644
--- a/nodes/masks/mask_base.py
+++ b/nodes/masks/mask_base.py
@@ -139,9 +139,10 @@ class MaskBase(ABC):
class TemporalMaskBase(MaskBase, ABC):
@classmethod
def INPUT_TYPES(cls):
+ parent_inputs = super().INPUT_TYPES()
return {
"required": {
- **super().INPUT_TYPES()["required"],
+ **parent_inputs["required"],
"start_frame": ("INT", {"default": 0, "min": 0, "max": 1000, "step": 1}),
"end_frame": ("INT", {"default": 0, "min": 0, "max": 1000, "step": 1}),
"effect_duration": ("INT", {"default": 0, "min": 0, "max": 1000, "step": 1}),
@@ -150,6 +151,9 @@ class TemporalMaskBase(MaskBase, ABC):
}
}
+ def __init__(self):
+ super().__init__()
+
@abstractmethod
def process_single_mask(self, mask: np.ndarray, strength: float, **kwargs) -> np.ndarray:
"""
@@ -208,9 +212,10 @@ class TemporalMaskBase(MaskBase, ABC):
class ParticleSystemMaskBase(MaskBase, ABC):
@classmethod
def INPUT_TYPES(cls):
+ parent_inputs = super().INPUT_TYPES()
return {
"required": {
- **super().INPUT_TYPES()["required"],
+ **parent_inputs["required"],
"emitters": ("PARTICLE_EMITTER",),
"particle_count": ("INT", {"default": 200, "min": 1, "max": 10000, "step": 1}),
"particle_lifetime": ("FLOAT", {"default": 4.0, "min": 0.1, "max": 10.0, "step": 0.1}),
@@ -593,6 +598,9 @@ class OpticalFlowMaskBase(MaskBase, ABC):
CATEGORY = "/RyanOnTheInside/masks/"
+ def __init__(self):
+ super().__init__()
+
def process_mask(self, mask: np.ndarray, strength: float, images: np.ndarray, flow_method: str, flow_threshold: float, magnitude_threshold: float, frame_index: int, **kwargs) -> np.ndarray:
if frame_index == 0 or frame_index >= len(images) - 1:
return mask
diff --git a/nodes/masks/mask_utils.py b/nodes/masks/mask_utils.py
index 629dc17..e3e82af 100644
--- a/nodes/masks/mask_utils.py
+++ b/nodes/masks/mask_utils.py
@@ -61,12 +61,16 @@ def rotate_mask(mask: np.ndarray, angle: float) -> np.ndarray:
def scale_mask(mask: np.ndarray, scale_x: float, scale_y: float) -> np.ndarray:
height, width = mask.shape[:2]
- M = cv2.getAffineTransform(
- np.float32([[0, 0], [width, 0], [0, height]]),
- np.float32([[0, 0], [width * scale_x, 0], [0, height * scale_y]])
- )
+ center_x, center_y = width / 2, height / 2
+
+ M = np.float32([
+ [scale_x, 0, center_x * (1 - scale_x)],
+ [0, scale_y, center_y * (1 - scale_y)]
+ ])
+
return warp_affine(mask, M)
+
def transform_mask(mask: np.ndarray, transform_type: str, x_value: float, y_value: float) -> np.ndarray:
if transform_type == "translate":
return translate_mask(mask, x_value, y_value)
diff --git a/nodes/masks/utility_nodes.py b/nodes/masks/utility_nodes.py
index c87ded4..fc79d9e 100644
--- a/nodes/masks/utility_nodes.py
+++ b/nodes/masks/utility_nodes.py
@@ -160,8 +160,8 @@ class TextMaskNode:
"font_size": ("INT", {"default": 32, "min": 1, "max": 1000}),
"font_color": ("STRING", {"default": "(255,255,255)"}),
"background_color": ("STRING", {"default": "(0,0,0)"}),
- "x_position": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0}),
- "y_position": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0}),
+ "x_position": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step":0.01}),
+ "y_position": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step":0.01}),
"rotation": ("FLOAT", {"default": 0, "min": 0, "max": 360}),
"max_width_ratio": ("FLOAT", {"default": 0.9, "min": 0.1, "max": 1.0}),
"batch_size": ("INT", {"default": 1, "min": 1, "max": 10000}),
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..dd683e9
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,25 @@
+[build-system]
+requires = ["setuptools", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "ComfyUI_RyanOnTheInside"
+description = "Custom nodes introducing particle simulations, optical flow, and temporal masks"
+version = "0.1.0"
+license = { text = "CC BY-NC 4.0" }
+dependencies = [
+ "opencv-python==4.10",
+ "scipy",
+ "pillow",
+ "librosa",
+ "pymunk==6.8.1",
+ "matplotlib"
+]
+
+[project.urls]
+Repository = "https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside"
+
+[tool.comfy]
+PublisherId = "ryanontheinside"
+DisplayName = "RyanOnTheInside"
+Icon = ""
\ No newline at end of file
diff --git a/readme.md b/readme.md
index dac8a7f..061eceb 100644
--- a/readme.md
+++ b/readme.md
@@ -6,13 +6,18 @@ RyanOnTheInside node pack introduces the following (so far):
- Optical Flow
- Temporal Masks
-
+
+
+
+
+
+
+
-
-
-
- *Some examples using particle emitters and vortices*
+*Some examples using particle emitters and vortices*
## Installation
@@ -160,6 +165,10 @@ Motion-based effects:
- Directional flow isolation and emphasis - in progress
- Advanced blending and modulation options
+
+
+ *Motion generated trails*
+
### Optical Flow Mask Nodes
#### General optical mask settings
diff --git a/requirements.txt b/requirements.txt
index 3c6a9a2..2f81875 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,10 +1,6 @@
-opencv-python
-numpy
-torch
-tqdm
+opencv-python==4.10
scipy
pillow
librosa
-pymunk
-matplotlib
-Pillow
\ No newline at end of file
+pymunk==6.8.1
+matplotlib
\ No newline at end of file