diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/.gitattributes b/Checkpoints/Diffusers/MrForExample/Unique3D/.gitattributes similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/.gitattributes rename to Checkpoints/Diffusers/MrForExample/Unique3D/.gitattributes diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/README.md b/Checkpoints/Diffusers/MrForExample/Unique3D/README.md similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/README.md rename to Checkpoints/Diffusers/MrForExample/Unique3D/README.md diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/feature_extractor/preprocessor_config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/feature_extractor/preprocessor_config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/feature_extractor/preprocessor_config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/feature_extractor/preprocessor_config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/image_encoder/config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/image_encoder/config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/image_encoder/config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/image_encoder/config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/model_index.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/model_index.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/model_index.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/model_index.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/scheduler/scheduler_config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/scheduler/scheduler_config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/scheduler/scheduler_config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/scheduler/scheduler_config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/unet/config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/unet/config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/unet/config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/unet/config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/vae/config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/vae/config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2mvimage/vae/config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2mvimage/vae/config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/feature_extractor/preprocessor_config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/feature_extractor/preprocessor_config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/feature_extractor/preprocessor_config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/feature_extractor/preprocessor_config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/image_encoder/config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/image_encoder/config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/image_encoder/config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/image_encoder/config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/model_index.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/model_index.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/model_index.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/model_index.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/scheduler/scheduler_config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/scheduler/scheduler_config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/scheduler/scheduler_config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/scheduler/scheduler_config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/unet/config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/unet/config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/unet/config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/unet/config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/vae/config.json b/Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/vae/config.json similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/image2normal/vae/config.json rename to Checkpoints/Diffusers/MrForExample/Unique3D/image2normal/vae/config.json diff --git a/Checkpoints/Diffusers/Wuvin/Unique3D/v1-inference.yaml b/Checkpoints/Diffusers/MrForExample/Unique3D/v1-inference.yaml similarity index 100% rename from Checkpoints/Diffusers/Wuvin/Unique3D/v1-inference.yaml rename to Checkpoints/Diffusers/MrForExample/Unique3D/v1-inference.yaml diff --git a/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json b/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json index 59f6824..1cc7e3c 100644 --- a/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json +++ b/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json @@ -110,7 +110,7 @@ "1": 58 }, "flags": {}, - "order": 4, + "order": 5, "mode": 0, "inputs": [ { @@ -179,41 +179,6 @@ "Node name for S&R": "ImageUpscaleWithModel" } }, - { - "id": 312, - "type": "[Comfy3D] Load Diffusers Pipeline", - "pos": [ - -603.9739611458458, - 650.576119046973 - ], - "size": { - "0": 430.03009033203125, - "1": 130 - }, - "flags": {}, - "order": 0, - "mode": 0, - "outputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "links": [ - 625 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" - }, - "widgets_values": [ - "Unique3DImageCustomPipeline", - "Wuvin/Unique3D/image2normal", - "", - false - ] - }, { "id": 274, "type": "[Comfy3D] Fast Normal Maps To Mesh", @@ -744,7 +709,7 @@ "1": 58 }, "flags": {}, - "order": 6, + "order": 7, "mode": 0, "inputs": [ { @@ -1445,10 +1410,10 @@ ], "size": { "0": 294, - "1": 26 + "1": 58 }, "flags": {}, - "order": 1, + "order": 0, "mode": 0, "outputs": [ { @@ -1463,7 +1428,10 @@ ], "properties": { "Node name for S&R": "[Comfy3D] Load CharacterGen MVDiffusion Model" - } + }, + "widgets_values": [ + false + ] }, { "id": 355, @@ -1477,7 +1445,7 @@ "1": 26 }, "flags": {}, - "order": 5, + "order": 4, "mode": 0, "inputs": [ { @@ -1513,7 +1481,7 @@ "1": 334 }, "flags": {}, - "order": 7, + "order": 6, "mode": 0, "inputs": [ { @@ -1577,7 +1545,7 @@ "1": 314 }, "flags": {}, - "order": 2, + "order": 1, "mode": 0, "outputs": [ { @@ -1955,7 +1923,7 @@ "1": 58 }, "flags": {}, - "order": 3, + "order": 2, "mode": 0, "outputs": [ { @@ -1976,6 +1944,42 @@ "widgets_values": [ "RealESRGAN_x4plus.pth" ] + }, + { + "id": 312, + "type": "[Comfy3D] Load Diffusers Pipeline", + "pos": [ + -603.9739611458458, + 650.576119046973 + ], + "size": { + "0": 430.03009033203125, + "1": 154 + }, + "flags": {}, + "order": 3, + "mode": 0, + "outputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "links": [ + 625 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" + }, + "widgets_values": [ + "Unique3DImageCustomPipeline", + "MrForExample/Unique3D", + "", + false, + "image2normal" + ] } ], "links": [ @@ -2490,10 +2494,10 @@ "config": {}, "extra": { "ds": { - "scale": 0.8954302432552712, + "scale": 0.2357947691000094, "offset": [ - 76.66431332791694, - 560.5353932591099 + 3275.770179529804, + 1135.6625769262102 ] } }, diff --git a/_Example_Workflows/Unique3D/0_MV_RGB.json b/_Example_Workflows/Unique3D/0_MV_RGB.json index 996c9a8..070a29e 100644 --- a/_Example_Workflows/Unique3D/0_MV_RGB.json +++ b/_Example_Workflows/Unique3D/0_MV_RGB.json @@ -2,45 +2,6 @@ "last_node_id": 27, "last_link_id": 40, "nodes": [ - { - "id": 17, - "type": "[Comfy3D] Load Unique3D Custom UNet", - "pos": [ - 534, - 161 - ], - "size": { - "0": 315, - "1": 58 - }, - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "link": 21 - } - ], - "outputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "links": [ - 22 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Load Unique3D Custom UNet" - }, - "widgets_values": [ - "image2mvimage" - ] - }, { "id": 3, "type": "[Comfy3D] Set Diffusers Pipeline Scheduler", @@ -53,7 +14,7 @@ "1": 58 }, "flags": {}, - "order": 4, + "order": 5, "mode": 0, "inputs": [ { @@ -92,7 +53,7 @@ "1": 222 }, "flags": {}, - "order": 6, + "order": 7, "mode": 0, "inputs": [ { @@ -136,83 +97,6 @@ true ] }, - { - "id": 1, - "type": "[Comfy3D] Load Diffusers Pipeline", - "pos": [ - 56, - 161 - ], - "size": { - "0": 430.03009033203125, - "1": 130 - }, - "flags": {}, - "order": 0, - "mode": 0, - "outputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "links": [ - 21 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" - }, - "widgets_values": [ - "Unique3DImage2MVCustomPipeline", - "Wuvin/Unique3D/image2mvimage", - "", - false - ] - }, - { - "id": 6, - "type": "LoadImage", - "pos": [ - 375, - 343 - ], - "size": { - "0": 315, - "1": 314 - }, - "flags": {}, - "order": 1, - "mode": 0, - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 35 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "MASK", - "type": "MASK", - "links": [ - 32 - ], - "shape": 3, - "slot_index": 1 - } - ], - "properties": { - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "PriestCat.png", - "image" - ] - }, { "id": 25, "type": "InvertMask", @@ -225,7 +109,7 @@ "1": 26 }, "flags": {}, - "order": 3, + "order": 2, "mode": 0, "inputs": [ { @@ -261,7 +145,7 @@ "1": 270 }, "flags": {}, - "order": 8, + "order": 9, "mode": 0, "inputs": [ { @@ -275,53 +159,6 @@ "Unique3D\\RGB\\rgb" ] }, - { - "id": 26, - "type": "[Comfy3D] Image Add Pure Color Background", - "pos": [ - 975, - 338 - ], - "size": { - "0": 315, - "1": 126 - }, - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 35 - }, - { - "name": "masks", - "type": "MASK", - "link": 36 - } - ], - "outputs": [ - { - "name": "images", - "type": "IMAGE", - "links": [ - 38, - 39 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Image Add Pure Color Background" - }, - "widgets_values": [ - 255, - 255, - 255 - ] - }, { "id": 27, "type": "ImageScale", @@ -334,7 +171,7 @@ "1": 130 }, "flags": {}, - "order": 7, + "order": 6, "mode": 0, "inputs": [ { @@ -376,7 +213,7 @@ "1": 270 }, "flags": {}, - "order": 9, + "order": 8, "mode": 0, "inputs": [ { @@ -389,6 +226,170 @@ "widgets_values": [ "Unique3D\\Normal_Inputs\\refined_sr_rgb_0" ] + }, + { + "id": 6, + "type": "LoadImage", + "pos": [ + 373, + 362 + ], + "size": { + "0": 315, + "1": 314 + }, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 35 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": [ + 32 + ], + "shape": 3, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "PriestCat.png", + "image" + ] + }, + { + "id": 26, + "type": "[Comfy3D] Image Add Pure Color Background", + "pos": [ + 975, + 360 + ], + "size": { + "0": 315, + "1": 126 + }, + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 35 + }, + { + "name": "masks", + "type": "MASK", + "link": 36 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [ + 38, + 39 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Image Add Pure Color Background" + }, + "widgets_values": [ + 255, + 255, + 255 + ] + }, + { + "id": 17, + "type": "[Comfy3D] Load Unique3D Custom UNet", + "pos": [ + 534, + 161 + ], + "size": { + "0": 315, + "1": 58 + }, + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "link": 21 + } + ], + "outputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "links": [ + 22 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Load Unique3D Custom UNet" + }, + "widgets_values": [ + "image2mvimage" + ] + }, + { + "id": 1, + "type": "[Comfy3D] Load Diffusers Pipeline", + "pos": [ + 56, + 161 + ], + "size": { + "0": 430.03009033203125, + "1": 154 + }, + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "links": [ + 21 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" + }, + "widgets_values": [ + "Unique3DImage2MVCustomPipeline", + "MrForExample/Unique3D", + "", + false, + "image2mvimage" + ] } ], "links": [ @@ -477,10 +478,10 @@ "config": {}, "extra": { "ds": { - "scale": 0.8264462809917354, + "scale": 0.6209213230591552, "offset": [ - -813.4684892955395, - -48.223766450597736 + 193.67481403456898, + 357.14355130207736 ] } }, diff --git a/_Example_Workflows/Unique3D/2_MV_Normal.json b/_Example_Workflows/Unique3D/2_MV_Normal.json index ad565d7..62e8247 100644 --- a/_Example_Workflows/Unique3D/2_MV_Normal.json +++ b/_Example_Workflows/Unique3D/2_MV_Normal.json @@ -41,41 +41,6 @@ "image2normal" ] }, - { - "id": 1, - "type": "[Comfy3D] Load Diffusers Pipeline", - "pos": [ - 56, - 161 - ], - "size": { - "0": 430.03009033203125, - "1": 130 - }, - "flags": {}, - "order": 0, - "mode": 0, - "outputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "links": [ - 21 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" - }, - "widgets_values": [ - "Unique3DImageCustomPipeline", - "Wuvin/Unique3D/image2normal", - "", - false - ] - }, { "id": 3, "type": "[Comfy3D] Set Diffusers Pipeline Scheduler", @@ -115,67 +80,6 @@ "EulerAncestralDiscreteScheduler" ] }, - { - "id": 20, - "type": "VHS_LoadImagesPath", - "pos": [ - 736, - 322 - ], - "size": [ - 226.8000030517578, - 194 - ], - "flags": {}, - "order": 1, - "mode": 0, - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 32 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "MASK", - "type": "MASK", - "links": [], - "shape": 3, - "slot_index": 1 - }, - { - "name": "INT", - "type": "INT", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VHS_LoadImagesPath" - }, - "widgets_values": { - "directory": "C:\\Users\\reall\\Softwares\\ComfyUI_windows_portable\\ComfyUI\\output\\Unique3D\\Normal_Inputs", - "image_load_cap": 0, - "skip_first_images": 0, - "select_every_nth": 1, - "choose folder to upload": "image", - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "frame_load_cap": 0, - "skip_first_images": 0, - "filename": "C:\\Users\\reall\\Softwares\\ComfyUI_windows_portable\\ComfyUI\\output\\Unique3D\\Normal_Inputs", - "type": "path", - "format": "folder", - "select_every_nth": 1 - } - } - } - }, { "id": 23, "type": "ImageScale", @@ -434,7 +338,7 @@ "1": 58 }, "flags": {}, - "order": 2, + "order": 0, "mode": 0, "outputs": [ { @@ -453,6 +357,103 @@ "widgets_values": [ "RealESRGAN_x4plus.pth" ] + }, + { + "id": 1, + "type": "[Comfy3D] Load Diffusers Pipeline", + "pos": [ + 56, + 161 + ], + "size": { + "0": 430.03009033203125, + "1": 154 + }, + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "links": [ + 21 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" + }, + "widgets_values": [ + "Unique3DImageCustomPipeline", + "MrForExample/Unique3D", + "", + false, + "image2normal" + ] + }, + { + "id": 20, + "type": "VHS_LoadImagesPath", + "pos": [ + 736, + 322 + ], + "size": [ + 226.8000030517578, + 194 + ], + "flags": {}, + "order": 2, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 32 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": [], + "shape": 3, + "slot_index": 1 + }, + { + "name": "INT", + "type": "INT", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "VHS_LoadImagesPath" + }, + "widgets_values": { + "directory": "C:\\Users\\reall\\Softwares\\ComfyUI_windows_portable\\ComfyUI\\output\\Unique3D\\Normal_Inputs", + "image_load_cap": 0, + "skip_first_images": 0, + "select_every_nth": 1, + "choose folder to upload": "image", + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "frame_load_cap": 0, + "skip_first_images": 0, + "filename": "C:\\Users\\reall\\Softwares\\ComfyUI_windows_portable\\ComfyUI\\output\\Unique3D\\Normal_Inputs", + "type": "path", + "format": "folder", + "select_every_nth": 1 + } + } + } } ], "links": [ @@ -549,10 +550,10 @@ "config": {}, "extra": { "ds": { - "scale": 1, + "scale": 0.620921323059155, "offset": [ - -966.7186084475675, - 202.58910814821127 + -709.3437170943722, + 353.7099277437518 ] } }, diff --git a/_Example_Workflows/Unique3D/Unique3D_All_Stages.json b/_Example_Workflows/Unique3D/Unique3D_All_Stages.json index 12b3151..9d0fce9 100644 --- a/_Example_Workflows/Unique3D/Unique3D_All_Stages.json +++ b/_Example_Workflows/Unique3D/Unique3D_All_Stages.json @@ -1151,41 +1151,6 @@ null ] }, - { - "id": 302, - "type": "[Comfy3D] Load Diffusers Pipeline", - "pos": [ - -1380, - -1190 - ], - "size": { - "0": 430.03009033203125, - "1": 130 - }, - "flags": {}, - "order": 6, - "mode": 0, - "outputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "links": [ - 615 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" - }, - "widgets_values": [ - "Unique3DImage2MVCustomPipeline", - "Wuvin/Unique3D/image2mvimage", - "", - false - ] - }, { "id": 303, "type": "[Comfy3D] Set Diffusers Pipeline Scheduler", @@ -1198,7 +1163,7 @@ "1": 58 }, "flags": {}, - "order": 20, + "order": 24, "mode": 0, "inputs": [ { @@ -1237,7 +1202,7 @@ "1": 58 }, "flags": {}, - "order": 13, + "order": 17, "mode": 0, "inputs": [ { @@ -1276,7 +1241,7 @@ "1": 126 }, "flags": {}, - "order": 24, + "order": 22, "mode": 0, "inputs": [ { @@ -1354,7 +1319,7 @@ "1": 58 }, "flags": {}, - "order": 21, + "order": 25, "mode": 0, "inputs": [ { @@ -1393,7 +1358,7 @@ "1": 58 }, "flags": {}, - "order": 14, + "order": 18, "mode": 0, "inputs": [ { @@ -1570,41 +1535,6 @@ false ] }, - { - "id": 312, - "type": "[Comfy3D] Load Diffusers Pipeline", - "pos": [ - -603.9739611458458, - 650.576119046973 - ], - "size": { - "0": 430.03009033203125, - "1": 130 - }, - "flags": {}, - "order": 7, - "mode": 0, - "outputs": [ - { - "name": "pipe", - "type": "DIFFUSERS_PIPE", - "links": [ - 625 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" - }, - "widgets_values": [ - "Unique3DImageCustomPipeline", - "Wuvin/Unique3D/image2normal", - "", - false - ] - }, { "id": 307, "type": "[Comfy3D] Unique3D MVDiffusion Model", @@ -1767,7 +1697,7 @@ "1": 26 }, "flags": {}, - "order": 17, + "order": 15, "mode": 0, "inputs": [ { @@ -2181,7 +2111,7 @@ "1": 130 }, "flags": {}, - "order": 15, + "order": 13, "mode": 0, "inputs": [ { @@ -2318,7 +2248,7 @@ "1": 26 }, "flags": {}, - "order": 23, + "order": 21, "mode": 0, "inputs": [ { @@ -2354,7 +2284,7 @@ "1": 130 }, "flags": {}, - "order": 22, + "order": 20, "mode": 0, "inputs": [ { @@ -2412,7 +2342,7 @@ "1": 314.0000305175781 }, "flags": {}, - "order": 8, + "order": 6, "mode": 0, "outputs": [ { @@ -2455,7 +2385,7 @@ 26 ], "flags": {}, - "order": 16, + "order": 14, "mode": 0, "inputs": [ { @@ -2889,7 +2819,7 @@ 26 ], "flags": {}, - "order": 18, + "order": 16, "mode": 0, "inputs": [ { @@ -2925,7 +2855,7 @@ 26 ], "flags": {}, - "order": 25, + "order": 23, "mode": 0, "inputs": [ { @@ -3071,7 +3001,7 @@ "1": 58 }, "flags": {}, - "order": 9, + "order": 7, "mode": 0, "outputs": [ { @@ -3092,6 +3022,78 @@ "widgets_values": [ "RealESRGAN_x4plus.pth" ] + }, + { + "id": 302, + "type": "[Comfy3D] Load Diffusers Pipeline", + "pos": [ + -1380, + -1190 + ], + "size": { + "0": 430.03009033203125, + "1": 154 + }, + "flags": {}, + "order": 8, + "mode": 0, + "outputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "links": [ + 615 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" + }, + "widgets_values": [ + "Unique3DImage2MVCustomPipeline", + "MrForExample/Unique3D", + "", + false, + "image2mvimage" + ] + }, + { + "id": 312, + "type": "[Comfy3D] Load Diffusers Pipeline", + "pos": [ + -603.9739611458458, + 650.576119046973 + ], + "size": { + "0": 430.03009033203125, + "1": 154 + }, + "flags": {}, + "order": 9, + "mode": 0, + "outputs": [ + { + "name": "pipe", + "type": "DIFFUSERS_PIPE", + "links": [ + 625 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "[Comfy3D] Load Diffusers Pipeline" + }, + "widgets_values": [ + "Unique3DImageCustomPipeline", + "MrForExample/Unique3D", + "", + false, + "image2normal" + ] } ], "links": [ @@ -3982,10 +3984,10 @@ "config": {}, "extra": { "ds": { - "scale": 1.3109994191500893, + "scale": 0.6727499949326112, "offset": [ - -5296.28634484957, - 1239.1566467650287 + -2947.1491377521043, + -1183.618622374594 ] } }, diff --git a/nodes.py b/nodes.py index aedb9ba..22c060d 100644 --- a/nodes.py +++ b/nodes.py @@ -1390,8 +1390,11 @@ class Load_Diffusers_Pipeline: "diffusers_pipeline_name": (list(DIFFUSERS_PIPE_DICT.keys()),), "repo_id": ("STRING", {"default": "ashawkey/imagedream-ipmv-diffusers", "multiline": False}), "custom_pipeline": ("STRING", {"default": "", "multiline": False}), - "download_from_remote": ("BOOLEAN", {"default": True}), + "force_download": ("BOOLEAN", {"default": False}), }, + "optional": { + "checkpoint_sub_dir": ("STRING", {"default": "", "multiline": False}), + } } RETURN_TYPES = ( @@ -1403,12 +1406,11 @@ class Load_Diffusers_Pipeline: FUNCTION = "load_diffusers_pipe" CATEGORY = "Comfy3D/Import|Export" - def load_diffusers_pipe(self, diffusers_pipeline_name, repo_id, custom_pipeline, download_from_remote): + def load_diffusers_pipe(self, diffusers_pipeline_name, repo_id, custom_pipeline, force_download, checkpoint_sub_dir=""): # resume download pretrained checkpoint - ckpt_path = os.path.join(CKPT_DIFFUSERS_PATH, repo_id) - if download_from_remote: - snapshot_download(repo_id=repo_id, local_dir=ckpt_path, repo_type="model", ignore_patterns=["*.json", "*.py"]) + ckpt_download_dir = os.path.join(CKPT_DIFFUSERS_PATH, repo_id) + snapshot_download(repo_id=repo_id, local_dir=ckpt_download_dir, force_download=force_download, repo_type="model", ignore_patterns=["*.json", "*.py"]) diffusers_pipeline_class = DIFFUSERS_PIPE_DICT[diffusers_pipeline_name] @@ -1416,6 +1418,7 @@ class Load_Diffusers_Pipeline: if not custom_pipeline: custom_pipeline = None + ckpt_path = ckpt_download_dir if not checkpoint_sub_dir else os.path.join(ckpt_download_dir, checkpoint_sub_dir) pipe = diffusers_pipeline_class.from_pretrained( ckpt_path, torch_dtype=WEIGHT_DTYPE, @@ -2575,12 +2578,12 @@ class FlexiCubes_MVS: return (mesh, ) class Load_Unique3D_Custom_UNet: - checkpoints_dir = "Wuvin/Unique3D" default_repo_id = "MrForExample/Unique3D" config_root_dir = "Unique3D_configs" @classmethod def INPUT_TYPES(cls): + cls.checkpoints_dir_abs = os.path.join(CKPT_DIFFUSERS_PATH, cls.default_repo_id) cls.config_path_abs = os.path.join(CONFIG_ROOT_PATH, cls.config_root_dir) return { "required": { @@ -2604,11 +2607,8 @@ class Load_Unique3D_Custom_UNet: from Unique3D.custum_3d_diffusion.custum_modules.unifield_processor import AttnConfig, ConfigurableUNet2DConditionModel from Unique3D.custum_3d_diffusion.trainings.utils import load_config # Download models and configs - ckpt_path = os.path.join(CKPT_DIFFUSERS_PATH, self.checkpoints_dir) - snapshot_download(repo_id=self.default_repo_id, local_dir=ckpt_path, repo_type="model", ignore_patterns=["*.json", "*.py"]) - cfg_path = os.path.join(self.config_path_abs, config_name + ".yaml") - checkpoint_dir_path = os.path.join(ckpt_path, config_name) + checkpoint_dir_path = os.path.join(self.checkpoints_dir_abs, config_name) checkpoint_path = os.path.join(checkpoint_dir_path, "unet_state_dict.pth") cfg: ExprimentConfig = load_config(ExprimentConfig, cfg_path) @@ -2855,6 +2855,7 @@ class Load_CharacterGen_MVDiffusion_Model: cls.config_root_path_abs = os.path.join(CONFIG_ROOT_PATH, cls.config_path) return { "required": { + "force_download": ("BOOLEAN", {"default": False}), }, } @@ -2867,9 +2868,9 @@ class Load_CharacterGen_MVDiffusion_Model: FUNCTION = "load_model" CATEGORY = "Comfy3D/Import|Export" - def load_model(self): + def load_model(self, force_download): # Download checkpoints - snapshot_download(repo_id=self.default_repo_id, local_dir=self.checkpoints_dir_abs, repo_type="model", ignore_patterns=["*.json", "*.py"]) + snapshot_download(repo_id=self.default_repo_id, local_dir=self.checkpoints_dir_abs, force_download=force_download, repo_type="model", ignore_patterns=["*.json", "*.py"]) # Load pre-trained models character_mv_gen_pipe = Inference2D_API(checkpoint_root_path=self.checkpoints_dir_abs, **OmegaConf.load(self.config_root_path_abs)) return (character_mv_gen_pipe,) @@ -2953,6 +2954,7 @@ class Load_CharacterGen_Reconstruction_Model: cls.config_root_path_abs = os.path.join(CONFIG_ROOT_PATH, cls.config_path) return { "required": { + "force_download": ("BOOLEAN", {"default": False}), }, } @@ -2965,9 +2967,9 @@ class Load_CharacterGen_Reconstruction_Model: FUNCTION = "load_model" CATEGORY = "Comfy3D/Import|Export" - def load_model(self): + def load_model(self, force_download): # Download checkpoints - snapshot_download(repo_id=self.default_repo_id, local_dir=self.checkpoints_dir_abs, repo_type="model", ignore_patterns=["*.json", "*.py"]) + snapshot_download(repo_id=self.default_repo_id, local_dir=self.checkpoints_dir_abs, force_download=force_download, repo_type="model", ignore_patterns=["*.json", "*.py"]) # Load pre-trained models character_lrm_pipe = Inference3D_API(checkpoint_root_path=self.checkpoints_dir_abs, cfg=load_config_cg3d(self.config_root_path_abs)) return (character_lrm_pipe,)