added input point number

This commit is contained in:
Mike Ull
2026-06-07 15:11:49 +02:00
parent 7f5ed2cb54
commit 1ff4c03792
3 changed files with 16 additions and 16 deletions
+2 -1
View File
@@ -66,7 +66,8 @@ ComfyUI/models/facebook/dinov3-vitl16-pretrain-lvd1689m/
| `steps` | `INT` | Number of diffusion sampling steps (Default: 28). |
| `guidance_scale` | `FLOAT` | CFG scale for image conditioning (Only active if `reference_image` is connected). |
| `seed` | `INT` | Random seed for sampling latents. |
| `num_verts` | `COMBO` | Target vertex resolution (1024 to 8192). Only active with the `meshflow_w_num_verts_control` model. |
| `base_num_verts` | `COMBO` | The base resolution/point count of the loaded model checkpoint (1024, 2048, 4096, 8192, or 16384). |
| `points` | `INT` | Target vertex resolution of the generated output mesh (1024 to 16384). Only active with the `meshflow_w_num_verts_control` model. |
| `device` | `COMBO` | Execution device: `cuda` or `cpu`. |
| `dtype` | `COMBO` | Computation precision: `fp16`, `bf16`, or `fp32`. |
| `compile` | `BOOLEAN` | Uses `torch.compile` on CUDA for faster inference speeds. |
+9 -11
View File
@@ -119,18 +119,16 @@ class MeshFlowPipeline:
use_proj_cond_on_temb = bool(scfg.denoiser_model.get("use_proj_cond_on_temb", False))
num_latents = int(scfg.mesh_model.num_latents)
if use_proj_cond_on_temb:
if num_verts is not None:
num_verts = int(num_verts)
config_num_verts = n_samples = input_size = num_verts
if num_verts is not None:
num_verts = int(num_verts)
config_num_verts = n_samples = input_size = num_verts
if use_proj_cond_on_temb:
pass
else:
num_latents = num_verts
else:
if num_verts is not None:
print(
"[MeshFlowPipeline] Ignoring num_verts: "
"denoiser_model.use_proj_cond_on_temb is disabled in config"
)
num_verts = None
num_latents = None
if not use_proj_cond_on_temb:
num_latents = None
dtype = resolve_torch_dtype(dtype)
device = torch.device(device if torch.cuda.is_available() or device == "cpu" else "cpu")
+5 -4
View File
@@ -50,7 +50,8 @@ class MeshFlowRemesh:
"steps": ("INT", {"default": 28, "min": 1, "max": 1000, "step": 1, "tooltip": "Number of diffusion sampling steps. Higher values can increase detail but take longer."}),
"guidance_scale": ("FLOAT", {"default": 2.5, "min": 0.0, "max": 100.0, "step": 0.1, "tooltip": "Classifier-Free Guidance (CFG) scale for visual conditioning. Only effective when reference_image is connected."}),
"seed": ("INT", {"default": 42, "min": 0, "max": 0xffffffffffffffff, "tooltip": "Random seed for sampling latents."}),
"num_verts": ([1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192], {"default": 4096, "tooltip": "Target vertex resolution. Roughly controls the generated mesh resolution."}),
"base_num_verts": ([1024, 2048, 4096, 8192, 16384], {"default": 4096, "tooltip": "The base resolution/point count of the loaded model checkpoint (sequence length)."}),
"points": ("INT", {"default": 4096, "min": 1024, "max": 16384, "step": 256, "tooltip": "Target resolution (points/vertices) of the generated output mesh."}),
"device": (["cuda", "cpu"], {"default": "cuda", "tooltip": "Computation device to run the model on (cuda or cpu)."}),
"dtype": (["fp16", "bf16", "fp32"], {"default": "fp16", "tooltip": "Precision model dtype (fp16, bf16, or fp32)."}),
"compile": ("BOOLEAN", {"default": False, "tooltip": "Whether to use torch.compile on CUDA for faster inference."}),
@@ -67,12 +68,12 @@ class MeshFlowRemesh:
FUNCTION = "remesh"
CATEGORY = "MeshFlow"
def remesh(self, trimesh, model_name, steps, guidance_scale, seed, num_verts, device, dtype, compile, use_rmbg, fill_holes, reference_image=None):
def remesh(self, trimesh, model_name, steps, guidance_scale, seed, base_num_verts, points, device, dtype, compile, use_rmbg, fill_holes, reference_image=None):
model_path = os.path.join(folder_paths.models_dir, "facebook", "meshflow", model_name)
if not os.path.isdir(model_path):
raise FileNotFoundError(f"MeshFlow model path not found at {model_path}. Please download and place the config.yaml and model.pth in that directory.")
pipeline = get_pipeline(model_path, device, dtype, compile, num_verts)
pipeline = get_pipeline(model_path, device, dtype, compile, base_num_verts)
pipeline.use_rmbg = use_rmbg
if reference_image is not None:
@@ -115,7 +116,7 @@ class MeshFlowRemesh:
steps=steps,
guidance_scale=guidance_scale,
seed=seed,
num_verts=num_verts,
num_verts=points,
return_latent=True
)