@@ -102,8 +102,9 @@ def define_schema(cls):
102102 IO .Int .Input ("model_seed" , default = 42 , optional = True ),
103103 IO .Int .Input ("texture_seed" , default = 42 , optional = True ),
104104 IO .Combo .Input ("texture_quality" , default = "standard" , options = ["standard" , "detailed" ], optional = True ),
105- IO .Int .Input ("face_limit" , default = - 1 , min = - 1 , max = 500000 , optional = True ),
105+ IO .Int .Input ("face_limit" , default = - 1 , min = - 1 , max = 2000000 , optional = True ),
106106 IO .Boolean .Input ("quad" , default = False , optional = True ),
107+ IO .Combo .Input ("geometry_quality" , default = "standard" , options = ["standard" , "detailed" ], optional = True ),
107108 ],
108109 outputs = [
109110 IO .String .Output (display_name = "model_file" ),
@@ -131,6 +132,7 @@ async def execute(
131132 model_seed : Optional [int ] = None ,
132133 texture_seed : Optional [int ] = None ,
133134 texture_quality : Optional [str ] = None ,
135+ geometry_quality : Optional [str ] = None ,
134136 face_limit : Optional [int ] = None ,
135137 quad : Optional [bool ] = None ,
136138 ) -> IO .NodeOutput :
@@ -154,6 +156,7 @@ async def execute(
154156 texture_seed = texture_seed ,
155157 texture_quality = texture_quality ,
156158 face_limit = face_limit ,
159+ geometry_quality = geometry_quality ,
157160 auto_size = True ,
158161 quad = quad ,
159162 ),
@@ -194,6 +197,7 @@ def define_schema(cls):
194197 ),
195198 IO .Int .Input ("face_limit" , default = - 1 , min = - 1 , max = 500000 , optional = True ),
196199 IO .Boolean .Input ("quad" , default = False , optional = True ),
200+ IO .Combo .Input ("geometry_quality" , default = "standard" , options = ["standard" , "detailed" ], optional = True ),
197201 ],
198202 outputs = [
199203 IO .String .Output (display_name = "model_file" ),
@@ -220,6 +224,7 @@ async def execute(
220224 orientation = None ,
221225 texture_seed : Optional [int ] = None ,
222226 texture_quality : Optional [str ] = None ,
227+ geometry_quality : Optional [str ] = None ,
223228 texture_alignment : Optional [str ] = None ,
224229 face_limit : Optional [int ] = None ,
225230 quad : Optional [bool ] = None ,
@@ -246,6 +251,7 @@ async def execute(
246251 pbr = pbr ,
247252 model_seed = model_seed ,
248253 orientation = orientation ,
254+ geometry_quality = geometry_quality ,
249255 texture_alignment = texture_alignment ,
250256 texture_seed = texture_seed ,
251257 texture_quality = texture_quality ,
@@ -295,6 +301,7 @@ def define_schema(cls):
295301 ),
296302 IO .Int .Input ("face_limit" , default = - 1 , min = - 1 , max = 500000 , optional = True ),
297303 IO .Boolean .Input ("quad" , default = False , optional = True ),
304+ IO .Combo .Input ("geometry_quality" , default = "standard" , options = ["standard" , "detailed" ], optional = True ),
298305 ],
299306 outputs = [
300307 IO .String .Output (display_name = "model_file" ),
@@ -323,6 +330,7 @@ async def execute(
323330 model_seed : Optional [int ] = None ,
324331 texture_seed : Optional [int ] = None ,
325332 texture_quality : Optional [str ] = None ,
333+ geometry_quality : Optional [str ] = None ,
326334 texture_alignment : Optional [str ] = None ,
327335 face_limit : Optional [int ] = None ,
328336 quad : Optional [bool ] = None ,
@@ -359,6 +367,7 @@ async def execute(
359367 model_seed = model_seed ,
360368 texture_seed = texture_seed ,
361369 texture_quality = texture_quality ,
370+ geometry_quality = geometry_quality ,
362371 texture_alignment = texture_alignment ,
363372 face_limit = face_limit ,
364373 quad = quad ,
@@ -508,13 +517,20 @@ def define_schema(cls):
508517 options = [
509518 "preset:idle" ,
510519 "preset:walk" ,
520+ "preset:run" ,
521+ "preset:dive" ,
511522 "preset:climb" ,
512523 "preset:jump" ,
513524 "preset:slash" ,
514525 "preset:shoot" ,
515526 "preset:hurt" ,
516527 "preset:fall" ,
517528 "preset:turn" ,
529+ "preset:quadruped:walk" ,
530+ "preset:hexapod:walk" ,
531+ "preset:octopod:walk" ,
532+ "preset:serpentine:march" ,
533+ "preset:aquatic:march"
518534 ],
519535 ),
520536 ],
@@ -563,7 +579,7 @@ def define_schema(cls):
563579 "face_limit" ,
564580 default = - 1 ,
565581 min = - 1 ,
566- max = 500000 ,
582+ max = 2000000 ,
567583 optional = True ,
568584 ),
569585 IO .Int .Input (
@@ -579,6 +595,40 @@ def define_schema(cls):
579595 default = "JPEG" ,
580596 optional = True ,
581597 ),
598+ IO .Boolean .Input ("force_symmetry" , default = False , optional = True ),
599+ IO .Boolean .Input ("flatten_bottom" , default = False , optional = True ),
600+ IO .Float .Input (
601+ "flatten_bottom_threshold" ,
602+ default = 0.0 ,
603+ min = 0.0 ,
604+ max = 1.0 ,
605+ optional = True ,
606+ ),
607+ IO .Boolean .Input ("pivot_to_center_bottom" , default = False , optional = True ),
608+ IO .Float .Input (
609+ "scale_factor" ,
610+ default = 1.0 ,
611+ min = 0.0 ,
612+ optional = True ,
613+ ),
614+ IO .Boolean .Input ("with_animation" , default = False , optional = True ),
615+ IO .Boolean .Input ("pack_uv" , default = False , optional = True ),
616+ IO .Boolean .Input ("bake" , default = False , optional = True ),
617+ IO .String .Input ("part_names" , default = "" , optional = True ), # comma-separated list
618+ IO .Combo .Input (
619+ "fbx_preset" ,
620+ options = ["blender" , "mixamo" , "3dsmax" ],
621+ default = "blender" ,
622+ optional = True ,
623+ ),
624+ IO .Boolean .Input ("export_vertex_colors" , default = False , optional = True ),
625+ IO .Combo .Input (
626+ "export_orientation" ,
627+ options = ["align_image" , "default" ],
628+ default = "default" ,
629+ optional = True ,
630+ ),
631+ IO .Boolean .Input ("animate_in_place" , default = False , optional = True ),
582632 ],
583633 outputs = [],
584634 hidden = [
@@ -604,12 +654,31 @@ async def execute(
604654 original_model_task_id ,
605655 format : str ,
606656 quad : bool ,
657+ force_symmetry : bool ,
607658 face_limit : int ,
659+ flatten_bottom : bool ,
660+ flatten_bottom_threshold : float ,
608661 texture_size : int ,
609662 texture_format : str ,
663+ pivot_to_center_bottom : bool ,
664+ scale_factor : float ,
665+ with_animation : bool ,
666+ pack_uv : bool ,
667+ bake : bool ,
668+ part_names : str ,
669+ fbx_preset : str ,
670+ export_vertex_colors : bool ,
671+ export_orientation : str ,
672+ animate_in_place : bool ,
610673 ) -> IO .NodeOutput :
611674 if not original_model_task_id :
612675 raise RuntimeError ("original_model_task_id is required" )
676+
677+ # Parse part_names from comma-separated string to list
678+ part_names_list = None
679+ if part_names and part_names .strip ():
680+ part_names_list = [name .strip () for name in part_names .split (',' ) if name .strip ()]
681+
613682 response = await sync_op (
614683 cls ,
615684 endpoint = ApiEndpoint (path = "/proxy/tripo/v2/openapi/task" , method = "POST" ),
@@ -618,9 +687,22 @@ async def execute(
618687 original_model_task_id = original_model_task_id ,
619688 format = format ,
620689 quad = quad if quad else None ,
690+ force_symmetry = force_symmetry if force_symmetry else None ,
621691 face_limit = face_limit if face_limit != - 1 else None ,
692+ flatten_bottom = flatten_bottom if flatten_bottom else None ,
693+ flatten_bottom_threshold = flatten_bottom_threshold if flatten_bottom_threshold != 0.0 else None ,
622694 texture_size = texture_size if texture_size != 4096 else None ,
623695 texture_format = texture_format if texture_format != "JPEG" else None ,
696+ pivot_to_center_bottom = pivot_to_center_bottom if pivot_to_center_bottom else None ,
697+ scale_factor = scale_factor if scale_factor != 1.0 else None ,
698+ with_animation = with_animation if with_animation else None ,
699+ pack_uv = pack_uv if pack_uv else None ,
700+ bake = bake if bake else None ,
701+ part_names = part_names_list ,
702+ fbx_preset = fbx_preset if fbx_preset != "blender" else None ,
703+ export_vertex_colors = export_vertex_colors if export_vertex_colors else None ,
704+ export_orientation = export_orientation if export_orientation != "default" else None ,
705+ animate_in_place = animate_in_place if animate_in_place else None ,
624706 ),
625707 )
626708 return await poll_until_finished (cls , response , average_duration = 30 )
0 commit comments