工作流 /
3D 模型 /
混元3D:模型重拓扑与UV展开

混元3D:模型重拓扑与UV展开
Hunyuan3D: Model Retopology and UV Unwrapping
输入密集网格(来自 AI 生成或摄影测量),输出拓扑良好、UV 已展开的轻量模型,适合 3D 游戏资产优化。
3D 模型
5 个节点 12 次使用 ComfyUI ≥ 0.16.4 shane 19 KB
需要的权重
这个工作流引用了 2 个权重文件,其中 1 个能在本站模型库里找到。
ltx-av-step-1751000_vocoder_24K.safetensors
模型库暂未收录
model.safetensors
在模型库查看
节点构成
SaveGLB
× 2
TencentModelTo3DUVNode
× 1
TencentSmartTopologyNode
× 1
Load3D
× 1
官方标注的模型
Hunyuan3D
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "7f5e0c56-93b4-4937-b7f2-efd0f1853e33",
3 "revision": 0,
4 "last_node_id": 270,
5 "last_link_id": 508,
6 "nodes": [
7 {
8 "id": 261,
9 "type": "TencentModelTo3DUVNode",
10 "pos": [
11 -510,
12 4690
13 ],
14 "size": [
15 280,
16 170
17 ],
18 "flags": [],
19 "order": 3,
20 "mode": 0,
21 "inputs": [
22 {
23 "name": "model_3d",
24 "type": "FILE_3D_GLB,FILE_3D_OBJ,FILE_3D_FBX,FILE_3D",
25 "link": 508
26 }
27 ],
28 "outputs": [
29 {
30 "name": "OBJ",
31 "type": "FILE_3D_OBJ",
32 "links": [
33 504
34 ]
35 },
36 {
37 "name": "FBX",
38 "type": "FILE_3D_FBX",
39 "links": []
40 },
41 {
42 "name": "uv_image",
43 "type": "IMAGE",
44 "links": null
45 }
46 ],
47 "properties": {
48 "cnr_id": "comfy-core",
49 "ver": "0.16.3",
50 "Node name for S&R": "TencentModelTo3DUVNode",
51 "ue_properties": {
52 "widget_ue_connectable": [],
53 "version": "7.7",
54 "input_ue_unconnectable": []
55 }
56 },
57 "widgets_values": [
58 637299919,
59 "randomize"
60 ],
61 "color": "#432",
62 "bgcolor": "#653"
63 },
64 {
65 "id": 268,
66 "type": "SaveGLB",
67 "pos": [
68 -190,
69 4690
70 ],
71 "size": [
72 340,
73 440
74 ],
75 "flags": [],
76 "order": 4,
77 "mode": 0,
78 "inputs": [
79 {
80 "name": "mesh",
81 "type": "MESH,FILE_3D_GLB,FILE_3D_GLTF,FILE_3D_OBJ,FILE_3D_FBX,FILE_3D_STL,FILE_3D_USDZ,FILE_3D",
82 "link": 504
83 }
84 ],
85 "outputs": [],
86 "properties": {
87 "cnr_id": "comfy-core",
88 "ver": "0.16.3",
89 "Camera Config": {
90 "cameraType": "perspective",
91 "fov": 75,
92 "state": {
93 "position": {
94 "x": 6.268537922444231,
95 "y": 7.208734588437315,
96 "z": 12.539059339097932
97 },
98 "target": {
99 "x": 0,
100 "y": 2.5,
101 "z": 0
102 },
103 "zoom": 1,
104 "cameraType": "perspective"
105 }
106 },
107 "Scene Config": {
108 "showGrid": true,
109 "backgroundColor": "#282828",
110 "backgroundImage": "",
111 "backgroundRenderMode": "tiled"
112 },
113 "Light Config": {
114 "intensity": 3
115 },
116 "ue_properties": {
117 "widget_ue_connectable": [],
118 "version": "7.7",
119 "input_ue_unconnectable": []
120 }
121 },
122 "widgets_values": [
123 "model_retopo_uv",
124 ""
125 ]
126 },
127 {
128 "id": 262,
129 "type": "TencentSmartTopologyNode",
130 "pos": [
131 -1280,
132 4700
133 ],
134 "size": [
135 300,
136 180
137 ],
138 "flags": [],
139 "order": 1,
140 "mode": 0,
141 "inputs": [
142 {
143 "name": "model_3d",
144 "type": "FILE_3D_GLB,FILE_3D_OBJ,FILE_3D",
145 "link": 499
146 }
147 ],
148 "outputs": [
149 {
150 "name": "OBJ",
151 "type": "FILE_3D_OBJ",
152 "links": [
153 500,
154 508
155 ]
156 }
157 ],
158 "properties": {
159 "cnr_id": "comfy-core",
160 "ver": "0.16.3",
161 "Node name for S&R": "TencentSmartTopologyNode",
162 "ue_properties": {
163 "widget_ue_connectable": [],
164 "version": "7.7",
165 "input_ue_unconnectable": []
166 }
167 },
168 "widgets_values": [
169 "triangle",
170 "medium",
171 1051480327,
172 "randomize"
173 ],
174 "color": "#432",
175 "bgcolor": "#653"
176 },
177 {
178 "id": 265,
179 "type": "Load3D",
180 "pos": [
181 -1590,
182 4700
183 ],
184 "size": [
185 250,
186 604
187 ],
188 "flags": [],
189 "order": 0,
190 "mode": 0,
191 "inputs": [],
192 "outputs": [
193 {
194 "name": "image",
195 "type": "IMAGE",
196 "links": null
197 },
198 {
199 "name": "mask",
200 "type": "MASK",
201 "links": null
202 },
203 {
204 "name": "mesh_path",
205 "type": "STRING",
206 "links": null
207 },
208 {
209 "name": "normal",
210 "type": "IMAGE",
211 "links": null
212 },
213 {
214 "name": "camera_info",
215 "type": "LOAD3D_CAMERA",
216 "links": null
217 },
218 {
219 "name": "recording_video",
220 "type": "VIDEO",
221 "links": null
222 },
223 {
224 "name": "model_3d",
225 "type": "FILE_3D",
226 "links": [
227 499
228 ]
229 }
230 ],
231 "properties": {
232 "Resource Folder": "",
233 "cnr_id": "comfy-core",
234 "ver": "0.16.3",
235 "Node name for S&R": "Load3D",
236 "Camera Config": {
237 "cameraType": "perspective",
238 "fov": 75,
239 "state": {
240 "position": {
241 "x": 0.009412583987235252,
242 "y": 2.50006752429499,
243 "z": 7.580847294677782
244 },
245 "target": {
246 "x": 0,
247 "y": 2.5,
248 "z": 0
249 },
250 "zoom": 1,
251 "cameraType": "perspective"
252 }
253 },
254 "ue_properties": {
255 "widget_ue_connectable": [],
256 "version": "7.7",
257 "input_ue_unconnectable": []
258 }
259 },
260 "widgets_values": [
261 "toy.glb",
262 "upload3dmodel",
263 "uploadExtraResources",
264 "clear",
265 "",
266 1024,
267 1024
268 ]
269 },
270 {
271 "id": 263,
272 "type": "SaveGLB",
273 "pos": [
274 -930,
275 4700
276 ],
277 "size": [
278 340,
279 440
280 ],
281 "flags": [],
282 "order": 2,
283 "mode": 0,
284 "inputs": [
285 {
286 "name": "mesh",
287 "type": "MESH,FILE_3D_GLB,FILE_3D_GLTF,FILE_3D_OBJ,FILE_3D_FBX,FILE_3D_STL,FILE_3D_USDZ,FILE_3D",
288 "link": 500
289 }
290 ],
291 "outputs": [],
292 "properties": {
293 "cnr_id": "comfy-core",
294 "ver": "0.16.3",
295 "Camera Config": {
296 "cameraType": "perspective",
297 "fov": 75,
298 "state": {
299 "position": {
300 "x": -5.7606805545092294,
301 "y": 2.8299262839877164,
302 "z": 2.2223714909443135
303 },
304 "target": {
305 "x": 0,
306 "y": 2.5,
307 "z": 0
308 },
309 "zoom": 1,
310 "cameraType": "perspective"
311 }
312 },
313 "Scene Config": {
314 "showGrid": true,
315 "backgroundColor": "#282828",
316 "backgroundImage": "",
317 "backgroundRenderMode": "tiled"
318 },
319 "Light Config": {
320 "intensity": 3
321 },
322 "ue_properties": {
323 "widget_ue_connectable": [],
324 "version": "7.7",
325 "input_ue_unconnectable": []
326 }
327 },
328 "widgets_values": [
329 "model_retopo",
330 ""
331 ]
332 }
333 ],
334 "links": [
335 [
336 499,
337 265,
338 6,
339 262,
340 0,
341 "FILE_3D"
342 ],
343 [
344 500,
345 262,
346 0,
347 263,
348 0,
349 "FILE_3D_OBJ"
350 ],
351 [
352 504,
353 261,
354 0,
355 268,
356 0,
357 "FILE_3D_OBJ"
358 ],
359 [
360 508,
361 262,
362 0,
363 261,
364 0,
365 "FILE_3D_OBJ"
366 ]
367 ],
368 "groups": [
369 {
370 "id": 23,
371 "title": "HUNYUAN 3D RETOPO",
372 "bounding": [
373 -1610,
374 4610,
375 1050,
376 730
377 ],
378 "color": "#3f789e",
379 "font_size": 24,
380 "flags": []
381 },
382 {
383 "id": 24,
384 "title": "HUNYUAN 3D UV UNWRAP",
385 "bounding": [
386 -530,
387 4610,
388 720,
389 730
390 ],
391 "color": "#3f789e",
392 "font_size": 24,
393 "flags": []
394 }
395 ],
396 "config": [],
397 "extra": {
398 "ds": {
399 "scale": 0.5532408988457073,
400 "offset": [
401 1887.5020765817894,
402 -4034.969693769289
403 ]
404 },
405 "frontendVersion": "1.42.8",
406 "workflowRendererVersion": "LG",
407 "prompt": {
408 "1": {
409 "inputs": {
410 "ckpt_name": "ltx-av-step-1751000_vocoder_24K.safetensors"
411 },
412 "class_type": "CheckpointLoaderSimple",
413 "_meta": {
414 "title": "Load Checkpoint"
415 }
416 },
417 "2": {
418 "inputs": {
419 "gemma_path": "gemma-3-12b-it-qat-q4_0-unquantized_readout_proj/model/model.safetensors",
420 "ltxv_path": "ltx-av-step-1751000_vocoder_24K.safetensors",
421 "max_length": 1024
422 },
423 "class_type": "LTXVGemmaCLIPModelLoader",
424 "_meta": {
425 "title": "🅛🅣🅧 Gemma 3 Model Loader"
426 }
427 },
428 "3": {
429 "inputs": {
430 "text": "A medium close-up shot features a Caucasian man with a closely shaven head and face, wearing a black baseball cap with \"PNTR\" in white letters on the front, and a dark grey t-shirt with \"JUST DO IT\" visible across his chest. A small black microphone is clipped to his shirt collar. He is positioned slightly to the left of the frame, looking intently downwards and to his right, his eyes focused off-camera. His facial expression is one of deep concentration, with his brow slightly furrowed. As he looks down, a quick sniff sound is heard, and then he speaks with a deep male voice and a slightly frustrated tone, saying, \"I think it's so bad.\" The camera remains static throughout, maintaining a shallow depth of field, which keeps the man in sharp focus while the background is softly blurred, revealing a light-colored wall with white wooden shelving or trim, and a partially open white wooden door on the right. After a brief pause, another short, audible sniff is heard. The man then continues to speak, his voice maintaining the same quality, as he states, \"So bad. So bad.\" He elaborates further, emphasizing his point with a final statement, \"This got to be, it's got to be the worst tool I've ever seen.\"",
431 "clip": [
432 "2",
433 0
434 ]
435 },
436 "class_type": "CLIPTextEncode",
437 "_meta": {
438 "title": "CLIP Text Encode (Prompt)"
439 }
440 },
441 "4": {
442 "inputs": {
443 "text": "blurry, out of focus, overexposed, underexposed, low contrast, washed out colors, excessive noise, grainy texture, poor lighting, flickering, motion blur, distorted proportions, unnatural skin tones, deformed facial features, asymmetrical face, missing facial features, extra limbs, disfigured hands, wrong hand count, artifacts around text, unreadable text on shirt or hat, incorrect lettering on cap (“PNTR”), incorrect t-shirt slogan (“JUST DO IT”), missing microphone, misplaced microphone, inconsistent perspective, camera shake, incorrect depth of field, background too sharp, background clutter, distracting reflections, harsh shadows, inconsistent lighting direction, color banding, cartoonish rendering, 3D CGI look, unrealistic materials, uncanny valley effect, incorrect ethnicity, wrong gender, exaggerated expressions, smiling, laughing, exaggerated sadness, wrong gaze direction, eyes looking at camera, mismatched lip sync, silent or muted audio, distorted voice, robotic voice, echo, background noise, off-sync audio, missing sniff sounds, incorrect dialogue, added dialogue, repetitive speech, jittery movement, awkward pauses, incorrect timing, unnatural transitions, inconsistent framing, tilted camera, missing door or shelves, missing shallow depth of field, flat lighting, inconsistent tone, cinematic oversaturation, stylized filters, or AI artifacts.",
444 "clip": [
445 "2",
446 0
447 ]
448 },
449 "class_type": "CLIPTextEncode",
450 "_meta": {
451 "title": "CLIP Text Encode (Prompt)"
452 }
453 },
454 "8": {
455 "inputs": {
456 "sampler_name": "euler"
457 },
458 "class_type": "KSamplerSelect",
459 "_meta": {
460 "title": "KSamplerSelect"
461 }
462 },
463 "9": {
464 "inputs": {
465 "steps": 20,
466 "max_shift": 2.05,
467 "base_shift": 0.95,
468 "stretch": true,
469 "terminal": 0.1,
470 "latent": [
471 "28",
472 0
473 ]
474 },
475 "class_type": "LTXVScheduler",
476 "_meta": {
477 "title": "LTXVScheduler"
478 }
479 },
480 "11": {
481 "inputs": {
482 "noise_seed": 10
483 },
484 "class_type": "RandomNoise",
485 "_meta": {
486 "title": "RandomNoise"
487 }
488 },
489 "12": {
490 "inputs": {
491 "samples": [
492 "29",
493 0
494 ],
495 "vae": [
496 "1",
497 2
498 ]
499 },
500 "class_type": "VAEDecode",
501 "_meta": {
502 "title": "VAE Decode"
503 }
504 },
505 "13": {
506 "inputs": {
507 "ckpt_name": "ltx-av-step-1751000_vocoder_24K.safetensors"
508 },
509 "class_type": "LTXVAudioVAELoader",
510 "_meta": {
511 "title": "🅛🅣🅧 LTXV Audio VAE Loader"
512 }
513 },
514 "14": {
515 "inputs": {
516 "samples": [
517 "29",
518 1
519 ],
520 "audio_vae": [
521 "13",
522 0
523 ]
524 },
525 "class_type": "LTXVAudioVAEDecode",
526 "_meta": {
527 "title": "🅛🅣🅧 LTXV Audio VAE Decode"
528 }
529 },
530 "15": {
531 "inputs": {
532 "frame_rate": [
533 "23",
534 0
535 ],
536 "loop_count": 0,
537 "filename_prefix": "AnimateDiff",
538 "format": "video/h264-mp4",
539 "pix_fmt": "yuv420p",
540 "crf": 19,
541 "save_metadata": true,
542 "trim_to_audio": false,
543 "pingpong": false,
544 "save_output": true,
545 "images": [
546 "12",
547 0
548 ],
549 "audio": [
550 "14",
551 0
552 ]
553 },
554 "class_type": "VHS_VideoCombine",
555 "_meta": {
556 "title": "Video Combine 🎥🅥🅗🅢"
557 }
558 },
559 "17": {
560 "inputs": {
561 "skip_blocks": "29",
562 "model": [
563 "28",
564 1
565 ],
566 "positive": [
567 "22",
568 0
569 ],
570 "negative": [
571 "22",
572 1
573 ],
574 "parameters": [
575 "18",
576 0
577 ]
578 },
579 "class_type": "MultimodalGuider",
580 "_meta": {
581 "title": "🅛🅣🅧 Multimodal Guider"
582 }
583 },
584 "18": {
585 "inputs": {
586 "modality": "VIDEO",
587 "cfg": 3,
588 "stg": 0,
589 "rescale": 0,
590 "modality_scale": 3,
591 "parameters": [
592 "19",
593 0
594 ]
595 },
596 "class_type": "GuiderParameters",
597 "_meta": {
598 "title": "🅛🅣🅧 Guider Parameters"
599 }
600 },
601 "19": {
602 "inputs": {
603 "modality": "AUDIO",
604 "cfg": 7,
605 "stg": 0,
606 "rescale": 0,
607 "modality_scale": 3
608 },
609 "class_type": "GuiderParameters",
610 "_meta": {
611 "title": "🅛🅣🅧 Guider Parameters"
612 }
613 },
614 "21": {
615 "inputs": {
616 "audioUI": "",
617 "audio": [
618 "14",
619 0
620 ]
621 },
622 "class_type": "PreviewAudio",
623 "_meta": {
624 "title": "PreviewAudio"
625 }
626 },
627 "22": {
628 "inputs": {
629 "frame_rate": [
630 "23",
631 0
632 ],
633 "positive": [
634 "3",
635 0
636 ],
637 "negative": [
638 "4",
639 0
640 ]
641 },
642 "class_type": "LTXVConditioning",
643 "_meta": {
644 "title": "LTXVConditioning"
645 }
646 },
647 "23": {
648 "inputs": {
649 "value": 25
650 },
651 "class_type": "FloatConstant",
652 "_meta": {
653 "title": "Float Constant"
654 }
655 },
656 "26": {
657 "inputs": {
658 "frames_number": [
659 "27",
660 0
661 ],
662 "frame_rate": [
663 "42",
664 0
665 ],
666 "batch_size": 1
667 },
668 "class_type": "LTXVEmptyLatentAudio",
669 "_meta": {
670 "title": "🅛🅣🅧 LTXV Empty Latent Audio"
671 }
672 },
673 "27": {
674 "inputs": {
675 "value": 105
676 },
677 "class_type": "INTConstant",
678 "_meta": {
679 "title": "INT Constant"
680 }
681 },
682 "28": {
683 "inputs": {
684 "video_latent": [
685 "43",
686 0
687 ],
688 "audio_latent": [
689 "26",
690 0
691 ],
692 "model": [
693 "44",
694 0
695 ]
696 },
697 "class_type": "LTXVConcatAVLatent",
698 "_meta": {
699 "title": "🅛🅣🅧 LTXV Concat AV Latent"
700 }
701 },
702 "29": {
703 "inputs": {
704 "av_latent": [
705 "41",
706 0
707 ],
708 "model": [
709 "28",
710 1
711 ]
712 },
713 "class_type": "LTXVSeparateAVLatent",
714 "_meta": {
715 "title": "🅛🅣🅧 LTXV Separate AV Latent"
716 }
717 },
718 "41": {
719 "inputs": {
720 "noise": [
721 "11",
722 0
723 ],
724 "guider": [
725 "17",
726 0
727 ],
728 "sampler": [
729 "8",
730 0
731 ],
732 "sigmas": [
733 "9",
734 0
735 ],
736 "latent_image": [
737 "28",
738 0
739 ]
740 },
741 "class_type": "SamplerCustomAdvanced",
742 "_meta": {
743 "title": "SamplerCustomAdvanced"
744 }
745 },
746 "42": {
747 "inputs": {
748 "a": [
749 "23",
750 0
751 ]
752 },
753 "class_type": "CM_FloatToInt",
754 "_meta": {
755 "title": "FloatToInt"
756 }
757 },
758 "43": {
759 "inputs": {
760 "width": 768,
761 "height": 512,
762 "length": [
763 "27",
764 0
765 ],
766 "batch_size": 1
767 },
768 "class_type": "EmptyLTXVLatentVideo",
769 "_meta": {
770 "title": "EmptyLTXVLatentVideo"
771 }
772 },
773 "44": {
774 "inputs": {
775 "torch_compile": true,
776 "disable_backup": false,
777 "model": [
778 "1",
779 0
780 ]
781 },
782 "class_type": "LTXVSequenceParallelMultiGPUPatcher",
783 "_meta": {
784 "title": "LTXVSequenceParallelMultiGPUPatcher"
785 }
786 },
787 "45": {
788 "inputs": {
789 "frame_idx": 0,
790 "strength": 1
791 },
792 "class_type": "LTXVAddGuide",
793 "_meta": {
794 "title": "LTXVAddGuide"
795 }
796 }
797 },
798 "comfy_fork_version": "feature/av_inference@a6994ed1",
799 "VHS_latentpreview": false,
800 "VHS_latentpreviewrate": 0,
801 "VHS_MetadataImage": true,
802 "VHS_KeepIntermediate": true,
803 "ue_links": [],
804 "links_added_by_ue": []
805 },
806 "version": 0.4
807}