diff --git a/README.md b/README.md index 8d035d7..b060d9e 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,9 @@ This is an extensive node suite that enables ComfyUI to process 3D inputs (Mesh - **Unique3D**: [AiuniAI/Unique3D](https://github.com/AiuniAI/Unique3D) - Four stages pipeline: - 1. Single image to 4 multi-view images with resulution: 256X256 + 1. Single image to 4 multi-view images with resolution: 256X256 2. Consistent Multi-view images Upscale to 512X512, super resolution to 2048X2048 - 3. Multi-view images to Normal maps with resulution: 512X512, super resolution to 2048X2048 + 3. Multi-view images to Normal maps with resolution: 512X512, super resolution to 2048X2048 4. Multi-view images & Normal maps to 3D mesh with texture - To use the [All stage Unique3D workflow](./_Example_Workflows/Unique3D/Unique3D_All_Stages.json), Download Models: - [sdv1.5-pruned-emaonly](https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.ckpt) and put it into `Your ComfyUI root directory/ComfyUI/models/checkpoints` @@ -68,7 +68,7 @@ This is an extensive node suite that enables ComfyUI to process 3D inputs (Mesh - **Era3D MVDiffusion Model**: [pengHTYX/Era3D](https://github.com/pengHTYX/Era3D) - - Single image to 6 multi-view images & normal maps with resulution: 512X512 + - Single image to 6 multi-view images & normal maps with resolution: 512X512 - *Note: you need at least 16GB vram to run this model* - Model weights: https://huggingface.co/pengHTYX/MacLab-Era3D-512-6view/tree/main @@ -84,7 +84,7 @@ This is an extensive node suite that enables ComfyUI to process 3D inputs (Mesh - **Zero123++**: [SUDO-AI-3D/zero123plus](https://github.com/SUDO-AI-3D/zero123plus) - - Single image to 6 view images with resulution: 320X320 + - Single image to 6 view images with resolution: 320X320 - **Convolutional Reconstruction Model**: [thu-ml/CRM](https://github.com/thu-ml/CRM) - Three stages pipeline: diff --git a/_Example_Workflows/CharacterGen/CharacterGen_InstantMesh.json b/_Example_Workflows/CharacterGen/CharacterGen_InstantMesh.json index 2a44a6d..1243b56 100644 --- a/_Example_Workflows/CharacterGen/CharacterGen_InstantMesh.json +++ b/_Example_Workflows/CharacterGen/CharacterGen_InstantMesh.json @@ -79,7 +79,7 @@ }, { "id": 32, - "type": "IMG_padder", + "type": "Eden_IMG_padder", "pos": [ 210, 440 @@ -110,7 +110,7 @@ } ], "properties": { - "Node name for S&R": "IMG_padder" + "Node name for S&R": "Eden_IMG_padder" }, "widgets_values": [ 0.25, @@ -317,7 +317,7 @@ }, { "id": 33, - "type": "IMG_padder", + "type": "Eden_IMG_padder", "pos": [ 570, 440 @@ -348,7 +348,7 @@ } ], "properties": { - "Node name for S&R": "IMG_padder" + "Node name for S&R": "Eden_IMG_padder" }, "widgets_values": [ 0.2, diff --git a/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json b/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json index 1cc7e3c..d798e12 100644 --- a/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json +++ b/_Example_Workflows/CharacterGen/CharacterGen_to_Unique3D.json @@ -738,7 +738,7 @@ }, { "id": 350, - "type": "IMG_padder", + "type": "Eden_IMG_padder", "pos": [ -329.80954879404095, -427.3873149879231 @@ -769,7 +769,7 @@ } ], "properties": { - "Node name for S&R": "IMG_padder" + "Node name for S&R": "Eden_IMG_padder" }, "widgets_values": [ 0.25, @@ -778,7 +778,7 @@ }, { "id": 351, - "type": "IMG_padder", + "type": "Eden_IMG_padder", "pos": [ 30.190451205959107, -427.3873149879231 @@ -809,7 +809,7 @@ } ], "properties": { - "Node name for S&R": "IMG_padder" + "Node name for S&R": "Eden_IMG_padder" }, "widgets_values": [ 0.2, diff --git a/nodes.py b/nodes.py index 8bf365a..3699952 100644 --- a/nodes.py +++ b/nodes.py @@ -561,10 +561,11 @@ class Rotate_Normal_Maps_Horizontally: CATEGORY = "Comfy3D/Preprocessor" def make_image_grid(self, normal_maps, normal_masks, clockwise): + rotate_direction = 1 if clockwise is True else -1 if normal_maps.shape[0] > 1: from Unique3D.scripts.utils import rotate_normals_torch pil_image_list = torch_imgs_to_pils(normal_maps, normal_masks) - pil_image_list = rotate_normals_torch(pil_image_list, return_types='pil', rotate_direction=int(clockwise)) + pil_image_list = rotate_normals_torch(pil_image_list, return_types='pil', rotate_direction=rotate_direction) normal_maps = pils_to_torch_imgs(pil_image_list, normal_maps.dtype, normal_maps.device) return (normal_maps,)