Add custom nodes, Civitai loras (LFS), and vast.ai setup script
Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled

Includes 30 custom nodes committed directly, 7 Civitai-exclusive
loras stored via Git LFS, and a setup script that installs all
dependencies and downloads HuggingFace-hosted models on vast.ai.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-09 00:55:26 +00:00
parent 2b70ab9ad0
commit f09734b0ee
2274 changed files with 748556 additions and 3 deletions

View File

@@ -0,0 +1,579 @@
{
"last_node_id": 102,
"last_link_id": 239,
"nodes": [
{
"id": 83,
"type": "LoadImage",
"pos": [
-6,
40
],
"size": {
"0": 315,
"1": 314
},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
196
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"truck.jpg",
"image"
]
},
{
"id": 66,
"type": "DownloadAndLoadSAM2Model",
"pos": [
-34,
-171
],
"size": {
"0": 351.7801513671875,
"1": 130
},
"flags": {},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "sam2_model",
"type": "SAM2MODEL",
"links": [
236
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "DownloadAndLoadSAM2Model"
},
"widgets_values": [
"sam2_hiera_small.safetensors",
"single_image",
"cuda",
"bf16"
]
},
{
"id": 84,
"type": "ImageAndMaskPreview",
"pos": [
958,
-293
],
"size": {
"0": 667.9199829101562,
"1": 541.2733154296875
},
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 192
},
{
"name": "mask",
"type": "MASK",
"link": 238,
"slot_index": 1
}
],
"outputs": [
{
"name": "composite",
"type": "IMAGE",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "ImageAndMaskPreview"
},
"widgets_values": [
1,
"255, 0, 0",
false
]
},
{
"id": 72,
"type": "ImageResizeKJ",
"pos": [
353,
127
],
"size": {
"0": 315,
"1": 242
},
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 196
},
{
"name": "get_image_size",
"type": "IMAGE",
"link": null
},
{
"name": "width_input",
"type": "INT",
"link": null,
"widget": {
"name": "width_input"
}
},
{
"name": "height_input",
"type": "INT",
"link": null,
"widget": {
"name": "height_input"
}
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
192,
210,
226,
237
],
"shape": 3,
"slot_index": 0
},
{
"name": "width",
"type": "INT",
"links": null,
"shape": 3
},
{
"name": "height",
"type": "INT",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "ImageResizeKJ"
},
"widgets_values": [
768,
512,
"nearest-exact",
false,
2,
0,
0
]
},
{
"id": 99,
"type": "PreviewImage",
"pos": [
1044,
-744
],
"size": {
"0": 530.9268798828125,
"1": 363.34893798828125
},
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 226
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 90,
"type": "PreviewImage",
"pos": [
422,
-800
],
"size": {
"0": 568.406494140625,
"1": 384.9489440917969
},
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 200
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 93,
"type": "Florence2toCoordinates",
"pos": [
399,
-314
],
"size": {
"0": 210,
"1": 78
},
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "data",
"type": "JSON",
"link": 204
}
],
"outputs": [
{
"name": "coordinates",
"type": "STRING",
"links": [],
"shape": 3,
"slot_index": 0
},
{
"name": "bboxes",
"type": "BBOX",
"links": [
239
],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "Florence2toCoordinates"
},
"widgets_values": [
""
]
},
{
"id": 87,
"type": "Florence2Run",
"pos": [
-85,
-796
],
"size": {
"0": 400,
"1": 304
},
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 210,
"slot_index": 0
},
{
"name": "florence2_model",
"type": "FL2MODEL",
"link": 197,
"slot_index": 1
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
200
],
"shape": 3,
"slot_index": 0
},
{
"name": "mask",
"type": "MASK",
"links": null,
"shape": 3
},
{
"name": "caption",
"type": "STRING",
"links": null,
"shape": 3,
"slot_index": 2
},
{
"name": "data",
"type": "JSON",
"links": [
204
],
"shape": 3,
"slot_index": 3
}
],
"properties": {
"Node name for S&R": "Florence2Run"
},
"widgets_values": [
"wheel",
"caption_to_phrase_grounding",
true,
false,
1024,
3,
true,
""
]
},
{
"id": 102,
"type": "Sam2Segmentation",
"pos": [
440,
-120
],
"size": [
314.5386123916544,
162
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "sam2_model",
"type": "SAM2MODEL",
"link": 236
},
{
"name": "image",
"type": "IMAGE",
"link": 237
},
{
"name": "bboxes",
"type": "BBOX",
"link": 239
},
{
"name": "coordinates_positive",
"type": "STRING",
"link": null,
"widget": {
"name": "coordinates_positive"
}
},
{
"name": "coordinates_negative",
"type": "STRING",
"link": null,
"widget": {
"name": "coordinates_negative"
}
}
],
"outputs": [
{
"name": "mask",
"type": "MASK",
"links": [
238
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "Sam2Segmentation"
},
"widgets_values": [
true,
"",
"",
true
]
},
{
"id": 88,
"type": "DownloadAndLoadFlorence2Model",
"pos": [
-470,
-777
],
"size": {
"0": 315,
"1": 106
},
"flags": {},
"order": 2,
"mode": 0,
"outputs": [
{
"name": "florence2_model",
"type": "FL2MODEL",
"links": [
197
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "DownloadAndLoadFlorence2Model"
},
"widgets_values": [
"microsoft/Florence-2-base",
"fp16",
"sdpa"
]
}
],
"links": [
[
192,
72,
0,
84,
0,
"IMAGE"
],
[
196,
83,
0,
72,
0,
"IMAGE"
],
[
197,
88,
0,
87,
1,
"FL2MODEL"
],
[
200,
87,
0,
90,
0,
"IMAGE"
],
[
204,
87,
3,
93,
0,
"JSON"
],
[
210,
72,
0,
87,
0,
"IMAGE"
],
[
226,
72,
0,
99,
0,
"IMAGE"
],
[
236,
66,
0,
102,
0,
"SAM2MODEL"
],
[
237,
72,
0,
102,
1,
"IMAGE"
],
[
238,
102,
0,
84,
1,
"MASK"
],
[
239,
93,
1,
102,
2,
"BBOX"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.7627768444385467,
"offset": [
564.3268832902941,
896.4031145502903
]
}
},
"version": 0.4
}

View File

@@ -0,0 +1,766 @@
{
"last_node_id": 30,
"last_link_id": 58,
"nodes": [
{
"id": 2,
"type": "DownloadAndLoadSAM2Model",
"pos": [
119,
52
],
"size": {
"0": 315,
"1": 130
},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "sam2_model",
"type": "SAM2MODEL",
"links": [
9
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "DownloadAndLoadSAM2Model"
},
"widgets_values": [
"sam2_hiera_base_plus.safetensors",
"single_image",
"cuda",
"bf16"
]
},
{
"id": 13,
"type": "DownloadAndLoadFlorence2Model",
"pos": [
105,
-299
],
"size": {
"0": 315,
"1": 106
},
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"name": "lora",
"type": "PEFTLORA",
"link": null
}
],
"outputs": [
{
"name": "florence2_model",
"type": "FL2MODEL",
"links": [
23
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "DownloadAndLoadFlorence2Model"
},
"widgets_values": [
"microsoft/Florence-2-large",
"fp16",
"sdpa"
]
},
{
"id": 26,
"type": "MaskToImage",
"pos": [
1161,
280
],
"size": {
"0": 210,
"1": 26
},
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "mask",
"type": "MASK",
"link": 43
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
44
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "MaskToImage"
}
},
{
"id": 25,
"type": "ImageCompositeMasked",
"pos": [
1124,
364
],
"size": {
"0": 315,
"1": 146
},
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "destination",
"type": "IMAGE",
"link": 55,
"slot_index": 0
},
{
"name": "source",
"type": "IMAGE",
"link": 44
},
{
"name": "mask",
"type": "MASK",
"link": 45
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
56
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ImageCompositeMasked"
},
"widgets_values": [
0,
0,
false
]
},
{
"id": 29,
"type": "VHS_VideoCombine",
"pos": [
1486,
58
],
"size": [
772.7946166992188,
859.3206163194444
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 56,
"slot_index": 0
},
{
"name": "audio",
"type": "VHS_AUDIO",
"link": null
},
{
"name": "meta_batch",
"type": "VHS_BatchManager",
"link": null
},
{
"name": "vae",
"type": "VAE",
"link": null
}
],
"outputs": [
{
"name": "Filenames",
"type": "VHS_FILENAMES",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "VHS_VideoCombine"
},
"widgets_values": {
"frame_rate": 3,
"loop_count": 0,
"filename_prefix": "AnimateDiff",
"format": "video/h264-mp4",
"pix_fmt": "yuv420p",
"crf": 19,
"save_metadata": true,
"pingpong": false,
"save_output": false,
"videopreview": {
"hidden": false,
"paused": false,
"params": {
"filename": "AnimateDiff_00002.mp4",
"subfolder": "",
"type": "temp",
"format": "video/h264-mp4",
"frame_rate": 3
}
}
}
},
{
"id": 11,
"type": "VHS_LoadVideo",
"pos": [
76,
274
],
"size": [
235.1999969482422,
429.0311089409722
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "meta_batch",
"type": "VHS_BatchManager",
"link": null
},
{
"name": "vae",
"type": "VAE",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
28,
37
],
"shape": 3,
"slot_index": 0
},
{
"name": "frame_count",
"type": "INT",
"links": null,
"shape": 3
},
{
"name": "audio",
"type": "VHS_AUDIO",
"links": null,
"shape": 3
},
{
"name": "video_info",
"type": "VHS_VIDEOINFO",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "VHS_LoadVideo"
},
"widgets_values": {
"video": "katana_02.mp4",
"force_rate": 0,
"force_size": "Disabled",
"custom_width": 512,
"custom_height": 512,
"frame_load_cap": 16,
"skip_first_frames": 0,
"select_every_nth": 5,
"choose video to upload": "image",
"videopreview": {
"hidden": false,
"paused": false,
"params": {
"frame_load_cap": 16,
"skip_first_frames": 0,
"force_rate": 0,
"filename": "katana_02.mp4",
"type": "input",
"format": "video/mp4",
"select_every_nth": 5
}
}
}
},
{
"id": 21,
"type": "GetImageSizeAndCount",
"pos": [
393,
282
],
"size": {
"0": 210,
"1": 86
},
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 37
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
58
],
"shape": 3,
"slot_index": 0
},
{
"name": "1440 width",
"type": "INT",
"links": null,
"shape": 3
},
{
"name": "1024 height",
"type": "INT",
"links": null,
"shape": 3
},
{
"name": "16 count",
"type": "INT",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "GetImageSizeAndCount"
}
},
{
"id": 7,
"type": "Sam2Segmentation",
"pos": [
744,
227
],
"size": {
"0": 314.3733825683594,
"1": 190.31338500976562
},
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "sam2_model",
"type": "SAM2MODEL",
"link": 9
},
{
"name": "image",
"type": "IMAGE",
"link": 58
},
{
"name": "bboxes",
"type": "BBOX",
"link": 54
},
{
"name": "mask",
"type": "MASK",
"link": null,
"slot_index": 3
},
{
"name": "coordinates_positive",
"type": "STRING",
"link": null,
"widget": {
"name": "coordinates_positive"
}
},
{
"name": "coordinates_negative",
"type": "STRING",
"link": null,
"widget": {
"name": "coordinates_negative"
}
}
],
"outputs": [
{
"name": "mask",
"type": "MASK",
"links": [
43,
45
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "Sam2Segmentation"
},
"widgets_values": [
true,
"",
"",
true
]
},
{
"id": 30,
"type": "VHS_VideoCombine",
"pos": [
1093,
-868
],
"size": [
772.7946166992188,
859.3206163194444
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 57,
"slot_index": 0
},
{
"name": "audio",
"type": "VHS_AUDIO",
"link": null
},
{
"name": "meta_batch",
"type": "VHS_BatchManager",
"link": null
},
{
"name": "vae",
"type": "VAE",
"link": null
}
],
"outputs": [
{
"name": "Filenames",
"type": "VHS_FILENAMES",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "VHS_VideoCombine"
},
"widgets_values": {
"frame_rate": 3,
"loop_count": 0,
"filename_prefix": "AnimateDiff",
"format": "video/h264-mp4",
"pix_fmt": "yuv420p",
"crf": 19,
"save_metadata": true,
"pingpong": false,
"save_output": false,
"videopreview": {
"hidden": false,
"paused": false,
"params": {
"filename": "AnimateDiff_00001.mp4",
"subfolder": "",
"type": "temp",
"format": "video/h264-mp4",
"frame_rate": 3
}
}
}
},
{
"id": 16,
"type": "Florence2toCoordinates",
"pos": [
942,
16
],
"size": {
"0": 315,
"1": 102
},
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "data",
"type": "JSON",
"link": 26
}
],
"outputs": [
{
"name": "center_coordinates",
"type": "STRING",
"links": [],
"shape": 3,
"slot_index": 0
},
{
"name": "bboxes",
"type": "BBOX",
"links": [
54
],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "Florence2toCoordinates"
},
"widgets_values": [
"0",
true
]
},
{
"id": 12,
"type": "Florence2Run",
"pos": [
506,
-316
],
"size": {
"0": 400,
"1": 352
},
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 28,
"slot_index": 0
},
{
"name": "florence2_model",
"type": "FL2MODEL",
"link": 23,
"slot_index": 1
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
55,
57
],
"shape": 3,
"slot_index": 0
},
{
"name": "mask",
"type": "MASK",
"links": null,
"shape": 3
},
{
"name": "caption",
"type": "STRING",
"links": null,
"shape": 3
},
{
"name": "data",
"type": "JSON",
"links": [
26
],
"shape": 3,
"slot_index": 3
}
],
"properties": {
"Node name for S&R": "Florence2Run"
},
"widgets_values": [
"sword",
"caption_to_phrase_grounding",
true,
false,
1024,
3,
true,
"",
3228786869,
"fixed"
]
}
],
"links": [
[
9,
2,
0,
7,
0,
"SAM2MODEL"
],
[
23,
13,
0,
12,
1,
"FL2MODEL"
],
[
26,
12,
3,
16,
0,
"JSON"
],
[
28,
11,
0,
12,
0,
"IMAGE"
],
[
37,
11,
0,
21,
0,
"IMAGE"
],
[
43,
7,
0,
26,
0,
"MASK"
],
[
44,
26,
0,
25,
1,
"IMAGE"
],
[
45,
7,
0,
25,
2,
"MASK"
],
[
54,
16,
1,
7,
2,
"BBOX"
],
[
55,
12,
0,
25,
0,
"IMAGE"
],
[
56,
25,
0,
29,
0,
"IMAGE"
],
[
57,
12,
0,
30,
0,
"IMAGE"
],
[
58,
21,
0,
7,
1,
"IMAGE"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.620921323059155,
"offset": [
253.5867105157341,
622.007731477587
]
}
},
"version": 0.4
}

File diff suppressed because one or more lines are too long