
    +j;                     >   d dl mZ d dlmZ d dlmZmZmZ  G d dee          Z	 G d dee          Z
 G d d	ee          Z G d
 dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d dee          Z G d  d!e          Z G d" d#e          Z G d$ d%e          Z G d& d'e          Z G d( d)e          Z G d* d+e          Z G d, d-e          Z G d. d/e          Z G d0 d1e          Z G d2 d3e          Z  G d4 d5e          Z! G d6 d7e          Z" G d8 d9e          Z# G d: d;e          Z$ G d< d=e          Z% G d> d?e%          Z& G d@ dAe%          Z' G dB dCe%          Z( G dD dEe          Z) G dF dGe          Z* G dH dIe          Z+ G dJ dKe          Z,dLS )M    )Enum)Any)	BaseModelField	RootModelc                   "    e Zd ZdZdZdZdZdZdS )TripoModelVersionzv3.1-20260211zv3.0-20250812zv2.5-20250123zv2.0-20240919zv1.4-20240625N)__name__
__module____qualname__v3_1_20260211v3_0_20250812v2_5_20250123v2_0_20240919v1_4_20240625     :/home/wildlama/comfy/ComfyUI/comfy_api_nodes/apis/tripo.pyr	   r	      s'        #M#M#M#M#MMMr   r	   c                       e Zd ZdZdZdS )TripoGeometryQualitystandarddetailedNr
   r   r   r   r   r   r   r   r   r              HHHHr   r   c                       e Zd ZdZdZdS )TripoTextureQualityr   r   Nr   r   r   r   r   r      r   r   r   c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )
TripoStylezperson:person2cartoonzanimal:venomzobject:clayzobject:steampunkzobject:christmaszobject:barbiegoldancient_bronzeNoneN)r
   r   r   PERSON_TO_CARTOONANIMAL_VENOMOBJECT_CLAYOBJECT_STEAMPUNKOBJECT_CHRISTMASOBJECT_BARBIEGOLDANCIENT_BRONZENONEr   r   r   r   r      s>        /!LK))#MD%NDDDr   r   c                   6    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )TripoTaskTypetext_to_modelimage_to_modelmultiview_to_modeltexture_modelrefine_modelanimate_prerigcheckanimate_riganimate_retargetstylize_modelconvert_modelN)r
   r   r   TEXT_TO_MODELIMAGE_TO_MODELMULTIVIEW_TO_MODELTEXTURE_MODELREFINE_MODELANIMATE_PRERIGCHECKANIMATE_RIGANIMATE_RETARGETSTYLIZE_MODELCONVERT_MODELr   r   r   r,   r,   %   sC        #M%N-#M!L/K)#M#MMMr   r,   c                       e Zd ZdZdZdS )TripoTextureAlignmentoriginal_imagegeometryN)r
   r   r   ORIGINAL_IMAGEGEOMETRYr   r   r   rB   rB   2   s        %NHHHr   rB   c                       e Zd ZdZdZdS )TripoOrientationalign_imagedefaultN)r
   r   r   ALIGN_IMAGEDEFAULTr   r   r   rH   rH   7   s        KGGGr   rH   c                       e Zd ZdZdZdS )TripoOutFormatglbfbxN)r
   r   r   GLBFBXr   r   r   rN   rN   <   s        
C
CCCr   rN   c                       e Zd ZdZdZdS )	TripoSpecmixamotripoN)r
   r   r   MIXAMOTRIPOr   r   r   rT   rT   A   s        FEEEr   rT   c                   N    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdS )TripoAnimationzpreset:idlezpreset:walkz
preset:runzpreset:divezpreset:climbzpreset:jumpzpreset:slashzpreset:shootzpreset:hurtzpreset:fallzpreset:turnzpreset:quadruped:walkzpreset:hexapod:walkzpreset:octopod:walkzpreset:serpentine:marchzpreset:aquatic:marchN)r
   r   r   IDLEWALKRUNDIVECLIMBJUMPSLASHSHOOTHURTFALLTURNQUADRUPED_WALKHEXAPOD_WALKOCTOPOD_WALKSERPENTINE_MARCHAQUATIC_MARCHr   r   r   rZ   rZ   F   s_        DD
