TheBurgstall commited on
Commit
d106e1d
Β·
1 Parent(s): e9ab632

Archive PoC (v0.1) release into _old/ ahead of v1.0 (#1)

Browse files

- Archive PoC (v0.1) release into _old/ ahead of v1.0 (8f192c57453715373131a6e7f648fc0b19bc0884)
- Add v1.0 model card, workflow, license, demo videos, and 3 checkpoints (step 5000/7000/9000) (20d960a34f123e3a925c3a1736e92299b8c74c9b)
- Only reference Burgstall-VR-Outpaint.json as the workflow; drop duplicate filename (3578387f997a8cc349b66ae6022bec9a195348a7)

.gitattributes CHANGED
@@ -42,3 +42,21 @@ samples/clip2-sweep.mp4 filter=lfs diff=lfs merge=lfs -text
42
  samples/clip3-eq.mp4 filter=lfs diff=lfs merge=lfs -text
43
  samples/clip3-fl-eq.mp4 filter=lfs diff=lfs merge=lfs -text
44
  samples/clip3-sweep.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  samples/clip3-eq.mp4 filter=lfs diff=lfs merge=lfs -text
43
  samples/clip3-fl-eq.mp4 filter=lfs diff=lfs merge=lfs -text
44
  samples/clip3-sweep.mp4 filter=lfs diff=lfs merge=lfs -text
45
+ _old/samples/clip1-eq.mp4 filter=lfs diff=lfs merge=lfs -text
46
+ _old/samples/clip1-fl-eq.mp4 filter=lfs diff=lfs merge=lfs -text
47
+ _old/samples/clip1-sweep.mp4 filter=lfs diff=lfs merge=lfs -text
48
+ _old/samples/clip2-eq.mp4 filter=lfs diff=lfs merge=lfs -text
49
+ _old/samples/clip2-fl-eq.mp4 filter=lfs diff=lfs merge=lfs -text
50
+ _old/samples/clip2-sweep.mp4 filter=lfs diff=lfs merge=lfs -text
51
+ _old/samples/clip3-eq.mp4 filter=lfs diff=lfs merge=lfs -text
52
+ _old/samples/clip3-fl-eq.mp4 filter=lfs diff=lfs merge=lfs -text
53
+ _old/samples/clip3-sweep.mp4 filter=lfs diff=lfs merge=lfs -text
54
+ jungle.mp4 filter=lfs diff=lfs merge=lfs -text
55
+ junglePAN.mp4 filter=lfs diff=lfs merge=lfs -text
56
+ jungleVR.mp4 filter=lfs diff=lfs merge=lfs -text
57
+ office.mp4 filter=lfs diff=lfs merge=lfs -text
58
+ officepan.mp4 filter=lfs diff=lfs merge=lfs -text
59
+ officeVR.mp4 filter=lfs diff=lfs merge=lfs -text
60
+ skate.mp4 filter=lfs diff=lfs merge=lfs -text
61
+ skatepan.mp4 filter=lfs diff=lfs merge=lfs -text
62
+ skateVR.mp4 filter=lfs diff=lfs merge=lfs -text
360vroutpaint_v2_step05000.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a09d55963f5ace56163714106cb23a270834b6b5a1ed41af10d874971f3c6648
3
+ size 1308756416
360vroutpaint_v2_step07000.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4c14cbb2c795fab81269ddd8efa71e0e8554345f85ecedf8918ee58e231dfa67
3
+ size 1308756416
360vroutpaint_v2_step09000.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8d77bc79773b783a3d3642258c95d3e41cf0d78082c696d5b6383ecf2d382582
3
+ size 1308756416
Burgstall-VR-Outpaint.json CHANGED
@@ -1,8 +1,8 @@
1
  {
2
  "id": "5bd968e1-ff31-4d26-ace1-64fb60374549",
3
  "revision": 0,
4
- "last_node_id": 5164,
5
- "last_link_id": 13754,
6
  "nodes": [
7
  {
8
  "id": 5105,
@@ -16,7 +16,7 @@
16
  60
17
  ],
18
  "flags": {},
19
- "order": 19,
20
  "mode": 0,
21
  "inputs": [
22
  {
@@ -59,7 +59,7 @@
59
  "flags": {
60
  "collapsed": true
61
  },
62
- "order": 18,
63
  "mode": 0,
64
  "inputs": [
65
  {
@@ -103,7 +103,7 @@
103
  60
104
  ],
105
  "flags": {},
106
- "order": 21,
107
  "mode": 0,
108
  "inputs": [
109
  {
@@ -254,7 +254,7 @@
254
  78
255
  ],
256
  "flags": {},
257
- "order": 30,
258
  "mode": 0,
259
  "inputs": [
260
  {
@@ -450,7 +450,7 @@
450
  "flags": {
451
  "collapsed": true
452
  },
453
- "order": 31,
454
  "mode": 0,
455
  "inputs": [
456
  {
@@ -503,7 +503,7 @@
503
  160
504
  ],
505
  "flags": {},
506
- "order": 15,
507
  "mode": 4,
508
  "inputs": [
509
  {
@@ -600,7 +600,7 @@
600
  160
601
  ],
602
  "flags": {},
603
- "order": 14,
604
  "mode": 4,
605
  "inputs": [
606
  {
@@ -662,7 +662,7 @@
662
  {
663
  "name": "audio_vae",
664
  "type": "VAE",
665
- "link": 13274
666
  },
667
  {
668
  "name": "frames_number",
@@ -724,7 +724,7 @@
724
  120.13641397900165
725
  ],
726
  "flags": {},
727
- "order": 17,
728
  "mode": 0,
729
  "inputs": [
730
  {
@@ -763,95 +763,6 @@
763
  "color": "#322",
764
  "bgcolor": "#533"
765
  },
766
- {
767
- "id": 4010,
768
- "type": "LTXVAudioVAELoader",
769
- "pos": [
770
- -4655.010641467211,
771
- 3122.9236915172387
772
- ],
773
- "size": [
774
- 384.6576773713696,
775
- 79.30435270514249
776
- ],
777
- "flags": {},
778
- "order": 3,
779
- "mode": 0,
780
- "inputs": [],
781
- "outputs": [
782
- {
783
- "name": "Audio VAE",
784
- "type": "VAE",
785
- "links": [
786
- 13274
787
- ]
788
- }
789
- ],
790
- "properties": {
791
- "Node name for S&R": "LTXVAudioVAELoader",
792
- "enableTabs": false,
793
- "tabWidth": 65,
794
- "tabXOffset": 10,
795
- "hasSecondTab": false,
796
- "secondTabText": "Send Back",
797
- "secondTabOffset": 80,
798
- "secondTabWidth": 65,
799
- "cnr_id": "comfy-core",
800
- "ver": "0.3.64",
801
- "widget_ue_connectable": {}
802
- },
803
- "widgets_values": [
804
- "ltx-2.3-22b-dev.safetensors"
805
- ]
806
- },
807
- {
808
- "id": 4922,
809
- "type": "LoraLoaderModelOnly",
810
- "pos": [
811
- -4199.312205855027,
812
- 3223.4032725396655
813
- ],
814
- "size": [
815
- 454.14193097539646,
816
- 128.44311555561626
817
- ],
818
- "flags": {},
819
- "order": 23,
820
- "mode": 0,
821
- "inputs": [
822
- {
823
- "name": "model",
824
- "type": "MODEL",
825
- "link": 13217
826
- }
827
- ],
828
- "outputs": [
829
- {
830
- "name": "MODEL",
831
- "type": "MODEL",
832
- "links": [
833
- 13751
834
- ]
835
- }
836
- ],
837
- "properties": {
838
- "Node name for S&R": "LoraLoaderModelOnly",
839
- "enableTabs": false,
840
- "tabWidth": 65,
841
- "tabXOffset": 10,
842
- "hasSecondTab": false,
843
- "secondTabText": "Send Back",
844
- "secondTabOffset": 80,
845
- "secondTabWidth": 65,
846
- "cnr_id": "comfy-core",
847
- "ver": "0.14.1",
848
- "widget_ue_connectable": {}
849
- },
850
- "widgets_values": [
851
- "ltx-2/ltx-2.3-22b-distilled-lora-384.safetensors",
852
- 0.5
853
- ]
854
- },
855
  {
856
  "id": 5076,
857
  "type": "VHS_VideoCombine",
@@ -864,7 +775,7 @@
864
  450.18333435058594
865
  ],
866
  "flags": {},
867
- "order": 52,
868
  "mode": 0,
869
  "inputs": [
870
  {
@@ -936,13 +847,13 @@
936
  "hidden": false,
937
  "paused": false,
938
  "params": {
939
- "filename": "outpaint_00254-audio.mp4",
940
  "subfolder": "",
941
  "type": "output",
942
  "format": "video/h264-mp4",
943
- "frame_rate": 23.976023976023978,
944
- "workflow": "outpaint_00254.png",
945
- "fullpath": "/home/juho/ComfyUI/output/outpaint_00254-audio.mp4"
946
  }
947
  }
948
  }
@@ -959,7 +870,7 @@
959
  122
960
  ],
961
  "flags": {},
962
- "order": 4,
963
  "mode": 0,
964
  "inputs": [],
965
  "outputs": [
@@ -1009,7 +920,7 @@
1009
  {
1010
  "name": "vae",
1011
  "type": "VAE",
1012
- "link": 13752
1013
  },
1014
  {
1015
  "name": "image",
@@ -1122,7 +1033,7 @@
1122
  82
1123
  ],
1124
  "flags": {},
1125
- "order": 5,
1126
  "mode": 0,
1127
  "inputs": [],
1128
  "outputs": [
@@ -1211,7 +1122,7 @@
1211
  102
1212
  ],
1213
  "flags": {},
1214
- "order": 51,
1215
  "mode": 0,
1216
  "inputs": [
1217
  {
@@ -1316,7 +1227,7 @@
1316
  68.88020833333334
1317
  ],
1318
  "flags": {},
1319
- "order": 6,
1320
  "mode": 0,
1321
  "inputs": [],
1322
  "outputs": [
@@ -1406,7 +1317,7 @@
1406
  258
1407
  ],
1408
  "flags": {},
1409
- "order": 29,
1410
  "mode": 0,
1411
  "inputs": [
1412
  {
@@ -1443,7 +1354,7 @@
1443
  "flags": {
1444
  "collapsed": false
1445
  },
1446
- "order": 22,
1447
  "mode": 0,
1448
  "inputs": [
1449
  {
@@ -1541,7 +1452,7 @@
1541
  88
1542
  ],
1543
  "flags": {},
1544
- "order": 26,
1545
  "mode": 0,
1546
  "inputs": [
1547
  {
@@ -1570,7 +1481,7 @@
1570
  "widget_ue_connectable": {}
1571
  },
1572
  "widgets_values": [
1573
- "0.13270311057567596"
1574
  ]
1575
  },
1576
  {
@@ -1585,7 +1496,7 @@
1585
  88
1586
  ],
1587
  "flags": {},
1588
- "order": 24,
1589
  "mode": 0,
1590
  "inputs": [
1591
  {
@@ -1614,7 +1525,7 @@
1614
  "widget_ue_connectable": {}
1615
  },
1616
  "widgets_values": [
1617
- "46.87553024291992"
1618
  ]
1619
  },
1620
  {
@@ -1629,7 +1540,7 @@
1629
  88
1630
  ],
1631
  "flags": {},
1632
- "order": 25,
1633
  "mode": 0,
1634
  "inputs": [
1635
  {
@@ -1658,7 +1569,7 @@
1658
  "widget_ue_connectable": {}
1659
  },
1660
  "widgets_values": [
1661
- "-5.175696849822998"
1662
  ]
1663
  },
1664
  {
@@ -1673,7 +1584,7 @@
1673
  88
1674
  ],
1675
  "flags": {},
1676
- "order": 27,
1677
  "mode": 0,
1678
  "inputs": [
1679
  {
@@ -1702,7 +1613,7 @@
1702
  "widget_ue_connectable": {}
1703
  },
1704
  "widgets_values": [
1705
- "2214.42333984375"
1706
  ]
1707
  },
1708
  {
@@ -1717,7 +1628,7 @@
1717
  88
1718
  ],
1719
  "flags": {},
1720
- "order": 7,
1721
  "mode": 0,
1722
  "inputs": [],
1723
  "outputs": [],
@@ -1819,7 +1730,7 @@
1819
  {
1820
  "name": "vae",
1821
  "type": "VAE",
1822
- "link": 13753
1823
  },
1824
  {
1825
  "name": "latent",
@@ -1894,7 +1805,7 @@
1894
  74
1895
  ],
1896
  "flags": {},
1897
- "order": 8,
1898
  "mode": 0,
1899
  "inputs": [],
1900
  "outputs": [
@@ -1935,7 +1846,7 @@
1935
  67.3573576655076
1936
  ],
1937
  "flags": {},
1938
- "order": 9,
1939
  "mode": 0,
1940
  "inputs": [],
1941
  "outputs": [
@@ -1976,7 +1887,7 @@
1976
  100.83333333333334
1977
  ],
1978
  "flags": {},
1979
- "order": 49,
1980
  "mode": 0,
1981
  "inputs": [
1982
  {
@@ -2041,7 +1952,7 @@
2041
  46
2042
  ],
2043
  "flags": {},
2044
- "order": 48,
2045
  "mode": 0,
2046
  "inputs": [
2047
  {
@@ -2091,7 +2002,7 @@
2091
  106
2092
  ],
2093
  "flags": {},
2094
- "order": 47,
2095
  "mode": 0,
2096
  "inputs": [
2097
  {
@@ -2161,13 +2072,13 @@
2161
  114
2162
  ],
2163
  "flags": {},
2164
- "order": 46,
2165
  "mode": 0,
2166
  "inputs": [
2167
  {
2168
  "name": "model",
2169
  "type": "MODEL",
2170
- "link": 13738
2171
  },
2172
  {
2173
  "name": "positive",
@@ -2244,7 +2155,7 @@
2244
  "name": "model",
2245
  "type": "MODEL",
2246
  "links": [
2247
- 13737
2248
  ]
2249
  }
2250
  ],
@@ -2280,7 +2191,7 @@
2280
  150
2281
  ],
2282
  "flags": {},
2283
- "order": 50,
2284
  "mode": 0,
2285
  "inputs": [
2286
  {
@@ -2291,7 +2202,7 @@
2291
  {
2292
  "name": "vae",
2293
  "type": "VAE",
2294
- "link": 13754
2295
  }
2296
  ],
2297
  "outputs": [
@@ -2336,7 +2247,7 @@
2336
  427.82117788452075
2337
  ],
2338
  "flags": {},
2339
- "order": 53,
2340
  "mode": 4,
2341
  "inputs": [
2342
  {
@@ -2420,67 +2331,42 @@
2420
  }
2421
  },
2422
  {
2423
- "id": 5060,
2424
- "type": "VHS_LoadVideo",
2425
  "pos": [
2426
- -5128.101218203265,
2427
- 3679.9328210884596
2428
  ],
2429
  "size": [
2430
- 259.43333435058594,
2431
- 458.8070033738593
2432
  ],
2433
  "flags": {},
2434
- "order": 10,
2435
  "mode": 0,
2436
  "inputs": [
2437
  {
2438
- "name": "meta_batch",
2439
- "shape": 7,
2440
- "type": "VHS_BatchManager",
2441
- "link": null
2442
- },
2443
- {
2444
- "name": "vae",
2445
- "shape": 7,
2446
- "type": "VAE",
2447
- "link": null
2448
  }
2449
  ],
2450
  "outputs": [
2451
  {
2452
- "name": "IMAGE",
2453
- "type": "IMAGE",
2454
- "links": [
2455
- 13633,
2456
- 13724,
2457
- 13732
2458
- ]
2459
- },
2460
- {
2461
- "name": "frame_count",
2462
- "type": "INT",
2463
- "links": [
2464
- 13543
2465
- ]
2466
- },
2467
- {
2468
- "name": "audio",
2469
- "type": "AUDIO",
2470
  "links": [
2471
- 13629
2472
  ]
2473
  },
2474
  {
2475
- "name": "video_info",
2476
- "type": "VHS_VIDEOINFO",
2477
- "links": [
2478
- 13535
2479
- ]
2480
  }
2481
  ],
2482
  "properties": {
2483
- "Node name for S&R": "VHS_LoadVideo",
2484
  "enableTabs": false,
2485
  "tabWidth": 65,
2486
  "tabXOffset": 10,
@@ -2488,125 +2374,87 @@
2488
  "secondTabText": "Send Back",
2489
  "secondTabOffset": 80,
2490
  "secondTabWidth": 65,
2491
- "cnr_id": "comfyui-videohelpersuite",
2492
- "ver": "1.7.9",
2493
  "widget_ue_connectable": {}
2494
  },
2495
- "widgets_values": {
2496
- "video": "yt_6z9qws7M8q8_0442.mp4",
2497
- "force_rate": 24,
2498
- "custom_width": 0,
2499
- "custom_height": 0,
2500
- "frame_load_cap": 149,
2501
- "skip_first_frames": 20,
2502
- "select_every_nth": 1,
2503
- "format": "AnimateDiff",
2504
- "videopreview": {
2505
- "hidden": false,
2506
- "paused": false,
2507
- "params": {
2508
- "filename": "yt_6z9qws7M8q8_0442.mp4",
2509
- "type": "input",
2510
- "format": "video/mp4",
2511
- "force_rate": 24,
2512
- "custom_width": 0,
2513
- "custom_height": 0,
2514
- "frame_load_cap": 149,
2515
- "skip_first_frames": 20,
2516
- "select_every_nth": 1
2517
- }
2518
- }
2519
- },
2520
- "color": "#232",
2521
- "bgcolor": "#353"
2522
  },
2523
  {
2524
- "id": 3940,
2525
- "type": "CheckpointLoaderSimple",
2526
  "pos": [
2527
- -4648.711127852091,
2528
- 3261.3436773800554
2529
  ],
2530
  "size": [
2531
- 383.4002295473938,
2532
- 108.51948797992713
2533
  ],
2534
  "flags": {},
2535
- "order": 11,
2536
  "mode": 0,
2537
  "inputs": [],
2538
- "outputs": [
2539
- {
2540
- "name": "MODEL",
2541
- "type": "MODEL",
2542
- "links": [
2543
- 13217
2544
- ]
2545
- },
2546
- {
2547
- "name": "CLIP",
2548
- "type": "CLIP",
2549
- "links": []
2550
- },
2551
- {
2552
- "name": "VAE",
2553
- "type": "VAE",
2554
- "links": [
2555
- 13752,
2556
- 13753,
2557
- 13754
2558
- ]
2559
- }
2560
- ],
2561
  "properties": {
2562
- "Node name for S&R": "CheckpointLoaderSimple",
2563
- "enableTabs": false,
2564
- "tabWidth": 65,
2565
- "tabXOffset": 10,
2566
- "hasSecondTab": false,
2567
- "secondTabText": "Send Back",
2568
- "secondTabOffset": 80,
2569
- "secondTabWidth": 65,
2570
- "cnr_id": "comfy-core",
2571
- "ver": "0.3.56",
2572
  "widget_ue_connectable": {}
2573
  },
2574
  "widgets_values": [
2575
- "ltx-2.3-22b-dev.safetensors"
2576
- ]
 
 
2577
  },
2578
  {
2579
- "id": 5160,
2580
- "type": "EquirectPerStepRoll",
2581
  "pos": [
2582
- -854.495634536689,
2583
- 3272.5171854156397
2584
  ],
2585
  "size": [
2586
- 311.9826881550574,
2587
- 154
2588
  ],
2589
  "flags": {},
2590
- "order": 45,
2591
  "mode": 0,
2592
  "inputs": [
2593
  {
2594
- "name": "model",
2595
- "type": "MODEL",
2596
- "link": 13737
 
 
 
 
 
 
 
 
 
2597
  }
2598
  ],
2599
  "outputs": [
2600
  {
2601
- "name": "MODEL",
2602
- "type": "MODEL",
2603
  "links": [
2604
- 13738
 
2605
  ]
 
 
 
 
 
2606
  }
2607
  ],
2608
  "properties": {
2609
- "Node name for S&R": "EquirectPerStepRoll",
2610
  "enableTabs": false,
2611
  "tabWidth": 65,
2612
  "tabXOffset": 10,
@@ -2617,47 +2465,87 @@
2617
  "widget_ue_connectable": {}
2618
  },
2619
  "widgets_values": [
 
 
 
 
 
 
 
 
 
 
2620
  true,
2621
- "dual_average",
2622
- 80085,
2623
- "fixed",
2624
- 4
2625
  ]
2626
  },
2627
  {
2628
- "id": 2483,
2629
- "type": "CLIPTextEncode",
2630
  "pos": [
2631
- -3177.88687035676,
2632
- 3450.2955325886337
2633
  ],
2634
  "size": [
2635
- 307.2346496582031,
2636
- 204.2556610107422
2637
  ],
2638
  "flags": {},
2639
- "order": 16,
2640
  "mode": 0,
2641
  "inputs": [
2642
  {
2643
- "name": "clip",
2644
- "type": "CLIP",
2645
- "link": 13459
2646
  }
2647
  ],
2648
  "outputs": [
2649
  {
2650
- "name": "CONDITIONING",
2651
- "type": "CONDITIONING",
2652
- "slot_index": 0,
2653
  "links": [
2654
- 7065
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2655
  ]
2656
  }
2657
  ],
2658
- "title": "CLIP Text Encode (Positive Prompt)",
2659
  "properties": {
2660
- "Node name for S&R": "CLIPTextEncode",
2661
  "enableTabs": false,
2662
  "tabWidth": 65,
2663
  "tabXOffset": 10,
@@ -2665,53 +2553,67 @@
2665
  "secondTabText": "Send Back",
2666
  "secondTabOffset": 80,
2667
  "secondTabWidth": 65,
2668
- "cnr_id": "comfy-core",
2669
- "ver": "0.3.28",
2670
  "widget_ue_connectable": {}
2671
  },
2672
  "widgets_values": [
2673
- "360 degree equirectangular panorama, high quality, detailed video"
2674
- ],
2675
- "color": "#232",
2676
- "bgcolor": "#353"
 
 
2677
  },
2678
  {
2679
- "id": 5011,
2680
- "type": "LTXICLoRALoaderModelOnly",
2681
  "pos": [
2682
- -4118.380065473981,
2683
- 3402.43253093843
2684
  ],
2685
  "size": [
2686
- 499.901763247988,
2687
- 130.8845841562129
2688
  ],
2689
  "flags": {},
2690
- "order": 32,
2691
  "mode": 0,
2692
- "inputs": [
2693
- {
2694
- "name": "model",
2695
- "type": "MODEL",
2696
- "link": 13751
2697
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2698
  ],
 
 
 
 
2699
  "outputs": [
2700
  {
2701
- "name": "model",
2702
  "type": "MODEL",
2703
  "links": [
2704
- 13741
2705
  ]
2706
- },
2707
- {
2708
- "name": "latent_downscale_factor",
2709
- "type": "FLOAT",
2710
- "links": []
2711
  }
2712
  ],
2713
  "properties": {
2714
- "Node name for S&R": "LTXICLoRALoaderModelOnly",
2715
  "enableTabs": false,
2716
  "tabWidth": 65,
2717
  "tabXOffset": 10,
@@ -2719,87 +2621,82 @@
2719
  "secondTabText": "Send Back",
2720
  "secondTabOffset": 80,
2721
  "secondTabWidth": 65,
2722
- "cnr_id": "ComfyUI-LTXVideo",
2723
- "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
2724
  "widget_ue_connectable": {}
2725
  },
2726
  "widgets_values": [
2727
- "ltx-2/360vroutpaint_v2_step_07000.safetensors",
2728
- 1
2729
  ]
2730
  },
2731
  {
2732
- "id": 5163,
2733
- "type": "Note",
2734
  "pos": [
2735
- -3665.730991774559,
2736
- 2479.9557889044113
2737
  ],
2738
  "size": [
2739
- 838.9740343479905,
2740
- 331.0406344163216
2741
  ],
2742
  "flags": {},
2743
  "order": 12,
2744
  "mode": 0,
2745
  "inputs": [],
2746
- "outputs": [],
 
 
 
 
 
 
 
 
2747
  "properties": {
 
 
 
 
 
 
 
 
2748
  "widget_ue_connectable": {}
2749
  },
2750
  "widgets_values": [
2751
- "β–“β–“β–“β–“ β–“ β–“ β–“β–“β–“β–“ β–“β–“β–“ β–“β–“β–“β–“ β–“β–“β–“β–“β–“ β–“β–“β–“ β–“ β–“ \nβ–“β–‘β–‘β–‘β–“ β–“β–‘ β–“β–‘β–“β–‘β–‘β–‘β–“ β–“ β–‘β–‘β–‘ β–“ β–‘β–‘β–‘β–‘ β–‘β–“β–‘β–‘β–‘β–“ β–‘β–‘β–“ β–“β–‘ β–“β–‘ \nβ–“β–“β–“β–“β–‘β–‘β–“β–‘β–‘ β–“β–‘β–“β–“β–“β–“β–‘β–‘β–“β–‘ β–“β–“β–‘ β–“β–“β–“β–‘β–‘β–‘ β–“β–‘β–‘β–‘β–“β–“β–“β–“β–“β–‘β–“β–‘β–‘ β–“β–‘β–‘ \nβ–“β–‘β–‘β–‘β–“ β–“β–‘β–‘ β–“β–‘β–“β–‘β–‘β–“β–‘ β–“β–‘β–‘ β–“β–‘ β–‘β–‘β–“ β–“β–‘β–‘ β–“β–‘β–‘β–‘β–“β–‘β–“β–‘β–‘ β–“β–‘β–‘ \nβ–“β–“β–“β–“β–‘β–‘ β–“β–“β–“ β–‘β–“β–‘β–‘β–‘β–“β–‘ β–“β–“β–“ β–‘β–“β–“β–“β–“β–‘β–‘ β–“β–‘β–‘ β–“β–‘β–‘β–‘β–“β–‘β–“β–“β–“β–“β–“ β–“β–“β–“β–“β–“ \n β–‘β–‘β–‘β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ β–‘ β–‘β–‘ β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ \n β–‘β–‘β–‘β–‘ β–‘β–‘β–‘ β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘β–‘ β–‘ β–‘ β–‘ β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ \n ,----.. \n ,-.----. / / \\ ___ ___ \n ,---.\\ / \\ / . : ,--.'|_ ,-.----. ,--, ,--.'|_ \n /__./|; : \\ ,---,. . / ;. \\ ,--, | | :,' \\ / \\ ,--.'| ,---, | | :,' \n ,---.; ; || | .\\ : ,' .' |. ; / ` ; ,'_ /| : : ' : | : | | |, ,-+-. / | : : ' : \n/___/ \\ | |. : |: | ,---.' ,; | ; \\ ; | .--. | | :.;__,' / | | .\\ : ,--.--. `--'_ ,--.'|' |.;__,' / \n\\ ; \\ ' || | \\ : | | || : | ; | ','_ /| : . || | | . : |: | / \\ ,' ,'| | | ,\"' || | | \n \\ \\ \\: || : . / : : .' . | ' ' ' :| ' | | . .:__,'| : | | \\ :.--. .-. | ' | | | | / | |:__,'| : \n ; \\ ' .; | | \\ : |.' ' ; \\; / || | ' | | | ' : |__ | : . | \\__\\/: . . | | : | | | | | ' : |__ \n \\ \\ '| | ;\\ \\`---' \\ \\ ', / : | : ; ; | | | '.'|: |`-' ,\" .--.; | ' : |__ | | | |/ | | '.'| \n \\ ` ;: ' | \\.' ; : / ' : `--' \\ ; : ;: : : / / ,. | | | '.'|| | |--' ; : ; \n : \\ |: : :-' \\ \\ .' : , .-./ | , / | | : ; : .' \\; : ;| |/ | , / \n '---\" | |.' `---` `--`----' ---`-' `---'.| | , .-./| , / '---' ---`-' \n `---' `---` `--`---' ---`-' \n "
2752
- ],
2753
- "color": "#432",
2754
- "bgcolor": "#653"
2755
  },
2756
  {
2757
- "id": 5157,
2758
- "type": "RectilinearToEquirect",
2759
  "pos": [
2760
- -4045.417352029639,
2761
- 3820.4788134695946
2762
  ],
2763
  "size": [
2764
- 375.6666625976562,
2765
- 366
2766
  ],
2767
  "flags": {},
2768
- "order": 28,
2769
  "mode": 0,
2770
- "inputs": [
2771
- {
2772
- "name": "image",
2773
- "type": "IMAGE",
2774
- "link": 13732
2775
- },
2776
- {
2777
- "name": "focal_px",
2778
- "shape": 7,
2779
- "type": "FLOAT",
2780
- "widget": {
2781
- "name": "focal_px"
2782
- },
2783
- "link": 13731
2784
- }
2785
- ],
2786
  "outputs": [
2787
  {
2788
- "name": "equirect_image",
2789
- "type": "IMAGE",
2790
  "links": [
2791
- 13733,
2792
- 13734
 
2793
  ]
2794
- },
2795
- {
2796
- "name": "outpaint_mask",
2797
- "type": "MASK",
2798
- "links": null
2799
  }
2800
  ],
2801
  "properties": {
2802
- "Node name for S&R": "RectilinearToEquirect",
2803
  "enableTabs": false,
2804
  "tabWidth": 65,
2805
  "tabXOffset": 10,
@@ -2810,87 +2707,73 @@
2810
  "widget_ue_connectable": {}
2811
  },
2812
  "widgets_values": [
2813
- 90,
2814
- 1,
2815
- 2560,
2816
- 1280,
2817
- 0,
2818
- 0,
2819
- 0,
2820
- "pincushion",
2821
- 0,
2822
- 0,
2823
- true,
2824
- 0.06,
2825
- 0
2826
  ]
2827
  },
2828
  {
2829
- "id": 5156,
2830
- "type": "EstimateCameraGeoCalib",
2831
  "pos": [
2832
- -4416.091201617431,
2833
- 4084.1330626649506
2834
  ],
2835
  "size": [
2836
- 286.43334045410154,
2837
- 254
2838
  ],
2839
  "flags": {},
2840
- "order": 20,
2841
  "mode": 0,
2842
  "inputs": [
2843
  {
2844
- "name": "image",
2845
- "type": "IMAGE",
2846
- "link": 13724
 
 
 
 
 
 
 
2847
  }
2848
  ],
2849
  "outputs": [
2850
  {
2851
- "name": "hfov_deg",
2852
- "type": "FLOAT",
2853
- "links": [
2854
- 13725
2855
- ]
2856
- },
2857
- {
2858
- "name": "vfov_deg",
2859
- "type": "FLOAT",
2860
- "links": null
2861
- },
2862
- {
2863
- "name": "pitch_deg",
2864
- "type": "FLOAT",
2865
  "links": [
2866
- 13726
 
 
2867
  ]
2868
  },
2869
  {
2870
- "name": "roll_deg",
2871
- "type": "FLOAT",
2872
  "links": [
2873
- 13727
2874
  ]
2875
  },
2876
  {
2877
- "name": "focal_px",
2878
- "type": "FLOAT",
2879
  "links": [
2880
- 13728,
2881
- 13731
2882
  ]
2883
  },
2884
  {
2885
- "name": "first_frame",
2886
- "type": "IMAGE",
2887
  "links": [
2888
- 13730
2889
  ]
2890
  }
2891
  ],
2892
  "properties": {
2893
- "Node name for S&R": "EstimateCameraGeoCalib",
2894
  "enableTabs": false,
2895
  "tabWidth": 65,
2896
  "tabXOffset": 10,
@@ -2898,38 +2781,88 @@
2898
  "secondTabText": "Send Back",
2899
  "secondTabOffset": 80,
2900
  "secondTabWidth": 65,
 
 
2901
  "widget_ue_connectable": {}
2902
  },
2903
- "widgets_values": [
2904
- 0,
2905
- "pinhole",
2906
- "pinhole",
2907
- true,
2908
- 0.06
2909
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2910
  },
2911
  {
2912
- "id": 5164,
2913
- "type": "Note",
2914
  "pos": [
2915
- -4052.0454574786054,
2916
- 3642.136084370604
2917
  ],
2918
  "size": [
2919
- 395.644886734241,
2920
- 112.43997676599838
2921
  ],
2922
  "flags": {},
2923
- "order": 13,
2924
  "mode": 0,
2925
- "inputs": [],
2926
- "outputs": [],
2927
- "properties": {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2928
  "widgets_values": [
2929
- "When Estimate Camera node is connected, it drives the focal px / hfov deg. You can use fov_scale to override the fov by a factor you input there, in case you feel like the original video is too small a portion of the outpainted video. This will, however, cause distortion."
2930
  ],
2931
- "color": "#432",
2932
- "bgcolor": "#653"
2933
  }
2934
  ],
2935
  "links": [
@@ -2997,22 +2930,6 @@
2997
  0,
2998
  "NOISE"
2999
  ],
3000
- [
3001
- 13217,
3002
- 3940,
3003
- 0,
3004
- 4922,
3005
- 0,
3006
- "MODEL"
3007
- ],
3008
- [
3009
- 13274,
3010
- 4010,
3011
- 0,
3012
- 3980,
3013
- 0,
3014
- "VAE"
3015
- ],
3016
  [
3017
  13302,
3018
  4528,
@@ -3421,22 +3338,6 @@
3421
  0,
3422
  "IMAGE"
3423
  ],
3424
- [
3425
- 13737,
3426
- 5158,
3427
- 0,
3428
- 5160,
3429
- 0,
3430
- "MODEL"
3431
- ],
3432
- [
3433
- 13738,
3434
- 5160,
3435
- 0,
3436
- 4828,
3437
- 0,
3438
- "MODEL"
3439
- ],
3440
  [
3441
  13741,
3442
  5011,
@@ -3462,36 +3363,52 @@
3462
  "CONDITIONING"
3463
  ],
3464
  [
3465
- 13751,
3466
- 4922,
3467
  0,
3468
  5011,
3469
  0,
3470
  "MODEL"
3471
  ],
3472
  [
3473
- 13752,
3474
- 3940,
3475
- 2,
 
 
 
 
 
 
 
 
3476
  3159,
3477
  0,
3478
  "VAE"
3479
  ],
3480
  [
3481
- 13753,
3482
- 3940,
3483
- 2,
3484
  5012,
3485
  2,
3486
  "VAE"
3487
  ],
3488
  [
3489
- 13754,
3490
- 3940,
3491
- 2,
3492
  4851,
3493
  1,
3494
  "VAE"
 
 
 
 
 
 
 
 
3495
  ]
3496
  ],
3497
  "groups": [
@@ -3559,10 +3476,10 @@
3559
  "config": {},
3560
  "extra": {
3561
  "ds": {
3562
- "scale": 0.4736244074476841,
3563
  "offset": [
3564
- 5269.485338696823,
3565
- -2327.8426566745006
3566
  ]
3567
  },
3568
  "frontendVersion": "1.45.15",
@@ -3607,7 +3524,7 @@
3607
  2728.9475282536505
3608
  ],
3609
  "linkIds": [
3610
- 13274
3611
  ]
3612
  },
3613
  {
@@ -3618,7 +3535,7 @@
3618
  2741.273141034827
3619
  ],
3620
  "linkIds": [
3621
- 13274
3622
  ]
3623
  },
3624
  {
@@ -3812,10 +3729,6 @@
3812
  "ue_links": [],
3813
  "links_added_by_ue": [],
3814
  "linkExtensions": [
3815
- {
3816
- "id": 13274,
3817
- "parentId": 9
3818
- },
3819
  {
3820
  "id": 13302,
3821
  "parentId": 34
@@ -3871,6 +3784,10 @@
3871
  {
3872
  "id": 13743,
3873
  "parentId": 63
 
 
 
 
3874
  }
3875
  ]
3876
  },
 
1
  {
2
  "id": "5bd968e1-ff31-4d26-ace1-64fb60374549",
3
  "revision": 0,
4
+ "last_node_id": 5167,
5
+ "last_link_id": 13760,
6
  "nodes": [
7
  {
8
  "id": 5105,
 
16
  60
17
  ],
18
  "flags": {},
19
+ "order": 21,
20
  "mode": 0,
21
  "inputs": [
22
  {
 
59
  "flags": {
60
  "collapsed": true
61
  },
62
+ "order": 19,
63
  "mode": 0,
64
  "inputs": [
65
  {
 
103
  60
104
  ],
105
  "flags": {},
106
+ "order": 23,
107
  "mode": 0,
108
  "inputs": [
109
  {
 
254
  78
255
  ],
256
  "flags": {},
257
+ "order": 31,
258
  "mode": 0,
259
  "inputs": [
260
  {
 
450
  "flags": {
451
  "collapsed": true
452
  },
453
+ "order": 32,
454
  "mode": 0,
455
  "inputs": [
456
  {
 
503
  160
504
  ],
505
  "flags": {},
506
+ "order": 16,
507
  "mode": 4,
508
  "inputs": [
509
  {
 
600
  160
601
  ],
602
  "flags": {},
603
+ "order": 15,
604
  "mode": 4,
605
  "inputs": [
606
  {
 
662
  {
663
  "name": "audio_vae",
664
  "type": "VAE",
665
+ "link": 13756
666
  },
667
  {
668
  "name": "frames_number",
 
724
  120.13641397900165
725
  ],
726
  "flags": {},
727
+ "order": 18,
728
  "mode": 0,
729
  "inputs": [
730
  {
 
763
  "color": "#322",
764
  "bgcolor": "#533"
765
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
766
  {
767
  "id": 5076,
768
  "type": "VHS_VideoCombine",
 
775
  450.18333435058594
776
  ],
777
  "flags": {},
778
+ "order": 51,
779
  "mode": 0,
780
  "inputs": [
781
  {
 
847
  "hidden": false,
848
  "paused": false,
849
  "params": {
850
+ "filename": "outpaint_00260-audio.mp4",
851
  "subfolder": "",
852
  "type": "output",
853
  "format": "video/h264-mp4",
854
+ "frame_rate": 24,
855
+ "workflow": "outpaint_00260.png",
856
+ "fullpath": "/home/juho/ComfyUI/output/outpaint_00260-audio.mp4"
857
  }
858
  }
859
  }
 
870
  122
871
  ],
872
  "flags": {},
873
+ "order": 3,
874
  "mode": 0,
875
  "inputs": [],
876
  "outputs": [
 
920
  {
921
  "name": "vae",
922
  "type": "VAE",
923
+ "link": 13757
924
  },
925
  {
926
  "name": "image",
 
1033
  82
1034
  ],
1035
  "flags": {},
1036
+ "order": 4,
1037
  "mode": 0,
1038
  "inputs": [],
1039
  "outputs": [
 
1122
  102
1123
  ],
1124
  "flags": {},
1125
+ "order": 50,
1126
  "mode": 0,
1127
  "inputs": [
1128
  {
 
1227
  68.88020833333334
1228
  ],
1229
  "flags": {},
1230
+ "order": 5,
1231
  "mode": 0,
1232
  "inputs": [],
1233
  "outputs": [
 
1317
  258
1318
  ],
1319
  "flags": {},
1320
+ "order": 30,
1321
  "mode": 0,
1322
  "inputs": [
1323
  {
 
1354
  "flags": {
1355
  "collapsed": false
1356
  },
1357
+ "order": 24,
1358
  "mode": 0,
1359
  "inputs": [
1360
  {
 
1452
  88
1453
  ],
1454
  "flags": {},
1455
+ "order": 27,
1456
  "mode": 0,
1457
  "inputs": [
1458
  {
 
1481
  "widget_ue_connectable": {}
1482
  },
1483
  "widgets_values": [
1484
+ "-0.47657012939453125"
1485
  ]
1486
  },
1487
  {
 
1496
  88
1497
  ],
1498
  "flags": {},
1499
+ "order": 25,
1500
  "mode": 0,
1501
  "inputs": [
1502
  {
 
1525
  "widget_ue_connectable": {}
1526
  },
1527
  "widgets_values": [
1528
+ "80.07960510253906"
1529
  ]
1530
  },
1531
  {
 
1540
  88
1541
  ],
1542
  "flags": {},
1543
+ "order": 26,
1544
  "mode": 0,
1545
  "inputs": [
1546
  {
 
1569
  "widget_ue_connectable": {}
1570
  },
1571
  "widgets_values": [
1572
+ "-1.5292454957962036"
1573
  ]
1574
  },
1575
  {
 
1584
  88
1585
  ],
1586
  "flags": {},
1587
+ "order": 28,
1588
  "mode": 0,
1589
  "inputs": [
1590
  {
 
1613
  "widget_ue_connectable": {}
1614
  },
1615
  "widgets_values": [
1616
+ "761.64697265625"
1617
  ]
1618
  },
1619
  {
 
1628
  88
1629
  ],
1630
  "flags": {},
1631
+ "order": 6,
1632
  "mode": 0,
1633
  "inputs": [],
1634
  "outputs": [],
 
1730
  {
1731
  "name": "vae",
1732
  "type": "VAE",
1733
+ "link": 13758
1734
  },
1735
  {
1736
  "name": "latent",
 
1805
  74
1806
  ],
1807
  "flags": {},
1808
+ "order": 7,
1809
  "mode": 0,
1810
  "inputs": [],
1811
  "outputs": [
 
1846
  67.3573576655076
1847
  ],
1848
  "flags": {},
1849
+ "order": 8,
1850
  "mode": 0,
1851
  "inputs": [],
1852
  "outputs": [
 
1887
  100.83333333333334
1888
  ],
1889
  "flags": {},
1890
+ "order": 48,
1891
  "mode": 0,
1892
  "inputs": [
1893
  {
 
1952
  46
1953
  ],
1954
  "flags": {},
1955
+ "order": 47,
1956
  "mode": 0,
1957
  "inputs": [
1958
  {
 
2002
  106
2003
  ],
2004
  "flags": {},
2005
+ "order": 46,
2006
  "mode": 0,
2007
  "inputs": [
2008
  {
 
2072
  114
2073
  ],
2074
  "flags": {},
2075
+ "order": 45,
2076
  "mode": 0,
2077
  "inputs": [
2078
  {
2079
  "name": "model",
2080
  "type": "MODEL",
2081
+ "link": 13760
2082
  },
2083
  {
2084
  "name": "positive",
 
2155
  "name": "model",
2156
  "type": "MODEL",
2157
  "links": [
2158
+ 13760
2159
  ]
2160
  }
2161
  ],
 
2191
  150
2192
  ],
2193
  "flags": {},
2194
+ "order": 49,
2195
  "mode": 0,
2196
  "inputs": [
2197
  {
 
2202
  {
2203
  "name": "vae",
2204
  "type": "VAE",
2205
+ "link": 13759
2206
  }
2207
  ],
2208
  "outputs": [
 
2247
  427.82117788452075
2248
  ],
2249
  "flags": {},
2250
+ "order": 52,
2251
  "mode": 4,
2252
  "inputs": [
2253
  {
 
2331
  }
2332
  },
2333
  {
2334
+ "id": 5011,
2335
+ "type": "LTXICLoRALoaderModelOnly",
2336
  "pos": [
2337
+ -4118.380065473981,
2338
+ 3402.43253093843
2339
  ],
2340
  "size": [
2341
+ 499.901763247988,
2342
+ 130.8845841562129
2343
  ],
2344
  "flags": {},
2345
+ "order": 20,
2346
  "mode": 0,
2347
  "inputs": [
2348
  {
2349
+ "name": "model",
2350
+ "type": "MODEL",
2351
+ "link": 13755
 
 
 
 
 
 
 
2352
  }
2353
  ],
2354
  "outputs": [
2355
  {
2356
+ "name": "model",
2357
+ "type": "MODEL",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2358
  "links": [
2359
+ 13741
2360
  ]
2361
  },
2362
  {
2363
+ "name": "latent_downscale_factor",
2364
+ "type": "FLOAT",
2365
+ "links": []
 
 
2366
  }
2367
  ],
2368
  "properties": {
2369
+ "Node name for S&R": "LTXICLoRALoaderModelOnly",
2370
  "enableTabs": false,
2371
  "tabWidth": 65,
2372
  "tabXOffset": 10,
 
2374
  "secondTabText": "Send Back",
2375
  "secondTabOffset": 80,
2376
  "secondTabWidth": 65,
2377
+ "cnr_id": "ComfyUI-LTXVideo",
2378
+ "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
2379
  "widget_ue_connectable": {}
2380
  },
2381
+ "widgets_values": [
2382
+ "ltx-2/360vroutpaint_v2_step_07000.safetensors",
2383
+ 1
2384
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2385
  },
2386
  {
2387
+ "id": 5163,
2388
+ "type": "Note",
2389
  "pos": [
2390
+ -3665.730991774559,
2391
+ 2479.9557889044113
2392
  ],
2393
  "size": [
2394
+ 838.9740343479905,
2395
+ 331.0406344163216
2396
  ],
2397
  "flags": {},
2398
+ "order": 9,
2399
  "mode": 0,
2400
  "inputs": [],
2401
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2402
  "properties": {
 
 
 
 
 
 
 
 
 
 
2403
  "widget_ue_connectable": {}
2404
  },
2405
  "widgets_values": [
2406
+ "β–“β–“β–“β–“ β–“ β–“ β–“β–“β–“β–“ β–“β–“β–“ β–“β–“β–“β–“ β–“β–“β–“β–“β–“ β–“β–“β–“ β–“ β–“ \nβ–“β–‘β–‘β–‘β–“ β–“β–‘ β–“β–‘β–“β–‘β–‘β–‘β–“ β–“ β–‘β–‘β–‘ β–“ β–‘β–‘β–‘β–‘ β–‘β–“β–‘β–‘β–‘β–“ β–‘β–‘β–“ β–“β–‘ β–“β–‘ \nβ–“β–“β–“β–“β–‘β–‘β–“β–‘β–‘ β–“β–‘β–“β–“β–“β–“β–‘β–‘β–“β–‘ β–“β–“β–‘ β–“β–“β–“β–‘β–‘β–‘ β–“β–‘β–‘β–‘β–“β–“β–“β–“β–“β–‘β–“β–‘β–‘ β–“β–‘β–‘ \nβ–“β–‘β–‘β–‘β–“ β–“β–‘β–‘ β–“β–‘β–“β–‘β–‘β–“β–‘ β–“β–‘β–‘ β–“β–‘ β–‘β–‘β–“ β–“β–‘β–‘ β–“β–‘β–‘β–‘β–“β–‘β–“β–‘β–‘ β–“β–‘β–‘ \nβ–“β–“β–“β–“β–‘β–‘ β–“β–“β–“ β–‘β–“β–‘β–‘β–‘β–“β–‘ β–“β–“β–“ β–‘β–“β–“β–“β–“β–‘β–‘ β–“β–‘β–‘ β–“β–‘β–‘β–‘β–“β–‘β–“β–“β–“β–“β–“ β–“β–“β–“β–“β–“ \n β–‘β–‘β–‘β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ β–‘ β–‘β–‘ β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ \n β–‘β–‘β–‘β–‘ β–‘β–‘β–‘ β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘β–‘ β–‘ β–‘ β–‘ β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ \n ,----.. \n ,-.----. / / \\ ___ ___ \n ,---.\\ / \\ / . : ,--.'|_ ,-.----. ,--, ,--.'|_ \n /__./|; : \\ ,---,. . / ;. \\ ,--, | | :,' \\ / \\ ,--.'| ,---, | | :,' \n ,---.; ; || | .\\ : ,' .' |. ; / ` ; ,'_ /| : : ' : | : | | |, ,-+-. / | : : ' : \n/___/ \\ | |. : |: | ,---.' ,; | ; \\ ; | .--. | | :.;__,' / | | .\\ : ,--.--. `--'_ ,--.'|' |.;__,' / \n\\ ; \\ ' || | \\ : | | || : | ; | ','_ /| : . || | | . : |: | / \\ ,' ,'| | | ,\"' || | | \n \\ \\ \\: || : . / : : .' . | ' ' ' :| ' | | . .:__,'| : | | \\ :.--. .-. | ' | | | | / | |:__,'| : \n ; \\ ' .; | | \\ : |.' ' ; \\; / || | ' | | | ' : |__ | : . | \\__\\/: . . | | : | | | | | ' : |__ \n \\ \\ '| | ;\\ \\`---' \\ \\ ', / : | : ; ; | | | '.'|: |`-' ,\" .--.; | ' : |__ | | | |/ | | '.'| \n \\ ` ;: ' | \\.' ; : / ' : `--' \\ ; : ;: : : / / ,. | | | '.'|| | |--' ; : ; \n : \\ |: : :-' \\ \\ .' : , .-./ | , / | | : ; : .' \\; : ;| |/ | , / \n '---\" | |.' `---` `--`----' ---`-' `---'.| | , .-./| , / '---' ---`-' \n `---' `---` `--`---' ---`-' \n "
2407
+ ],
2408
+ "color": "#432",
2409
+ "bgcolor": "#653"
2410
  },
2411
  {
2412
+ "id": 5157,
2413
+ "type": "RectilinearToEquirect",
2414
  "pos": [
2415
+ -4045.417352029639,
2416
+ 3820.4788134695946
2417
  ],
2418
  "size": [
2419
+ 375.6666625976562,
2420
+ 366
2421
  ],
2422
  "flags": {},
2423
+ "order": 29,
2424
  "mode": 0,
2425
  "inputs": [
2426
  {
2427
+ "name": "image",
2428
+ "type": "IMAGE",
2429
+ "link": 13732
2430
+ },
2431
+ {
2432
+ "name": "focal_px",
2433
+ "shape": 7,
2434
+ "type": "FLOAT",
2435
+ "widget": {
2436
+ "name": "focal_px"
2437
+ },
2438
+ "link": 13731
2439
  }
2440
  ],
2441
  "outputs": [
2442
  {
2443
+ "name": "equirect_image",
2444
+ "type": "IMAGE",
2445
  "links": [
2446
+ 13733,
2447
+ 13734
2448
  ]
2449
+ },
2450
+ {
2451
+ "name": "outpaint_mask",
2452
+ "type": "MASK",
2453
+ "links": null
2454
  }
2455
  ],
2456
  "properties": {
2457
+ "Node name for S&R": "RectilinearToEquirect",
2458
  "enableTabs": false,
2459
  "tabWidth": 65,
2460
  "tabXOffset": 10,
 
2465
  "widget_ue_connectable": {}
2466
  },
2467
  "widgets_values": [
2468
+ 90,
2469
+ 1,
2470
+ 2560,
2471
+ 1280,
2472
+ 0,
2473
+ 0,
2474
+ 0,
2475
+ "pincushion",
2476
+ 0,
2477
+ 0,
2478
  true,
2479
+ 0.06,
2480
+ 0
 
 
2481
  ]
2482
  },
2483
  {
2484
+ "id": 5156,
2485
+ "type": "EstimateCameraGeoCalib",
2486
  "pos": [
2487
+ -4416.091201617431,
2488
+ 4084.1330626649506
2489
  ],
2490
  "size": [
2491
+ 286.43334045410154,
2492
+ 254
2493
  ],
2494
  "flags": {},
2495
+ "order": 22,
2496
  "mode": 0,
2497
  "inputs": [
2498
  {
2499
+ "name": "image",
2500
+ "type": "IMAGE",
2501
+ "link": 13724
2502
  }
2503
  ],
2504
  "outputs": [
2505
  {
2506
+ "name": "hfov_deg",
2507
+ "type": "FLOAT",
 
2508
  "links": [
2509
+ 13725
2510
+ ]
2511
+ },
2512
+ {
2513
+ "name": "vfov_deg",
2514
+ "type": "FLOAT",
2515
+ "links": null
2516
+ },
2517
+ {
2518
+ "name": "pitch_deg",
2519
+ "type": "FLOAT",
2520
+ "links": [
2521
+ 13726
2522
+ ]
2523
+ },
2524
+ {
2525
+ "name": "roll_deg",
2526
+ "type": "FLOAT",
2527
+ "links": [
2528
+ 13727
2529
+ ]
2530
+ },
2531
+ {
2532
+ "name": "focal_px",
2533
+ "type": "FLOAT",
2534
+ "links": [
2535
+ 13728,
2536
+ 13731
2537
+ ]
2538
+ },
2539
+ {
2540
+ "name": "first_frame",
2541
+ "type": "IMAGE",
2542
+ "links": [
2543
+ 13730
2544
  ]
2545
  }
2546
  ],
 
2547
  "properties": {
2548
+ "Node name for S&R": "EstimateCameraGeoCalib",
2549
  "enableTabs": false,
2550
  "tabWidth": 65,
2551
  "tabXOffset": 10,
 
2553
  "secondTabText": "Send Back",
2554
  "secondTabOffset": 80,
2555
  "secondTabWidth": 65,
 
 
2556
  "widget_ue_connectable": {}
2557
  },
2558
  "widgets_values": [
2559
+ 0,
2560
+ "pinhole",
2561
+ "pinhole",
2562
+ true,
2563
+ 0.06
2564
+ ]
2565
  },
2566
  {
2567
+ "id": 5164,
2568
+ "type": "Note",
2569
  "pos": [
2570
+ -4052.0454574786054,
2571
+ 3642.136084370604
2572
  ],
2573
  "size": [
2574
+ 395.644886734241,
2575
+ 112.43997676599838
2576
  ],
2577
  "flags": {},
2578
+ "order": 10,
2579
  "mode": 0,
2580
+ "inputs": [],
2581
+ "outputs": [],
2582
+ "properties": {
2583
+ "widget_ue_connectable": {}
2584
+ },
2585
+ "widgets_values": [
2586
+ "When Estimate Camera node is connected, it drives the focal px / hfov deg. You can use fov_scale to override the fov by a factor you input there, in case you feel like the original video is too small a portion of the outpainted video. This will, however, cause distortion."
2587
+ ],
2588
+ "color": "#432",
2589
+ "bgcolor": "#653"
2590
+ },
2591
+ {
2592
+ "id": 5165,
2593
+ "type": "UNETLoader",
2594
+ "pos": [
2595
+ -4643.921612895136,
2596
+ 3438.0793261217586
2597
+ ],
2598
+ "size": [
2599
+ 399.7889424958448,
2600
+ 83.44209936106517
2601
  ],
2602
+ "flags": {},
2603
+ "order": 11,
2604
+ "mode": 0,
2605
+ "inputs": [],
2606
  "outputs": [
2607
  {
2608
+ "name": "MODEL",
2609
  "type": "MODEL",
2610
  "links": [
2611
+ 13755
2612
  ]
 
 
 
 
 
2613
  }
2614
  ],
2615
  "properties": {
2616
+ "Node name for S&R": "UNETLoader",
2617
  "enableTabs": false,
2618
  "tabWidth": 65,
2619
  "tabXOffset": 10,
 
2621
  "secondTabText": "Send Back",
2622
  "secondTabOffset": 80,
2623
  "secondTabWidth": 65,
 
 
2624
  "widget_ue_connectable": {}
2625
  },
2626
  "widgets_values": [
2627
+ "ltx-2.3-22b-distilled-1.1_transformer_only_mxfp8_block32.safetensors",
2628
+ "default"
2629
  ]
2630
  },
2631
  {
2632
+ "id": 5166,
2633
+ "type": "VAELoaderKJ",
2634
  "pos": [
2635
+ -4617.963824395968,
2636
+ 3265.0274027939668
2637
  ],
2638
  "size": [
2639
+ 270,
2640
+ 106
2641
  ],
2642
  "flags": {},
2643
  "order": 12,
2644
  "mode": 0,
2645
  "inputs": [],
2646
+ "outputs": [
2647
+ {
2648
+ "name": "VAE",
2649
+ "type": "VAE",
2650
+ "links": [
2651
+ 13756
2652
+ ]
2653
+ }
2654
+ ],
2655
  "properties": {
2656
+ "Node name for S&R": "VAELoaderKJ",
2657
+ "enableTabs": false,
2658
+ "tabWidth": 65,
2659
+ "tabXOffset": 10,
2660
+ "hasSecondTab": false,
2661
+ "secondTabText": "Send Back",
2662
+ "secondTabOffset": 80,
2663
+ "secondTabWidth": 65,
2664
  "widget_ue_connectable": {}
2665
  },
2666
  "widgets_values": [
2667
+ "LTX23_audio_vae_bf16.safetensors",
2668
+ "main_device",
2669
+ "bf16"
2670
+ ]
2671
  },
2672
  {
2673
+ "id": 5167,
2674
+ "type": "VAELoaderKJ",
2675
  "pos": [
2676
+ -4044.0825153462683,
2677
+ 3191.6976093528
2678
  ],
2679
  "size": [
2680
+ 270,
2681
+ 106
2682
  ],
2683
  "flags": {},
2684
+ "order": 13,
2685
  "mode": 0,
2686
+ "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2687
  "outputs": [
2688
  {
2689
+ "name": "VAE",
2690
+ "type": "VAE",
2691
  "links": [
2692
+ 13757,
2693
+ 13758,
2694
+ 13759
2695
  ]
 
 
 
 
 
2696
  }
2697
  ],
2698
  "properties": {
2699
+ "Node name for S&R": "VAELoaderKJ",
2700
  "enableTabs": false,
2701
  "tabWidth": 65,
2702
  "tabXOffset": 10,
 
2707
  "widget_ue_connectable": {}
2708
  },
2709
  "widgets_values": [
2710
+ "LTX23_video_vae_bf16.safetensors",
2711
+ "main_device",
2712
+ "bf16"
 
 
 
 
 
 
 
 
 
 
2713
  ]
2714
  },
2715
  {
2716
+ "id": 5060,
2717
+ "type": "VHS_LoadVideo",
2718
  "pos": [
2719
+ -5128.101218203265,
2720
+ 3679.9328210884596
2721
  ],
2722
  "size": [
2723
+ 259.43333435058594,
2724
+ 455.2375179913254
2725
  ],
2726
  "flags": {},
2727
+ "order": 14,
2728
  "mode": 0,
2729
  "inputs": [
2730
  {
2731
+ "name": "meta_batch",
2732
+ "shape": 7,
2733
+ "type": "VHS_BatchManager",
2734
+ "link": null
2735
+ },
2736
+ {
2737
+ "name": "vae",
2738
+ "shape": 7,
2739
+ "type": "VAE",
2740
+ "link": null
2741
  }
2742
  ],
2743
  "outputs": [
2744
  {
2745
+ "name": "IMAGE",
2746
+ "type": "IMAGE",
 
 
 
 
 
 
 
 
 
 
 
 
2747
  "links": [
2748
+ 13633,
2749
+ 13724,
2750
+ 13732
2751
  ]
2752
  },
2753
  {
2754
+ "name": "frame_count",
2755
+ "type": "INT",
2756
  "links": [
2757
+ 13543
2758
  ]
2759
  },
2760
  {
2761
+ "name": "audio",
2762
+ "type": "AUDIO",
2763
  "links": [
2764
+ 13629
 
2765
  ]
2766
  },
2767
  {
2768
+ "name": "video_info",
2769
+ "type": "VHS_VIDEOINFO",
2770
  "links": [
2771
+ 13535
2772
  ]
2773
  }
2774
  ],
2775
  "properties": {
2776
+ "Node name for S&R": "VHS_LoadVideo",
2777
  "enableTabs": false,
2778
  "tabWidth": 65,
2779
  "tabXOffset": 10,
 
2781
  "secondTabText": "Send Back",
2782
  "secondTabOffset": 80,
2783
  "secondTabWidth": 65,
2784
+ "cnr_id": "comfyui-videohelpersuite",
2785
+ "ver": "1.7.9",
2786
  "widget_ue_connectable": {}
2787
  },
2788
+ "widgets_values": {
2789
+ "video": "LTX-2_00424-audio.mp4",
2790
+ "force_rate": 24,
2791
+ "custom_width": 0,
2792
+ "custom_height": 0,
2793
+ "frame_load_cap": 149,
2794
+ "skip_first_frames": 0,
2795
+ "select_every_nth": 1,
2796
+ "format": "AnimateDiff",
2797
+ "videopreview": {
2798
+ "hidden": false,
2799
+ "paused": false,
2800
+ "params": {
2801
+ "filename": "LTX-2_00424-audio.mp4",
2802
+ "type": "input",
2803
+ "format": "video/mp4",
2804
+ "force_rate": 24,
2805
+ "custom_width": 0,
2806
+ "custom_height": 0,
2807
+ "frame_load_cap": 149,
2808
+ "skip_first_frames": 0,
2809
+ "select_every_nth": 1
2810
+ }
2811
+ }
2812
+ },
2813
+ "color": "#232",
2814
+ "bgcolor": "#353"
2815
  },
2816
  {
2817
+ "id": 2483,
2818
+ "type": "CLIPTextEncode",
2819
  "pos": [
2820
+ -3177.88687035676,
2821
+ 3450.2955325886337
2822
  ],
2823
  "size": [
2824
+ 307.2346496582031,
2825
+ 204.2556610107422
2826
  ],
2827
  "flags": {},
2828
+ "order": 17,
2829
  "mode": 0,
2830
+ "inputs": [
2831
+ {
2832
+ "name": "clip",
2833
+ "type": "CLIP",
2834
+ "link": 13459
2835
+ }
2836
+ ],
2837
+ "outputs": [
2838
+ {
2839
+ "name": "CONDITIONING",
2840
+ "type": "CONDITIONING",
2841
+ "slot_index": 0,
2842
+ "links": [
2843
+ 7065
2844
+ ]
2845
+ }
2846
+ ],
2847
+ "title": "CLIP Text Encode (Positive Prompt)",
2848
+ "properties": {
2849
+ "Node name for S&R": "CLIPTextEncode",
2850
+ "enableTabs": false,
2851
+ "tabWidth": 65,
2852
+ "tabXOffset": 10,
2853
+ "hasSecondTab": false,
2854
+ "secondTabText": "Send Back",
2855
+ "secondTabOffset": 80,
2856
+ "secondTabWidth": 65,
2857
+ "cnr_id": "comfy-core",
2858
+ "ver": "0.3.28",
2859
+ "widget_ue_connectable": {}
2860
+ },
2861
  "widgets_values": [
2862
+ "360 degree equirectangular panorama, high quality, detailed video "
2863
  ],
2864
+ "color": "#232",
2865
+ "bgcolor": "#353"
2866
  }
2867
  ],
2868
  "links": [
 
2930
  0,
2931
  "NOISE"
2932
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2933
  [
2934
  13302,
2935
  4528,
 
3338
  0,
3339
  "IMAGE"
3340
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3341
  [
3342
  13741,
3343
  5011,
 
3363
  "CONDITIONING"
3364
  ],
3365
  [
3366
+ 13755,
3367
+ 5165,
3368
  0,
3369
  5011,
3370
  0,
3371
  "MODEL"
3372
  ],
3373
  [
3374
+ 13756,
3375
+ 5166,
3376
+ 0,
3377
+ 3980,
3378
+ 0,
3379
+ "VAE"
3380
+ ],
3381
+ [
3382
+ 13757,
3383
+ 5167,
3384
+ 0,
3385
  3159,
3386
  0,
3387
  "VAE"
3388
  ],
3389
  [
3390
+ 13758,
3391
+ 5167,
3392
+ 0,
3393
  5012,
3394
  2,
3395
  "VAE"
3396
  ],
3397
  [
3398
+ 13759,
3399
+ 5167,
3400
+ 0,
3401
  4851,
3402
  1,
3403
  "VAE"
3404
+ ],
3405
+ [
3406
+ 13760,
3407
+ 5158,
3408
+ 0,
3409
+ 4828,
3410
+ 0,
3411
+ "MODEL"
3412
  ]
3413
  ],
3414
  "groups": [
 
3476
  "config": {},
3477
  "extra": {
3478
  "ds": {
3479
+ "scale": 0.6303940863128716,
3480
  "offset": [
3481
+ 3749.50956497971,
3482
+ -2928.9559286794783
3483
  ]
3484
  },
3485
  "frontendVersion": "1.45.15",
 
3524
  2728.9475282536505
3525
  ],
3526
  "linkIds": [
3527
+ 13756
3528
  ]
3529
  },
3530
  {
 
3535
  2741.273141034827
3536
  ],
3537
  "linkIds": [
3538
+ 13756
3539
  ]
3540
  },
3541
  {
 
3729
  "ue_links": [],
3730
  "links_added_by_ue": [],
3731
  "linkExtensions": [
 
 
 
 
3732
  {
3733
  "id": 13302,
3734
  "parentId": 34
 
3784
  {
3785
  "id": 13743,
3786
  "parentId": 63
3787
+ },
3788
+ {
3789
+ "id": 13756,
3790
+ "parentId": 9
3791
  }
3792
  ]
3793
  },
LICENSE ADDED
@@ -0,0 +1,283 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # VR-360-Outpaint 1.0 β€” License
2
+
3
+ This model is released under **Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**.
4
+
5
+ ## Commercial licensing
6
+
7
+ The CC BY-NC 4.0 license permits use for **non-commercial purposes only**. If you would like to use
8
+ VR-360-Outpaint in a commercial product, service, or workflow, please contact me for a commercial
9
+ license:
10
+
11
+ > **Juho Alatalo**
12
+ > πŸ“§ juho.alatalo@gmail.com
13
+
14
+ I'm happy to discuss reasonable terms for indie creators, small studios, and enterprise deployments alike.
15
+
16
+ ---
17
+
18
+ ## Creative Commons Attribution-NonCommercial 4.0 International
19
+
20
+ Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services
21
+ or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or
22
+ other relationship. Creative Commons makes its licenses and related information available on an "as-is"
23
+ basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their
24
+ terms and conditions, or any related information. Creative Commons disclaims all liability for damages
25
+ resulting from their use to the fullest extent possible.
26
+
27
+ ### Using Creative Commons Public Licenses
28
+
29
+ Creative Commons public licenses provide a standard set of terms and conditions that creators and other
30
+ rights holders may use to share original works of authorship and other material subject to copyright and
31
+ certain other rights specified in the public license below. The following considerations are for
32
+ informational purposes only, are not exhaustive, and do not form part of our licenses.
33
+
34
+ **Considerations for licensors:** Our public licenses are intended for use by those authorized to give
35
+ the public permission to use material in ways otherwise restricted by copyright and certain other rights.
36
+ Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the
37
+ license they choose before applying it. Licensors should also secure all rights necessary before applying
38
+ our licenses so that the public can reuse the material as expected. Licensors should clearly mark any
39
+ material not subject to the license. This includes other CC-licensed material, or material used under an
40
+ exception or limitation to copyright. More considerations for licensors.
41
+
42
+ **Considerations for the public:** By using one of our public licenses, a licensor grants the public
43
+ permission to use the licensed material under specified terms and conditions. If the licensor's
44
+ permission is not necessary for any reason–for example, because of any applicable exception or limitation
45
+ to copyright–then that use is not regulated by the license. Our licenses grant only permissions under
46
+ copyright and certain other rights that a licensor has authority to grant. Use of the licensed material
47
+ may still be restricted for other reasons, including because others have copyright or other rights in the
48
+ material. A licensor may make special requests, such as asking that all changes be marked or described.
49
+ Although not required by our licenses, you are encouraged to respect those requests where reasonable.
50
+ More considerations for the public.
51
+
52
+ ---
53
+
54
+ ## Creative Commons Attribution-NonCommercial 4.0 International Public License
55
+
56
+ By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and
57
+ conditions of this Creative Commons Attribution-NonCommercial 4.0 International Public License ("Public
58
+ License"). To the extent this Public License may be interpreted as a contract, You are granted the
59
+ Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor
60
+ grants You such rights in consideration of benefits the Licensor receives from making the Licensed
61
+ Material available under these terms and conditions.
62
+
63
+ ### Section 1 – Definitions.
64
+
65
+ a. **Adapted Material** means material subject to Copyright and Similar Rights that is derived from or
66
+ based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged,
67
+ transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar
68
+ Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a
69
+ musical work, performance, or sound recording, Adapted Material is always produced where the Licensed
70
+ Material is synched in timed relation with a moving image.
71
+
72
+ b. **Adapter's License** means the license You apply to Your Copyright and Similar Rights in Your
73
+ contributions to Adapted Material in accordance with the terms and conditions of this Public License.
74
+
75
+ c. **Copyright and Similar Rights** means copyright and/or similar rights closely related to copyright
76
+ including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights,
77
+ without regard to how the rights are labeled or categorized. For purposes of this Public License, the
78
+ rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
79
+
80
+ d. **Effective Technological Measures** means those measures that, in the absence of proper authority,
81
+ may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty
82
+ adopted on December 20, 1996, and/or similar international agreements.
83
+
84
+ e. **Exceptions and Limitations** means fair use, fair dealing, and/or any other exception or limitation
85
+ to Copyright and Similar Rights that applies to Your use of the Licensed Material.
86
+
87
+ f. **Licensed Material** means the artistic or literary work, database, or other material to which the
88
+ Licensor applied this Public License.
89
+
90
+ g. **Licensed Rights** means the rights granted to You subject to the terms and conditions of this
91
+ Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the
92
+ Licensed Material and that the Licensor has authority to license.
93
+
94
+ h. **Licensor** means the individual(s) or entity(ies) granting rights under this Public License.
95
+
96
+ i. **NonCommercial** means not primarily intended for or directed towards commercial advantage or
97
+ monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for
98
+ other material subject to Copyright and Similar Rights by digital file-sharing or similar means is
99
+ NonCommercial provided there is no payment of monetary compensation in connection with the exchange.
100
+
101
+ j. **Share** means to provide material to the public by any means or process that requires permission
102
+ under the Licensed Rights, such as reproduction, public display, public performance, distribution,
103
+ dissemination, communication, or importation, and to make material available to the public including in
104
+ ways that members of the public may access the material from a place and at a time individually chosen
105
+ by them.
106
+
107
+ k. **Sui Generis Database Rights** means rights other than copyright resulting from Directive 96/9/EC
108
+ of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as
109
+ amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
110
+
111
+ l. **You** means the individual or entity exercising the Licensed Rights under this Public License. Your
112
+ has a corresponding meaning.
113
+
114
+ ### Section 2 – Scope.
115
+
116
+ a. **License grant.**
117
+ 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a
118
+ worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the
119
+ Licensed Rights in the Licensed Material to:
120
+ A. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes
121
+ only; and
122
+ B. produce, reproduce, and Share Adapted Material for NonCommercial purposes only.
123
+ 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to
124
+ Your use, this Public License does not apply, and You do not need to comply with its terms and
125
+ conditions.
126
+ 3. Term. The term of this Public License is specified in Section 6(a).
127
+ 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the
128
+ Licensed Rights in all media and formats whether now known or hereafter created, and to make
129
+ technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any
130
+ right or authority to forbid You from making technical modifications necessary to exercise the
131
+ Licensed Rights, including technical modifications necessary to circumvent Effective Technological
132
+ Measures. For purposes of this Public License, simply making modifications authorized by this
133
+ Section 2(a)(4) never produces Adapted Material.
134
+ 5. Downstream recipients.
135
+ A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material
136
+ automatically receives an offer from the Licensor to exercise the Licensed Rights under the
137
+ terms and conditions of this Public License.
138
+ B. No downstream restrictions. You may not offer or impose any additional or different terms or
139
+ conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing
140
+ so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
141
+ 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to
142
+ assert or imply that You are, or that Your use of the Licensed Material is, connected with, or
143
+ sponsored, endorsed, or granted official status by, the Licensor or others designated to receive
144
+ attribution as provided in Section 3(a)(1)(A)(i).
145
+
146
+ b. **Other rights.**
147
+ 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are
148
+ publicity, privacy, and/or other similar personality rights; however, to the extent possible, the
149
+ Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited
150
+ extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
151
+ 2. Patent and trademark rights are not licensed under this Public License.
152
+ 3. To the extent possible, the Licensor waives any right to collect royalties from You for the
153
+ exercise of the Licensed Rights, whether directly or through a collecting society under any
154
+ voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor
155
+ expressly reserves any right to collect such royalties, including when the Licensed Material is
156
+ used other than for NonCommercial purposes.
157
+
158
+ ### Section 3 – License Conditions.
159
+
160
+ Your exercise of the Licensed Rights is expressly made subject to the following conditions.
161
+
162
+ a. **Attribution.**
163
+ 1. If You Share the Licensed Material (including in modified form), You must:
164
+ A. retain the following if it is supplied by the Licensor with the Licensed Material:
165
+ i. identification of the creator(s) of the Licensed Material and any others designated to
166
+ receive attribution, in any reasonable manner requested by the Licensor (including by
167
+ pseudonym if designated);
168
+ ii. a copyright notice;
169
+ iii. a notice that refers to this Public License;
170
+ iv. a notice that refers to the disclaimer of warranties;
171
+ v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
172
+ B. indicate if You modified the Licensed Material and retain an indication of any previous
173
+ modifications; and
174
+ C. indicate the Licensed Material is licensed under this Public License, and include the text of,
175
+ or the URI or hyperlink to, this Public License.
176
+ 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium,
177
+ means, and context in which You Share the Licensed Material. For example, it may be reasonable to
178
+ satisfy the conditions by providing a URI or hyperlink to a resource that includes the required
179
+ information.
180
+ 3. If requested by the Licensor, You must remove any of the information required by Section
181
+ 3(a)(1)(A) to the extent reasonably practicable.
182
+ 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent
183
+ recipients of the Adapted Material from complying with this Public License.
184
+
185
+ ### Section 4 – Sui Generis Database Rights.
186
+
187
+ Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed
188
+ Material:
189
+
190
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and
191
+ Share all or a substantial portion of the contents of the database for NonCommercial purposes only;
192
+
193
+ b. if You include all or a substantial portion of the database contents in a database in which You have
194
+ Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not
195
+ its individual contents) is Adapted Material; and
196
+
197
+ c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the
198
+ contents of the database.
199
+
200
+ For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this
201
+ Public License where the Licensed Rights include other Copyright and Similar Rights.
202
+
203
+ ### Section 5 – Disclaimer of Warranties and Limitation of Liability.
204
+
205
+ a. **Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers
206
+ the Licensed Material as-is and as-available, and makes no representations or warranties of any kind
207
+ concerning the Licensed Material, whether express, implied, statutory, or other. This includes,
208
+ without limitation, warranties of title, merchantability, fitness for a particular purpose,
209
+ non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors,
210
+ whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in
211
+ part, this disclaimer may not apply to You.**
212
+
213
+ b. **To the extent possible, in no event will the Licensor be liable to You on any legal theory
214
+ (including, without limitation, negligence) or otherwise for any direct, special, indirect,
215
+ incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising
216
+ out of this Public License or use of the Licensed Material, even if the Licensor has been advised of
217
+ the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not
218
+ allowed in full or in part, this limitation may not apply to You.**
219
+
220
+ c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a
221
+ manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of
222
+ all liability.
223
+
224
+ ### Section 6 – Term and Termination.
225
+
226
+ a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However,
227
+ if You fail to comply with this Public License, then Your rights under this Public License terminate
228
+ automatically.
229
+
230
+ b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
231
+ 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your
232
+ discovery of the violation; or
233
+ 2. upon express reinstatement by the Licensor.
234
+
235
+ c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to
236
+ seek remedies for Your violations of this Public License.
237
+
238
+ d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or
239
+ conditions or stop distributing the Licensed Material at any time; however, doing so will not
240
+ terminate this Public License.
241
+
242
+ e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
243
+
244
+ ### Section 7 – Other Terms and Conditions.
245
+
246
+ a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You
247
+ unless expressly agreed.
248
+
249
+ b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are
250
+ separate from and independent of the terms and conditions of this Public License.
251
+
252
+ ### Section 8 – Interpretation.
253
+
254
+ a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce,
255
+ limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made
256
+ without permission under this Public License.
257
+
258
+ b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be
259
+ automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot
260
+ be reformed, it shall be severed from this Public License without affecting the enforceability of the
261
+ remaining terms and conditions.
262
+
263
+ c. No term or condition of this Public License will be waived and no failure to comply consented to
264
+ unless expressly agreed to by the Licensor.
265
+
266
+ d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of,
267
+ any privileges and immunities that apply to the Licensor or You, including from the legal processes of
268
+ any jurisdiction or authority.
269
+
270
+ ---
271
+
272
+ > Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to
273
+ > apply one of its public licenses to material it publishes and in those instances will be considered the
274
+ > "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under
275
+ > the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared
276
+ > under a Creative Commons public license or as otherwise permitted by the Creative Commons policies
277
+ > published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark
278
+ > "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent
279
+ > including, without limitation, in connection with any unauthorized modifications to any of its public
280
+ > licenses or any other arrangements, understandings, or agreements concerning use of licensed material.
281
+ > For the avoidance of doubt, this paragraph does not form part of the public licenses.
282
+
283
+ > Creative Commons may be contacted at creativecommons.org.
README.md CHANGED
@@ -1,144 +1,306 @@
1
  ---
2
  license: cc-by-nc-4.0
3
- base_model: Lightricks/LTX-2.3-22B
4
- library_name: diffusers
 
 
 
 
 
 
 
 
 
 
5
  ---
6
 
7
- # LTX-2.3 β€” 360Β° Equirectangular Outpainting IC-LoRA Β· **v0.1**
8
 
9
- **Proof-of-concept** IC-LoRA adapter for [Lightricks/LTX-2.3-22B](https://huggingface.co/Lightricks) that
10
- outpaints standard widescreen footage into a full **360Β° equirectangular** projection for immersive/VR viewing.
 
11
 
12
- > This is an **early v0.1 release**. Expect rough edges, limited subject variety, and inconsistent
13
- > coherence outside the sweet spot described below. A new version with a much larger, more diverse
14
- > dataset is planned.
15
 
16
  ---
17
 
18
- ## Samples
19
 
20
- Three clips from the model. `sweep` is a rendered 2D camera pan through the
21
- 360Β° output β€” the easiest way to judge results without a VR player.
22
- `fl-eq` shows the flat source and the equirect output side-by-side.
23
 
24
- ### Clip 1 β€” sweep
 
 
 
 
 
25
 
26
- <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip1-sweep.mp4"></video>
 
 
 
 
 
27
 
28
- Side-by-side (flat input Β· equirect output):
 
 
29
 
30
- <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip1-fl-eq.mp4"></video>
31
 
32
- ### Clip 2 β€” sweep
33
 
34
- <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip2-sweep.mp4"></video>
 
 
 
 
 
 
 
 
 
35
 
36
- Side-by-side:
37
 
38
- <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip2-fl-eq.mp4"></video>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
- ### Clip 3 β€” sweep
41
 
42
- <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip3-sweep.mp4"></video>
43
 
44
- Side-by-side:
 
45
 
46
- <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip3-fl-eq.mp4"></video>
 
 
 
 
47
 
48
- Raw equirectangular outputs (load in a 360Β° player for VR):
49
- [clip1-eq.mp4](./samples/clip1-eq.mp4) Β·
50
- [clip2-eq.mp4](./samples/clip2-eq.mp4) Β·
51
- [clip3-eq.mp4](./samples/clip3-eq.mp4)
52
 
53
- ## What it does
54
 
55
- - **Input**: a flat 2.39:1 (cinemascope) clip and a matching equirectangular *reference* (the input
56
- projected into the equirect canvas, with the unknown regions left masked/black)
57
- - **Output**: the model fills in the masked regions, turning the flat shot into a plausible
58
- 360Β° equirectangular video that can be viewed in a VR/360 player
59
 
60
- Intended for transforming existing live-action or cinematic footage into immersive content.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
- ## Sweet spot (v0.1)
63
 
64
- The v0.1 model was tuned toward a deliberately narrow domain to validate the approach:
 
65
 
66
- - **Semi-static establishing city / urban scenes** (no heavy camera motion)
67
- - **~100Β° horizontal field of view** in the source clip
68
- - **2.39:1 source aspect** (standard cinemascope)
69
 
70
- It will **generalize poorly** outside these conditions β€” fast action, extreme close-ups, heavily
71
- stylised imagery, or very different FOVs are not reliably handled yet.
72
 
73
- ## Files
 
 
 
74
 
75
- | File | What it is |
76
- |---|---|
77
- | `ltx-2.3-22b-ic-lora-360-equirect-poc-step3500.safetensors` | The LoRA weights (final step 3500 checkpoint, ~1.3 GB) |
78
- | `Equirect-Outpaint.json` | Reference ComfyUI workflow wired end-to-end for this LoRA |
79
- | `samples/clipN-fl-eq.mp4` | Flat input + equirect output side-by-side (3626Γ—960) |
80
- | `samples/clipN-eq.mp4` | Raw equirectangular output (1920Γ—960) β€” load in a 360Β° player |
81
- | `samples/clipN-sweep.mp4` | 2D camera sweep through the 360Β° output (1920Γ—1080) for quick preview without a VR player |
82
 
83
- Three sample clips (`clip1`, `clip2`, `clip3`) are included under `samples/`.
84
 
85
- ## Usage
86
 
87
- Load on top of `ltx-2.3-22b-dev.safetensors` with the LTX-2 `video_to_video` pipeline and pass:
 
88
 
89
- - **Trigger word**: `equirectangular` (works without any trigger word or prompt too, but with a descriptive prompt you can direct the content of outpainted part)
90
- - **Reference video**: your source clip projected into the equirect canvas with unknown regions masked
91
- - **Resolution**: 1920x960, 121 frames, 24 fps
92
 
93
- Only tested in ComfyUI with the workflow available in this repo. Please note that the workflow's padding node crops your input footage to 2.39:1, you can select whether it's cut from center, top or bottom. Other aspect ratios will work poorly in this early version.
94
 
95
- ### Companion tooling
 
96
 
97
- A small ComfyUI helper pack β€” **[ComfyUI-EquirectProjector](https://github.com/Burgstall-labs/ComfyUI-EquirectProjector)** β€”
98
- was written alongside this LoRA to produce the masked equirectangular reference from a flat clip.
99
- Pair it with the standard LTX-2 video-to-video nodes. The `Equirect-Outpaint.json` workflow in this
100
- repo shows the exact wiring.
101
 
102
- ## Training (v0.1)
 
 
 
 
 
 
 
103
 
104
- | | |
105
- |--|--|
106
- | Base model | LTX-2.3-22B (dev) |
107
- | Strategy | IC-LoRA (`video_to_video`) |
108
- | Rank / alpha | 128 / 128 |
109
- | Target modules | video self+cross attention + FFN |
110
- | Resolution | 1024Γ—512, 41 frames @ 24 fps |
111
- | Optimizer | Prodigy (D-Adaptation), lr=1.0, constant |
112
- | Precision | bf16, gradient checkpointing |
113
- | Steps | 3500 |
114
- | Hardware | 1Γ— NVIDIA H100 80GB |
115
- | Dataset | Small curated POC set (not released) β€” semi-static city establishing clips |
116
 
117
- The final **step 3500** checkpoint is shipped here. Intermediate checkpoints were used for
118
- validation during training but aren't included in this release.
 
 
119
 
120
- ## What's next
 
121
 
122
- Next version is planned on a significantly larger and more diverse dataset covering:
123
 
124
- - Broader subject matter (interiors, landscapes, crowds, vehicles, …)
125
- - Varied input FOVs and focal lengths
126
- - A wider range of camera motion β€” not just static establishing shots
127
- - Better handling of the polar regions (top/bottom caps of the equirect canvas)
 
 
 
 
 
 
 
 
 
128
 
129
  ## Limitations
130
 
131
- - Does not model the top/bottom caps of the sphere well β€” expect stretching or repetition
132
- - Struggles with busy motion and fast cuts
133
- - Prompt adherence is weak; conditioning is dominated by the reference video
134
- - Outputs are not a substitute for natively captured 360 footage β€” this is a creative
135
- re-projection, not a reconstruction
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
 
137
  ## Acknowledgements
138
 
139
- - First part of the training done at ADOS Paris event in collaboration with Cseti (https://huggingface.co/Cseti), NebSH (https://huggingface.co/Nebsh) and S4f3ty_Marc (https://huggingface.co/s4f3tymarc). Good times, thank you guys.
140
- - Advice from oumoumad (https://huggingface.co/oumoumad) in IC-LoRA training altogether has been very valuable to me. The workflow included in this release is modified from oumoumad's IC-LoRA workflow.
 
 
 
 
141
 
142
- ## License
143
 
144
- CC BY-NC 4.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: cc-by-nc-4.0
3
+ library: diffusers
4
+ pipeline_tag: video-to-video
5
+ tags:
6
+ - ltx-2.3
7
+ - ic-lora
8
+ - lora
9
+ - "360"
10
+ - equirectangular
11
+ - vr
12
+ - outpainting
13
+ - video
14
+ pretty_name: VR-360-Outpaint 1.0
15
  ---
16
 
17
+ # VR-360-Outpaint 1.0 β€” LTX-2.3 IC-LoRA
18
 
19
+ **360Β° equirectangular video outpainting.** Give it a flat (gnomonic) video crop on a black
20
+ equirectangular canvas, and it fills the unknown regions to produce a full **360Β° equirectangular
21
+ video** suitable for VR / immersive playback.
22
 
23
+ Built on `Lightricks/LTX-2.3-22B` via **IC-LoRA** (video-to-video conditioning). This is the production "v1.0" run β€” a fully retrained IC-LoRA, multi-reference augmentation, and mixed-resolution buckets.
 
 
24
 
25
  ---
26
 
27
+ ## How it works: the gnomonic projection trick
28
 
29
+ The core insight behind VR-360-Outpaint β€” first developed in **April 2026** by yours truly β€” is that a video diffusion
30
+ model can struggle with equirectangular geometry. Asking it to "extend this flat crop into 360Β°" without geometric guidance is a near-impossible task: the model must simultaneously understand both the
31
+ spherical projection mapping *and* the outpainting task.
32
 
33
+ The solution that I came up with was to provide the model with a **forward gnomonic (rectilinear) projection** of the input
34
+ video, composited onto the equirectangular canvas at the correct angular position and field of view. This
35
+ gives the model an explicit geometric nudge β€” it can see exactly where and how the known pixels sit on
36
+ the sphere, and what the local rectilinear perspective looks like. The outpainting task then becomes:
37
+ *"given this correctly-projected window into the sphere, complete the rest of the equirectangular frame
38
+ in a way that is consistent with it."*
39
 
40
+ This geometric conditioning is applied identically in **both training and inference** β€” every training
41
+ pair was a 360Β° video paired with a gnomonic crop of a specific FOV and aspect ratio
42
+ on the canvas, and the model learned to recover the full equirectangular frame from that partial view.
43
+ At inference time, the **[ComfyUI-VR-Outpaint-Tools](https://github.com/Burgstall-labs/ComfyUI-VR-Outpaint-Tools)**
44
+ node pack performs the same projection from your flat footage, now also including automatic FOV estimation via
45
+ the **GeoCalib** node.
46
 
47
+ Without this geometric scaffolding, the model would have to discover spherical projection rules from
48
+ its core training β€” although LTX2.3 obviously has some equirectangular material in its core training data, this still presents a vastly harder learning problem. The gnomonic projection provides the inductive bias that
49
+ makes VR outpainting tractable.
50
 
51
+ ---
52
 
53
+ ## Quick start
54
 
55
+ 1. **Base model:** `Lightricks/LTX-2.3-22B` (dev safetensors)
56
+ 2. **Load this LoRA** on top via the LTX-2 `video_to_video` pipeline (ComfyUI recommended)
57
+ 3. **Trigger word:** `equirectangular`
58
+ 4. **Caption (the only one the model knows):**
59
+ > `360 degree equirectangular panorama, high quality, detailed`
60
+ 5. **Resolution:** 1920Γ—960, 121 frames @ 24 fps
61
+ 6. **Workflow:** Use the included [`Burgstall-VR-Outpaint.json`](./Burgstall-VR-Outpaint.json) in ComfyUI
62
+ 7. **Companion tools:** [ComfyUI-VR-Outpaint-Tools](https://github.com/Burgstall-labs/ComfyUI-VR-Outpaint-Tools)
63
+ provides the gnomonic projection nodes and the **GeoCalib FOV estimation** node for automatic
64
+ field-of-view detection from your flat footage β€” no manual FOV entry needed.
65
 
66
+ ---
67
 
68
+ ## Examples
69
+
70
+ Each example shows the flat input video, a slow gnomonic pan across the outpainted 360Β° result
71
+ (a virtual camera sweeping through the scene), and the raw equirectangular output.
72
+
73
+ <table>
74
+ <tr>
75
+ <td align="center"><b>Flat input</b></td>
76
+ <td align="center"><b>Pan across the result</b></td>
77
+ <td align="center"><b>Raw equirectangular output</b></td>
78
+ </tr>
79
+ <tr>
80
+ <td><video src="jungle.mp4" width="260" controls muted loop></video></td>
81
+ <td><video src="junglePAN.mp4" width="260" controls muted loop></video></td>
82
+ <td><video src="jungleVR.mp4" width="260" controls muted loop></video></td>
83
+ </tr>
84
+ <tr>
85
+ <td><video src="office.mp4" width="260" controls muted loop></video></td>
86
+ <td><video src="officepan.mp4" width="260" controls muted loop></video></td>
87
+ <td><video src="officeVR.mp4" width="260" controls muted loop></video></td>
88
+ </tr>
89
+ <tr>
90
+ <td><video src="skate.mp4" width="260" controls muted loop></video></td>
91
+ <td><video src="skatepan.mp4" width="260" controls muted loop></video></td>
92
+ <td><video src="skateVR.mp4" width="260" controls muted loop></video></td>
93
+ </tr>
94
+ </table>
95
 
96
+ ---
97
 
98
+ ## Which checkpoint?
99
 
100
+ Three checkpoints are provided (`.safetensors`, ~1.3 GB each). They all produce valid equirectangular
101
+ output; pick based on your priorities:
102
 
103
+ | Checkpoint | Step | Character |
104
+ |------------|------|-----------|
105
+ | **`360vroutpaint_v2_step07000.safetensors`** | 7000 | **Recommended.** Best balance of equirectangular consistency and scene variety |
106
+ | `360vroutpaint_v2_step05000.safetensors` | 5000 | Slightly more creative outpainting, but the 360Β° wrap can be less seamless |
107
+ | `360vroutpaint_v2_step09000.safetensors` | 9000 | Tightest equirectangular consistency, but tends toward more uniform / monotonic scenery |
108
 
109
+ All three are fully converged. The
110
+ differences are subtle; if unsure, start with step 7000.
 
 
111
 
112
+ ---
113
 
114
+ ## Training
 
 
 
115
 
116
+ | Parameter | Value |
117
+ |-----------|-------|
118
+ | **Base model** | LTX-2.3-22B (dev) |
119
+ | **Strategy** | IC-LoRA (`video_to_video`, `first_frame_conditioning_p: 0.0`) |
120
+ | **LoRA rank / alpha** | 128 / 128 |
121
+ | **Target modules** | Self-attn (q, k, v, out) + cross-attn (q, k, v, out) + FFN (`ff.net.0.proj`, `ff.net.2`) |
122
+ | **Trainable params** | 654M |
123
+ | **Resolution** | Mixed buckets: 1024Γ—512Γ—121 + 1920Γ—960Γ—49 |
124
+ | **Frame rate** | 24 fps |
125
+ | **Optimizer** | Prodigy (D-Adaptation), lr=1.0, decoupled weight decay, **constant** schedule |
126
+ | **Precision** | bf16 (weights + Gemma text encoder), gradient checkpointing ON |
127
+ | **Batch / accum** | 1 / 1 |
128
+ | **Steps trained** | 9000 (converged by ~3000, stopped on plateau) |
129
+ | **Hardware** | 1Γ— RTX PRO 6000 Blackwell (96 GB), compute sponsored by [Lightricks](https://www.lightricks.com/) |
130
+ | **Caption** | `360 degree equirectangular panorama, high quality, detailed` |
131
 
132
+ ### Dataset
133
 
134
+ The model was trained on **13,281 pairs**, sampled from a master dataset of **53,124 augmented
135
+ video pairs** built from **4,427 unique 360Β° clips** sourced from 51 CC-BY YouTube channels.
136
 
137
+ Each of the 4,427 clips was rendered into **12 reference variants** β€” the combination of:
 
 
138
 
139
+ - **4 fields of view:** 70Β°, 90Β°, 110Β°, 130Β°
140
+ - **3 aspect ratios:** 1.33 (4:3), 1.78 (16:9), 2.39 (cinemascope)
141
 
142
+ From these 12 variants per clip, **3 distinct FOVs** were assigned per target (globally balanced across
143
+ all 12 FOVΓ—aspect cells, ~1,107 pairs each), and the trainer randomly sampled one of the 3 at each step.
144
+ A per-clip random yaw shift (0–1920 px) exploits equirectangular rotational symmetry, effectively
145
+ multiplying each scene into many independent viewpoints and keeping operators / tripods off a fixed azimuth.
146
 
147
+ All clips in the master dataset were normalized to 1920Γ—960 at 24 fps, 121 frames (~5 seconds).
 
 
 
 
 
 
148
 
149
+ The training dataset is **private** and not distributed with these weights.
150
 
151
+ ### Validation
152
 
153
+ 153 held-out clips from 6 diverse non-CC sources (urban day/night, indoor, nature, action, aurora).
154
+ Eval-only β€” never trained on. Validation is sample-generation only (no held-out val-loss exists).
155
 
156
+ ---
 
 
157
 
158
+ ## Convergence evidence
159
 
160
+ Loss is a poor signal for IC-LoRA. I tracked three independent metrics; all agree the model converged
161
+ by step 3000 and plateaued through 9000:
162
 
163
+ **1. 360Β° seam continuity** (`seam_ratio` β€” wrap-edge MSE Γ· mean adjacent-column MSE, lower is better):
 
 
 
164
 
165
+ | Step | Seam ratio |
166
+ |------|-----------|
167
+ | 1000 | 59.7 |
168
+ | 2000 | 33.4 |
169
+ | **3000** | **6.1** ← converged |
170
+ | 5000 | 9.3 |
171
+ | 7000 | 5.1 |
172
+ | 9000 | 5.6 |
173
 
174
+ The wrap seam dropped from ~60 to ~6 in 3000 steps and stayed
175
+ in the 5–9 band (noise floor) through 9000. The residual ~5–6 is a data/config limit, not fixable
176
+ by more steps.
 
 
 
 
 
 
 
 
 
177
 
178
+ **2. Weight delta** (relative β€–Wβ‚™ βˆ’ Wβ‚™β‚‹β‚…β‚€β‚€β€–):
179
+ - Early: 0.15–0.17 (high, noisy learning)
180
+ - Step 5000: 0.137
181
+ - Step 7500+: 0.126–0.135 (stable plateau β€” no continued learning)
182
 
183
+ **3. Visual inspection:** Side-by-side comparisons at steps 5000, 7000, and 9000 are
184
+ visually near-identical for most scenes, with mostly just subtle sharpening differences as well as negligible differences in seam.
185
 
186
+ ---
187
 
188
+ ## Sweet spot
189
+
190
+ The model was tuned on and performs best with:
191
+
192
+ - **Content:** Semi-static establishing shots β€” cityscapes, urban scenes, landscapes
193
+ - **FOV:** ~90–110Β° horizontal (the training distribution center)
194
+ - **Aspect ratio:** 1.78–2.39 (standard widescreen to cinemascope)
195
+ - **Camera motion:** Slow pans, gentle dolly, static tripod
196
+
197
+ It will **generalize** beyond these conditions β€” that's why I trained across 4 FOVs and 3 aspect
198
+ ratios β€” but quality degrades gracefully as you move further from the training distribution.
199
+
200
+ ---
201
 
202
  ## Limitations
203
 
204
+ - **Top & bottom caps** (zenith / nadir of the sphere) are the hardest regions; the model has less
205
+ signal there. Avoid critical detail near the poles.
206
+ - **Busy motion** (fast cuts, whip pans, handheld shake) easily break the wrap seam.
207
+ - **Prompt adherence** β€” conditioning is dominated by the reference video, not text. The base caption / prompt is good to keep there, but you can describe the elements that you want there to be in the outpainted area to guide it. It will outpaint with the base prompt only, too.
208
+ - **Narrow domain** β€” trained on outdoor / architectural scenes. Interiors, crowds, close-ups,
209
+ and organic subjects might work less reliably, although these draw strongly from the model's base training.
210
+
211
+
212
+ ---
213
+
214
+ ## Companion tools
215
+
216
+ - **[ComfyUI-VR-Outpaint-Tools](https://github.com/Burgstall-labs/ComfyUI-VR-Outpaint-Tools)** β€”
217
+ A ComfyUI node pack providing:
218
+ - **Gnomonic projection nodes** for converting flat footage into the masked equirectangular
219
+ reference this LoRA expects (FOV selection, projection, canvas compositing)
220
+ - **GeoCalib FOV estimation node** for automatic field-of-view detection from your footage β€”
221
+ no manual measurement needed
222
+ - Formerly named *ComfyUI-EquirectProjector*; renamed after expanding scope beyond the original idea of just forward gnomonic projection.
223
+ - **`Equirect-Outpaint.json`** (included in this repo) β€” End-to-end ComfyUI workflow wiring the
224
+ tools β†’ LTX-2.3 + this LoRA β†’ output.
225
+
226
+ > ⚠️ **Repo re-star request:** The node pack was renamed from `ComfyUI-EquirectProjector` to
227
+ > `ComfyUI-VR-Outpaint-Tools`, and in the process I accidentally turned the repo private for a
228
+ > moment β€” which resets the star count to zero. If you starred it before, I'd really appreciate
229
+ > it if you could **drop by and re-star it** if you appreciate this work. Every one helps! ⭐
230
+
231
+ ---
232
+
233
+ ## What's next
234
+
235
+ I am currently in the process of developing a seamless equirectangular video generation method. Stay tuned.
236
+
237
+ ---
238
 
239
  ## Acknowledgements
240
 
241
+ - **Compute sponsorship** by [Lightricks](https://www.lightricks.com/) β€” the LTX team graciously
242
+ provided the GPU hardware for this training run. Special thanks to **Ofir Bibi** for technical
243
+ guidance and advice throughout the project.
244
+ - Initial PoC training done at ADOS Paris 2026 with collaborators **Cseti**, **NebSH**, and **S4f3ty_Marc**. Thank you for your collaboration and support.
245
+ - IC-LoRA training methodologies and multi-reference dataset design advised by **oumoumad**.
246
+ - Built on the [Lightricks LTX-2.3](https://huggingface.co/Lightricks/LTX-2.3-22B) foundation model.
247
 
248
+ ---
249
 
250
+ ## Training data attribution
251
+
252
+ The model was trained on 360Β° video clips from the following YouTube creators, all shared under
253
+ **Creative Commons Attribution (CC-BY)** license. Thank you to each of them for making their work
254
+ available for reuse.
255
+
256
+ | Creator | Clips | Channel |
257
+ |---------|-------|---------|
258
+ | Luxury Travel VR | 5 | [@LuxuryTravelVR](https://www.youtube.com/@LuxuryTravelVR) |
259
+ | Watchers Club | 4 | [@watchersclub](https://www.youtube.com/@watchersclub) |
260
+ | Naomi Wu | 3 | [@Naomi-Wu](https://www.youtube.com/@Naomi-Wu) |
261
+ | whereisnoa | 3 | [@whereisnoa](https://www.youtube.com/@whereisnoa) |
262
+ | Self-following 360Β° shooting [SNOWBIRD] | 2 | [@360snowbird](https://www.youtube.com/@360snowbird) |
263
+ | Travel Smart Seniors | 2 | [@travelsmartseniors](https://www.youtube.com/@travelsmartseniors) |
264
+ | HaoRyu32 | 2 | [@haoryu3233](https://www.youtube.com/@haoryu3233) |
265
+ | VR Tours 360 | 2 | [@VRTours360](https://www.youtube.com/@VRTours360) |
266
+ | 360VR Tours | 2 | [@360vr_Tours](https://www.youtube.com/@360vr_Tours) |
267
+ | PAV360 VR tour | 2 | [@PAV360](https://www.youtube.com/@PAV360) |
268
+ | Snicel 69 | 2 | [@Snicel69](https://www.youtube.com/@Snicel69) |
269
+ | Heyman Chan | 1 | [@heymanchan7829](https://www.youtube.com/@heymanchan7829) |
270
+ | Hike360 | 1 | [@Hike360](https://www.youtube.com/@Hike360) |
271
+ | TokyoNoob | 1 | [@TokyoNoob](https://www.youtube.com/@TokyoNoob) |
272
+ | Switchflick Productions | 1 | [@SwitchflickProductions](https://www.youtube.com/@SwitchflickProductions) |
273
+ | Dan Lockhart | 1 | [@DanLockhart1](https://www.youtube.com/@DanLockhart1) |
274
+ | 360Β° Attractions β€” Immersive Experiences | 1 | [@FUNFAIRRIDES360](https://www.youtube.com/@FUNFAIRRIDES360) |
275
+ | Tucson Arizona Real Estate | 1 | [@tucsonarizonarealestate](https://www.youtube.com/@tucsonarizonarealestate) |
276
+ | LearningNowHere sg | 1 | [@learningnowheresg4316](https://www.youtube.com/@learningnowheresg4316) |
277
+ | VR 360 VΓ­deo | 1 | [@vr360video2](https://www.youtube.com/@vr360video2) |
278
+ | Captain Steve Plays Vlogs Talks | 1 | [@CaptainStevePlaysVlogsTalks](https://www.youtube.com/@CaptainStevePlaysVlogsTalks) |
279
+ | Eduard Moraru | 1 | [@Enygma2002](https://www.youtube.com/@Enygma2002) |
280
+ | Day1 Walks | 1 | [@day1_walks](https://www.youtube.com/@day1_walks) |
281
+ | Alliks82 | 1 | [@Alliks82](https://www.youtube.com/@Alliks82) |
282
+ | BigT 360 | 1 | [@BigT_360](https://www.youtube.com/@BigT_360) |
283
+ | PIXEO VR | 1 | [@pixeovr](https://www.youtube.com/@pixeovr) |
284
+ | Real Madrid | 1 | [@realmadrid](https://www.youtube.com/@realmadrid) |
285
+ | Jonathan Sadler | 1 | [@jonnysadler4064](https://www.youtube.com/@jonnysadler4064) |
286
+ | N Flight Video | 1 | [@nflightvideo7787](https://www.youtube.com/@nflightvideo7787) |
287
+ | This Way Up Travel | 1 | [@ThisWayUpTravel](https://www.youtube.com/@ThisWayUpTravel) |
288
+ | Top Virtual Tours | 1 | [@topvirtualtours](https://www.youtube.com/@topvirtualtours) |
289
+ | Train H | 1 | [@Train_H](https://www.youtube.com/@Train_H) |
290
+ | He Spoke Style | 1 | [@hespokestyle](https://www.youtube.com/@hespokestyle) |
291
+ | 3D-VR-360 Videos | 1 | [@D-VR-VIDEOSREALIDADVIRTUAL](https://www.youtube.com/@D-VR-VIDEOSREALIDADVIRTUAL) |
292
+ | Virtual Trip | 1 | [@virtualtrip4316](https://www.youtube.com/@virtualtrip4316) |
293
+ | MsBlackoreanlady | 1 | [@MsBlackoreanlady](https://www.youtube.com/@MsBlackoreanlady) |
294
+ | Frontline Ulster | 1 | [@frontlineulster](https://www.youtube.com/@frontlineulster) |
295
+ | Radu Ciocan | 1 | [@RaduCiocan](https://www.youtube.com/@RaduCiocan) |
296
+ | Pogiboy Productions | 1 | [@PogiboyProductions](https://www.youtube.com/@PogiboyProductions) |
297
+ | AlexTravel360 | 1 | [@AlexTravel360](https://www.youtube.com/@AlexTravel360) |
298
+ | Glen Park | 1 | [@o2warp](https://www.youtube.com/@o2warp) |
299
+ | Joni Gritzner | 1 | [@jonigr](https://www.youtube.com/@jonigr) |
300
+ | IDEAS STUDIO | 1 | [@IDEASVRTV](https://www.youtube.com/@IDEASVRTV) |
301
+ | DroneTourism507 | 1 | [@dronetourism507](https://www.youtube.com/@dronetourism507) |
302
+ | Duncan Schieb | 1 | [@Haveabeerwithduncan](https://www.youtube.com/@Haveabeerwithduncan) |
303
+ | Tony McIlwain | 1 | [@TonyMcIlwain](https://www.youtube.com/@TonyMcIlwain) |
304
+
305
+ All clips were obtained under CC-BY as indicated by YouTube at the time of download. License proof
306
+ (`.info.json` sidecar files) is archived.
_old/Burgstall-VR-Outpaint.json ADDED
@@ -0,0 +1,3878 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "5bd968e1-ff31-4d26-ace1-64fb60374549",
3
+ "revision": 0,
4
+ "last_node_id": 5164,
5
+ "last_link_id": 13754,
6
+ "nodes": [
7
+ {
8
+ "id": 5105,
9
+ "type": "SetNode",
10
+ "pos": [
11
+ -4379.5831176552965,
12
+ 3886.648973640091
13
+ ],
14
+ "size": [
15
+ 210,
16
+ 60
17
+ ],
18
+ "flags": {},
19
+ "order": 19,
20
+ "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "name": "IMAGE",
24
+ "type": "IMAGE",
25
+ "link": 13633
26
+ }
27
+ ],
28
+ "outputs": [
29
+ {
30
+ "name": "IMAGE",
31
+ "type": "IMAGE",
32
+ "links": null
33
+ }
34
+ ],
35
+ "title": "Set_Orig.video",
36
+ "properties": {
37
+ "Node name for S&R": "SetNode",
38
+ "aux_id": "SetNode",
39
+ "previousName": "Orig.video",
40
+ "widget_ue_connectable": {}
41
+ },
42
+ "widgets_values": [
43
+ "Orig.video"
44
+ ],
45
+ "color": "#2a363b",
46
+ "bgcolor": "#3f5159"
47
+ },
48
+ {
49
+ "id": 5137,
50
+ "type": "SetNode",
51
+ "pos": [
52
+ -4034.867798501047,
53
+ 2954.350212206302
54
+ ],
55
+ "size": [
56
+ 352.4666748046875,
57
+ 34
58
+ ],
59
+ "flags": {
60
+ "collapsed": true
61
+ },
62
+ "order": 18,
63
+ "mode": 0,
64
+ "inputs": [
65
+ {
66
+ "name": "LATENT_UPSCALE_MODEL",
67
+ "type": "LATENT_UPSCALE_MODEL",
68
+ "link": 13673
69
+ }
70
+ ],
71
+ "outputs": [
72
+ {
73
+ "name": "LATENT_UPSCALE_MODEL",
74
+ "type": "LATENT_UPSCALE_MODEL",
75
+ "links": []
76
+ }
77
+ ],
78
+ "title": "Set_upscale_model",
79
+ "properties": {
80
+ "Node name for S&R": "SetNode",
81
+ "aux_id": "SetNode",
82
+ "previousName": "upscale_model",
83
+ "ue_properties": {
84
+ "widget_ue_connectable": {},
85
+ "version": "7.5.1",
86
+ "input_ue_unconnectable": {}
87
+ },
88
+ "widget_ue_connectable": {}
89
+ },
90
+ "widgets_values": [
91
+ "upscale_model"
92
+ ]
93
+ },
94
+ {
95
+ "id": 5103,
96
+ "type": "SetNode",
97
+ "pos": [
98
+ -4384.772018863561,
99
+ 3772.204200153034
100
+ ],
101
+ "size": [
102
+ 210,
103
+ 60
104
+ ],
105
+ "flags": {},
106
+ "order": 21,
107
+ "mode": 0,
108
+ "inputs": [
109
+ {
110
+ "name": "AUDIO",
111
+ "type": "AUDIO",
112
+ "link": 13629
113
+ }
114
+ ],
115
+ "outputs": [
116
+ {
117
+ "name": "AUDIO",
118
+ "type": "AUDIO",
119
+ "links": null
120
+ }
121
+ ],
122
+ "title": "Set_audio",
123
+ "properties": {
124
+ "Node name for S&R": "SetNode",
125
+ "aux_id": "SetNode",
126
+ "previousName": "audio",
127
+ "widget_ue_connectable": {}
128
+ },
129
+ "widgets_values": [
130
+ "audio"
131
+ ]
132
+ },
133
+ {
134
+ "id": 5135,
135
+ "type": "SetNode",
136
+ "pos": [
137
+ -3138.8190819346487,
138
+ 4381.965961972873
139
+ ],
140
+ "size": [
141
+ 210,
142
+ 60
143
+ ],
144
+ "flags": {},
145
+ "order": 39,
146
+ "mode": 0,
147
+ "inputs": [
148
+ {
149
+ "name": "IMAGE",
150
+ "type": "IMAGE",
151
+ "link": 13670
152
+ }
153
+ ],
154
+ "outputs": [
155
+ {
156
+ "name": "IMAGE",
157
+ "type": "IMAGE",
158
+ "links": null
159
+ }
160
+ ],
161
+ "title": "Set_controlvideo",
162
+ "properties": {
163
+ "Node name for S&R": "SetNode",
164
+ "aux_id": "SetNode",
165
+ "previousName": "controlvideo",
166
+ "widget_ue_connectable": {}
167
+ },
168
+ "widgets_values": [
169
+ "controlvideo"
170
+ ],
171
+ "color": "#2a363b",
172
+ "bgcolor": "#3f5159"
173
+ },
174
+ {
175
+ "id": 5106,
176
+ "type": "GetNode",
177
+ "pos": [
178
+ 163.12916977937422,
179
+ 3172.358307716264
180
+ ],
181
+ "size": [
182
+ 210,
183
+ 60
184
+ ],
185
+ "flags": {},
186
+ "order": 0,
187
+ "mode": 0,
188
+ "inputs": [],
189
+ "outputs": [
190
+ {
191
+ "name": "IMAGE",
192
+ "type": "IMAGE",
193
+ "links": [
194
+ 13634
195
+ ]
196
+ }
197
+ ],
198
+ "title": "Get_Orig.video",
199
+ "properties": {
200
+ "Node name for S&R": "GetNode",
201
+ "aux_id": "GetNode",
202
+ "widget_ue_connectable": {}
203
+ },
204
+ "widgets_values": [
205
+ "Orig.video"
206
+ ],
207
+ "color": "#2a363b",
208
+ "bgcolor": "#3f5159"
209
+ },
210
+ {
211
+ "id": 5104,
212
+ "type": "GetNode",
213
+ "pos": [
214
+ -111.77226588408801,
215
+ 3589.2962113755616
216
+ ],
217
+ "size": [
218
+ 210,
219
+ 60
220
+ ],
221
+ "flags": {},
222
+ "order": 1,
223
+ "mode": 0,
224
+ "inputs": [],
225
+ "outputs": [
226
+ {
227
+ "name": "AUDIO",
228
+ "type": "AUDIO",
229
+ "links": [
230
+ 13630,
231
+ 13631
232
+ ]
233
+ }
234
+ ],
235
+ "title": "Get_audio",
236
+ "properties": {
237
+ "Node name for S&R": "GetNode",
238
+ "aux_id": "GetNode",
239
+ "widget_ue_connectable": {}
240
+ },
241
+ "widgets_values": [
242
+ "audio"
243
+ ]
244
+ },
245
+ {
246
+ "id": 1241,
247
+ "type": "LTXVConditioning",
248
+ "pos": [
249
+ -2827.383495127067,
250
+ 3450.198097882919
251
+ ],
252
+ "size": [
253
+ 210,
254
+ 78
255
+ ],
256
+ "flags": {},
257
+ "order": 30,
258
+ "mode": 0,
259
+ "inputs": [
260
+ {
261
+ "name": "positive",
262
+ "type": "CONDITIONING",
263
+ "link": 7065
264
+ },
265
+ {
266
+ "name": "negative",
267
+ "type": "CONDITIONING",
268
+ "link": 7652
269
+ },
270
+ {
271
+ "name": "frame_rate",
272
+ "type": "FLOAT",
273
+ "widget": {
274
+ "name": "frame_rate"
275
+ },
276
+ "link": 13537
277
+ }
278
+ ],
279
+ "outputs": [
280
+ {
281
+ "name": "positive",
282
+ "type": "CONDITIONING",
283
+ "slot_index": 0,
284
+ "links": [
285
+ 13403
286
+ ]
287
+ },
288
+ {
289
+ "name": "negative",
290
+ "type": "CONDITIONING",
291
+ "slot_index": 1,
292
+ "links": [
293
+ 13404
294
+ ]
295
+ }
296
+ ],
297
+ "properties": {
298
+ "Node name for S&R": "LTXVConditioning",
299
+ "enableTabs": false,
300
+ "tabWidth": 65,
301
+ "tabXOffset": 10,
302
+ "hasSecondTab": false,
303
+ "secondTabText": "Send Back",
304
+ "secondTabOffset": 80,
305
+ "secondTabWidth": 65,
306
+ "cnr_id": "comfy-core",
307
+ "ver": "0.3.28",
308
+ "widget_ue_connectable": {
309
+ "frame_rate": true
310
+ }
311
+ },
312
+ "widgets_values": [
313
+ 24
314
+ ]
315
+ },
316
+ {
317
+ "id": 4528,
318
+ "type": "LTXVConcatAVLatent",
319
+ "pos": [
320
+ -1435.7248162499627,
321
+ 3332.6594007532085
322
+ ],
323
+ "size": [
324
+ 181.308203125,
325
+ 46
326
+ ],
327
+ "flags": {},
328
+ "order": 44,
329
+ "mode": 0,
330
+ "inputs": [
331
+ {
332
+ "name": "video_latent",
333
+ "type": "LATENT",
334
+ "link": 13444
335
+ },
336
+ {
337
+ "name": "audio_latent",
338
+ "type": "LATENT",
339
+ "link": 12457
340
+ }
341
+ ],
342
+ "outputs": [
343
+ {
344
+ "name": "latent",
345
+ "type": "LATENT",
346
+ "links": [
347
+ 13302
348
+ ]
349
+ }
350
+ ],
351
+ "properties": {
352
+ "Node name for S&R": "LTXVConcatAVLatent",
353
+ "enableTabs": false,
354
+ "tabWidth": 65,
355
+ "tabXOffset": 10,
356
+ "hasSecondTab": false,
357
+ "secondTabText": "Send Back",
358
+ "secondTabOffset": 80,
359
+ "secondTabWidth": 65,
360
+ "cnr_id": "comfy-core",
361
+ "ver": "0.10.0",
362
+ "widget_ue_connectable": {}
363
+ },
364
+ "widgets_values": []
365
+ },
366
+ {
367
+ "id": 3059,
368
+ "type": "EmptyLTXVLatentVideo",
369
+ "pos": [
370
+ -2429.9021175291236,
371
+ 3467.2309422919075
372
+ ],
373
+ "size": [
374
+ 210,
375
+ 194
376
+ ],
377
+ "flags": {},
378
+ "order": 40,
379
+ "mode": 0,
380
+ "inputs": [
381
+ {
382
+ "name": "width",
383
+ "type": "INT",
384
+ "widget": {
385
+ "name": "width"
386
+ },
387
+ "link": 13480
388
+ },
389
+ {
390
+ "name": "height",
391
+ "type": "INT",
392
+ "widget": {
393
+ "name": "height"
394
+ },
395
+ "link": 13481
396
+ },
397
+ {
398
+ "name": "length",
399
+ "type": "INT",
400
+ "widget": {
401
+ "name": "length"
402
+ },
403
+ "link": 13484
404
+ }
405
+ ],
406
+ "outputs": [
407
+ {
408
+ "name": "LATENT",
409
+ "type": "LATENT",
410
+ "links": [
411
+ 11401
412
+ ]
413
+ }
414
+ ],
415
+ "properties": {
416
+ "Node name for S&R": "EmptyLTXVLatentVideo",
417
+ "enableTabs": false,
418
+ "tabWidth": 65,
419
+ "tabXOffset": 10,
420
+ "hasSecondTab": false,
421
+ "secondTabText": "Send Back",
422
+ "secondTabOffset": 80,
423
+ "secondTabWidth": 65,
424
+ "cnr_id": "comfy-core",
425
+ "ver": "0.3.43",
426
+ "widget_ue_connectable": {
427
+ "width": true,
428
+ "height": true,
429
+ "length": true
430
+ }
431
+ },
432
+ "widgets_values": [
433
+ 960,
434
+ 544,
435
+ 121,
436
+ 1
437
+ ]
438
+ },
439
+ {
440
+ "id": 5024,
441
+ "type": "CM_FloatToInt",
442
+ "pos": [
443
+ -2337.0859154467325,
444
+ 3719.9927171020036
445
+ ],
446
+ "size": [
447
+ 270,
448
+ 58
449
+ ],
450
+ "flags": {
451
+ "collapsed": true
452
+ },
453
+ "order": 31,
454
+ "mode": 0,
455
+ "inputs": [
456
+ {
457
+ "name": "a",
458
+ "type": "FLOAT",
459
+ "widget": {
460
+ "name": "a"
461
+ },
462
+ "link": 13538
463
+ }
464
+ ],
465
+ "outputs": [
466
+ {
467
+ "name": "INT",
468
+ "type": "INT",
469
+ "links": [
470
+ 13462
471
+ ]
472
+ }
473
+ ],
474
+ "properties": {
475
+ "Node name for S&R": "CM_FloatToInt",
476
+ "enableTabs": false,
477
+ "tabWidth": 65,
478
+ "tabXOffset": 10,
479
+ "hasSecondTab": false,
480
+ "secondTabText": "Send Back",
481
+ "secondTabOffset": 80,
482
+ "secondTabWidth": 65,
483
+ "cnr_id": "ComfyMath",
484
+ "ver": "c01177221c31b8e5fbc062778fc8254aeb541638",
485
+ "aux_id": "evanspearman/ComfyMath",
486
+ "widget_ue_connectable": {
487
+ "a": true
488
+ }
489
+ },
490
+ "widgets_values": [
491
+ 0
492
+ ]
493
+ },
494
+ {
495
+ "id": 5021,
496
+ "type": "GemmaAPITextEncode",
497
+ "pos": [
498
+ -3381.3465925104033,
499
+ 3225.131280627194
500
+ ],
501
+ "size": [
502
+ 347.3886205089311,
503
+ 160
504
+ ],
505
+ "flags": {},
506
+ "order": 15,
507
+ "mode": 4,
508
+ "inputs": [
509
+ {
510
+ "name": "api_key",
511
+ "type": "STRING",
512
+ "widget": {
513
+ "name": "api_key"
514
+ },
515
+ "link": 13458
516
+ }
517
+ ],
518
+ "outputs": [
519
+ {
520
+ "name": "conditioning",
521
+ "type": "CONDITIONING",
522
+ "links": null
523
+ }
524
+ ],
525
+ "title": "πŸ…›πŸ…£πŸ…§ Gemma API Text Encode - POSITIVE",
526
+ "properties": {
527
+ "Node name for S&R": "GemmaAPITextEncode",
528
+ "enableTabs": false,
529
+ "tabWidth": 65,
530
+ "tabXOffset": 10,
531
+ "hasSecondTab": false,
532
+ "secondTabText": "Send Back",
533
+ "secondTabOffset": 80,
534
+ "secondTabWidth": 65,
535
+ "cnr_id": "ComfyUI-LTXVideo",
536
+ "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
537
+ "widget_ue_connectable": {
538
+ "api_key": true
539
+ }
540
+ },
541
+ "widgets_values": [
542
+ "",
543
+ "",
544
+ "ltx-2.3-22b-dev.safetensors",
545
+ "LTX-2\\ltx-2-19b-dev-fp8.safetensors"
546
+ ]
547
+ },
548
+ {
549
+ "id": 5022,
550
+ "type": "PrimitiveString",
551
+ "pos": [
552
+ -3541.4905131482387,
553
+ 3127.0576945882585
554
+ ],
555
+ "size": [
556
+ 270,
557
+ 58
558
+ ],
559
+ "flags": {},
560
+ "order": 2,
561
+ "mode": 4,
562
+ "inputs": [],
563
+ "outputs": [
564
+ {
565
+ "name": "STRING",
566
+ "type": "STRING",
567
+ "links": [
568
+ 13457,
569
+ 13458
570
+ ]
571
+ }
572
+ ],
573
+ "title": "LTX API KEY",
574
+ "properties": {
575
+ "Node name for S&R": "PrimitiveString",
576
+ "enableTabs": false,
577
+ "tabWidth": 65,
578
+ "tabXOffset": 10,
579
+ "hasSecondTab": false,
580
+ "secondTabText": "Send Back",
581
+ "secondTabOffset": 80,
582
+ "secondTabWidth": 65,
583
+ "cnr_id": "comfy-core",
584
+ "ver": "0.14.1",
585
+ "widget_ue_connectable": {}
586
+ },
587
+ "widgets_values": [
588
+ ""
589
+ ]
590
+ },
591
+ {
592
+ "id": 5020,
593
+ "type": "GemmaAPITextEncode",
594
+ "pos": [
595
+ -3000.5035963672367,
596
+ 3219.1125878543608
597
+ ],
598
+ "size": [
599
+ 337.49481491927054,
600
+ 160
601
+ ],
602
+ "flags": {},
603
+ "order": 14,
604
+ "mode": 4,
605
+ "inputs": [
606
+ {
607
+ "name": "api_key",
608
+ "type": "STRING",
609
+ "widget": {
610
+ "name": "api_key"
611
+ },
612
+ "link": 13457
613
+ }
614
+ ],
615
+ "outputs": [
616
+ {
617
+ "name": "conditioning",
618
+ "type": "CONDITIONING",
619
+ "links": null
620
+ }
621
+ ],
622
+ "title": "πŸ…›πŸ…£πŸ…§ Gemma API Text Encode - NEGATIVE",
623
+ "properties": {
624
+ "Node name for S&R": "GemmaAPITextEncode",
625
+ "enableTabs": false,
626
+ "tabWidth": 65,
627
+ "tabXOffset": 10,
628
+ "hasSecondTab": false,
629
+ "secondTabText": "Send Back",
630
+ "secondTabOffset": 80,
631
+ "secondTabWidth": 65,
632
+ "cnr_id": "ComfyUI-LTXVideo",
633
+ "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
634
+ "widget_ue_connectable": {
635
+ "api_key": true
636
+ }
637
+ },
638
+ "widgets_values": [
639
+ "",
640
+ "pc game, console game, video game, cartoon, childish, ugly",
641
+ false,
642
+ "LTX-2\\ltx-2-19b-dev-fp8.safetensors"
643
+ ]
644
+ },
645
+ {
646
+ "id": 3980,
647
+ "type": "LTXVEmptyLatentAudio",
648
+ "pos": [
649
+ -2144.181610683587,
650
+ 3596.4430306151407
651
+ ],
652
+ "size": [
653
+ 305.8394470214844,
654
+ 106
655
+ ],
656
+ "flags": {
657
+ "collapsed": false
658
+ },
659
+ "order": 35,
660
+ "mode": 0,
661
+ "inputs": [
662
+ {
663
+ "name": "audio_vae",
664
+ "type": "VAE",
665
+ "link": 13274
666
+ },
667
+ {
668
+ "name": "frames_number",
669
+ "type": "INT",
670
+ "widget": {
671
+ "name": "frames_number"
672
+ },
673
+ "link": 13543
674
+ },
675
+ {
676
+ "name": "frame_rate",
677
+ "type": "INT",
678
+ "widget": {
679
+ "name": "frame_rate"
680
+ },
681
+ "link": 13462
682
+ }
683
+ ],
684
+ "outputs": [
685
+ {
686
+ "name": "Latent",
687
+ "type": "LATENT",
688
+ "links": [
689
+ 12457
690
+ ]
691
+ }
692
+ ],
693
+ "properties": {
694
+ "Node name for S&R": "LTXVEmptyLatentAudio",
695
+ "enableTabs": false,
696
+ "tabWidth": 65,
697
+ "tabXOffset": 10,
698
+ "hasSecondTab": false,
699
+ "secondTabText": "Send Back",
700
+ "secondTabOffset": 80,
701
+ "secondTabWidth": 65,
702
+ "cnr_id": "comfy-core",
703
+ "ver": "0.3.64",
704
+ "widget_ue_connectable": {
705
+ "frames_number": true,
706
+ "frame_rate": true
707
+ }
708
+ },
709
+ "widgets_values": [
710
+ 97,
711
+ 25,
712
+ 1
713
+ ]
714
+ },
715
+ {
716
+ "id": 2612,
717
+ "type": "CLIPTextEncode",
718
+ "pos": [
719
+ -3182.789983056651,
720
+ 3707.344179774041
721
+ ],
722
+ "size": [
723
+ 309.5560766015442,
724
+ 120.13641397900165
725
+ ],
726
+ "flags": {},
727
+ "order": 17,
728
+ "mode": 0,
729
+ "inputs": [
730
+ {
731
+ "name": "clip",
732
+ "type": "CLIP",
733
+ "link": 13460
734
+ }
735
+ ],
736
+ "outputs": [
737
+ {
738
+ "name": "CONDITIONING",
739
+ "type": "CONDITIONING",
740
+ "slot_index": 0,
741
+ "links": [
742
+ 7652
743
+ ]
744
+ }
745
+ ],
746
+ "title": "CLIP Text Encode (Negative Prompt)",
747
+ "properties": {
748
+ "Node name for S&R": "CLIPTextEncode",
749
+ "enableTabs": false,
750
+ "tabWidth": 65,
751
+ "tabXOffset": 10,
752
+ "hasSecondTab": false,
753
+ "secondTabText": "Send Back",
754
+ "secondTabOffset": 80,
755
+ "secondTabWidth": 65,
756
+ "cnr_id": "comfy-core",
757
+ "ver": "0.3.28",
758
+ "widget_ue_connectable": {}
759
+ },
760
+ "widgets_values": [
761
+ "pc game, console game, video game, ugly, 3d render, photo, still, static, slow"
762
+ ],
763
+ "color": "#322",
764
+ "bgcolor": "#533"
765
+ },
766
+ {
767
+ "id": 4010,
768
+ "type": "LTXVAudioVAELoader",
769
+ "pos": [
770
+ -4655.010641467211,
771
+ 3122.9236915172387
772
+ ],
773
+ "size": [
774
+ 384.6576773713696,
775
+ 79.30435270514249
776
+ ],
777
+ "flags": {},
778
+ "order": 3,
779
+ "mode": 0,
780
+ "inputs": [],
781
+ "outputs": [
782
+ {
783
+ "name": "Audio VAE",
784
+ "type": "VAE",
785
+ "links": [
786
+ 13274
787
+ ]
788
+ }
789
+ ],
790
+ "properties": {
791
+ "Node name for S&R": "LTXVAudioVAELoader",
792
+ "enableTabs": false,
793
+ "tabWidth": 65,
794
+ "tabXOffset": 10,
795
+ "hasSecondTab": false,
796
+ "secondTabText": "Send Back",
797
+ "secondTabOffset": 80,
798
+ "secondTabWidth": 65,
799
+ "cnr_id": "comfy-core",
800
+ "ver": "0.3.64",
801
+ "widget_ue_connectable": {}
802
+ },
803
+ "widgets_values": [
804
+ "ltx-2.3-22b-dev.safetensors"
805
+ ]
806
+ },
807
+ {
808
+ "id": 4922,
809
+ "type": "LoraLoaderModelOnly",
810
+ "pos": [
811
+ -4199.312205855027,
812
+ 3223.4032725396655
813
+ ],
814
+ "size": [
815
+ 454.14193097539646,
816
+ 128.44311555561626
817
+ ],
818
+ "flags": {},
819
+ "order": 23,
820
+ "mode": 0,
821
+ "inputs": [
822
+ {
823
+ "name": "model",
824
+ "type": "MODEL",
825
+ "link": 13217
826
+ }
827
+ ],
828
+ "outputs": [
829
+ {
830
+ "name": "MODEL",
831
+ "type": "MODEL",
832
+ "links": [
833
+ 13751
834
+ ]
835
+ }
836
+ ],
837
+ "properties": {
838
+ "Node name for S&R": "LoraLoaderModelOnly",
839
+ "enableTabs": false,
840
+ "tabWidth": 65,
841
+ "tabXOffset": 10,
842
+ "hasSecondTab": false,
843
+ "secondTabText": "Send Back",
844
+ "secondTabOffset": 80,
845
+ "secondTabWidth": 65,
846
+ "cnr_id": "comfy-core",
847
+ "ver": "0.14.1",
848
+ "widget_ue_connectable": {}
849
+ },
850
+ "widgets_values": [
851
+ "ltx-2/ltx-2.3-22b-distilled-lora-384.safetensors",
852
+ 0.5
853
+ ]
854
+ },
855
+ {
856
+ "id": 5076,
857
+ "type": "VHS_VideoCombine",
858
+ "pos": [
859
+ 180,
860
+ 3340
861
+ ],
862
+ "size": [
863
+ 224.36666870117188,
864
+ 450.18333435058594
865
+ ],
866
+ "flags": {},
867
+ "order": 52,
868
+ "mode": 0,
869
+ "inputs": [
870
+ {
871
+ "name": "images",
872
+ "type": "IMAGE",
873
+ "link": 13627
874
+ },
875
+ {
876
+ "name": "audio",
877
+ "shape": 7,
878
+ "type": "AUDIO",
879
+ "link": 13630
880
+ },
881
+ {
882
+ "name": "meta_batch",
883
+ "shape": 7,
884
+ "type": "VHS_BatchManager",
885
+ "link": null
886
+ },
887
+ {
888
+ "name": "vae",
889
+ "shape": 7,
890
+ "type": "VAE",
891
+ "link": null
892
+ },
893
+ {
894
+ "name": "frame_rate",
895
+ "type": "FLOAT",
896
+ "widget": {
897
+ "name": "frame_rate"
898
+ },
899
+ "link": 13562
900
+ }
901
+ ],
902
+ "outputs": [
903
+ {
904
+ "name": "Filenames",
905
+ "type": "VHS_FILENAMES",
906
+ "links": null
907
+ }
908
+ ],
909
+ "properties": {
910
+ "Node name for S&R": "VHS_VideoCombine",
911
+ "enableTabs": false,
912
+ "tabWidth": 65,
913
+ "tabXOffset": 10,
914
+ "hasSecondTab": false,
915
+ "secondTabText": "Send Back",
916
+ "secondTabOffset": 80,
917
+ "secondTabWidth": 65,
918
+ "cnr_id": "comfyui-videohelpersuite",
919
+ "ver": "1.7.9",
920
+ "widget_ue_connectable": {
921
+ "frame_rate": true
922
+ }
923
+ },
924
+ "widgets_values": {
925
+ "frame_rate": 8,
926
+ "loop_count": 0,
927
+ "filename_prefix": "outpaint",
928
+ "format": "video/h264-mp4",
929
+ "pix_fmt": "yuv420p",
930
+ "crf": 19,
931
+ "save_metadata": true,
932
+ "trim_to_audio": false,
933
+ "pingpong": false,
934
+ "save_output": true,
935
+ "videopreview": {
936
+ "hidden": false,
937
+ "paused": false,
938
+ "params": {
939
+ "filename": "outpaint_00254-audio.mp4",
940
+ "subfolder": "",
941
+ "type": "output",
942
+ "format": "video/h264-mp4",
943
+ "frame_rate": 23.976023976023978,
944
+ "workflow": "outpaint_00254.png",
945
+ "fullpath": "/home/juho/ComfyUI/output/outpaint_00254-audio.mp4"
946
+ }
947
+ }
948
+ }
949
+ },
950
+ {
951
+ "id": 5023,
952
+ "type": "LTXAVTextEncoderLoader",
953
+ "pos": [
954
+ -3540.82992899398,
955
+ 3450.848773420683
956
+ ],
957
+ "size": [
958
+ 336.1466339700195,
959
+ 122
960
+ ],
961
+ "flags": {},
962
+ "order": 4,
963
+ "mode": 0,
964
+ "inputs": [],
965
+ "outputs": [
966
+ {
967
+ "name": "CLIP",
968
+ "type": "CLIP",
969
+ "links": [
970
+ 13459,
971
+ 13460
972
+ ]
973
+ }
974
+ ],
975
+ "properties": {
976
+ "Node name for S&R": "LTXAVTextEncoderLoader",
977
+ "enableTabs": false,
978
+ "tabWidth": 65,
979
+ "tabXOffset": 10,
980
+ "hasSecondTab": false,
981
+ "secondTabText": "Send Back",
982
+ "secondTabOffset": 80,
983
+ "secondTabWidth": 65,
984
+ "cnr_id": "comfy-core",
985
+ "ver": "0.14.1",
986
+ "widget_ue_connectable": {}
987
+ },
988
+ "widgets_values": [
989
+ "gemma_3_12B_it.safetensors",
990
+ "ltx-2.3-22b-dev.safetensors",
991
+ "default"
992
+ ]
993
+ },
994
+ {
995
+ "id": 3159,
996
+ "type": "LTXVImgToVideoConditionOnly",
997
+ "pos": [
998
+ -2148.391345792504,
999
+ 3352.7872806168716
1000
+ ],
1001
+ "size": [
1002
+ 313.26666870117185,
1003
+ 142.859507731343
1004
+ ],
1005
+ "flags": {},
1006
+ "order": 41,
1007
+ "mode": 0,
1008
+ "inputs": [
1009
+ {
1010
+ "name": "vae",
1011
+ "type": "VAE",
1012
+ "link": 13752
1013
+ },
1014
+ {
1015
+ "name": "image",
1016
+ "type": "IMAGE",
1017
+ "link": 9768
1018
+ },
1019
+ {
1020
+ "name": "latent",
1021
+ "type": "LATENT",
1022
+ "link": 11401
1023
+ }
1024
+ ],
1025
+ "outputs": [
1026
+ {
1027
+ "name": "latent",
1028
+ "type": "LATENT",
1029
+ "links": [
1030
+ 13402
1031
+ ]
1032
+ }
1033
+ ],
1034
+ "properties": {
1035
+ "Node name for S&R": "LTXVImgToVideoConditionOnly",
1036
+ "enableTabs": false,
1037
+ "tabWidth": 65,
1038
+ "tabXOffset": 10,
1039
+ "hasSecondTab": false,
1040
+ "secondTabText": "Send Back",
1041
+ "secondTabOffset": 80,
1042
+ "secondTabWidth": 65,
1043
+ "cnr_id": "ComfyUI-LTXVideo",
1044
+ "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
1045
+ "widget_ue_connectable": {
1046
+ "bypass": true
1047
+ }
1048
+ },
1049
+ "widgets_values": [
1050
+ 0.7,
1051
+ true
1052
+ ]
1053
+ },
1054
+ {
1055
+ "id": 5029,
1056
+ "type": "GetImageSize",
1057
+ "pos": [
1058
+ -2984.93694430132,
1059
+ 4068.1357194013026
1060
+ ],
1061
+ "size": [
1062
+ 210,
1063
+ 136
1064
+ ],
1065
+ "flags": {},
1066
+ "order": 37,
1067
+ "mode": 0,
1068
+ "inputs": [
1069
+ {
1070
+ "name": "image",
1071
+ "type": "IMAGE",
1072
+ "link": 13591
1073
+ }
1074
+ ],
1075
+ "outputs": [
1076
+ {
1077
+ "name": "width",
1078
+ "type": "INT",
1079
+ "links": [
1080
+ 13480
1081
+ ]
1082
+ },
1083
+ {
1084
+ "name": "height",
1085
+ "type": "INT",
1086
+ "links": [
1087
+ 13481
1088
+ ]
1089
+ },
1090
+ {
1091
+ "name": "batch_size",
1092
+ "type": "INT",
1093
+ "links": [
1094
+ 13484
1095
+ ]
1096
+ }
1097
+ ],
1098
+ "properties": {
1099
+ "Node name for S&R": "GetImageSize",
1100
+ "enableTabs": false,
1101
+ "tabWidth": 65,
1102
+ "tabXOffset": 10,
1103
+ "hasSecondTab": false,
1104
+ "secondTabText": "Send Back",
1105
+ "secondTabOffset": 80,
1106
+ "secondTabWidth": 65,
1107
+ "cnr_id": "comfy-core",
1108
+ "ver": "0.16.0",
1109
+ "widget_ue_connectable": {}
1110
+ },
1111
+ "widgets_values": []
1112
+ },
1113
+ {
1114
+ "id": 4832,
1115
+ "type": "RandomNoise",
1116
+ "pos": [
1117
+ -1143.138167083565,
1118
+ 3178.3936766196152
1119
+ ],
1120
+ "size": [
1121
+ 279.7478557810682,
1122
+ 82
1123
+ ],
1124
+ "flags": {},
1125
+ "order": 5,
1126
+ "mode": 0,
1127
+ "inputs": [],
1128
+ "outputs": [
1129
+ {
1130
+ "name": "NOISE",
1131
+ "type": "NOISE",
1132
+ "links": [
1133
+ 13093
1134
+ ]
1135
+ }
1136
+ ],
1137
+ "properties": {
1138
+ "Node name for S&R": "RandomNoise",
1139
+ "enableTabs": false,
1140
+ "tabWidth": 65,
1141
+ "tabXOffset": 10,
1142
+ "hasSecondTab": false,
1143
+ "secondTabText": "Send Back",
1144
+ "secondTabOffset": 80,
1145
+ "secondTabWidth": 65,
1146
+ "cnr_id": "comfy-core",
1147
+ "ver": "0.14.1",
1148
+ "widget_ue_connectable": {}
1149
+ },
1150
+ "widgets_values": [
1151
+ 667,
1152
+ "fixed"
1153
+ ]
1154
+ },
1155
+ {
1156
+ "id": 3336,
1157
+ "type": "LTXVPreprocess",
1158
+ "pos": [
1159
+ -2477.509905506401,
1160
+ 3338.3377499968506
1161
+ ],
1162
+ "size": [
1163
+ 270,
1164
+ 74
1165
+ ],
1166
+ "flags": {},
1167
+ "order": 38,
1168
+ "mode": 0,
1169
+ "inputs": [
1170
+ {
1171
+ "name": "image",
1172
+ "type": "IMAGE",
1173
+ "link": 13632
1174
+ }
1175
+ ],
1176
+ "outputs": [
1177
+ {
1178
+ "name": "output_image",
1179
+ "type": "IMAGE",
1180
+ "links": [
1181
+ 9768
1182
+ ]
1183
+ }
1184
+ ],
1185
+ "properties": {
1186
+ "Node name for S&R": "LTXVPreprocess",
1187
+ "enableTabs": false,
1188
+ "tabWidth": 65,
1189
+ "tabXOffset": 10,
1190
+ "hasSecondTab": false,
1191
+ "secondTabText": "Send Back",
1192
+ "secondTabOffset": 80,
1193
+ "secondTabWidth": 65,
1194
+ "cnr_id": "comfy-core",
1195
+ "ver": "0.3.60",
1196
+ "widget_ue_connectable": {}
1197
+ },
1198
+ "widgets_values": [
1199
+ 35
1200
+ ]
1201
+ },
1202
+ {
1203
+ "id": 5067,
1204
+ "type": "ImageConcanate",
1205
+ "pos": [
1206
+ 383.53201435845756,
1207
+ 3171.634527089074
1208
+ ],
1209
+ "size": [
1210
+ 270,
1211
+ 102
1212
+ ],
1213
+ "flags": {},
1214
+ "order": 51,
1215
+ "mode": 0,
1216
+ "inputs": [
1217
+ {
1218
+ "name": "image1",
1219
+ "type": "IMAGE,MASK",
1220
+ "link": 13626
1221
+ },
1222
+ {
1223
+ "name": "image2",
1224
+ "type": "IMAGE,MASK",
1225
+ "link": 13634
1226
+ }
1227
+ ],
1228
+ "outputs": [
1229
+ {
1230
+ "name": "output",
1231
+ "type": "IMAGE",
1232
+ "links": [
1233
+ 13569
1234
+ ]
1235
+ }
1236
+ ],
1237
+ "properties": {
1238
+ "Node name for S&R": "ImageConcanate",
1239
+ "enableTabs": false,
1240
+ "tabWidth": 65,
1241
+ "tabXOffset": 10,
1242
+ "hasSecondTab": false,
1243
+ "secondTabText": "Send Back",
1244
+ "secondTabOffset": 80,
1245
+ "secondTabWidth": 65,
1246
+ "cnr_id": "comfyui-kjnodes",
1247
+ "ver": "9086a8dfb6657937b8fc0501aad6b903244bd2a7",
1248
+ "widget_ue_connectable": {}
1249
+ },
1250
+ "widgets_values": [
1251
+ "left",
1252
+ true
1253
+ ]
1254
+ },
1255
+ {
1256
+ "id": 5085,
1257
+ "type": "ResizeImageMaskNode",
1258
+ "pos": [
1259
+ -3538.611324541327,
1260
+ 4090.3460337566403
1261
+ ],
1262
+ "size": [
1263
+ 270,
1264
+ 106
1265
+ ],
1266
+ "flags": {},
1267
+ "order": 34,
1268
+ "mode": 0,
1269
+ "inputs": [
1270
+ {
1271
+ "name": "input",
1272
+ "type": "IMAGE,MASK",
1273
+ "link": 13734
1274
+ }
1275
+ ],
1276
+ "outputs": [
1277
+ {
1278
+ "name": "resized",
1279
+ "type": "IMAGE",
1280
+ "links": [
1281
+ 13591,
1282
+ 13623,
1283
+ 13632,
1284
+ 13670
1285
+ ]
1286
+ }
1287
+ ],
1288
+ "properties": {
1289
+ "Node name for S&R": "ResizeImageMaskNode",
1290
+ "enableTabs": false,
1291
+ "tabWidth": 65,
1292
+ "tabXOffset": 10,
1293
+ "hasSecondTab": false,
1294
+ "secondTabText": "Send Back",
1295
+ "secondTabOffset": 80,
1296
+ "secondTabWidth": 65,
1297
+ "cnr_id": "comfy-core",
1298
+ "ver": "0.18.1",
1299
+ "widget_ue_connectable": {}
1300
+ },
1301
+ "widgets_values": [
1302
+ "scale to multiple",
1303
+ 32,
1304
+ "area"
1305
+ ]
1306
+ },
1307
+ {
1308
+ "id": 5136,
1309
+ "type": "LatentUpscaleModelLoader",
1310
+ "pos": [
1311
+ -4504.069642481049,
1312
+ 2925.8908062896185
1313
+ ],
1314
+ "size": [
1315
+ 400,
1316
+ 68.88020833333334
1317
+ ],
1318
+ "flags": {},
1319
+ "order": 6,
1320
+ "mode": 0,
1321
+ "inputs": [],
1322
+ "outputs": [
1323
+ {
1324
+ "name": "LATENT_UPSCALE_MODEL",
1325
+ "type": "LATENT_UPSCALE_MODEL",
1326
+ "links": [
1327
+ 13673
1328
+ ]
1329
+ }
1330
+ ],
1331
+ "properties": {
1332
+ "Node name for S&R": "LatentUpscaleModelLoader",
1333
+ "enableTabs": false,
1334
+ "tabWidth": 65,
1335
+ "tabXOffset": 10,
1336
+ "hasSecondTab": false,
1337
+ "secondTabText": "Send Back",
1338
+ "secondTabOffset": 80,
1339
+ "secondTabWidth": 65,
1340
+ "widget_ue_connectable": {},
1341
+ "cnr_id": "comfy-core",
1342
+ "ver": "0.7.0",
1343
+ "ue_properties": {
1344
+ "widget_ue_connectable": {},
1345
+ "version": "7.5.1",
1346
+ "input_ue_unconnectable": {}
1347
+ },
1348
+ "models": [
1349
+ {
1350
+ "name": "ltx-2.3-spatial-upscaler-x2-1.0.safetensors",
1351
+ "url": "https://huggingface.co/Lightricks/LTX-2.3/resolve/main/ltx-2.3-spatial-upscaler-x2-1.0.safetensors",
1352
+ "directory": "latent_upscale_models"
1353
+ }
1354
+ ]
1355
+ },
1356
+ "widgets_values": [
1357
+ "ltx-2.3-spatial-upscaler-x2-1.1.safetensors"
1358
+ ],
1359
+ "color": "#432",
1360
+ "bgcolor": "#653"
1361
+ },
1362
+ {
1363
+ "id": 5100,
1364
+ "type": "PreviewImage",
1365
+ "pos": [
1366
+ -3997.607040674327,
1367
+ 4311.74822763227
1368
+ ],
1369
+ "size": [
1370
+ 374.155008611237,
1371
+ 258
1372
+ ],
1373
+ "flags": {},
1374
+ "order": 36,
1375
+ "mode": 0,
1376
+ "inputs": [
1377
+ {
1378
+ "name": "images",
1379
+ "type": "IMAGE",
1380
+ "link": 13619
1381
+ }
1382
+ ],
1383
+ "outputs": [],
1384
+ "properties": {
1385
+ "Node name for S&R": "PreviewImage",
1386
+ "enableTabs": false,
1387
+ "tabWidth": 65,
1388
+ "tabXOffset": 10,
1389
+ "hasSecondTab": false,
1390
+ "secondTabText": "Send Back",
1391
+ "secondTabOffset": 80,
1392
+ "secondTabWidth": 65,
1393
+ "widget_ue_connectable": {}
1394
+ },
1395
+ "widgets_values": []
1396
+ },
1397
+ {
1398
+ "id": 5148,
1399
+ "type": "PreviewImage",
1400
+ "pos": [
1401
+ -4437.202118811806,
1402
+ 4404.093379093954
1403
+ ],
1404
+ "size": [
1405
+ 374.155008611237,
1406
+ 258
1407
+ ],
1408
+ "flags": {},
1409
+ "order": 29,
1410
+ "mode": 0,
1411
+ "inputs": [
1412
+ {
1413
+ "name": "images",
1414
+ "type": "IMAGE",
1415
+ "link": 13730
1416
+ }
1417
+ ],
1418
+ "outputs": [],
1419
+ "properties": {
1420
+ "Node name for S&R": "PreviewImage",
1421
+ "enableTabs": false,
1422
+ "tabWidth": 65,
1423
+ "tabXOffset": 10,
1424
+ "hasSecondTab": false,
1425
+ "secondTabText": "Send Back",
1426
+ "secondTabOffset": 80,
1427
+ "secondTabWidth": 65,
1428
+ "widget_ue_connectable": {}
1429
+ },
1430
+ "widgets_values": []
1431
+ },
1432
+ {
1433
+ "id": 5064,
1434
+ "type": "VHS_VideoInfo",
1435
+ "pos": [
1436
+ -5117.639138005172,
1437
+ 4358.5910084056095
1438
+ ],
1439
+ "size": [
1440
+ 234.931640625,
1441
+ 226
1442
+ ],
1443
+ "flags": {
1444
+ "collapsed": false
1445
+ },
1446
+ "order": 22,
1447
+ "mode": 0,
1448
+ "inputs": [
1449
+ {
1450
+ "name": "video_info",
1451
+ "type": "VHS_VIDEOINFO",
1452
+ "link": 13535
1453
+ }
1454
+ ],
1455
+ "outputs": [
1456
+ {
1457
+ "name": "source_fps🟨",
1458
+ "type": "FLOAT",
1459
+ "links": [
1460
+ 13537,
1461
+ 13538,
1462
+ 13551,
1463
+ 13562
1464
+ ]
1465
+ },
1466
+ {
1467
+ "name": "source_frame_count🟨",
1468
+ "type": "INT",
1469
+ "links": null
1470
+ },
1471
+ {
1472
+ "name": "source_duration🟨",
1473
+ "type": "FLOAT",
1474
+ "links": null
1475
+ },
1476
+ {
1477
+ "name": "source_width🟨",
1478
+ "type": "INT",
1479
+ "links": []
1480
+ },
1481
+ {
1482
+ "name": "source_height🟨",
1483
+ "type": "INT",
1484
+ "links": []
1485
+ },
1486
+ {
1487
+ "name": "loaded_fps🟦",
1488
+ "type": "FLOAT",
1489
+ "links": null
1490
+ },
1491
+ {
1492
+ "name": "loaded_frame_count🟦",
1493
+ "type": "INT",
1494
+ "links": null
1495
+ },
1496
+ {
1497
+ "name": "loaded_duration🟦",
1498
+ "type": "FLOAT",
1499
+ "links": null
1500
+ },
1501
+ {
1502
+ "name": "loaded_width🟦",
1503
+ "type": "INT",
1504
+ "links": null
1505
+ },
1506
+ {
1507
+ "name": "loaded_height🟦",
1508
+ "type": "INT",
1509
+ "links": null
1510
+ },
1511
+ {
1512
+ "name": "filename",
1513
+ "type": "STRING",
1514
+ "links": null
1515
+ }
1516
+ ],
1517
+ "properties": {
1518
+ "Node name for S&R": "VHS_VideoInfo",
1519
+ "enableTabs": false,
1520
+ "tabWidth": 65,
1521
+ "tabXOffset": 10,
1522
+ "hasSecondTab": false,
1523
+ "secondTabText": "Send Back",
1524
+ "secondTabOffset": 80,
1525
+ "secondTabWidth": 65,
1526
+ "cnr_id": "comfyui-videohelpersuite",
1527
+ "ver": "1.7.9",
1528
+ "widget_ue_connectable": {}
1529
+ },
1530
+ "widgets_values": {}
1531
+ },
1532
+ {
1533
+ "id": 5151,
1534
+ "type": "easy showAnything",
1535
+ "pos": [
1536
+ -3407.3882889923025,
1537
+ 4243.019055924068
1538
+ ],
1539
+ "size": [
1540
+ 210,
1541
+ 88
1542
+ ],
1543
+ "flags": {},
1544
+ "order": 26,
1545
+ "mode": 0,
1546
+ "inputs": [
1547
+ {
1548
+ "name": "anything",
1549
+ "shape": 7,
1550
+ "type": "*",
1551
+ "link": 13727
1552
+ }
1553
+ ],
1554
+ "outputs": [
1555
+ {
1556
+ "name": "output",
1557
+ "type": "*",
1558
+ "links": null
1559
+ }
1560
+ ],
1561
+ "properties": {
1562
+ "Node name for S&R": "easy showAnything",
1563
+ "enableTabs": false,
1564
+ "tabWidth": 65,
1565
+ "tabXOffset": 10,
1566
+ "hasSecondTab": false,
1567
+ "secondTabText": "Send Back",
1568
+ "secondTabOffset": 80,
1569
+ "secondTabWidth": 65,
1570
+ "widget_ue_connectable": {}
1571
+ },
1572
+ "widgets_values": [
1573
+ "0.13270311057567596"
1574
+ ]
1575
+ },
1576
+ {
1577
+ "id": 5149,
1578
+ "type": "easy showAnything",
1579
+ "pos": [
1580
+ -3568.2971723760584,
1581
+ 4244.08146082426
1582
+ ],
1583
+ "size": [
1584
+ 210,
1585
+ 88
1586
+ ],
1587
+ "flags": {},
1588
+ "order": 24,
1589
+ "mode": 0,
1590
+ "inputs": [
1591
+ {
1592
+ "name": "anything",
1593
+ "shape": 7,
1594
+ "type": "*",
1595
+ "link": 13725
1596
+ }
1597
+ ],
1598
+ "outputs": [
1599
+ {
1600
+ "name": "output",
1601
+ "type": "*",
1602
+ "links": null
1603
+ }
1604
+ ],
1605
+ "properties": {
1606
+ "Node name for S&R": "easy showAnything",
1607
+ "enableTabs": false,
1608
+ "tabWidth": 65,
1609
+ "tabXOffset": 10,
1610
+ "hasSecondTab": false,
1611
+ "secondTabText": "Send Back",
1612
+ "secondTabOffset": 80,
1613
+ "secondTabWidth": 65,
1614
+ "widget_ue_connectable": {}
1615
+ },
1616
+ "widgets_values": [
1617
+ "46.87553024291992"
1618
+ ]
1619
+ },
1620
+ {
1621
+ "id": 5150,
1622
+ "type": "easy showAnything",
1623
+ "pos": [
1624
+ -3595.008333259146,
1625
+ 4375.456318642537
1626
+ ],
1627
+ "size": [
1628
+ 210,
1629
+ 88
1630
+ ],
1631
+ "flags": {},
1632
+ "order": 25,
1633
+ "mode": 0,
1634
+ "inputs": [
1635
+ {
1636
+ "name": "anything",
1637
+ "shape": 7,
1638
+ "type": "*",
1639
+ "link": 13726
1640
+ }
1641
+ ],
1642
+ "outputs": [
1643
+ {
1644
+ "name": "output",
1645
+ "type": "*",
1646
+ "links": null
1647
+ }
1648
+ ],
1649
+ "properties": {
1650
+ "Node name for S&R": "easy showAnything",
1651
+ "enableTabs": false,
1652
+ "tabWidth": 65,
1653
+ "tabXOffset": 10,
1654
+ "hasSecondTab": false,
1655
+ "secondTabText": "Send Back",
1656
+ "secondTabOffset": 80,
1657
+ "secondTabWidth": 65,
1658
+ "widget_ue_connectable": {}
1659
+ },
1660
+ "widgets_values": [
1661
+ "-5.175696849822998"
1662
+ ]
1663
+ },
1664
+ {
1665
+ "id": 5152,
1666
+ "type": "easy showAnything",
1667
+ "pos": [
1668
+ -3406.451872852443,
1669
+ 4367.819318140494
1670
+ ],
1671
+ "size": [
1672
+ 210,
1673
+ 88
1674
+ ],
1675
+ "flags": {},
1676
+ "order": 27,
1677
+ "mode": 0,
1678
+ "inputs": [
1679
+ {
1680
+ "name": "anything",
1681
+ "shape": 7,
1682
+ "type": "*",
1683
+ "link": 13728
1684
+ }
1685
+ ],
1686
+ "outputs": [
1687
+ {
1688
+ "name": "output",
1689
+ "type": "*",
1690
+ "links": null
1691
+ }
1692
+ ],
1693
+ "properties": {
1694
+ "Node name for S&R": "easy showAnything",
1695
+ "enableTabs": false,
1696
+ "tabWidth": 65,
1697
+ "tabXOffset": 10,
1698
+ "hasSecondTab": false,
1699
+ "secondTabText": "Send Back",
1700
+ "secondTabOffset": 80,
1701
+ "secondTabWidth": 65,
1702
+ "widget_ue_connectable": {}
1703
+ },
1704
+ "widgets_values": [
1705
+ "2214.42333984375"
1706
+ ]
1707
+ },
1708
+ {
1709
+ "id": 5153,
1710
+ "type": "Note",
1711
+ "pos": [
1712
+ -3497.2913907182015,
1713
+ 3639.7135468201923
1714
+ ],
1715
+ "size": [
1716
+ 270.9844240133625,
1717
+ 88
1718
+ ],
1719
+ "flags": {},
1720
+ "order": 7,
1721
+ "mode": 0,
1722
+ "inputs": [],
1723
+ "outputs": [],
1724
+ "title": "Base prompt",
1725
+ "properties": {
1726
+ "widget_ue_connectable": {}
1727
+ },
1728
+ "widgets_values": [
1729
+ "360 degree equirectangular panorama, high quality, detailed"
1730
+ ],
1731
+ "color": "#432",
1732
+ "bgcolor": "#653"
1733
+ },
1734
+ {
1735
+ "id": 5099,
1736
+ "type": "GetImageRangeFromBatch",
1737
+ "pos": [
1738
+ -3930.362228554994,
1739
+ 4145.981274798436
1740
+ ],
1741
+ "size": [
1742
+ 349.7333282470703,
1743
+ 102
1744
+ ],
1745
+ "flags": {
1746
+ "collapsed": true
1747
+ },
1748
+ "order": 33,
1749
+ "mode": 0,
1750
+ "inputs": [
1751
+ {
1752
+ "name": "images",
1753
+ "shape": 7,
1754
+ "type": "IMAGE",
1755
+ "link": 13733
1756
+ },
1757
+ {
1758
+ "name": "masks",
1759
+ "shape": 7,
1760
+ "type": "MASK",
1761
+ "link": null
1762
+ }
1763
+ ],
1764
+ "outputs": [
1765
+ {
1766
+ "name": "IMAGE",
1767
+ "type": "IMAGE",
1768
+ "links": [
1769
+ 13619
1770
+ ]
1771
+ },
1772
+ {
1773
+ "name": "MASK",
1774
+ "type": "MASK",
1775
+ "links": null
1776
+ }
1777
+ ],
1778
+ "properties": {
1779
+ "Node name for S&R": "GetImageRangeFromBatch",
1780
+ "enableTabs": false,
1781
+ "tabWidth": 65,
1782
+ "tabXOffset": 10,
1783
+ "hasSecondTab": false,
1784
+ "secondTabText": "Send Back",
1785
+ "secondTabOffset": 80,
1786
+ "secondTabWidth": 65,
1787
+ "widget_ue_connectable": {}
1788
+ },
1789
+ "widgets_values": [
1790
+ 0,
1791
+ 1
1792
+ ]
1793
+ },
1794
+ {
1795
+ "id": 5012,
1796
+ "type": "LTXAddVideoICLoRAGuide",
1797
+ "pos": [
1798
+ -1792.6598834312106,
1799
+ 3291.4817917921505
1800
+ ],
1801
+ "size": [
1802
+ 316.886328125,
1803
+ 282
1804
+ ],
1805
+ "flags": {},
1806
+ "order": 42,
1807
+ "mode": 0,
1808
+ "inputs": [
1809
+ {
1810
+ "name": "positive",
1811
+ "type": "CONDITIONING",
1812
+ "link": 13403
1813
+ },
1814
+ {
1815
+ "name": "negative",
1816
+ "type": "CONDITIONING",
1817
+ "link": 13404
1818
+ },
1819
+ {
1820
+ "name": "vae",
1821
+ "type": "VAE",
1822
+ "link": 13753
1823
+ },
1824
+ {
1825
+ "name": "latent",
1826
+ "type": "LATENT",
1827
+ "link": 13402
1828
+ },
1829
+ {
1830
+ "name": "image",
1831
+ "type": "IMAGE",
1832
+ "link": 13623
1833
+ }
1834
+ ],
1835
+ "outputs": [
1836
+ {
1837
+ "name": "positive",
1838
+ "type": "CONDITIONING",
1839
+ "links": [
1840
+ 13409,
1841
+ 13413
1842
+ ]
1843
+ },
1844
+ {
1845
+ "name": "negative",
1846
+ "type": "CONDITIONING",
1847
+ "links": [
1848
+ 13410,
1849
+ 13414,
1850
+ 13742,
1851
+ 13743
1852
+ ]
1853
+ },
1854
+ {
1855
+ "name": "latent",
1856
+ "type": "LATENT",
1857
+ "links": [
1858
+ 13444
1859
+ ]
1860
+ }
1861
+ ],
1862
+ "properties": {
1863
+ "Node name for S&R": "LTXAddVideoICLoRAGuide",
1864
+ "enableTabs": false,
1865
+ "tabWidth": 65,
1866
+ "tabXOffset": 10,
1867
+ "hasSecondTab": false,
1868
+ "secondTabText": "Send Back",
1869
+ "secondTabOffset": 80,
1870
+ "secondTabWidth": 65,
1871
+ "cnr_id": "ComfyUI-LTXVideo",
1872
+ "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
1873
+ "widget_ue_connectable": {}
1874
+ },
1875
+ "widgets_values": [
1876
+ 0,
1877
+ 1,
1878
+ 1,
1879
+ "disabled",
1880
+ false,
1881
+ 256,
1882
+ 64
1883
+ ]
1884
+ },
1885
+ {
1886
+ "id": 4831,
1887
+ "type": "KSamplerSelect",
1888
+ "pos": [
1889
+ -1120.9039706803467,
1890
+ 3589.8561156456108
1891
+ ],
1892
+ "size": [
1893
+ 270,
1894
+ 74
1895
+ ],
1896
+ "flags": {},
1897
+ "order": 8,
1898
+ "mode": 0,
1899
+ "inputs": [],
1900
+ "outputs": [
1901
+ {
1902
+ "name": "SAMPLER",
1903
+ "type": "SAMPLER",
1904
+ "links": [
1905
+ 13090
1906
+ ]
1907
+ }
1908
+ ],
1909
+ "properties": {
1910
+ "Node name for S&R": "KSamplerSelect",
1911
+ "enableTabs": false,
1912
+ "tabWidth": 65,
1913
+ "tabXOffset": 10,
1914
+ "hasSecondTab": false,
1915
+ "secondTabText": "Send Back",
1916
+ "secondTabOffset": 80,
1917
+ "secondTabWidth": 65,
1918
+ "cnr_id": "comfy-core",
1919
+ "ver": "0.14.1",
1920
+ "widget_ue_connectable": {}
1921
+ },
1922
+ "widgets_values": [
1923
+ "euler_ancestral"
1924
+ ]
1925
+ },
1926
+ {
1927
+ "id": 5025,
1928
+ "type": "ManualSigmas",
1929
+ "pos": [
1930
+ -1151.008719960443,
1931
+ 3714.4409651914407
1932
+ ],
1933
+ "size": [
1934
+ 499.94633283206986,
1935
+ 67.3573576655076
1936
+ ],
1937
+ "flags": {},
1938
+ "order": 9,
1939
+ "mode": 0,
1940
+ "inputs": [],
1941
+ "outputs": [
1942
+ {
1943
+ "name": "SIGMAS",
1944
+ "type": "SIGMAS",
1945
+ "links": [
1946
+ 13463
1947
+ ]
1948
+ }
1949
+ ],
1950
+ "properties": {
1951
+ "Node name for S&R": "ManualSigmas",
1952
+ "enableTabs": false,
1953
+ "tabWidth": 65,
1954
+ "tabXOffset": 10,
1955
+ "hasSecondTab": false,
1956
+ "secondTabText": "Send Back",
1957
+ "secondTabOffset": 80,
1958
+ "secondTabWidth": 65,
1959
+ "cnr_id": "comfy-core",
1960
+ "ver": "0.14.1",
1961
+ "widget_ue_connectable": {}
1962
+ },
1963
+ "widgets_values": [
1964
+ "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0"
1965
+ ]
1966
+ },
1967
+ {
1968
+ "id": 5013,
1969
+ "type": "LTXVCropGuides",
1970
+ "pos": [
1971
+ -521.1615983926251,
1972
+ 3185.5518324333525
1973
+ ],
1974
+ "size": [
1975
+ 187.5,
1976
+ 100.83333333333334
1977
+ ],
1978
+ "flags": {},
1979
+ "order": 49,
1980
+ "mode": 0,
1981
+ "inputs": [
1982
+ {
1983
+ "name": "positive",
1984
+ "type": "CONDITIONING",
1985
+ "link": 13413
1986
+ },
1987
+ {
1988
+ "name": "negative",
1989
+ "type": "CONDITIONING",
1990
+ "link": 13414
1991
+ },
1992
+ {
1993
+ "name": "latent",
1994
+ "type": "LATENT",
1995
+ "link": 13411
1996
+ }
1997
+ ],
1998
+ "outputs": [
1999
+ {
2000
+ "name": "positive",
2001
+ "type": "CONDITIONING",
2002
+ "links": []
2003
+ },
2004
+ {
2005
+ "name": "negative",
2006
+ "type": "CONDITIONING",
2007
+ "links": []
2008
+ },
2009
+ {
2010
+ "name": "latent",
2011
+ "type": "LATENT",
2012
+ "links": [
2013
+ 13412
2014
+ ]
2015
+ }
2016
+ ],
2017
+ "properties": {
2018
+ "Node name for S&R": "LTXVCropGuides",
2019
+ "enableTabs": false,
2020
+ "tabWidth": 65,
2021
+ "tabXOffset": 10,
2022
+ "hasSecondTab": false,
2023
+ "secondTabText": "Send Back",
2024
+ "secondTabOffset": 80,
2025
+ "secondTabWidth": 65,
2026
+ "cnr_id": "comfy-core",
2027
+ "ver": "0.3.75",
2028
+ "widget_ue_connectable": {}
2029
+ },
2030
+ "widgets_values": []
2031
+ },
2032
+ {
2033
+ "id": 4845,
2034
+ "type": "LTXVSeparateAVLatent",
2035
+ "pos": [
2036
+ -524.7739100357563,
2037
+ 3327.707816754136
2038
+ ],
2039
+ "size": [
2040
+ 193.2916015625,
2041
+ 46
2042
+ ],
2043
+ "flags": {},
2044
+ "order": 48,
2045
+ "mode": 0,
2046
+ "inputs": [
2047
+ {
2048
+ "name": "av_latent",
2049
+ "type": "LATENT",
2050
+ "link": 13363
2051
+ }
2052
+ ],
2053
+ "outputs": [
2054
+ {
2055
+ "name": "video_latent",
2056
+ "type": "LATENT",
2057
+ "links": [
2058
+ 13411
2059
+ ]
2060
+ },
2061
+ {
2062
+ "name": "audio_latent",
2063
+ "type": "LATENT",
2064
+ "links": []
2065
+ }
2066
+ ],
2067
+ "properties": {
2068
+ "Node name for S&R": "LTXVSeparateAVLatent",
2069
+ "enableTabs": false,
2070
+ "tabWidth": 65,
2071
+ "tabXOffset": 10,
2072
+ "hasSecondTab": false,
2073
+ "secondTabText": "Send Back",
2074
+ "secondTabOffset": 80,
2075
+ "secondTabWidth": 65,
2076
+ "cnr_id": "comfy-core",
2077
+ "ver": "0.10.0",
2078
+ "widget_ue_connectable": {}
2079
+ },
2080
+ "widgets_values": []
2081
+ },
2082
+ {
2083
+ "id": 4829,
2084
+ "type": "SamplerCustomAdvanced",
2085
+ "pos": [
2086
+ -530.1518071196112,
2087
+ 3419.8815128770175
2088
+ ],
2089
+ "size": [
2090
+ 212.36665954589844,
2091
+ 106
2092
+ ],
2093
+ "flags": {},
2094
+ "order": 47,
2095
+ "mode": 0,
2096
+ "inputs": [
2097
+ {
2098
+ "name": "noise",
2099
+ "type": "NOISE",
2100
+ "link": 13093
2101
+ },
2102
+ {
2103
+ "name": "guider",
2104
+ "type": "GUIDER",
2105
+ "link": 13089
2106
+ },
2107
+ {
2108
+ "name": "sampler",
2109
+ "type": "SAMPLER",
2110
+ "link": 13090
2111
+ },
2112
+ {
2113
+ "name": "sigmas",
2114
+ "type": "SIGMAS",
2115
+ "link": 13463
2116
+ },
2117
+ {
2118
+ "name": "latent_image",
2119
+ "type": "LATENT",
2120
+ "link": 13302
2121
+ }
2122
+ ],
2123
+ "outputs": [
2124
+ {
2125
+ "name": "output",
2126
+ "type": "LATENT",
2127
+ "links": [
2128
+ 13363
2129
+ ]
2130
+ },
2131
+ {
2132
+ "name": "denoised_output",
2133
+ "type": "LATENT",
2134
+ "links": []
2135
+ }
2136
+ ],
2137
+ "properties": {
2138
+ "Node name for S&R": "SamplerCustomAdvanced",
2139
+ "enableTabs": false,
2140
+ "tabWidth": 65,
2141
+ "tabXOffset": 10,
2142
+ "hasSecondTab": false,
2143
+ "secondTabText": "Send Back",
2144
+ "secondTabOffset": 80,
2145
+ "secondTabWidth": 65,
2146
+ "cnr_id": "comfy-core",
2147
+ "ver": "0.14.1",
2148
+ "widget_ue_connectable": {}
2149
+ },
2150
+ "widgets_values": []
2151
+ },
2152
+ {
2153
+ "id": 4828,
2154
+ "type": "CFGGuider",
2155
+ "pos": [
2156
+ -808.5779547987179,
2157
+ 3468.1165249537685
2158
+ ],
2159
+ "size": [
2160
+ 270,
2161
+ 114
2162
+ ],
2163
+ "flags": {},
2164
+ "order": 46,
2165
+ "mode": 0,
2166
+ "inputs": [
2167
+ {
2168
+ "name": "model",
2169
+ "type": "MODEL",
2170
+ "link": 13738
2171
+ },
2172
+ {
2173
+ "name": "positive",
2174
+ "type": "CONDITIONING",
2175
+ "link": 13409
2176
+ },
2177
+ {
2178
+ "name": "negative",
2179
+ "type": "CONDITIONING",
2180
+ "link": 13410
2181
+ }
2182
+ ],
2183
+ "outputs": [
2184
+ {
2185
+ "name": "GUIDER",
2186
+ "type": "GUIDER",
2187
+ "links": [
2188
+ 13089
2189
+ ]
2190
+ }
2191
+ ],
2192
+ "properties": {
2193
+ "Node name for S&R": "CFGGuider",
2194
+ "enableTabs": false,
2195
+ "tabWidth": 65,
2196
+ "tabXOffset": 10,
2197
+ "hasSecondTab": false,
2198
+ "secondTabText": "Send Back",
2199
+ "secondTabOffset": 80,
2200
+ "secondTabWidth": 65,
2201
+ "cnr_id": "comfy-core",
2202
+ "ver": "0.14.1",
2203
+ "widget_ue_connectable": {}
2204
+ },
2205
+ "widgets_values": [
2206
+ 1
2207
+ ]
2208
+ },
2209
+ {
2210
+ "id": 5158,
2211
+ "type": "LTX2_NAG",
2212
+ "pos": [
2213
+ -1133.9464063607236,
2214
+ 3342.439620084498
2215
+ ],
2216
+ "size": [
2217
+ 271.305509971064,
2218
+ 170
2219
+ ],
2220
+ "flags": {},
2221
+ "order": 43,
2222
+ "mode": 0,
2223
+ "inputs": [
2224
+ {
2225
+ "name": "model",
2226
+ "type": "MODEL",
2227
+ "link": 13741
2228
+ },
2229
+ {
2230
+ "name": "nag_cond_video",
2231
+ "shape": 7,
2232
+ "type": "CONDITIONING",
2233
+ "link": 13742
2234
+ },
2235
+ {
2236
+ "name": "nag_cond_audio",
2237
+ "shape": 7,
2238
+ "type": "CONDITIONING",
2239
+ "link": 13743
2240
+ }
2241
+ ],
2242
+ "outputs": [
2243
+ {
2244
+ "name": "model",
2245
+ "type": "MODEL",
2246
+ "links": [
2247
+ 13737
2248
+ ]
2249
+ }
2250
+ ],
2251
+ "properties": {
2252
+ "Node name for S&R": "LTX2_NAG",
2253
+ "enableTabs": false,
2254
+ "tabWidth": 65,
2255
+ "tabXOffset": 10,
2256
+ "hasSecondTab": false,
2257
+ "secondTabText": "Send Back",
2258
+ "secondTabOffset": 80,
2259
+ "secondTabWidth": 65,
2260
+ "widget_ue_connectable": {},
2261
+ "cnr_id": "comfyui-kjnodes",
2262
+ "ver": "ff79c7332d7ea4aa85097a88fb09359f28cb487e"
2263
+ },
2264
+ "widgets_values": [
2265
+ 11,
2266
+ 0.25,
2267
+ 2.5,
2268
+ true
2269
+ ]
2270
+ },
2271
+ {
2272
+ "id": 4851,
2273
+ "type": "VAEDecodeTiled",
2274
+ "pos": [
2275
+ -156.11483449854626,
2276
+ 3347.558186777539
2277
+ ],
2278
+ "size": [
2279
+ 270,
2280
+ 150
2281
+ ],
2282
+ "flags": {},
2283
+ "order": 50,
2284
+ "mode": 0,
2285
+ "inputs": [
2286
+ {
2287
+ "name": "samples",
2288
+ "type": "LATENT",
2289
+ "link": 13412
2290
+ },
2291
+ {
2292
+ "name": "vae",
2293
+ "type": "VAE",
2294
+ "link": 13754
2295
+ }
2296
+ ],
2297
+ "outputs": [
2298
+ {
2299
+ "name": "IMAGE",
2300
+ "type": "IMAGE",
2301
+ "links": [
2302
+ 13626,
2303
+ 13627
2304
+ ]
2305
+ }
2306
+ ],
2307
+ "properties": {
2308
+ "Node name for S&R": "VAEDecodeTiled",
2309
+ "enableTabs": false,
2310
+ "tabWidth": 65,
2311
+ "tabXOffset": 10,
2312
+ "hasSecondTab": false,
2313
+ "secondTabText": "Send Back",
2314
+ "secondTabOffset": 80,
2315
+ "secondTabWidth": 65,
2316
+ "cnr_id": "comfy-core",
2317
+ "ver": "0.14.1",
2318
+ "widget_ue_connectable": {}
2319
+ },
2320
+ "widgets_values": [
2321
+ 512,
2322
+ 64,
2323
+ 512,
2324
+ 4
2325
+ ]
2326
+ },
2327
+ {
2328
+ "id": 5069,
2329
+ "type": "VHS_VideoCombine",
2330
+ "pos": [
2331
+ 762.4043124754675,
2332
+ 3271.350122798542
2333
+ ],
2334
+ "size": [
2335
+ 321.574387694955,
2336
+ 427.82117788452075
2337
+ ],
2338
+ "flags": {},
2339
+ "order": 53,
2340
+ "mode": 4,
2341
+ "inputs": [
2342
+ {
2343
+ "name": "images",
2344
+ "type": "IMAGE",
2345
+ "link": 13569
2346
+ },
2347
+ {
2348
+ "name": "audio",
2349
+ "shape": 7,
2350
+ "type": "AUDIO",
2351
+ "link": 13631
2352
+ },
2353
+ {
2354
+ "name": "meta_batch",
2355
+ "shape": 7,
2356
+ "type": "VHS_BatchManager",
2357
+ "link": null
2358
+ },
2359
+ {
2360
+ "name": "vae",
2361
+ "shape": 7,
2362
+ "type": "VAE",
2363
+ "link": null
2364
+ },
2365
+ {
2366
+ "name": "frame_rate",
2367
+ "type": "FLOAT",
2368
+ "widget": {
2369
+ "name": "frame_rate"
2370
+ },
2371
+ "link": 13551
2372
+ }
2373
+ ],
2374
+ "outputs": [
2375
+ {
2376
+ "name": "Filenames",
2377
+ "type": "VHS_FILENAMES",
2378
+ "links": null
2379
+ }
2380
+ ],
2381
+ "properties": {
2382
+ "Node name for S&R": "VHS_VideoCombine",
2383
+ "enableTabs": false,
2384
+ "tabWidth": 65,
2385
+ "tabXOffset": 10,
2386
+ "hasSecondTab": false,
2387
+ "secondTabText": "Send Back",
2388
+ "secondTabOffset": 80,
2389
+ "secondTabWidth": 65,
2390
+ "cnr_id": "comfyui-videohelpersuite",
2391
+ "ver": "1.7.9",
2392
+ "widget_ue_connectable": {
2393
+ "frame_rate": true
2394
+ }
2395
+ },
2396
+ "widgets_values": {
2397
+ "frame_rate": 8,
2398
+ "loop_count": 0,
2399
+ "filename_prefix": "outpaint",
2400
+ "format": "video/h264-mp4",
2401
+ "pix_fmt": "yuv420p",
2402
+ "crf": 19,
2403
+ "save_metadata": true,
2404
+ "trim_to_audio": false,
2405
+ "pingpong": false,
2406
+ "save_output": true,
2407
+ "videopreview": {
2408
+ "hidden": false,
2409
+ "paused": false,
2410
+ "params": {
2411
+ "filename": "outpaint_00250-audio.mp4",
2412
+ "subfolder": "",
2413
+ "type": "output",
2414
+ "format": "video/h264-mp4",
2415
+ "frame_rate": 24.084450449391998,
2416
+ "workflow": "outpaint_00250.png",
2417
+ "fullpath": "/home/juho/ComfyUI/output/outpaint_00250-audio.mp4"
2418
+ }
2419
+ }
2420
+ }
2421
+ },
2422
+ {
2423
+ "id": 5060,
2424
+ "type": "VHS_LoadVideo",
2425
+ "pos": [
2426
+ -5128.101218203265,
2427
+ 3679.9328210884596
2428
+ ],
2429
+ "size": [
2430
+ 259.43333435058594,
2431
+ 458.8070033738593
2432
+ ],
2433
+ "flags": {},
2434
+ "order": 10,
2435
+ "mode": 0,
2436
+ "inputs": [
2437
+ {
2438
+ "name": "meta_batch",
2439
+ "shape": 7,
2440
+ "type": "VHS_BatchManager",
2441
+ "link": null
2442
+ },
2443
+ {
2444
+ "name": "vae",
2445
+ "shape": 7,
2446
+ "type": "VAE",
2447
+ "link": null
2448
+ }
2449
+ ],
2450
+ "outputs": [
2451
+ {
2452
+ "name": "IMAGE",
2453
+ "type": "IMAGE",
2454
+ "links": [
2455
+ 13633,
2456
+ 13724,
2457
+ 13732
2458
+ ]
2459
+ },
2460
+ {
2461
+ "name": "frame_count",
2462
+ "type": "INT",
2463
+ "links": [
2464
+ 13543
2465
+ ]
2466
+ },
2467
+ {
2468
+ "name": "audio",
2469
+ "type": "AUDIO",
2470
+ "links": [
2471
+ 13629
2472
+ ]
2473
+ },
2474
+ {
2475
+ "name": "video_info",
2476
+ "type": "VHS_VIDEOINFO",
2477
+ "links": [
2478
+ 13535
2479
+ ]
2480
+ }
2481
+ ],
2482
+ "properties": {
2483
+ "Node name for S&R": "VHS_LoadVideo",
2484
+ "enableTabs": false,
2485
+ "tabWidth": 65,
2486
+ "tabXOffset": 10,
2487
+ "hasSecondTab": false,
2488
+ "secondTabText": "Send Back",
2489
+ "secondTabOffset": 80,
2490
+ "secondTabWidth": 65,
2491
+ "cnr_id": "comfyui-videohelpersuite",
2492
+ "ver": "1.7.9",
2493
+ "widget_ue_connectable": {}
2494
+ },
2495
+ "widgets_values": {
2496
+ "video": "yt_6z9qws7M8q8_0442.mp4",
2497
+ "force_rate": 24,
2498
+ "custom_width": 0,
2499
+ "custom_height": 0,
2500
+ "frame_load_cap": 149,
2501
+ "skip_first_frames": 20,
2502
+ "select_every_nth": 1,
2503
+ "format": "AnimateDiff",
2504
+ "videopreview": {
2505
+ "hidden": false,
2506
+ "paused": false,
2507
+ "params": {
2508
+ "filename": "yt_6z9qws7M8q8_0442.mp4",
2509
+ "type": "input",
2510
+ "format": "video/mp4",
2511
+ "force_rate": 24,
2512
+ "custom_width": 0,
2513
+ "custom_height": 0,
2514
+ "frame_load_cap": 149,
2515
+ "skip_first_frames": 20,
2516
+ "select_every_nth": 1
2517
+ }
2518
+ }
2519
+ },
2520
+ "color": "#232",
2521
+ "bgcolor": "#353"
2522
+ },
2523
+ {
2524
+ "id": 3940,
2525
+ "type": "CheckpointLoaderSimple",
2526
+ "pos": [
2527
+ -4648.711127852091,
2528
+ 3261.3436773800554
2529
+ ],
2530
+ "size": [
2531
+ 383.4002295473938,
2532
+ 108.51948797992713
2533
+ ],
2534
+ "flags": {},
2535
+ "order": 11,
2536
+ "mode": 0,
2537
+ "inputs": [],
2538
+ "outputs": [
2539
+ {
2540
+ "name": "MODEL",
2541
+ "type": "MODEL",
2542
+ "links": [
2543
+ 13217
2544
+ ]
2545
+ },
2546
+ {
2547
+ "name": "CLIP",
2548
+ "type": "CLIP",
2549
+ "links": []
2550
+ },
2551
+ {
2552
+ "name": "VAE",
2553
+ "type": "VAE",
2554
+ "links": [
2555
+ 13752,
2556
+ 13753,
2557
+ 13754
2558
+ ]
2559
+ }
2560
+ ],
2561
+ "properties": {
2562
+ "Node name for S&R": "CheckpointLoaderSimple",
2563
+ "enableTabs": false,
2564
+ "tabWidth": 65,
2565
+ "tabXOffset": 10,
2566
+ "hasSecondTab": false,
2567
+ "secondTabText": "Send Back",
2568
+ "secondTabOffset": 80,
2569
+ "secondTabWidth": 65,
2570
+ "cnr_id": "comfy-core",
2571
+ "ver": "0.3.56",
2572
+ "widget_ue_connectable": {}
2573
+ },
2574
+ "widgets_values": [
2575
+ "ltx-2.3-22b-dev.safetensors"
2576
+ ]
2577
+ },
2578
+ {
2579
+ "id": 5160,
2580
+ "type": "EquirectPerStepRoll",
2581
+ "pos": [
2582
+ -854.495634536689,
2583
+ 3272.5171854156397
2584
+ ],
2585
+ "size": [
2586
+ 311.9826881550574,
2587
+ 154
2588
+ ],
2589
+ "flags": {},
2590
+ "order": 45,
2591
+ "mode": 0,
2592
+ "inputs": [
2593
+ {
2594
+ "name": "model",
2595
+ "type": "MODEL",
2596
+ "link": 13737
2597
+ }
2598
+ ],
2599
+ "outputs": [
2600
+ {
2601
+ "name": "MODEL",
2602
+ "type": "MODEL",
2603
+ "links": [
2604
+ 13738
2605
+ ]
2606
+ }
2607
+ ],
2608
+ "properties": {
2609
+ "Node name for S&R": "EquirectPerStepRoll",
2610
+ "enableTabs": false,
2611
+ "tabWidth": 65,
2612
+ "tabXOffset": 10,
2613
+ "hasSecondTab": false,
2614
+ "secondTabText": "Send Back",
2615
+ "secondTabOffset": 80,
2616
+ "secondTabWidth": 65,
2617
+ "widget_ue_connectable": {}
2618
+ },
2619
+ "widgets_values": [
2620
+ true,
2621
+ "dual_average",
2622
+ 80085,
2623
+ "fixed",
2624
+ 4
2625
+ ]
2626
+ },
2627
+ {
2628
+ "id": 2483,
2629
+ "type": "CLIPTextEncode",
2630
+ "pos": [
2631
+ -3177.88687035676,
2632
+ 3450.2955325886337
2633
+ ],
2634
+ "size": [
2635
+ 307.2346496582031,
2636
+ 204.2556610107422
2637
+ ],
2638
+ "flags": {},
2639
+ "order": 16,
2640
+ "mode": 0,
2641
+ "inputs": [
2642
+ {
2643
+ "name": "clip",
2644
+ "type": "CLIP",
2645
+ "link": 13459
2646
+ }
2647
+ ],
2648
+ "outputs": [
2649
+ {
2650
+ "name": "CONDITIONING",
2651
+ "type": "CONDITIONING",
2652
+ "slot_index": 0,
2653
+ "links": [
2654
+ 7065
2655
+ ]
2656
+ }
2657
+ ],
2658
+ "title": "CLIP Text Encode (Positive Prompt)",
2659
+ "properties": {
2660
+ "Node name for S&R": "CLIPTextEncode",
2661
+ "enableTabs": false,
2662
+ "tabWidth": 65,
2663
+ "tabXOffset": 10,
2664
+ "hasSecondTab": false,
2665
+ "secondTabText": "Send Back",
2666
+ "secondTabOffset": 80,
2667
+ "secondTabWidth": 65,
2668
+ "cnr_id": "comfy-core",
2669
+ "ver": "0.3.28",
2670
+ "widget_ue_connectable": {}
2671
+ },
2672
+ "widgets_values": [
2673
+ "360 degree equirectangular panorama, high quality, detailed video"
2674
+ ],
2675
+ "color": "#232",
2676
+ "bgcolor": "#353"
2677
+ },
2678
+ {
2679
+ "id": 5011,
2680
+ "type": "LTXICLoRALoaderModelOnly",
2681
+ "pos": [
2682
+ -4118.380065473981,
2683
+ 3402.43253093843
2684
+ ],
2685
+ "size": [
2686
+ 499.901763247988,
2687
+ 130.8845841562129
2688
+ ],
2689
+ "flags": {},
2690
+ "order": 32,
2691
+ "mode": 0,
2692
+ "inputs": [
2693
+ {
2694
+ "name": "model",
2695
+ "type": "MODEL",
2696
+ "link": 13751
2697
+ }
2698
+ ],
2699
+ "outputs": [
2700
+ {
2701
+ "name": "model",
2702
+ "type": "MODEL",
2703
+ "links": [
2704
+ 13741
2705
+ ]
2706
+ },
2707
+ {
2708
+ "name": "latent_downscale_factor",
2709
+ "type": "FLOAT",
2710
+ "links": []
2711
+ }
2712
+ ],
2713
+ "properties": {
2714
+ "Node name for S&R": "LTXICLoRALoaderModelOnly",
2715
+ "enableTabs": false,
2716
+ "tabWidth": 65,
2717
+ "tabXOffset": 10,
2718
+ "hasSecondTab": false,
2719
+ "secondTabText": "Send Back",
2720
+ "secondTabOffset": 80,
2721
+ "secondTabWidth": 65,
2722
+ "cnr_id": "ComfyUI-LTXVideo",
2723
+ "ver": "82bd963cdeb66d023bed8c99324a307020907ef8",
2724
+ "widget_ue_connectable": {}
2725
+ },
2726
+ "widgets_values": [
2727
+ "ltx-2/360vroutpaint_v2_step_07000.safetensors",
2728
+ 1
2729
+ ]
2730
+ },
2731
+ {
2732
+ "id": 5163,
2733
+ "type": "Note",
2734
+ "pos": [
2735
+ -3665.730991774559,
2736
+ 2479.9557889044113
2737
+ ],
2738
+ "size": [
2739
+ 838.9740343479905,
2740
+ 331.0406344163216
2741
+ ],
2742
+ "flags": {},
2743
+ "order": 12,
2744
+ "mode": 0,
2745
+ "inputs": [],
2746
+ "outputs": [],
2747
+ "properties": {
2748
+ "widget_ue_connectable": {}
2749
+ },
2750
+ "widgets_values": [
2751
+ "β–“β–“β–“β–“ β–“ β–“ β–“β–“β–“β–“ β–“β–“β–“ β–“β–“β–“β–“ β–“β–“β–“β–“β–“ β–“β–“β–“ β–“ β–“ \nβ–“β–‘β–‘β–‘β–“ β–“β–‘ β–“β–‘β–“β–‘β–‘β–‘β–“ β–“ β–‘β–‘β–‘ β–“ β–‘β–‘β–‘β–‘ β–‘β–“β–‘β–‘β–‘β–“ β–‘β–‘β–“ β–“β–‘ β–“β–‘ \nβ–“β–“β–“β–“β–‘β–‘β–“β–‘β–‘ β–“β–‘β–“β–“β–“β–“β–‘β–‘β–“β–‘ β–“β–“β–‘ β–“β–“β–“β–‘β–‘β–‘ β–“β–‘β–‘β–‘β–“β–“β–“β–“β–“β–‘β–“β–‘β–‘ β–“β–‘β–‘ \nβ–“β–‘β–‘β–‘β–“ β–“β–‘β–‘ β–“β–‘β–“β–‘β–‘β–“β–‘ β–“β–‘β–‘ β–“β–‘ β–‘β–‘β–“ β–“β–‘β–‘ β–“β–‘β–‘β–‘β–“β–‘β–“β–‘β–‘ β–“β–‘β–‘ \nβ–“β–“β–“β–“β–‘β–‘ β–“β–“β–“ β–‘β–“β–‘β–‘β–‘β–“β–‘ β–“β–“β–“ β–‘β–“β–“β–“β–“β–‘β–‘ β–“β–‘β–‘ β–“β–‘β–‘β–‘β–“β–‘β–“β–“β–“β–“β–“ β–“β–“β–“β–“β–“ \n β–‘β–‘β–‘β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ β–‘ β–‘β–‘ β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ \n β–‘β–‘β–‘β–‘ β–‘β–‘β–‘ β–‘ β–‘ β–‘β–‘β–‘ β–‘β–‘β–‘β–‘ β–‘ β–‘ β–‘ β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘ \n ,----.. \n ,-.----. / / \\ ___ ___ \n ,---.\\ / \\ / . : ,--.'|_ ,-.----. ,--, ,--.'|_ \n /__./|; : \\ ,---,. . / ;. \\ ,--, | | :,' \\ / \\ ,--.'| ,---, | | :,' \n ,---.; ; || | .\\ : ,' .' |. ; / ` ; ,'_ /| : : ' : | : | | |, ,-+-. / | : : ' : \n/___/ \\ | |. : |: | ,---.' ,; | ; \\ ; | .--. | | :.;__,' / | | .\\ : ,--.--. `--'_ ,--.'|' |.;__,' / \n\\ ; \\ ' || | \\ : | | || : | ; | ','_ /| : . || | | . : |: | / \\ ,' ,'| | | ,\"' || | | \n \\ \\ \\: || : . / : : .' . | ' ' ' :| ' | | . .:__,'| : | | \\ :.--. .-. | ' | | | | / | |:__,'| : \n ; \\ ' .; | | \\ : |.' ' ; \\; / || | ' | | | ' : |__ | : . | \\__\\/: . . | | : | | | | | ' : |__ \n \\ \\ '| | ;\\ \\`---' \\ \\ ', / : | : ; ; | | | '.'|: |`-' ,\" .--.; | ' : |__ | | | |/ | | '.'| \n \\ ` ;: ' | \\.' ; : / ' : `--' \\ ; : ;: : : / / ,. | | | '.'|| | |--' ; : ; \n : \\ |: : :-' \\ \\ .' : , .-./ | , / | | : ; : .' \\; : ;| |/ | , / \n '---\" | |.' `---` `--`----' ---`-' `---'.| | , .-./| , / '---' ---`-' \n `---' `---` `--`---' ---`-' \n "
2752
+ ],
2753
+ "color": "#432",
2754
+ "bgcolor": "#653"
2755
+ },
2756
+ {
2757
+ "id": 5157,
2758
+ "type": "RectilinearToEquirect",
2759
+ "pos": [
2760
+ -4045.417352029639,
2761
+ 3820.4788134695946
2762
+ ],
2763
+ "size": [
2764
+ 375.6666625976562,
2765
+ 366
2766
+ ],
2767
+ "flags": {},
2768
+ "order": 28,
2769
+ "mode": 0,
2770
+ "inputs": [
2771
+ {
2772
+ "name": "image",
2773
+ "type": "IMAGE",
2774
+ "link": 13732
2775
+ },
2776
+ {
2777
+ "name": "focal_px",
2778
+ "shape": 7,
2779
+ "type": "FLOAT",
2780
+ "widget": {
2781
+ "name": "focal_px"
2782
+ },
2783
+ "link": 13731
2784
+ }
2785
+ ],
2786
+ "outputs": [
2787
+ {
2788
+ "name": "equirect_image",
2789
+ "type": "IMAGE",
2790
+ "links": [
2791
+ 13733,
2792
+ 13734
2793
+ ]
2794
+ },
2795
+ {
2796
+ "name": "outpaint_mask",
2797
+ "type": "MASK",
2798
+ "links": null
2799
+ }
2800
+ ],
2801
+ "properties": {
2802
+ "Node name for S&R": "RectilinearToEquirect",
2803
+ "enableTabs": false,
2804
+ "tabWidth": 65,
2805
+ "tabXOffset": 10,
2806
+ "hasSecondTab": false,
2807
+ "secondTabText": "Send Back",
2808
+ "secondTabOffset": 80,
2809
+ "secondTabWidth": 65,
2810
+ "widget_ue_connectable": {}
2811
+ },
2812
+ "widgets_values": [
2813
+ 90,
2814
+ 1,
2815
+ 2560,
2816
+ 1280,
2817
+ 0,
2818
+ 0,
2819
+ 0,
2820
+ "pincushion",
2821
+ 0,
2822
+ 0,
2823
+ true,
2824
+ 0.06,
2825
+ 0
2826
+ ]
2827
+ },
2828
+ {
2829
+ "id": 5156,
2830
+ "type": "EstimateCameraGeoCalib",
2831
+ "pos": [
2832
+ -4416.091201617431,
2833
+ 4084.1330626649506
2834
+ ],
2835
+ "size": [
2836
+ 286.43334045410154,
2837
+ 254
2838
+ ],
2839
+ "flags": {},
2840
+ "order": 20,
2841
+ "mode": 0,
2842
+ "inputs": [
2843
+ {
2844
+ "name": "image",
2845
+ "type": "IMAGE",
2846
+ "link": 13724
2847
+ }
2848
+ ],
2849
+ "outputs": [
2850
+ {
2851
+ "name": "hfov_deg",
2852
+ "type": "FLOAT",
2853
+ "links": [
2854
+ 13725
2855
+ ]
2856
+ },
2857
+ {
2858
+ "name": "vfov_deg",
2859
+ "type": "FLOAT",
2860
+ "links": null
2861
+ },
2862
+ {
2863
+ "name": "pitch_deg",
2864
+ "type": "FLOAT",
2865
+ "links": [
2866
+ 13726
2867
+ ]
2868
+ },
2869
+ {
2870
+ "name": "roll_deg",
2871
+ "type": "FLOAT",
2872
+ "links": [
2873
+ 13727
2874
+ ]
2875
+ },
2876
+ {
2877
+ "name": "focal_px",
2878
+ "type": "FLOAT",
2879
+ "links": [
2880
+ 13728,
2881
+ 13731
2882
+ ]
2883
+ },
2884
+ {
2885
+ "name": "first_frame",
2886
+ "type": "IMAGE",
2887
+ "links": [
2888
+ 13730
2889
+ ]
2890
+ }
2891
+ ],
2892
+ "properties": {
2893
+ "Node name for S&R": "EstimateCameraGeoCalib",
2894
+ "enableTabs": false,
2895
+ "tabWidth": 65,
2896
+ "tabXOffset": 10,
2897
+ "hasSecondTab": false,
2898
+ "secondTabText": "Send Back",
2899
+ "secondTabOffset": 80,
2900
+ "secondTabWidth": 65,
2901
+ "widget_ue_connectable": {}
2902
+ },
2903
+ "widgets_values": [
2904
+ 0,
2905
+ "pinhole",
2906
+ "pinhole",
2907
+ true,
2908
+ 0.06
2909
+ ]
2910
+ },
2911
+ {
2912
+ "id": 5164,
2913
+ "type": "Note",
2914
+ "pos": [
2915
+ -4052.0454574786054,
2916
+ 3642.136084370604
2917
+ ],
2918
+ "size": [
2919
+ 395.644886734241,
2920
+ 112.43997676599838
2921
+ ],
2922
+ "flags": {},
2923
+ "order": 13,
2924
+ "mode": 0,
2925
+ "inputs": [],
2926
+ "outputs": [],
2927
+ "properties": {},
2928
+ "widgets_values": [
2929
+ "When Estimate Camera node is connected, it drives the focal px / hfov deg. You can use fov_scale to override the fov by a factor you input there, in case you feel like the original video is too small a portion of the outpainted video. This will, however, cause distortion."
2930
+ ],
2931
+ "color": "#432",
2932
+ "bgcolor": "#653"
2933
+ }
2934
+ ],
2935
+ "links": [
2936
+ [
2937
+ 7065,
2938
+ 2483,
2939
+ 0,
2940
+ 1241,
2941
+ 0,
2942
+ "CONDITIONING"
2943
+ ],
2944
+ [
2945
+ 7652,
2946
+ 2612,
2947
+ 0,
2948
+ 1241,
2949
+ 1,
2950
+ "CONDITIONING"
2951
+ ],
2952
+ [
2953
+ 9768,
2954
+ 3336,
2955
+ 0,
2956
+ 3159,
2957
+ 1,
2958
+ "IMAGE"
2959
+ ],
2960
+ [
2961
+ 11401,
2962
+ 3059,
2963
+ 0,
2964
+ 3159,
2965
+ 2,
2966
+ "LATENT"
2967
+ ],
2968
+ [
2969
+ 12457,
2970
+ 3980,
2971
+ 0,
2972
+ 4528,
2973
+ 1,
2974
+ "LATENT"
2975
+ ],
2976
+ [
2977
+ 13089,
2978
+ 4828,
2979
+ 0,
2980
+ 4829,
2981
+ 1,
2982
+ "GUIDER"
2983
+ ],
2984
+ [
2985
+ 13090,
2986
+ 4831,
2987
+ 0,
2988
+ 4829,
2989
+ 2,
2990
+ "SAMPLER"
2991
+ ],
2992
+ [
2993
+ 13093,
2994
+ 4832,
2995
+ 0,
2996
+ 4829,
2997
+ 0,
2998
+ "NOISE"
2999
+ ],
3000
+ [
3001
+ 13217,
3002
+ 3940,
3003
+ 0,
3004
+ 4922,
3005
+ 0,
3006
+ "MODEL"
3007
+ ],
3008
+ [
3009
+ 13274,
3010
+ 4010,
3011
+ 0,
3012
+ 3980,
3013
+ 0,
3014
+ "VAE"
3015
+ ],
3016
+ [
3017
+ 13302,
3018
+ 4528,
3019
+ 0,
3020
+ 4829,
3021
+ 4,
3022
+ "LATENT"
3023
+ ],
3024
+ [
3025
+ 13363,
3026
+ 4829,
3027
+ 0,
3028
+ 4845,
3029
+ 0,
3030
+ "LATENT"
3031
+ ],
3032
+ [
3033
+ 13402,
3034
+ 3159,
3035
+ 0,
3036
+ 5012,
3037
+ 3,
3038
+ "LATENT"
3039
+ ],
3040
+ [
3041
+ 13403,
3042
+ 1241,
3043
+ 0,
3044
+ 5012,
3045
+ 0,
3046
+ "CONDITIONING"
3047
+ ],
3048
+ [
3049
+ 13404,
3050
+ 1241,
3051
+ 1,
3052
+ 5012,
3053
+ 1,
3054
+ "CONDITIONING"
3055
+ ],
3056
+ [
3057
+ 13409,
3058
+ 5012,
3059
+ 0,
3060
+ 4828,
3061
+ 1,
3062
+ "CONDITIONING"
3063
+ ],
3064
+ [
3065
+ 13410,
3066
+ 5012,
3067
+ 1,
3068
+ 4828,
3069
+ 2,
3070
+ "CONDITIONING"
3071
+ ],
3072
+ [
3073
+ 13411,
3074
+ 4845,
3075
+ 0,
3076
+ 5013,
3077
+ 2,
3078
+ "LATENT"
3079
+ ],
3080
+ [
3081
+ 13412,
3082
+ 5013,
3083
+ 2,
3084
+ 4851,
3085
+ 0,
3086
+ "LATENT"
3087
+ ],
3088
+ [
3089
+ 13413,
3090
+ 5012,
3091
+ 0,
3092
+ 5013,
3093
+ 0,
3094
+ "CONDITIONING"
3095
+ ],
3096
+ [
3097
+ 13414,
3098
+ 5012,
3099
+ 1,
3100
+ 5013,
3101
+ 1,
3102
+ "CONDITIONING"
3103
+ ],
3104
+ [
3105
+ 13444,
3106
+ 5012,
3107
+ 2,
3108
+ 4528,
3109
+ 0,
3110
+ "LATENT"
3111
+ ],
3112
+ [
3113
+ 13457,
3114
+ 5022,
3115
+ 0,
3116
+ 5020,
3117
+ 0,
3118
+ "STRING"
3119
+ ],
3120
+ [
3121
+ 13458,
3122
+ 5022,
3123
+ 0,
3124
+ 5021,
3125
+ 0,
3126
+ "STRING"
3127
+ ],
3128
+ [
3129
+ 13459,
3130
+ 5023,
3131
+ 0,
3132
+ 2483,
3133
+ 0,
3134
+ "CLIP"
3135
+ ],
3136
+ [
3137
+ 13460,
3138
+ 5023,
3139
+ 0,
3140
+ 2612,
3141
+ 0,
3142
+ "CLIP"
3143
+ ],
3144
+ [
3145
+ 13462,
3146
+ 5024,
3147
+ 0,
3148
+ 3980,
3149
+ 2,
3150
+ "INT"
3151
+ ],
3152
+ [
3153
+ 13463,
3154
+ 5025,
3155
+ 0,
3156
+ 4829,
3157
+ 3,
3158
+ "SIGMAS"
3159
+ ],
3160
+ [
3161
+ 13480,
3162
+ 5029,
3163
+ 0,
3164
+ 3059,
3165
+ 0,
3166
+ "INT"
3167
+ ],
3168
+ [
3169
+ 13481,
3170
+ 5029,
3171
+ 1,
3172
+ 3059,
3173
+ 1,
3174
+ "INT"
3175
+ ],
3176
+ [
3177
+ 13484,
3178
+ 5029,
3179
+ 2,
3180
+ 3059,
3181
+ 2,
3182
+ "INT"
3183
+ ],
3184
+ [
3185
+ 13535,
3186
+ 5060,
3187
+ 3,
3188
+ 5064,
3189
+ 0,
3190
+ "VHS_VIDEOINFO"
3191
+ ],
3192
+ [
3193
+ 13537,
3194
+ 5064,
3195
+ 0,
3196
+ 1241,
3197
+ 2,
3198
+ "FLOAT"
3199
+ ],
3200
+ [
3201
+ 13538,
3202
+ 5064,
3203
+ 0,
3204
+ 5024,
3205
+ 0,
3206
+ "FLOAT"
3207
+ ],
3208
+ [
3209
+ 13543,
3210
+ 5060,
3211
+ 1,
3212
+ 3980,
3213
+ 1,
3214
+ "INT"
3215
+ ],
3216
+ [
3217
+ 13551,
3218
+ 5064,
3219
+ 0,
3220
+ 5069,
3221
+ 4,
3222
+ "FLOAT"
3223
+ ],
3224
+ [
3225
+ 13562,
3226
+ 5064,
3227
+ 0,
3228
+ 5076,
3229
+ 4,
3230
+ "FLOAT"
3231
+ ],
3232
+ [
3233
+ 13569,
3234
+ 5067,
3235
+ 0,
3236
+ 5069,
3237
+ 0,
3238
+ "IMAGE"
3239
+ ],
3240
+ [
3241
+ 13591,
3242
+ 5085,
3243
+ 0,
3244
+ 5029,
3245
+ 0,
3246
+ "IMAGE"
3247
+ ],
3248
+ [
3249
+ 13619,
3250
+ 5099,
3251
+ 0,
3252
+ 5100,
3253
+ 0,
3254
+ "IMAGE"
3255
+ ],
3256
+ [
3257
+ 13623,
3258
+ 5085,
3259
+ 0,
3260
+ 5012,
3261
+ 4,
3262
+ "IMAGE"
3263
+ ],
3264
+ [
3265
+ 13626,
3266
+ 4851,
3267
+ 0,
3268
+ 5067,
3269
+ 0,
3270
+ "IMAGE"
3271
+ ],
3272
+ [
3273
+ 13627,
3274
+ 4851,
3275
+ 0,
3276
+ 5076,
3277
+ 0,
3278
+ "IMAGE"
3279
+ ],
3280
+ [
3281
+ 13629,
3282
+ 5060,
3283
+ 2,
3284
+ 5103,
3285
+ 0,
3286
+ "AUDIO"
3287
+ ],
3288
+ [
3289
+ 13630,
3290
+ 5104,
3291
+ 0,
3292
+ 5076,
3293
+ 1,
3294
+ "AUDIO"
3295
+ ],
3296
+ [
3297
+ 13631,
3298
+ 5104,
3299
+ 0,
3300
+ 5069,
3301
+ 1,
3302
+ "AUDIO"
3303
+ ],
3304
+ [
3305
+ 13632,
3306
+ 5085,
3307
+ 0,
3308
+ 3336,
3309
+ 0,
3310
+ "IMAGE"
3311
+ ],
3312
+ [
3313
+ 13633,
3314
+ 5060,
3315
+ 0,
3316
+ 5105,
3317
+ 0,
3318
+ "IMAGE"
3319
+ ],
3320
+ [
3321
+ 13634,
3322
+ 5106,
3323
+ 0,
3324
+ 5067,
3325
+ 1,
3326
+ "IMAGE"
3327
+ ],
3328
+ [
3329
+ 13670,
3330
+ 5085,
3331
+ 0,
3332
+ 5135,
3333
+ 0,
3334
+ "IMAGE"
3335
+ ],
3336
+ [
3337
+ 13673,
3338
+ 5136,
3339
+ 0,
3340
+ 5137,
3341
+ 0,
3342
+ "LATENT_UPSCALE_MODEL"
3343
+ ],
3344
+ [
3345
+ 13724,
3346
+ 5060,
3347
+ 0,
3348
+ 5156,
3349
+ 0,
3350
+ "IMAGE"
3351
+ ],
3352
+ [
3353
+ 13725,
3354
+ 5156,
3355
+ 0,
3356
+ 5149,
3357
+ 0,
3358
+ "FLOAT"
3359
+ ],
3360
+ [
3361
+ 13726,
3362
+ 5156,
3363
+ 2,
3364
+ 5150,
3365
+ 0,
3366
+ "FLOAT"
3367
+ ],
3368
+ [
3369
+ 13727,
3370
+ 5156,
3371
+ 3,
3372
+ 5151,
3373
+ 0,
3374
+ "FLOAT"
3375
+ ],
3376
+ [
3377
+ 13728,
3378
+ 5156,
3379
+ 4,
3380
+ 5152,
3381
+ 0,
3382
+ "FLOAT"
3383
+ ],
3384
+ [
3385
+ 13730,
3386
+ 5156,
3387
+ 5,
3388
+ 5148,
3389
+ 0,
3390
+ "IMAGE"
3391
+ ],
3392
+ [
3393
+ 13731,
3394
+ 5156,
3395
+ 4,
3396
+ 5157,
3397
+ 1,
3398
+ "FLOAT"
3399
+ ],
3400
+ [
3401
+ 13732,
3402
+ 5060,
3403
+ 0,
3404
+ 5157,
3405
+ 0,
3406
+ "IMAGE"
3407
+ ],
3408
+ [
3409
+ 13733,
3410
+ 5157,
3411
+ 0,
3412
+ 5099,
3413
+ 0,
3414
+ "IMAGE"
3415
+ ],
3416
+ [
3417
+ 13734,
3418
+ 5157,
3419
+ 0,
3420
+ 5085,
3421
+ 0,
3422
+ "IMAGE"
3423
+ ],
3424
+ [
3425
+ 13737,
3426
+ 5158,
3427
+ 0,
3428
+ 5160,
3429
+ 0,
3430
+ "MODEL"
3431
+ ],
3432
+ [
3433
+ 13738,
3434
+ 5160,
3435
+ 0,
3436
+ 4828,
3437
+ 0,
3438
+ "MODEL"
3439
+ ],
3440
+ [
3441
+ 13741,
3442
+ 5011,
3443
+ 0,
3444
+ 5158,
3445
+ 0,
3446
+ "MODEL"
3447
+ ],
3448
+ [
3449
+ 13742,
3450
+ 5012,
3451
+ 1,
3452
+ 5158,
3453
+ 1,
3454
+ "CONDITIONING"
3455
+ ],
3456
+ [
3457
+ 13743,
3458
+ 5012,
3459
+ 1,
3460
+ 5158,
3461
+ 2,
3462
+ "CONDITIONING"
3463
+ ],
3464
+ [
3465
+ 13751,
3466
+ 4922,
3467
+ 0,
3468
+ 5011,
3469
+ 0,
3470
+ "MODEL"
3471
+ ],
3472
+ [
3473
+ 13752,
3474
+ 3940,
3475
+ 2,
3476
+ 3159,
3477
+ 0,
3478
+ "VAE"
3479
+ ],
3480
+ [
3481
+ 13753,
3482
+ 3940,
3483
+ 2,
3484
+ 5012,
3485
+ 2,
3486
+ "VAE"
3487
+ ],
3488
+ [
3489
+ 13754,
3490
+ 3940,
3491
+ 2,
3492
+ 4851,
3493
+ 1,
3494
+ "VAE"
3495
+ ]
3496
+ ],
3497
+ "groups": [
3498
+ {
3499
+ "id": 54,
3500
+ "title": "Set prompts -> use API nodes to save on memory",
3501
+ "bounding": [
3502
+ -3550.82992899398,
3503
+ 3056.3835974138815,
3504
+ 943.4464338669131,
3505
+ 781.0969963391614
3506
+ ],
3507
+ "color": "#3f789e",
3508
+ "flags": {}
3509
+ },
3510
+ {
3511
+ "id": 106,
3512
+ "title": "Preprocess",
3513
+ "bounding": [
3514
+ -2487.509905506401,
3515
+ 3220.7140657273535,
3516
+ 1255.5179557194433,
3517
+ 510.7194227108754
3518
+ ],
3519
+ "color": "#3f789e",
3520
+ "flags": {}
3521
+ },
3522
+ {
3523
+ "id": 110,
3524
+ "title": "Load Models",
3525
+ "bounding": [
3526
+ -4665.010641467211,
3527
+ 3049.323691517239,
3528
+ 925.9215875703148,
3529
+ 535.1902634523585
3530
+ ],
3531
+ "color": "#3f789e",
3532
+ "flags": {}
3533
+ },
3534
+ {
3535
+ "id": 147,
3536
+ "title": "Generate",
3537
+ "bounding": [
3538
+ -1158.2459861239347,
3539
+ 3104.7936766196153,
3540
+ 831.467307839632,
3541
+ 689.0892581600134
3542
+ ],
3543
+ "color": "#b58b2a",
3544
+ "flags": {}
3545
+ },
3546
+ {
3547
+ "id": 150,
3548
+ "title": "Decode",
3549
+ "bounding": [
3550
+ -207.940594826083,
3551
+ 3073.689573042273,
3552
+ 869.5862752906703,
3553
+ 961.3823958575017
3554
+ ],
3555
+ "color": "#b58b2a",
3556
+ "flags": {}
3557
+ }
3558
+ ],
3559
+ "config": {},
3560
+ "extra": {
3561
+ "ds": {
3562
+ "scale": 0.4736244074476841,
3563
+ "offset": [
3564
+ 5269.485338696823,
3565
+ -2327.8426566745006
3566
+ ]
3567
+ },
3568
+ "frontendVersion": "1.45.15",
3569
+ "VHS_latentpreview": false,
3570
+ "VHS_latentpreviewrate": 0,
3571
+ "VHS_MetadataImage": true,
3572
+ "VHS_KeepIntermediate": true,
3573
+ "workspace_info": {
3574
+ "id": "elBQFQknIoLYTEwIloQuw"
3575
+ },
3576
+ "node_versions": {
3577
+ "comfy-core": "0.3.30",
3578
+ "comfyui-kjnodes": "1.0.8"
3579
+ },
3580
+ "workflowRendererVersion": "LG",
3581
+ "reroutes": [
3582
+ {
3583
+ "id": 2,
3584
+ "pos": [
3585
+ -3655.084674554804,
3586
+ 2796.681054651046
3587
+ ],
3588
+ "linkIds": [
3589
+ 13741
3590
+ ]
3591
+ },
3592
+ {
3593
+ "id": 3,
3594
+ "parentId": 2,
3595
+ "pos": [
3596
+ -1248.1141222099664,
3597
+ 2815.3414592443264
3598
+ ],
3599
+ "linkIds": [
3600
+ 13741
3601
+ ]
3602
+ },
3603
+ {
3604
+ "id": 8,
3605
+ "pos": [
3606
+ -4200.563613248326,
3607
+ 2728.9475282536505
3608
+ ],
3609
+ "linkIds": [
3610
+ 13274
3611
+ ]
3612
+ },
3613
+ {
3614
+ "id": 9,
3615
+ "parentId": 8,
3616
+ "pos": [
3617
+ -2270.607559144933,
3618
+ 2741.273141034827
3619
+ ],
3620
+ "linkIds": [
3621
+ 13274
3622
+ ]
3623
+ },
3624
+ {
3625
+ "id": 23,
3626
+ "parentId": 76,
3627
+ "pos": [
3628
+ -2449.883479176592,
3629
+ 4014.9273142484108
3630
+ ],
3631
+ "linkIds": [
3632
+ 13538,
3633
+ 13551,
3634
+ 13562
3635
+ ]
3636
+ },
3637
+ {
3638
+ "id": 24,
3639
+ "pos": [
3640
+ -2540.5242168918344,
3641
+ 3127.1895166392273
3642
+ ],
3643
+ "linkIds": [
3644
+ 13403
3645
+ ]
3646
+ },
3647
+ {
3648
+ "id": 27,
3649
+ "pos": [
3650
+ -2506.5463283391796,
3651
+ 3156.436751802816
3652
+ ],
3653
+ "linkIds": [
3654
+ 13404
3655
+ ]
3656
+ },
3657
+ {
3658
+ "id": 28,
3659
+ "pos": [
3660
+ -1391.6777419036537,
3661
+ 2992.0137009275927
3662
+ ],
3663
+ "linkIds": [
3664
+ 13409,
3665
+ 13413
3666
+ ]
3667
+ },
3668
+ {
3669
+ "id": 33,
3670
+ "pos": [
3671
+ -1175.731109638179,
3672
+ 3823.451732748579
3673
+ ],
3674
+ "linkIds": [
3675
+ 13302
3676
+ ]
3677
+ },
3678
+ {
3679
+ "id": 34,
3680
+ "parentId": 33,
3681
+ "pos": [
3682
+ -831.4976966130015,
3683
+ 3828.575407456785
3684
+ ],
3685
+ "linkIds": [
3686
+ 13302
3687
+ ]
3688
+ },
3689
+ {
3690
+ "id": 43,
3691
+ "parentId": 23,
3692
+ "pos": [
3693
+ -15.281859820937894,
3694
+ 3990.6083962556404
3695
+ ],
3696
+ "linkIds": [
3697
+ 13551,
3698
+ 13562
3699
+ ]
3700
+ },
3701
+ {
3702
+ "id": 56,
3703
+ "parentId": 24,
3704
+ "pos": [
3705
+ -1831.6648873514375,
3706
+ 3127.2817666594783
3707
+ ],
3708
+ "linkIds": [
3709
+ 13403
3710
+ ]
3711
+ },
3712
+ {
3713
+ "id": 57,
3714
+ "parentId": 27,
3715
+ "pos": [
3716
+ -1860.2895662704748,
3717
+ 3156.8052710750476
3718
+ ],
3719
+ "linkIds": [
3720
+ 13404
3721
+ ]
3722
+ },
3723
+ {
3724
+ "id": 61,
3725
+ "parentId": 28,
3726
+ "pos": [
3727
+ -1179.6722470302318,
3728
+ 2988.943303660204
3729
+ ],
3730
+ "linkIds": [
3731
+ 13409,
3732
+ 13413
3733
+ ]
3734
+ },
3735
+ {
3736
+ "id": 62,
3737
+ "pos": [
3738
+ -1377.5699183091913,
3739
+ 3034.013199553746
3740
+ ],
3741
+ "linkIds": [
3742
+ 13410,
3743
+ 13414,
3744
+ 13742,
3745
+ 13743
3746
+ ]
3747
+ },
3748
+ {
3749
+ "id": 63,
3750
+ "parentId": 62,
3751
+ "pos": [
3752
+ -1207.3564105865496,
3753
+ 3028.53726229215
3754
+ ],
3755
+ "linkIds": [
3756
+ 13410,
3757
+ 13414,
3758
+ 13742,
3759
+ 13743
3760
+ ]
3761
+ },
3762
+ {
3763
+ "id": 64,
3764
+ "parentId": 61,
3765
+ "pos": [
3766
+ -510.7586097451052,
3767
+ 3001.766675100524
3768
+ ],
3769
+ "linkIds": [
3770
+ 13413
3771
+ ]
3772
+ },
3773
+ {
3774
+ "id": 65,
3775
+ "parentId": 63,
3776
+ "pos": [
3777
+ -531.5385188396078,
3778
+ 3038.970247608091
3779
+ ],
3780
+ "linkIds": [
3781
+ 13414
3782
+ ]
3783
+ },
3784
+ {
3785
+ "id": 68,
3786
+ "pos": [
3787
+ -3383.1395249412585,
3788
+ 4022.9449214600463
3789
+ ],
3790
+ "linkIds": [
3791
+ 13537,
3792
+ 13538,
3793
+ 13551,
3794
+ 13562
3795
+ ]
3796
+ },
3797
+ {
3798
+ "id": 76,
3799
+ "parentId": 68,
3800
+ "pos": [
3801
+ -2774.4564066374546,
3802
+ 4014.3343389744045
3803
+ ],
3804
+ "linkIds": [
3805
+ 13537,
3806
+ 13538,
3807
+ 13551,
3808
+ 13562
3809
+ ]
3810
+ }
3811
+ ],
3812
+ "ue_links": [],
3813
+ "links_added_by_ue": [],
3814
+ "linkExtensions": [
3815
+ {
3816
+ "id": 13274,
3817
+ "parentId": 9
3818
+ },
3819
+ {
3820
+ "id": 13302,
3821
+ "parentId": 34
3822
+ },
3823
+ {
3824
+ "id": 13403,
3825
+ "parentId": 56
3826
+ },
3827
+ {
3828
+ "id": 13404,
3829
+ "parentId": 57
3830
+ },
3831
+ {
3832
+ "id": 13409,
3833
+ "parentId": 61
3834
+ },
3835
+ {
3836
+ "id": 13410,
3837
+ "parentId": 63
3838
+ },
3839
+ {
3840
+ "id": 13413,
3841
+ "parentId": 64
3842
+ },
3843
+ {
3844
+ "id": 13414,
3845
+ "parentId": 65
3846
+ },
3847
+ {
3848
+ "id": 13537,
3849
+ "parentId": 76
3850
+ },
3851
+ {
3852
+ "id": 13538,
3853
+ "parentId": 23
3854
+ },
3855
+ {
3856
+ "id": 13551,
3857
+ "parentId": 43
3858
+ },
3859
+ {
3860
+ "id": 13562,
3861
+ "parentId": 43
3862
+ },
3863
+ {
3864
+ "id": 13741,
3865
+ "parentId": 3
3866
+ },
3867
+ {
3868
+ "id": 13742,
3869
+ "parentId": 63
3870
+ },
3871
+ {
3872
+ "id": 13743,
3873
+ "parentId": 63
3874
+ }
3875
+ ]
3876
+ },
3877
+ "version": 0.4
3878
+ }
Equirect-Outpaint.json β†’ _old/Equirect-Outpaint.json RENAMED
File without changes
_old/README.md ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-4.0
3
+ base_model: Lightricks/LTX-2.3-22B
4
+ library_name: diffusers
5
+ ---
6
+
7
+ # LTX-2.3 β€” 360Β° Equirectangular Outpainting IC-LoRA Β· **v0.1**
8
+
9
+ **Proof-of-concept** IC-LoRA adapter for [Lightricks/LTX-2.3-22B](https://huggingface.co/Lightricks) that
10
+ outpaints standard widescreen footage into a full **360Β° equirectangular** projection for immersive/VR viewing.
11
+
12
+ > This is an **early v0.1 release**. Expect rough edges, limited subject variety, and inconsistent
13
+ > coherence outside the sweet spot described below. A new version with a much larger, more diverse
14
+ > dataset is planned.
15
+
16
+ ---
17
+
18
+ ## Samples
19
+
20
+ Three clips from the model. `sweep` is a rendered 2D camera pan through the
21
+ 360Β° output β€” the easiest way to judge results without a VR player.
22
+ `fl-eq` shows the flat source and the equirect output side-by-side.
23
+
24
+ ### Clip 1 β€” sweep
25
+
26
+ <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip1-sweep.mp4"></video>
27
+
28
+ Side-by-side (flat input Β· equirect output):
29
+
30
+ <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip1-fl-eq.mp4"></video>
31
+
32
+ ### Clip 2 β€” sweep
33
+
34
+ <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip2-sweep.mp4"></video>
35
+
36
+ Side-by-side:
37
+
38
+ <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip2-fl-eq.mp4"></video>
39
+
40
+ ### Clip 3 β€” sweep
41
+
42
+ <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip3-sweep.mp4"></video>
43
+
44
+ Side-by-side:
45
+
46
+ <video controls loop muted playsinline src="https://huggingface.co/TheBurgstall/VR-360-Outpaint-LTX2.3-IC-LoRA/resolve/main/samples/clip3-fl-eq.mp4"></video>
47
+
48
+ Raw equirectangular outputs (load in a 360Β° player for VR):
49
+ [clip1-eq.mp4](./samples/clip1-eq.mp4) Β·
50
+ [clip2-eq.mp4](./samples/clip2-eq.mp4) Β·
51
+ [clip3-eq.mp4](./samples/clip3-eq.mp4)
52
+
53
+ ## What it does
54
+
55
+ - **Input**: a flat 2.39:1 (cinemascope) clip and a matching equirectangular *reference* (the input
56
+ projected into the equirect canvas, with the unknown regions left masked/black)
57
+ - **Output**: the model fills in the masked regions, turning the flat shot into a plausible
58
+ 360Β° equirectangular video that can be viewed in a VR/360 player
59
+
60
+ Intended for transforming existing live-action or cinematic footage into immersive content.
61
+
62
+ ## Sweet spot (v0.1)
63
+
64
+ The v0.1 model was tuned toward a deliberately narrow domain to validate the approach:
65
+
66
+ - **Semi-static establishing city / urban scenes** (no heavy camera motion)
67
+ - **~100Β° horizontal field of view** in the source clip
68
+ - **2.39:1 source aspect** (standard cinemascope)
69
+
70
+ It will **generalize poorly** outside these conditions β€” fast action, extreme close-ups, heavily
71
+ stylised imagery, or very different FOVs are not reliably handled yet.
72
+
73
+ ## Files
74
+
75
+ | File | What it is |
76
+ |---|---|
77
+ | `ltx-2.3-22b-ic-lora-360-equirect-poc-step3500.safetensors` | The LoRA weights (final step 3500 checkpoint, ~1.3 GB) |
78
+ | `Equirect-Outpaint.json` | Reference ComfyUI workflow wired end-to-end for this LoRA |
79
+ | `samples/clipN-fl-eq.mp4` | Flat input + equirect output side-by-side (3626Γ—960) |
80
+ | `samples/clipN-eq.mp4` | Raw equirectangular output (1920Γ—960) β€” load in a 360Β° player |
81
+ | `samples/clipN-sweep.mp4` | 2D camera sweep through the 360Β° output (1920Γ—1080) for quick preview without a VR player |
82
+
83
+ Three sample clips (`clip1`, `clip2`, `clip3`) are included under `samples/`.
84
+
85
+ ## Usage
86
+
87
+ Load on top of `ltx-2.3-22b-dev.safetensors` with the LTX-2 `video_to_video` pipeline and pass:
88
+
89
+ - **Trigger word**: `equirectangular` (works without any trigger word or prompt too, but with a descriptive prompt you can direct the content of outpainted part)
90
+ - **Reference video**: your source clip projected into the equirect canvas with unknown regions masked
91
+ - **Resolution**: 1920x960, 121 frames, 24 fps
92
+
93
+ Only tested in ComfyUI with the workflow available in this repo. Please note that the workflow's padding node crops your input footage to 2.39:1, you can select whether it's cut from center, top or bottom. Other aspect ratios will work poorly in this early version.
94
+
95
+ ### Companion tooling
96
+
97
+ A small ComfyUI helper pack β€” **[ComfyUI-EquirectProjector](https://github.com/Burgstall-labs/ComfyUI-EquirectProjector)** β€”
98
+ was written alongside this LoRA to produce the masked equirectangular reference from a flat clip.
99
+ Pair it with the standard LTX-2 video-to-video nodes. The `Equirect-Outpaint.json` workflow in this
100
+ repo shows the exact wiring.
101
+
102
+ ## Training (v0.1)
103
+
104
+ | | |
105
+ |--|--|
106
+ | Base model | LTX-2.3-22B (dev) |
107
+ | Strategy | IC-LoRA (`video_to_video`) |
108
+ | Rank / alpha | 128 / 128 |
109
+ | Target modules | video self+cross attention + FFN |
110
+ | Resolution | 1024Γ—512, 41 frames @ 24 fps |
111
+ | Optimizer | Prodigy (D-Adaptation), lr=1.0, constant |
112
+ | Precision | bf16, gradient checkpointing |
113
+ | Steps | 3500 |
114
+ | Hardware | 1Γ— NVIDIA H100 80GB |
115
+ | Dataset | Small curated POC set (not released) β€” semi-static city establishing clips |
116
+
117
+ The final **step 3500** checkpoint is shipped here. Intermediate checkpoints were used for
118
+ validation during training but aren't included in this release.
119
+
120
+ ## What's next
121
+
122
+ Next version is planned on a significantly larger and more diverse dataset covering:
123
+
124
+ - Broader subject matter (interiors, landscapes, crowds, vehicles, …)
125
+ - Varied input FOVs and focal lengths
126
+ - A wider range of camera motion β€” not just static establishing shots
127
+ - Better handling of the polar regions (top/bottom caps of the equirect canvas)
128
+
129
+ ## Limitations
130
+
131
+ - Does not model the top/bottom caps of the sphere well β€” expect stretching or repetition
132
+ - Struggles with busy motion and fast cuts
133
+ - Prompt adherence is weak; conditioning is dominated by the reference video
134
+ - Outputs are not a substitute for natively captured 360 footage β€” this is a creative
135
+ re-projection, not a reconstruction
136
+
137
+ ## Acknowledgements
138
+
139
+ - First part of the training done at ADOS Paris event in collaboration with Cseti (https://huggingface.co/Cseti), NebSH (https://huggingface.co/Nebsh) and S4f3ty_Marc (https://huggingface.co/s4f3tymarc). Good times, thank you guys.
140
+ - Advice from oumoumad (https://huggingface.co/oumoumad) in IC-LoRA training altogether has been very valuable to me. The workflow included in this release is modified from oumoumad's IC-LoRA workflow.
141
+
142
+ ## License
143
+
144
+ CC BY-NC 4.0
ltx-2.3-22b-ic-lora-360-equirect-poc-step3500.safetensors β†’ _old/ltx-2.3-22b-ic-lora-360-equirect-poc-step3500.safetensors RENAMED
File without changes
{samples β†’ _old/samples}/clip1-eq.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip1-fl-eq.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip1-sweep.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip2-eq.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip2-fl-eq.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip2-sweep.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip3-eq.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip3-fl-eq.mp4 RENAMED
File without changes
{samples β†’ _old/samples}/clip3-sweep.mp4 RENAMED
File without changes
jungle.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cee9445fceb341e7a9bbc14f9385c5923be9c70fe788a534ae20706878eb5b75
3
+ size 5147867
junglePAN.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef8a60d01da8c057d29a8476a5fe60e7da339a5ebb084cad6fe8b23300393fe7
3
+ size 11477435
jungleVR.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:746704bd86315a37ac42b3aff44503a0af6a6b63c9148207197cfeef626863c8
3
+ size 18459877
office.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:82d4d1e153704f176cd2fb884072c91e7ec196ec422656d5631f9178e78fb484
3
+ size 2126008
officeVR.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27ad8aa75a7d764c278c90510160c0b4fbe1410e0addc87d56d8ca20100532b2
3
+ size 2411050
officepan.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a04d45130a5dc4a858b804c885291b0dfdd2c8155b6711b716afc96c5295bef6
3
+ size 2450190
skate.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:db22ded37a0d7a28319fcd53d6b73e74fa93a2b40f77c7dd6b643ff387738a47
3
+ size 2972228
skateVR.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:86b3cb2cd404f632d7b57b1bc901390ac1c99f29c54374797f3fd120a424e55f
3
+ size 6371538
skatepan.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ddfdc0f7b37d87f9cf5fd9a1433a23d7d42641b0a126177fc0e6048882897c5
3
+ size 5125234