mirror of
https://git.datalinker.icu/kijai/ComfyUI-Hunyuan3DWrapper.git
synced 2026-01-23 14:04:26 +08:00
More progressbars, update example
This commit is contained in:
parent
1ec0914967
commit
d9b467d466
@ -1,6 +1,6 @@
|
||||
{
|
||||
"last_node_id": 60,
|
||||
"last_link_id": 90,
|
||||
"last_link_id": 91,
|
||||
"nodes": [
|
||||
{
|
||||
"id": 13,
|
||||
@ -277,7 +277,7 @@
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "delight_model",
|
||||
"name": "delight_pipe",
|
||||
"type": "DELIGHTMODEL",
|
||||
"links": [
|
||||
30
|
||||
@ -386,7 +386,7 @@
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "multiview_model",
|
||||
"name": "multiview_pipe",
|
||||
"type": "HY3DPAINTMODEL",
|
||||
"links": [
|
||||
40
|
||||
@ -401,60 +401,6 @@
|
||||
"hunyuan3d-paint-v2-0"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 52,
|
||||
"type": "ImageResize+",
|
||||
"pos": [
|
||||
-668.4475708007812,
|
||||
-291.98388671875
|
||||
],
|
||||
"size": [
|
||||
315,
|
||||
218
|
||||
],
|
||||
"flags": {},
|
||||
"order": 6,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "image",
|
||||
"type": "IMAGE",
|
||||
"link": 69
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
75,
|
||||
83
|
||||
],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "width",
|
||||
"type": "INT",
|
||||
"links": null
|
||||
},
|
||||
{
|
||||
"name": "height",
|
||||
"type": "INT",
|
||||
"links": null
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "ImageResize+"
|
||||
},
|
||||
"widgets_values": [
|
||||
512,
|
||||
512,
|
||||
"lanczos",
|
||||
"pad",
|
||||
"always",
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 60,
|
||||
"type": "ImageResize+",
|
||||
@ -774,9 +720,7 @@
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
78
|
||||
],
|
||||
"links": [],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
@ -852,7 +796,7 @@
|
||||
{
|
||||
"name": "source",
|
||||
"type": "IMAGE",
|
||||
"link": 78
|
||||
"link": 91
|
||||
},
|
||||
{
|
||||
"name": "mask",
|
||||
@ -948,6 +892,61 @@
|
||||
75,
|
||||
null
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 52,
|
||||
"type": "ImageResize+",
|
||||
"pos": [
|
||||
-668.4475708007812,
|
||||
-291.98388671875
|
||||
],
|
||||
"size": [
|
||||
315,
|
||||
218
|
||||
],
|
||||
"flags": {},
|
||||
"order": 6,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "image",
|
||||
"type": "IMAGE",
|
||||
"link": 69
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [
|
||||
75,
|
||||
83,
|
||||
91
|
||||
],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "width",
|
||||
"type": "INT",
|
||||
"links": null
|
||||
},
|
||||
{
|
||||
"name": "height",
|
||||
"type": "INT",
|
||||
"links": null
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "ImageResize+"
|
||||
},
|
||||
"widgets_values": [
|
||||
512,
|
||||
512,
|
||||
"lanczos",
|
||||
"pad",
|
||||
"always",
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
@ -1071,14 +1070,6 @@
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
78,
|
||||
56,
|
||||
0,
|
||||
57,
|
||||
1,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
79,
|
||||
56,
|
||||
@ -1158,6 +1149,14 @@
|
||||
42,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
91,
|
||||
52,
|
||||
0,
|
||||
57,
|
||||
1,
|
||||
"IMAGE"
|
||||
]
|
||||
],
|
||||
"groups": [
|
||||
@ -1204,16 +1203,16 @@
|
||||
"config": {},
|
||||
"extra": {
|
||||
"ds": {
|
||||
"scale": 0.5054470284993025,
|
||||
"scale": 0.5559917313492327,
|
||||
"offset": [
|
||||
1409.3260143727844,
|
||||
532.4019697620178
|
||||
1771.1866402657352,
|
||||
777.3248184126946
|
||||
]
|
||||
},
|
||||
"node_versions": {
|
||||
"comfy-core": "0.3.12",
|
||||
"ComfyUI-Hunyuan3DWrapper": "75ad5e41eb32f771e7a88dd9db50a004c98b3832",
|
||||
"ComfyUI_essentials": "60acb955712ae84959873012a8d9bbfc230499b7"
|
||||
"ComfyUI-Hunyuan3DWrapper": "1ec09149678bc9064c22c5f71d05a8526b6063b8",
|
||||
"ComfyUI_essentials": "76e9d1e4399bd025ce8b12c290753d58f9f53e93"
|
||||
},
|
||||
"VHS_latentpreview": true,
|
||||
"VHS_latentpreviewrate": 0
|
||||
|
||||
32
nodes.py
32
nodes.py
@ -9,12 +9,24 @@ from .hy3dgen.shapegen import Hunyuan3DDiTFlowMatchingPipeline, FaceReducer, Flo
|
||||
import folder_paths
|
||||
|
||||
import comfy.model_management as mm
|
||||
from comfy.utils import load_torch_file
|
||||
from comfy.utils import load_torch_file, ProgressBar
|
||||
|
||||
script_directory = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
from .utils import log, print_memory
|
||||
|
||||
class ComfyProgressCallback:
|
||||
def __init__(self, total_steps):
|
||||
self.pbar = ProgressBar(total_steps)
|
||||
|
||||
def __call__(self, pipe, i, t, callback_kwargs):
|
||||
self.pbar.update(1)
|
||||
return {
|
||||
"latents": callback_kwargs["latents"],
|
||||
"prompt_embeds": callback_kwargs["prompt_embeds"],
|
||||
"negative_prompt_embeds": callback_kwargs["negative_prompt_embeds"]
|
||||
}
|
||||
|
||||
class Hy3DTorchCompileSettings:
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
@ -92,7 +104,7 @@ class DownloadAndLoadHy3DDelightModel:
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("DELIGHTMODEL",)
|
||||
RETURN_NAMES = ("delight_model", )
|
||||
RETURN_NAMES = ("delight_pipe", )
|
||||
FUNCTION = "loadmodel"
|
||||
CATEGORY = "Hunyuan3DWrapper"
|
||||
|
||||
@ -154,8 +166,6 @@ class Hy3DDelightImage:
|
||||
|
||||
image = image.permute(0, 3, 1, 2).to(device)
|
||||
|
||||
#delight_pipe = delight_pipe.to(device)
|
||||
|
||||
image = delight_pipe(
|
||||
prompt="",
|
||||
image=image,
|
||||
@ -165,11 +175,10 @@ class Hy3DDelightImage:
|
||||
num_inference_steps=steps,
|
||||
image_guidance_scale=cfg_image,
|
||||
guidance_scale=cfg_text,
|
||||
output_type="pt"
|
||||
output_type="pt",
|
||||
|
||||
).images[0]
|
||||
|
||||
#delight_pipe = delight_pipe.to(offload_device)
|
||||
|
||||
out_tensor = image.unsqueeze(0).permute(0, 2, 3, 1).cpu().float()
|
||||
|
||||
return (out_tensor, )
|
||||
@ -184,7 +193,7 @@ class DownloadAndLoadHy3DPaintModel:
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("HY3DPAINTMODEL",)
|
||||
RETURN_NAMES = ("multiview_model", )
|
||||
RETURN_NAMES = ("multiview_pipe", )
|
||||
FUNCTION = "loadmodel"
|
||||
CATEGORY = "Hunyuan3DWrapper"
|
||||
|
||||
@ -287,6 +296,8 @@ class Hy3DRenderMultiView:
|
||||
|
||||
#pipeline = pipeline.to(device)
|
||||
|
||||
callback = ComfyProgressCallback(total_steps=steps)
|
||||
|
||||
multiview_images = pipeline(
|
||||
input_image,
|
||||
width=view_size,
|
||||
@ -299,6 +310,9 @@ class Hy3DRenderMultiView:
|
||||
position_imgs = position_image,
|
||||
num_inference_steps=steps,
|
||||
output_type="pt",
|
||||
callback_on_step_end=callback,
|
||||
callback_on_step_end_tensor_inputs=["latents", "prompt_embeds", "negative_prompt_embeds"]
|
||||
|
||||
).images
|
||||
|
||||
#pipeline = pipeline.to(offload_device)
|
||||
@ -373,6 +387,7 @@ class Hy3DBakeFromMultiview:
|
||||
camera_azims, view_weights, method='graphcut'):
|
||||
project_textures, project_weighted_cos_maps = [], []
|
||||
project_boundary_maps = []
|
||||
pbar = ProgressBar(len(views))
|
||||
for view, camera_elev, camera_azim, weight in zip(
|
||||
views, camera_elevs, camera_azims, view_weights):
|
||||
project_texture, project_cos_map, project_boundary_map = self.render.back_project(
|
||||
@ -381,6 +396,7 @@ class Hy3DBakeFromMultiview:
|
||||
project_textures.append(project_texture)
|
||||
project_weighted_cos_maps.append(project_cos_map)
|
||||
project_boundary_maps.append(project_boundary_map)
|
||||
pbar.update(1)
|
||||
|
||||
if method == 'fast':
|
||||
texture, ori_trust_map = self.render.fast_bake_texture(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user