CDEDEEDDD,N(L(L0*MMMr   rZ   c                   &    e Zd ZdZdZdZdZdZdZdS )TripoConvertFormatGLTFUSDZrR   OBJSTL3MFN)	r
   r   r   rm   rn   rR   ro   rp   _3MFr   r   r   rl   rl   Y   s,        DD
C
C
CDDDr   rl   c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )TripoTextureFormatBMPDPXHDRJPEGOPEN_EXRPNGTARGATIFFWEBPN)r
   r   r   ru   rv   rw   rx   ry   rz   r{   r|   r}   r   r   r   rt   rt   b   s;        
C
C
CDH
CEDDDDr   rt   c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
TripoTaskStatusqueuedrunningsuccessfailed	cancelledunknownbannedexpiredN)r
   r   r   QUEUEDRUNNINGSUCCESSFAILED	CANCELLEDUNKNOWNBANNEDEXPIREDr   r   r   r   r   n   s6        FGGFIGFGGGr   r   c                       e Zd ZdZdZdZdS )TripoFbxPresetblenderrU   3dsmaxN)r
   r   r   BLENDERrW   _3DSMAXr   r   r   r   r   y   s        GFGGGr   r   c                   D    e Zd ZU  edd          Zedz  ed<   eed<   dS )TripoFileTokenReferenceNThe type of the referencedescriptiontype
file_tokenr
   r   r   r   r   str__annotations__r   r   r   r   r      s=         uT/JKKKD#*KKKOOOOOr   r   c                   D    e Zd ZU  edd          Zedz  ed<   eed<   dS )TripoUrlReferenceNr   r   r   urlr   r   r   r   r   r      s=         uT/JKKKD#*KKK	HHHHHr   r   c                   $    e Zd ZU eed<   eed<   dS )TripoObjectStoragebucketkeyN)r
   r   r   r   r   r   r   r   r   r      s"         KKK	HHHHHr   r   c                   $    e Zd ZU eed<   eed<   dS )TripoObjectReferencer   objectN)r
   r   r   r   r   r   r   r   r   r   r      s'         
IIIr   r   c                       e Zd ZdS )TripoFileEmptyReferenceN)r
   r   r   r   r   r   r   r      s        Dr   r   c                   ,    e Zd ZU eez  ez  ez  ed<   dS )TripoFileReferencerootN)r
   r   r   r   r   r   r   r   r   r   r   r   r      s0         
!$5
58L
LOf
ffffffr   r   c                   N   e Zd ZU  eej        d          Zeed<    eddd          Ze	ed<    ed	d
d          Z
e	d	z  ed<   ej        Zed	z  ed<    ed	d          Zed	z  ed<    edd          Zed	z  ed<    edd          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<   ej        Zed	z  ed<   ej        Zed	z  ed<   d	Zed	z  ed<    edd          Zed	z  ed<    edd           Zed	z  ed!<   d	S )"TripoTextToModelRequestType of taskr   r   .z0The text prompt describing the model to generate   )r   
max_lengthpromptNzThe negative text promptnegative_promptmodel_version.The number of faces to limit the generation to
face_limitT/Whether to apply texture to the generated modeltexture+Whether to apply PBR to the generated modelpbrzThe seed for the text
image_seedThe seed for the model
model_seedThe seed for the texturetexture_seedtexture_qualitygeometry_qualitystyleFWhether to auto-size the model	auto_size,Whether to apply quad to the generated modelquad)r
   r   r   r   r,   r7   r   r   r   r   r   r	   r   r   r   intr   boolr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s        % ;XXXD-XXX%)[hlmmmFCmmm"'%:Tae"f"f"fOS4Zfff.?.MM$t+MMM"U45efffJd
fff 53deeeGTD[eeeuT/\]]]C]]]"U45LMMMJd
MMM"U45MNNNJd
NNN$uT7QRRRL#*RRR2E2NO(4/NNN4H4Q*T1QQQ#E:###"U56VWWWItd{WWWe1_```D$+`````r   r   c                   j   e Zd ZU  eej        d          Zeed<    edd          Ze	ed<    edd          Z
edz  ed	<    edd
          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<   ej        Zedz  ed<   ej        Zedz  ed<    eej        d          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<   ej        Z edz  ed<    edd          Z!edz  ed <   dS )!TripoImageToModelRequestr   r   r   .z(The file reference to convert to a modelfileN'The model version to use for generationr   r   r   Tr   r   r   r   r   r   r   r   r   r   The texture alignment methodtexture_alignmentz)The style to apply to the generated modelr   Fr   r   orientationr   r   )"r
   r   r   r   r,   r8   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   rB   rE   r   r   r   r   rH   rL   r   r   r   r   r   r   r      s!        % <.YYYD-YYY$uS6`aaaD
aaa.3eDFo.p.p.pM$t+ppp"U45efffJd
fff 53deeeGTD[eeeuT/\]]]C]]]"U45MNNNJd
NNN$uT7QRRRL#*RRR2E2NO(4/NNN4H4Q*T1QQQ6;e,:X7 7 7,t3     %uT7bcccE:ccc"U56VWWWItd{WWW+;+CK!D(CCCe1_```D$+`````r   r   c                   `   e Zd ZU ej        Zeed<    edd          Ze	e
         ed<    edd          Zedz  ed<    ed	d
          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<   ej        Zedz  ed<   ej        Zedz  ed<   ej        Zedz  ed<    ed	d          Zedz  ed<    eej        d          Z edz  ed<    ed	d          Z!edz  ed<   dS ) TripoMultiviewToModelRequestr   .z)The file references to convert to a modelr   filesNr   r   Fz&Whether to use orthographic projectionorthographic_projectionr   r   Tr   r   r   r   r   r   r   r   r   r   r   r   r   zThe orientation for the modelr   r   r   )"r
   r   r   r,   r9   r   r   r   r   listr   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   rE   r   r   rH   rL   r   r   r   r   r   r   r      s	        ':D-:::&+eC=h&i&i&iE4"#iii.3eDFo.p.p.pM$t+ppp+05Dl+m+m+mTD[mmm"U45efffJd
