diff --git a/README.md b/README.md index 46be03a..c6e6b16 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ComfyUI custom node for the paper: **Chord: Chain of Rendering Decomposition for 1. Download and install ComfyUI. If you are new to ComfyUI, refer to the original [repository](https://github.com/comfyanonymous/ComfyUI) to get started. **Make sure you have the latest version.** -2. Download the pretrained model from [Hugging Face](https://huggingface.co/Ubisoft/ubisoft-laforge-chord) and place the file **chord_v1.ckpt** in the folder **./ComfyUI/models/checkpoints**. +2. Download the pretrained model **chord_v1.safetensors** from [Hugging Face](https://huggingface.co/Ubisoft/ubisoft-laforge-chord) and place it in the folder **./ComfyUI/models/checkpoints**. 3. Install the custom nodes from the [ComfyUI-Manager](https://github.com/Comfy-Org/ComfyUI-Manager) or manually clone this repository in the custom nodes folder, **with the argument `--recursive`**: diff --git a/example_workflows/chord_flux_t2i_image_to_material.jpg b/example_workflows/chord_flux_t2i_image_to_material.jpg new file mode 100644 index 0000000..26ec2b2 Binary files /dev/null and b/example_workflows/chord_flux_t2i_image_to_material.jpg differ diff --git a/examples/chord_flux_t2i_image_to_material.json b/example_workflows/chord_flux_t2i_image_to_material.json similarity index 92% rename from examples/chord_flux_t2i_image_to_material.json rename to example_workflows/chord_flux_t2i_image_to_material.json index 04d67d0..6f84a39 100644 --- a/examples/chord_flux_t2i_image_to_material.json +++ b/example_workflows/chord_flux_t2i_image_to_material.json @@ -1,8 +1,8 @@ { "id": "457fd89f-72f5-488c-98e0-a9ff28375de8", "revision": 0, - "last_node_id": 20, - "last_link_id": 23, + "last_node_id": 21, + "last_link_id": 31, "nodes": [ { "id": 2, @@ -70,7 +70,7 @@ { "name": "images", "type": "IMAGE", - "link": 12 + "link": 28 } ], "outputs": [], @@ -101,7 +101,7 @@ { "name": "images", "type": "IMAGE", - "link": 13 + "link": 31 } ], "outputs": [], @@ -132,7 +132,7 @@ { "name": "normal", "type": "IMAGE", - "link": 14 + "link": 29 } ], "outputs": [ @@ -200,7 +200,7 @@ { "name": "images", "type": "IMAGE", - "link": 16 + "link": 27 } ], "outputs": [], @@ -231,7 +231,7 @@ { "name": "images", "type": "IMAGE", - "link": 17 + "link": 30 } ], "outputs": [], @@ -276,7 +276,7 @@ "type": "IMAGE", "links": [ 11, - 19 + 26 ] } ], @@ -318,105 +318,6 @@ "texture_image" ] }, - { - "id": 19, - "type": "ChordMaterialEstimation", - "pos": [ - 2760, - -160 - ], - "size": [ - 209.51328125, - 86 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 18 - }, - { - "name": "image", - "type": "IMAGE", - "link": 19 - } - ], - "outputs": [ - { - "name": "basecolor", - "type": "IMAGE", - "links": [ - 16 - ] - }, - { - "name": "normal", - "type": "IMAGE", - "links": [ - 12, - 14 - ] - }, - { - "name": "roughness", - "type": "IMAGE", - "links": [ - 17 - ] - }, - { - "name": "metalness", - "type": "IMAGE", - "links": [ - 13 - ] - } - ], - "properties": { - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45", - "Node name for S&R": "ChordMaterialEstimation" - }, - "widgets_values": [] - }, - { - "id": 12, - "type": "ChordLoadModel", - "pos": [ - 2430, - -220 - ], - "size": [ - 270, - 58 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 18 - ] - } - ], - "properties": { - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45", - "Node name for S&R": "ChordLoadModel" - }, - "widgets_values": [ - [ - "chord_v1.ckpt" - ] - ] - }, { "id": 5, "type": "ConditioningZeroOut", @@ -526,7 +427,7 @@ 82 ], "flags": {}, - "order": 2, + "order": 1, "mode": 0, "inputs": [], "outputs": [ @@ -546,7 +447,7 @@ { "name": "Rayflux.v1.0_fp8.safetensors", "url": "https://huggingface.co/MutantSparrow/Ray/resolve/main/FLUX/Rayflux.v1.0_fp8.safetensors?download=true", - "directory": "checkpoints" + "directory": "diffusion_models" } ] }, @@ -567,7 +468,7 @@ 58 ], "flags": {}, - "order": 3, + "order": 2, "mode": 0, "inputs": [], "outputs": [ @@ -607,7 +508,7 @@ 106 ], "flags": {}, - "order": 4, + "order": 3, "mode": 0, "inputs": [], "outputs": [ @@ -642,7 +543,7 @@ 180 ], "flags": {}, - "order": 5, + "order": 4, "mode": 0, "inputs": [], "outputs": [ @@ -721,6 +622,110 @@ "", 1.5 ] + }, + { + "id": 21, + "type": "ChordMaterialEstimation", + "pos": [ + 2760, + -160 + ], + "size": [ + 209.51328125, + 86 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "chord_model", + "type": "chord_model", + "link": 25 + }, + { + "name": "image", + "type": "IMAGE", + "link": 26 + } + ], + "outputs": [ + { + "name": "basecolor", + "type": "IMAGE", + "links": [ + 27 + ] + }, + { + "name": "normal", + "type": "IMAGE", + "links": [ + 28, + 29 + ] + }, + { + "name": "roughness", + "type": "IMAGE", + "links": [ + 30 + ] + }, + { + "name": "metalness", + "type": "IMAGE", + "links": [ + 31 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "53296391fe2cf7f3f370a5c6536dcb2177221257", + "Node name for S&R": "ChordMaterialEstimation" + }, + "widgets_values": [] + }, + { + "id": 12, + "type": "ChordLoadModel", + "pos": [ + 2430, + -220 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "chord_model", + "type": "chord_model", + "links": [ + 25 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45", + "Node name for S&R": "ChordLoadModel", + "models": [ + { + "name": "chord_v1.safetensors", + "url": "https://huggingface.co/Ubisoft/ubisoft-laforge-chord/resolve/main/chord_v1.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "chord_v1.safetensors" + ] } ], "links": [ @@ -780,30 +785,6 @@ 0, "IMAGE" ], - [ - 12, - 19, - 1, - 13, - 0, - "IMAGE" - ], - [ - 13, - 19, - 3, - 14, - 0, - "IMAGE" - ], - [ - 14, - 19, - 1, - 15, - 0, - "IMAGE" - ], [ 15, 15, @@ -812,38 +793,6 @@ 0, "IMAGE" ], - [ - 16, - 19, - 0, - 17, - 0, - "IMAGE" - ], - [ - 17, - 19, - 2, - 18, - 0, - "IMAGE" - ], - [ - 18, - 12, - 0, - 19, - 0, - "MODEL" - ], - [ - 19, - 10, - 0, - 19, - 1, - "IMAGE" - ], [ 20, 20, @@ -875,6 +824,62 @@ 10, 1, "VAE" + ], + [ + 25, + 12, + 0, + 21, + 0, + "chord_model" + ], + [ + 26, + 10, + 0, + 21, + 1, + "IMAGE" + ], + [ + 27, + 21, + 0, + 17, + 0, + "IMAGE" + ], + [ + 28, + 21, + 1, + 13, + 0, + "IMAGE" + ], + [ + 29, + 21, + 1, + 15, + 0, + "IMAGE" + ], + [ + 30, + 21, + 2, + 18, + 0, + "IMAGE" + ], + [ + 31, + 21, + 3, + 14, + 0, + "IMAGE" ] ], "groups": [ @@ -908,17 +913,18 @@ "config": {}, "extra": { "ds": { - "scale": 0.9090909090909091, + "scale": 0.4458204334365324, "offset": [ - -529.3401932682049, - 382.39559310741566 + -61.666666666666515, + 1169.4270833333335 ] }, - "frontendVersion": "1.30.6", + "frontendVersion": "1.33.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "LG" }, "version": 0.4 } \ No newline at end of file diff --git a/example_workflows/chord_image_to_material.jpg b/example_workflows/chord_image_to_material.jpg new file mode 100644 index 0000000..9db1955 Binary files /dev/null and b/example_workflows/chord_image_to_material.jpg differ diff --git a/examples/chord_image_to_material.json b/example_workflows/chord_image_to_material.json similarity index 71% rename from examples/chord_image_to_material.json rename to example_workflows/chord_image_to_material.json index 54621e0..2f28fe1 100644 --- a/examples/chord_image_to_material.json +++ b/example_workflows/chord_image_to_material.json @@ -1,90 +1,219 @@ { - "id": "ea333999-ea89-432c-8eb9-c224d5c534cc", + "id": "e73d9c76-5804-46b9-a069-11573d7e35ee", "revision": 0, - "last_node_id": 20, - "last_link_id": 24, + "last_node_id": 9, + "last_link_id": 8, "nodes": [ { - "id": 3, - "type": "SaveImage", + "id": 1, + "type": "ChordLoadModel", "pos": [ - 1434.1050021988901, - -306.57265864285824 + 570, + 400 ], "size": [ - 220, - 290 + 270, + 58 ], "flags": {}, - "order": 4, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "chord_model", + "type": "chord_model", + "links": [ + 1 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "53296391fe2cf7f3f370a5c6536dcb2177221257", + "Node name for S&R": "ChordLoadModel", + "models": [ + { + "name": "chord_v1.safetensors", + "url": "https://huggingface.co/Ubisoft/ubisoft-laforge-chord/resolve/main/chord_v1.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "chord_v1.safetensors" + ] + }, + { + "id": 3, + "type": "ChordMaterialEstimation", + "pos": [ + 920, + 400 + ], + "size": [ + 209.51328125, + 86 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "chord_model", + "type": "chord_model", + "link": 1 + }, + { + "name": "image", + "type": "IMAGE", + "link": 2 + } + ], + "outputs": [ + { + "name": "basecolor", + "type": "IMAGE", + "links": [ + 3 + ] + }, + { + "name": "normal", + "type": "IMAGE", + "links": [ + 4, + 7 + ] + }, + { + "name": "roughness", + "type": "IMAGE", + "links": [ + 5 + ] + }, + { + "name": "metalness", + "type": "IMAGE", + "links": [ + 6 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "53296391fe2cf7f3f370a5c6536dcb2177221257", + "Node name for S&R": "ChordMaterialEstimation" + }, + "widgets_values": [] + }, + { + "id": 4, + "type": "SaveImage", + "pos": [ + 1220, + 240 + ], + "size": [ + 270, + 340 + ], + "flags": {}, + "order": 3, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", - "link": 21 + "link": 3 } ], "outputs": [], - "title": "Normal", + "title": "Save Base Color", "properties": { "cnr_id": "comfy-core", - "ver": "0.3.71" + "ver": "0.3.76" }, "widgets_values": [ - "normal" + "basecolor" ] }, { - "id": 5, - "type": "ChordNormalToHeight", + "id": 7, + "type": "SaveImage", "pos": [ - 1704.1050021988901, - -126.5726586428583 + 1220, + 640 ], "size": [ - 230, - 26 + 270, + 340 ], "flags": {}, - "order": 5, + "order": 7, "mode": 0, "inputs": [ { - "name": "normal", + "name": "images", "type": "IMAGE", - "link": 22 - } - ], - "outputs": [ - { - "name": "height", - "type": "IMAGE", - "links": [ - 4 - ] + "link": 6 } ], + "outputs": [], + "title": "Save Metalness", "properties": { - "Node name for S&R": "ChordNormalToHeight", - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45" + "cnr_id": "comfy-core", + "ver": "0.3.76" }, - "widgets_values": [] + "widgets_values": [ + "metalness" + ] }, { "id": 6, "type": "SaveImage", "pos": [ - 1704.1050021988901, - -36.57265864285831 + 1530, + 640 ], "size": [ - 230, - 290 + 270, + 340 ], "flags": {}, - "order": 8, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 5 + } + ], + "outputs": [], + "title": "Save Roughness", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.76" + }, + "widgets_values": [ + "roughness" + ] + }, + { + "id": 5, + "type": "SaveImage", + "pos": [ + 1530, + 240 + ], + "size": [ + 270, + 340 + ], + "flags": {}, + "order": 4, "mode": 0, "inputs": [ { @@ -94,121 +223,96 @@ } ], "outputs": [], - "title": "Height", + "title": "Save Normal", "properties": { "cnr_id": "comfy-core", - "ver": "0.3.71" + "ver": "0.3.76" }, "widgets_values": [ - "height" - ] - }, - { - "id": 7, - "type": "SaveImage", - "pos": [ - 1194.1050021988901, - -306.57265864285824 - ], - "size": [ - 220, - 290 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 20 - } - ], - "outputs": [], - "title": "Basecolor", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.71" - }, - "widgets_values": [ - "basecolor" + "normal" ] }, { "id": 8, - "type": "SaveImage", + "type": "ChordNormalToHeight", "pos": [ - 1434.1050021988901, - 53.427341357141685 + 1870, + 420 ], "size": [ - 220, - 290 + 195.51328125, + 26 ], "flags": {}, - "order": 6, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "normal", + "type": "IMAGE", + "link": 7 + } + ], + "outputs": [ + { + "name": "height", + "type": "IMAGE", + "links": [ + 8 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "53296391fe2cf7f3f370a5c6536dcb2177221257", + "Node name for S&R": "ChordNormalToHeight" + }, + "widgets_values": [] + }, + { + "id": 9, + "type": "SaveImage", + "pos": [ + 1870, + 510 + ], + "size": [ + 270, + 340 + ], + "flags": {}, + "order": 8, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", - "link": 23 + "link": 8 } ], "outputs": [], - "title": "Roughness", + "title": "Save Height", "properties": { "cnr_id": "comfy-core", - "ver": "0.3.71" + "ver": "0.3.76" }, "widgets_values": [ - "roughness" + "ComfyUI" ] }, { - "id": 4, - "type": "SaveImage", - "pos": [ - 1180, - 50 - ], - "size": [ - 220, - 290 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 24 - } - ], - "outputs": [], - "title": "Metalness", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.71" - }, - "widgets_values": [ - "metalness" - ] - }, - { - "id": 1, + "id": 2, "type": "LoadImage", "pos": [ - 584.1050021988901, - -56.57265864285831 + 570, + 530 ], "size": [ - 220, - 326 + 270, + 380 ], "flags": {}, - "order": 0, + "order": 1, "mode": 0, "inputs": [], "outputs": [ @@ -216,7 +320,7 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 19 + 2 ] }, { @@ -226,172 +330,78 @@ } ], "properties": { - "Node name for S&R": "LoadImage", "cnr_id": "comfy-core", - "ver": "0.3.71" + "ver": "0.3.76", + "Node name for S&R": "LoadImage" }, "widgets_values": [ - "02-robot's_eye.png", + "pasta.png", "image" ] - }, - { - "id": 20, - "type": "ChordMaterialEstimation", - "pos": [ - 890, - -170 - ], - "size": [ - 209.50000610351563, - 86 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "chord_model", - "type": "CHORD_MODEL", - "link": 18 - }, - { - "name": "image", - "type": "IMAGE", - "link": 19 - } - ], - "outputs": [ - { - "name": "basecolor", - "type": "IMAGE", - "links": [ - 20 - ] - }, - { - "name": "normal", - "type": "IMAGE", - "links": [ - 21, - 22 - ] - }, - { - "name": "roughness", - "type": "IMAGE", - "links": [ - 23 - ] - }, - { - "name": "metalness", - "type": "IMAGE", - "links": [ - 24 - ] - } - ], - "properties": { - "Node name for S&R": "ChordMaterialEstimation" - } - }, - { - "id": 2, - "type": "ChordLoadModel", - "pos": [ - 570, - -200 - ], - "size": [ - 270, - 58 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CHORD_MODEL", - "type": "CHORD_MODEL", - "links": [ - 18 - ] - } - ], - "properties": { - "Node name for S&R": "ChordLoadModel", - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45" - }, - "widgets_values": [ - "chord_v1_pruned.safetensors" - ] } ], "links": [ [ + 1, + 1, + 0, + 3, + 0, + "CHORD_MODEL" + ], + [ + 2, + 2, + 0, + 3, + 1, + "IMAGE" + ], + [ + 3, + 3, + 0, 4, + 0, + "IMAGE" + ], + [ + 4, + 3, + 1, 5, 0, + "IMAGE" + ], + [ + 5, + 3, + 2, 6, 0, "IMAGE" ], [ - 18, - 2, - 0, - 20, - 0, - "CHORD_MODEL" - ], - [ - 19, - 1, - 0, - 20, - 1, - "IMAGE" - ], - [ - 20, - 20, - 0, + 6, + 3, + 3, 7, 0, "IMAGE" ], [ - 21, - 20, - 1, + 7, 3, - 0, - "IMAGE" - ], - [ - 22, - 20, 1, - 5, - 0, - "IMAGE" - ], - [ - 23, - 20, - 2, 8, 0, "IMAGE" ], [ - 24, - 20, - 3, - 4, + 8, + 8, + 0, + 9, 0, "IMAGE" ] @@ -400,17 +410,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.8800000000000114, + "scale": 0.9056603773584906, "offset": [ - -403.66660293325015, - 600.0671496980383 + -295, + -7.03125 ] }, "frontendVersion": "1.33.10", - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, "workflowRendererVersion": "LG" }, "version": 0.4 diff --git a/example_workflows/chord_image_to_material.png b/example_workflows/chord_image_to_material.png new file mode 100644 index 0000000..b6d27be Binary files /dev/null and b/example_workflows/chord_image_to_material.png differ diff --git a/example_workflows/chord_sdxl_t2i_image_to_material.jpg b/example_workflows/chord_sdxl_t2i_image_to_material.jpg new file mode 100644 index 0000000..9ac6595 Binary files /dev/null and b/example_workflows/chord_sdxl_t2i_image_to_material.jpg differ diff --git a/examples/chord_sdxl_t2i_image_to_material.json b/example_workflows/chord_sdxl_t2i_image_to_material.json similarity index 92% rename from examples/chord_sdxl_t2i_image_to_material.json rename to example_workflows/chord_sdxl_t2i_image_to_material.json index 1fe5a2e..657c977 100644 --- a/examples/chord_sdxl_t2i_image_to_material.json +++ b/example_workflows/chord_sdxl_t2i_image_to_material.json @@ -1,49 +1,9 @@ { "id": "3f5dd780-e4c7-495c-873d-0e194ec4fa7a", "revision": 0, - "last_node_id": 17, - "last_link_id": 20, + "last_node_id": 18, + "last_link_id": 28, "nodes": [ - { - "id": 6, - "type": "SeamlessTile", - "pos": [ - 770, - -260 - ], - "size": [ - 270, - 82 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 6 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 7 - ] - } - ], - "properties": { - "cnr_id": "comfyui-seamless-tiling", - "ver": "1.0.0", - "Node name for S&R": "SeamlessTile" - }, - "widgets_values": [ - "enable", - "Make a copy" - ] - }, { "id": 7, "type": "MakeCircularVAE", @@ -305,7 +265,7 @@ { "name": "images", "type": "IMAGE", - "link": 13 + "link": 25 } ], "outputs": [], @@ -336,7 +296,7 @@ { "name": "images", "type": "IMAGE", - "link": 14 + "link": 28 } ], "outputs": [], @@ -367,7 +327,7 @@ { "name": "normal", "type": "IMAGE", - "link": 15 + "link": 26 } ], "outputs": [ @@ -435,7 +395,7 @@ { "name": "images", "type": "IMAGE", - "link": 18 + "link": 27 } ], "outputs": [], @@ -466,7 +426,7 @@ { "name": "images", "type": "IMAGE", - "link": 17 + "link": 24 } ], "outputs": [], @@ -511,7 +471,7 @@ "type": "IMAGE", "links": [ 12, - 20 + 23 ] } ], @@ -522,105 +482,6 @@ }, "widgets_values": [] }, - { - "id": 17, - "type": "ChordMaterialEstimation", - "pos": [ - 2470, - -130 - ], - "size": [ - 209.51328125, - 86 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 19 - }, - { - "name": "image", - "type": "IMAGE", - "link": 20 - } - ], - "outputs": [ - { - "name": "basecolor", - "type": "IMAGE", - "links": [ - 17 - ] - }, - { - "name": "normal", - "type": "IMAGE", - "links": [ - 13, - 15 - ] - }, - { - "name": "roughness", - "type": "IMAGE", - "links": [ - 18 - ] - }, - { - "name": "metalness", - "type": "IMAGE", - "links": [ - 14 - ] - } - ], - "properties": { - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45", - "Node name for S&R": "ChordMaterialEstimation" - }, - "widgets_values": [] - }, - { - "id": 10, - "type": "ChordLoadModel", - "pos": [ - 2150, - -200 - ], - "size": [ - 270, - 58 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 19 - ] - } - ], - "properties": { - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45", - "Node name for S&R": "ChordLoadModel" - }, - "widgets_values": [ - [ - "chord_v1.ckpt" - ] - ] - }, { "id": 4, "type": "KSampler", @@ -680,6 +541,150 @@ "karras", 1 ] + }, + { + "id": 10, + "type": "ChordLoadModel", + "pos": [ + 2150, + -200 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "chord_model", + "type": "chord_model", + "links": [ + 22 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "a3db2834454fbced4f5fc4b2d529df5c517ebe45", + "Node name for S&R": "ChordLoadModel", + "models": [ + { + "name": "chord_v1.safetensors", + "url": "https://huggingface.co/Ubisoft/ubisoft-laforge-chord/resolve/main/chord_v1.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "chord_v1.safetensors" + ] + }, + { + "id": 18, + "type": "ChordMaterialEstimation", + "pos": [ + 2470, + -130 + ], + "size": [ + 209.51328125, + 86 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "chord_model", + "type": "chord_model", + "link": 22 + }, + { + "name": "image", + "type": "IMAGE", + "link": 23 + } + ], + "outputs": [ + { + "name": "basecolor", + "type": "IMAGE", + "links": [ + 24 + ] + }, + { + "name": "normal", + "type": "IMAGE", + "links": [ + 25, + 26 + ] + }, + { + "name": "roughness", + "type": "IMAGE", + "links": [ + 27 + ] + }, + { + "name": "metalness", + "type": "IMAGE", + "links": [ + 28 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "53296391fe2cf7f3f370a5c6536dcb2177221257", + "Node name for S&R": "ChordMaterialEstimation" + }, + "widgets_values": [] + }, + { + "id": 6, + "type": "SeamlessTile", + "pos": [ + 770, + -260 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 6 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 7 + ] + } + ], + "properties": { + "cnr_id": "comfyui-seamless-tiling", + "ver": "1.0.0", + "Node name for S&R": "SeamlessTile" + }, + "widgets_values": [ + "enable", + "Modify in place" + ] } ], "links": [ @@ -772,67 +777,67 @@ "IMAGE" ], [ + 16, 13, - 17, + 0, + 14, + 0, + "IMAGE" + ], + [ + 22, + 10, + 0, + 18, + 0, + "CHORD_MODEL" + ], + [ + 23, + 8, + 0, + 18, + 1, + "IMAGE" + ], + [ + 24, + 18, + 0, + 15, + 0, + "IMAGE" + ], + [ + 25, + 18, 1, 11, 0, "IMAGE" ], [ - 14, - 17, - 3, - 12, - 0, - "IMAGE" - ], - [ - 15, - 17, + 26, + 18, 1, 13, 0, "IMAGE" ], [ - 16, - 13, - 0, - 14, - 0, - "IMAGE" - ], - [ - 17, - 17, - 0, - 15, - 0, - "IMAGE" - ], - [ + 27, 18, - 17, 2, 16, 0, "IMAGE" ], [ - 19, - 10, + 28, + 18, + 3, + 12, 0, - 17, - 0, - "MODEL" - ], - [ - 20, - 8, - 0, - 17, - 1, "IMAGE" ] ], @@ -867,17 +872,18 @@ "config": {}, "extra": { "ds": { - "scale": 0.7272727272727345, + "scale": 0.4528301886792453, "offset": [ - -310.7113887500002, - 843.2881162499947 + 160, + 1134.7375 ] }, - "frontendVersion": "1.30.6", + "frontendVersion": "1.33.10", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "LG" }, "version": 0.4 } \ No newline at end of file diff --git a/example_workflows/chord_zimage_turbo_t2i_image_to_material.jpg b/example_workflows/chord_zimage_turbo_t2i_image_to_material.jpg new file mode 100644 index 0000000..4175bc8 Binary files /dev/null and b/example_workflows/chord_zimage_turbo_t2i_image_to_material.jpg differ diff --git a/examples/chord_zimage_turbo_t2i_image_to_material.json b/example_workflows/chord_zimage_turbo_t2i_image_to_material.json similarity index 92% rename from examples/chord_zimage_turbo_t2i_image_to_material.json rename to example_workflows/chord_zimage_turbo_t2i_image_to_material.json index f55a4cd..7b6b886 100644 --- a/examples/chord_zimage_turbo_t2i_image_to_material.json +++ b/example_workflows/chord_zimage_turbo_t2i_image_to_material.json @@ -1,8 +1,8 @@ { "id": "0b9de3ed-9755-49d3-96cf-f74c1ce27a19", "revision": 0, - "last_node_id": 19, - "last_link_id": 19, + "last_node_id": 20, + "last_link_id": 27, "nodes": [ { "id": 3, @@ -383,103 +383,6 @@ }, "widgets_values": [] }, - { - "id": 12, - "type": "ChordLoadModel", - "pos": [ - 2820, - -150 - ], - "size": [ - 270, - 58 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 12 - ] - } - ], - "properties": { - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "ee1681365545bf48b6c50a21d0fdfb07492ed4eb", - "Node name for S&R": "ChordLoadModel" - }, - "widgets_values": [ - "chord_v1.ckpt" - ] - }, - { - "id": 13, - "type": "ChordMaterialEstimation", - "pos": [ - 3150, - -40 - ], - "size": [ - 230, - 86 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 12 - }, - { - "name": "image", - "type": "IMAGE", - "link": 13 - } - ], - "outputs": [ - { - "name": "basecolor", - "type": "IMAGE", - "links": [ - 14 - ] - }, - { - "name": "normal", - "type": "IMAGE", - "links": [ - 15, - 18 - ] - }, - { - "name": "roughness", - "type": "IMAGE", - "links": [ - 17 - ] - }, - { - "name": "metalness", - "type": "IMAGE", - "links": [ - 16 - ] - } - ], - "properties": { - "aux_id": "ubisoft/ComfyUI-Chord", - "ver": "ee1681365545bf48b6c50a21d0fdfb07492ed4eb", - "Node name for S&R": "ChordMaterialEstimation" - }, - "widgets_values": [] - }, { "id": 14, "type": "SaveImage", @@ -498,7 +401,7 @@ { "name": "images", "type": "IMAGE", - "link": 14 + "link": 23 } ], "outputs": [], @@ -529,7 +432,7 @@ { "name": "images", "type": "IMAGE", - "link": 16 + "link": 27 } ], "outputs": [], @@ -560,7 +463,7 @@ { "name": "images", "type": "IMAGE", - "link": 15 + "link": 24 } ], "outputs": [], @@ -591,7 +494,7 @@ { "name": "images", "type": "IMAGE", - "link": 17 + "link": 26 } ], "outputs": [], @@ -622,7 +525,7 @@ { "name": "normal", "type": "IMAGE", - "link": 18 + "link": 25 } ], "outputs": [ @@ -698,7 +601,7 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 13 + 22 ] } ], @@ -743,6 +646,110 @@ "widgets_values": [ "texture_image" ] + }, + { + "id": 20, + "type": "ChordMaterialEstimation", + "pos": [ + 3150, + -40 + ], + "size": [ + 209.51328125, + 86 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "chord_model", + "type": "chord_model", + "link": 21 + }, + { + "name": "image", + "type": "IMAGE", + "link": 22 + } + ], + "outputs": [ + { + "name": "basecolor", + "type": "IMAGE", + "links": [ + 23 + ] + }, + { + "name": "normal", + "type": "IMAGE", + "links": [ + 24, + 25 + ] + }, + { + "name": "roughness", + "type": "IMAGE", + "links": [ + 26 + ] + }, + { + "name": "metalness", + "type": "IMAGE", + "links": [ + 27 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "53296391fe2cf7f3f370a5c6536dcb2177221257", + "Node name for S&R": "ChordMaterialEstimation" + }, + "widgets_values": [] + }, + { + "id": 12, + "type": "ChordLoadModel", + "pos": [ + 2820, + -150 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "chord_model", + "type": "chord_model", + "links": [ + 21 + ] + } + ], + "properties": { + "aux_id": "ubisoft/ComfyUI-Chord", + "ver": "ee1681365545bf48b6c50a21d0fdfb07492ed4eb", + "Node name for S&R": "ChordLoadModel", + "models": [ + { + "name": "chord_v1.safetensors", + "url": "https://huggingface.co/Ubisoft/ubisoft-laforge-chord/resolve/main/chord_v1.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "chord_v1.safetensors" + ] } ], "links": [ @@ -835,66 +842,66 @@ "IMAGE" ], [ - 12, - 12, + 19, + 18, 0, - 13, + 19, 0, - "MODEL" + "IMAGE" ], [ - 13, + 21, + 12, + 0, + 20, + 0, + "chord_model" + ], + [ + 22, 11, 0, - 13, + 20, 1, "IMAGE" ], [ - 14, - 13, + 23, + 20, 0, 14, 0, "IMAGE" ], [ - 15, - 13, + 24, + 20, 1, 15, 0, "IMAGE" ], [ - 16, - 13, - 3, - 16, + 25, + 20, + 1, + 18, 0, "IMAGE" ], [ - 17, - 13, + 26, + 20, 2, 17, 0, "IMAGE" ], [ - 18, - 13, - 1, - 18, - 0, - "IMAGE" - ], - [ - 19, - 18, - 0, - 19, + 27, + 20, + 3, + 16, 0, "IMAGE" ] @@ -930,14 +937,14 @@ "config": {}, "extra": { "ds": { - "scale": 0.5464107642920619, + "scale": 0.44720496894409933, "offset": [ - -844.0584018994776, - 703.81418346565 + -473.3333333333335, + 1073.3872382214195 ] }, - "workflowRendererVersion": "LG", - "frontendVersion": "1.33.10" + "frontendVersion": "1.33.10", + "workflowRendererVersion": "LG" }, "version": 0.4 } \ No newline at end of file diff --git a/examples/chord_image_to_material.png b/examples/chord_image_to_material.png deleted file mode 100644 index 0a60c14..0000000 Binary files a/examples/chord_image_to_material.png and /dev/null differ diff --git a/nodes.py b/nodes.py index a17ee4a..d3967e4 100644 --- a/nodes.py +++ b/nodes.py @@ -25,7 +25,7 @@ def apply_circular_padding(model): else: apply_padding(model, 'circular') -ChordModelType = io.Custom("CHORD_MODEL") +ChordModelType = io.Custom("chord_model") class ChordLoadModel(io.ComfyNode): """Node to load Chord Model"""