mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-04-15 13:02:35 +08:00
texture fixes
This commit is contained in:
parent
937faafe21
commit
243691c258
@ -1270,6 +1270,8 @@ class Trellis2(supported_models_base.BASE):
|
|||||||
latent_format = latent_formats.Trellis2
|
latent_format = latent_formats.Trellis2
|
||||||
vae_key_prefix = ["vae."]
|
vae_key_prefix = ["vae."]
|
||||||
clip_vision_prefix = "conditioner.main_image_encoder.model."
|
clip_vision_prefix = "conditioner.main_image_encoder.model."
|
||||||
|
# this is only needed for the texture model
|
||||||
|
supported_inference_dtypes = [torch.bfloat16, torch.float32]
|
||||||
|
|
||||||
def get_model(self, state_dict, prefix="", device=None):
|
def get_model(self, state_dict, prefix="", device=None):
|
||||||
return model_base.Trellis2(self, device=device)
|
return model_base.Trellis2(self, device=device)
|
||||||
|
|||||||
@ -620,6 +620,19 @@ def fill_holes_fn(vertices, faces, max_perimeter=0.03):
|
|||||||
|
|
||||||
return v, f
|
return v, f
|
||||||
|
|
||||||
|
|
||||||
|
def make_double_sided(vertices, faces):
|
||||||
|
is_batched = vertices.ndim == 3
|
||||||
|
if is_batched:
|
||||||
|
f_list = []
|
||||||
|
for i in range(faces.shape[0]):
|
||||||
|
f_inv = faces[i][:, [0, 2, 1]]
|
||||||
|
f_list.append(torch.cat([faces[i], f_inv], dim=0))
|
||||||
|
return vertices, torch.stack(f_list)
|
||||||
|
|
||||||
|
faces_inv = faces[:, [0, 2, 1]]
|
||||||
|
return vertices, torch.cat([faces, faces_inv], dim=0)
|
||||||
|
|
||||||
class PostProcessMesh(IO.ComfyNode):
|
class PostProcessMesh(IO.ComfyNode):
|
||||||
@classmethod
|
@classmethod
|
||||||
def define_schema(cls):
|
def define_schema(cls):
|
||||||
@ -651,11 +664,13 @@ class PostProcessMesh(IO.ComfyNode):
|
|||||||
if simplify > 0 and actual_face_count > simplify:
|
if simplify > 0 and actual_face_count > simplify:
|
||||||
verts, faces, colors = simplify_fn(verts, faces, target=simplify, colors=colors)
|
verts, faces, colors = simplify_fn(verts, faces, target=simplify, colors=colors)
|
||||||
|
|
||||||
|
verts, faces = make_double_sided(verts, faces)
|
||||||
|
|
||||||
mesh = type(mesh)(vertices=verts, faces=faces)
|
mesh = type(mesh)(vertices=verts, faces=faces)
|
||||||
mesh.vertices = verts
|
mesh.vertices = verts
|
||||||
mesh.faces = faces
|
mesh.faces = faces
|
||||||
if colors is not None:
|
if colors is not None:
|
||||||
mesh.colors = None
|
mesh.colors = colors
|
||||||
return IO.NodeOutput(mesh)
|
return IO.NodeOutput(mesh)
|
||||||
|
|
||||||
class Trellis2Extension(ComfyExtension):
|
class Trellis2Extension(ComfyExtension):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user