fff 53deeeGTD[eeeuT/\]]]C]]]"U45MNNNJd
NNN$uT7QRRRL#*RRR2E2NO(4/NNN4H4Q*T1QQQ6K6Z,t3ZZZ"U56VWWWItd{WWW+051A1IWv+w+w+wK!D(wwwe1_```D$+`````r   r   c                   h   e Zd ZU  eej        d          Zeed<    edd          Ze	ed<    edd          Z
ed	z  ed
<    edd          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    eej        d          Zed	z  ed<   d	S )TripoTextureModelRequestr   r   r   .!The task ID of the original modeloriginal_model_task_idTz%Whether to apply texture to the modelNr   z!Whether to apply PBR to the modelr   r   r   r   r   zThe quality of the texturer   r   r   )r
   r   r   r   r,   r:   r   r   r   r   r   r   r   r   r   r   r   r   rB   rE   r   r   r   r   r   r      sF        % ;XXXD-XXX"'%9\"]"]"]C]]] 53Z[[[GTD[[[[uT/RSSSCSSS"U45MNNNJd
NNN$uT7QRRRL#*RRR27%Jf2g2g2gO(4/ggg6;e,:X7 7 7,t3     r   r   c                   b    e Zd ZU  eej        d          Zeed<    edd          Ze	ed<   dS )TripoRefineModelRequestr   r   r   .zThe task ID of the draft modeldraft_model_task_idN)
r
   r   r   r   r,   r;   r   r   r   r   r   r   r   r   r      sU         % :WWWD-WWW$uS6VWWWWWWWWr   r   c                       e Zd ZU  eej        d          Zeed<    edd          Ze	ed<    ee
j        d          Ze
dz  ed	<    eej        d
          Zedz  ed<   dS )TripoAnimateRigRequestr   r   r   .r   r   The output formatN
out_formatzThe specification for riggingspec)r
   r   r   r   r,   r=   r   r   r   r   rN   rQ   r   rT   rX   r   r   r   r   r   r      s         % 9~VVVD-VVV"'%9\"]"]"]C]]](-n.@Na(b(b(bJ%bbb"U9?@_```D)d
`````r   r   c                       e Zd ZU  eej        d          Zeed<    edd          Ze	ed<    edd          Z
eed<    eej        d	          Zed
z  ed<    edd          Zed
z  ed<   d
S )TripoAnimateRetargetRequestr   r   r   .r   r   zThe animation to apply	animationr   Nr   TzWhether to bake the animationbake_animation)r
   r   r   r   r,   r>   r   r   r   r   r   rZ   rN   rQ   r   r   r   r   r   r   r   r      s         % >N[[[D-[[["'%9\"]"]"]C]]] %c7O P P PI~PPP(-n.@Na(b(b(bJ%bbb"'%:Y"Z"Z"ZND4KZZZZZr   r   c                   f   e Zd ZU  eej        d          Zeed<    edd          Ze	ed<    edd          Z
eed<    ed	d
          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    eej        d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d          Zed	z  ed<    ed	d           Zed	z  ed!<    ed	d"          Zee         d	z  ed#<    ed	d$          Ze d	z  ed%<    ed	d&          Z!ed	z  ed'<    ed	d(          Z"e#d	z  ed)<    ed	d*          Z$ed	z  ed+<   d	S ),TripoConvertModelRequestr   r   r   .zThe format to convert toformatr   r   Nz"Whether to apply quad to the modelr   zWhether to force symmetryforce_symmetryz.The number of faces to limit the conversion tor   z*Whether to flatten the bottom of the modelflatten_bottomz'The threshold for flattening the bottomflatten_bottom_thresholdzThe size of the texturetexture_sizezThe format of the texturetexture_formatz%Whether to pivot to the center bottompivot_to_center_bottomzThe scale factor for the modelscale_factorzWhether to include animationswith_animationzWhether to pack the UVspack_uvzWhether to bake the modelbakez!The names of the parts to include
part_nameszThe preset for the FBX export
fbx_presetz#Whether to export the vertex colorsexport_vertex_colorszThe orientation for the exportexport_orientationzWhether to animate in placeanimate_in_place)%r
   r   r   r   r,   r@   r   r   r   rl   r   r   r   r   r   r   r   r   r   floatr   rt   rx   r   r   r   r   r   r   r   r   r   r   r   r   rH   r   r   r   r   r   r      s        % ;XXXD-XXX!&s8R!S!S!SFSSS"'%9\"]"]"]C]]]d0TUUUD$+UUU"'%:U"V"V"VND4KVVV"U45efffJd
fff"'%:f"g"g"gND4Kggg-2U4En-o-o-oedlooo$uT7PQQQL#*QQQ056H6M[v0w0w0wN&-www*/%Bi*j*j*jD4Kjjj!&t9Y!Z!Z!ZL%$,ZZZ"'%:Y"Z"Z"ZND4KZZZ 53LMMMGTD[MMMd0KLLLD$+LLL#(5;^#_#_#_JS	D ___(-d@_(`(`(`J%```(-d@e(f(f(f$+fff27%Jj2k2k2k(4/kkk$)E$<Y$Z$Z$ZdTkZZZZZr   r   c                      e Zd ZU dZ ed          Zeed<    edd          Ze	dz  ed<    eddd	d
          Z
e	dz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Ze	dz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<   dS )TripoP1CommonRequestz4Fields supported by Tripo P1 across all input types.zP1-20260311r   Nz#Random seed for geometry generationr   r   0   i N  zTarget face count (48-20000))geler   r   z+Enable texturing; pbr=True forces this truer   z3Enable PBR maps; when true, texture is also enabledr   z"Random seed for texture generationr   z"standard" or "detailed"r   zScale to real-world metersr   zOnly "geometry" is supportedcompressz'Perform UV unwrapping during generation	export_uv)r
   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     sz        >>}--M3---"U45Z[[[Jd
[[["U4B5FdeeeJd
eee 53`aaaGTD[aaauT/deeeCeee$uT7[\\\L#*\\\"'%:T"U"U"UOS4ZUUU"U45QRRRItd{RRR 53QRRRHcDjRRR"U45^___Itd{_____r   r   c                       e Zd ZU dZeed<    edd          Zeed<    edd          Zedz  ed	<   dZ	e
dz  ed
<   dS )TripoP1TextToModelRequestr-   r   .r   )r   r   N   r   r   )r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r    sx         D#%---FC---"'%"="="=OS4Z===!Jd
!!!!!r   r  c                       e Zd ZU dZeed<   eed<   dZedz  ed<    e	dd          Z
edz  ed<    e	dd	          Zedz  ed
<   dS )TripoP1ImageToModelRequestr.   r   r   Nenable_image_autofixz"original_image" or "geometry"r   r   z."default" or "align_image"; needs texture=truer   )r
   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r  r  !  s          D#   
(,$+,,,$)E$<\$]$]$]sTz]]]#eD6fgggKtgggggr   r  c                   `    e Zd ZU dZdZeed<   ee         ed<   dZ	edz  ed<   dZ
edz  ed<   dS )TripoP1MultiviewToModelRequestzP1 multiview generation.

    Tripo requires `files` to be exactly four entries in [front, left, back, right] order with `{}`
    (TripoFileEmptyReference) for omitted slots; front is required and at least two images total must be provided.
    r/   r   r   Nr   r   )r
   r   r   r  r   r   r   r   r   r   r   r   r   r   r	  r	  )  si           %D#$$$"####$(sTz((("Kt"""""r   r	  c                       e Zd ZU  edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd	          Z	edz  ed
<    edd          Z
edz  ed<   dS )TripoTaskOutputNzURL to the modelr   modelzURL to the base model
base_modelzURL to the PBR model	pbr_modelzURL to the rendered imagerendered_imagezWhether the model is riggableriggable)r
   r   r   r   r  r   r   r  r  r  r  r   r   r   r   r  r  6  s         d0BCCCE3:CCC"U45LMMMJd
MMM!E$4JKKKIsTzKKK!&t9T!U!U!UNC$JUUU!E$4STTTHdTkTTTTTr   r  c                      e Zd ZU  edd          Zeed<    edd          Zedz  ed<    edd          Ze	dz  ed	<    edd
          Z
eeef         dz  ed<    edd          Zedz  ed<    edddd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    edd          Zedz  ed<    ed          Zedz  ed<   dS )	TripoTask.zThe task IDr   task_idNzThe type of taskr   zThe status of the taskstatusz!The input parameters for the taskinputzThe output of the taskoutputzThe progress of the taskr   d   )r   r   r   progresszThe creation time of the taskcreate_timez$The estimated time left for the taskrunning_left_timezThe position in the queuequeue_positionconsumed_credit)r
   r   r   r   r  r   r   r   r  r   r  dictr   r  r  r  r   r  r  r  r  r   r   r   r  r  >  s        5-888GS888uT/ABBBD#*BBB%*U4=U%V%V%VFOd"VVV#(5;^#_#_#_E4S>D ___%*U4=U%V%V%VFOd"VVV 53MRSX[\\\HcDj\\\#eD6UVVVKtVVV$)E$<b$c$c$csTzccc!&t9T!U!U!UNC$JUUU"'%++OS4Z-----r   r  c                   X    e Zd ZU  edd          Zeed<    edd          Zeed<   dS )	TripoTaskResponser   zThe response coder   code.zThe task datadataN)	r
   r   r   r   r   r   r   r!  r  r   r   r   r  r  K  sQ         a%8999D#999eC_===D)=====r   r  c                   |    e Zd ZU  edd          Zeed<    edd          Zeed<    edd          Z	eed<   d	S )
TripoErrorResponse.zThe error coder   r   zThe error messagemessagez#The suggestion for fixing the error
suggestionN)
r
   r   r   r   r   r   r   r$  r   r%  r   r   r   r#  r#  P  sr         c'7888D#8885*=>>>GS>>>eC-RSSSJSSSSSr   r#  N)-enumr   typingr   pydanticr   r   r   r   r	   r   r   r   r,   rB   rH   rN   rT   rZ   rl   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r#  r   r   r   <module>r)     s               0 0 0 0 0 0 0 0 0 0$ $ $ $ $T $ $ $    3   
    #t   
	 	 	 	 	d 	 	 	
$ 
$ 
$ 
$ 
$C 
$ 
$ 
$    C   
    sD   
    S$   
    T   
+ + + + +S$ + + +&    d   	 	 	 	 	d 	 	 	    c4       S$       i   
    	   
       
    9   
	 	 	 	 	i 	 	 	g g g g g g g ga a a a ai a a a$a a a a ay a a a(a a a a a9 a a a$
 
 
 
 
y 
 
 
X X X X Xi X X X
a a a a aY a a a[ [ [ [ [) [ [ [[ [ [ [ [y [ [ [.` ` ` ` `9 ` ` `" " " " " 4 " " "h h h h h!5 h h h
# 
# 
# 
# 
#%9 
# 
# 
#U U U U Ui U U U
. 
. 
. 
. 
.	 
. 
. 
.> > > > >	 > > >
T T T T T T T T T Tr   