
    +jg                        S SK Jr  S SKJrJrJr  S SKJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJr  S SKJrJrJrJrJrJr   " S S\R6                  5      r " S S\R6                  5      r " S	 S
\R6                  5      r " S S\R6                  5      r " S S\R6                  5      r  " S S\R6                  5      r! " S S\R6                  5      r" " S S\5      r#S\#4S jr$g)    )override)IOComfyExtensionInput)InputShouldRemeshInputShouldTextureMeshyAnimationRequestMeshyAnimationResultMeshyImageToModelRequestMeshyModelResultMeshyMultiImageToModelRequestMeshyRefineTaskMeshyRiggedResultMeshyRiggingRequestMeshyTaskResponseMeshyTextToModelRequestMeshyTextureRequest)ApiEndpointdownload_url_to_file_3dpoll_opsync_opupload_images_to_comfyapivalidate_stringc                   l    \ rS rSr\S 5       r\S\S\S\S\S\S\S	\S
\	R                  4S j5       rSrg)MeshyTextToModelNode   c                    [         R                  " SSS[         R                  R                  SS/S9[         R                  R                  SSS	S
9[         R                  R                  SSS/S9[         R
                  R                  S[         R
                  R                  S[         R                  R                  SSS/S9[         R                  R                  SSSS[         R                  R                  S9/5      [         R
                  R                  S/ 5      /SS9[         R                  R                  S/ SQSS9[         R                  R                  S/ SQSSS 9[         R                  R                  S!S"S"S#[         R                  R                  SS$S%9/[         R                  R                  S&S'9[         R                  " S(5      R                  S)S'9[         R                  R                  S*S'9[         R                  R                  S+S'9/[         R                  R                  [         R                  R                   [         R                  R"                  /SS[         R$                  " S,S-9S.9	$ )/Nr   zMeshy: Text to Modelpartner/3d/MeshymodellatestoptionspromptT )	multilinedefaultstyle	realistic	sculptureshould_remeshtruetopologytrianglequadtarget_polycount d   r&   minmaxdisplay_modefalse:When set to false, returns an unprocessed triangular mesh.r"   tooltipsymmetry_modeautoonoffr"   advanced	pose_moder$   zA-posezT-pose.Specify the pose mode for the generated model.r"   r9   r@   seedr   _Seed controls whether the node should re-run; results are non-deterministic regardless of seed.r&   r3   r4   r5   control_after_generater9   
model_filedisplay_nameMESHY_TASK_IDmeshy_task_idGLBFBXz{"type":"usd","usd":0.8}expr	node_idrL   categoryinputsoutputshiddenis_api_nodeis_output_nodeprice_badge)r   SchemaCombor   StringDynamicComboOptionIntNumberDisplaynumberOutputCustom	File3DGLB	File3DFBXHiddenauth_token_comfy_orgapi_key_comfy_org	unique_id
PriceBadgeclss    ;/home/wildlama/comfy/ComfyUI/comfy_api_nodes/nodes_meshy.pydefine_schema"MeshyTextToModelNode.define_schema   s"   yy*/'w
;		D"Ewk0JK%%#.." "zJPVCW X "$6,2(+(.131A1A1H1H !- !"	 ..w;  Y% & ( 8MX\]4L!	   "!#!1!1!8!8+/H  	?)V 		  l ;		/*111O###7###7	 		..		++		##
 3w>
 >	
    r   r#   r'   r*   r:   rA   rE   returnc                 &  #    [        USSSS9  [        U [        SSS9[        [	        UUUUR                  SS 5      UR                  S	S 5      US
   S:H  UUR                  5       US9	S9I S h  vN nUR                  n	[        U [        SU	 3S9[        S S S9I S h  vN n
[        R                  " U	 S3U	[        U
R                  R                  SU	S9I S h  vN [        U
R                  R                  SU	S9I S h  vN 5      $  N Nl N2 N7f)Nr#      X  )
field_name
min_length
max_length"/proxy/meshy/openapi/v2/text-to-3dPOSTpathmethodr,   r/   r*   r+   )	r#   	art_styleai_modelr,   r/   r*   r:   rA   rE   response_modeldata#/proxy/meshy/openapi/v2/text-to-3d/r}   c                     U R                   $ Nstatusrs    ro   <lambda>.MeshyTextToModelNode.execute.<locals>.<lambda>       qxxrr   c                     U R                   $ r   progressr   s    ro   r   r          rr   r   status_extractorprogress_extractor.glbglbtask_idfbx)r   r   r   r   r   getlowerresultr   r   r   
NodeOutputr   
model_urlsr   r   )rn   r   r#   r'   r*   r:   rA   rE   responser   r   s              ro   executeMeshyTextToModelNode.executea   s%     	8cR A&Q,(&**:t<!.!2!23Et!L+O<F+#//+
	
 
  //B7)LM+/3
 
 }}it)&*;*;*?*?PWXX)&*;*;*?*?PWXX	
 	
1
"
 YXsH   A+D-D	.0DD;DD%D D	DDDD N)__name__
__module____qualname____firstlineno__classmethodrp   strr   intr   r   r   __static_attributes__r   rr   ro   r   r      s{    ?
 ?
B (
(
 (
 	(

 )(
 (
 (
 (
 
(
 (
rr   r   c                       \ rS rSr\S 5       r\ SS\S\S\S\S\R                  S-  S	\
R                  4S
 jj5       rSrg)MeshyRefineNode   c                    [         R                  " SSSS[         R                  R                  SS/S9[         R                  " S5      R                  S	5      [         R
                  R                  S
SSSS9[         R                  R                  SSSSS9[         R                  R                  SSSS9/[         R                  R                  SS9[         R                  " S5      R                  S	S9[         R                  R                  SS9[         R                  R                  SS9/[         R                  R                  [         R                  R                  [         R                  R                  /SS[         R                  " SS9S9
$ )Nr   zMeshy: Refine Draft Modelr   z(Refine a previously created draft model.r   r    r!   rM   rN   
enable_pbrFzGenerate PBR Maps (metallic, roughness, normal) in addition to the base color. Note: this should be set to false when using Sculpture style, as Sculpture style generates its own set of PBR maps.Tr&   r9   r@   texture_promptr$   Provide a text prompt to guide the texturing process. Maximum 600 characters. Cannot be used at the same time as 'texture_image'.r&   r%   r9   texture_imageMOnly one of 'texture_image' or 'texture_prompt' may be used at the same time.r9   optionalrJ   rK   rO   rP   {"type":"usd","usd":0.4}rQ   
rT   rL   rU   descriptionrV   rW   rX   rY   rZ   r[   r   r\   r]   r   re   Booleanr^   Imagerd   rf   rg   rh   ri   rj   rk   rl   rm   s    ro   rp   MeshyRefineNode.define_schema   se   yy%4'Bw
;		/*00A

   !L " !  		$"b	    #k!  %2 		  l ;		/*111O###7###7	 		..		++		##
 3U-
 -	
rr   Nr   rN   r   r   r   rs   c                 6  #    U(       a  Ub  [        S5      eS nU(       a  [        USSS9  Ub  [        XSS9I S h  vN S   n[        U [	        SS	S
9[
        [        UUU(       a  UOS UUS9S9I S h  vN nUR                  n[        U [	        SU 3S9[        S S S9I S h  vN n	[        R                  " U S3U[        U	R                  R                  SUS9I S h  vN [        U	R                  R                  SUS9I S h  vN 5      $  N N Nn N4 N7f)N@texture_prompt and texture_image cannot be used at the same timer   rv   rw   ry   Uploading texture
wait_labelr   rz   r{   r|   )preview_task_idr   r   texture_image_urlr   endpointr   r   r   r   c                     U R                   $ r   r   r   s    ro   r   )MeshyRefineNode.execute.<locals>.<lambda>   r   rr   c                     U R                   $ r   r   r   s    ro   r   r      r   rr   r   r   r   r   r   )
ValueErrorr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
rn   r   rN   r   r   r   r   r   r   r   s
             ro   r   MeshyRefineNode.execute   s2     m7_`` N7GTWX$'@`s't!tvw x  &JSYZ,  -%1?~T"3	
 
 //B7)LM+/3
 
 }}it)&*;*;*?*?PWXX)&*;*;*?*?PWXX	
 	
+ "u

 YXsW   :DD6D3D40D$D%;D D!%DD	DDDDDr   r   r   r   r   r   r   rp   r   boolr   r   r   r   r   r   r   rr   ro   r   r      su    .
 .
`  -1(
(
 (
 	(

 (
 {{T)(
 
(
 (
rr   r   c                       \ rS rSr\S 5       r\S\S\R                  S\	S\S\
S\S	\S
\R                  4S j5       rSrg)MeshyImageToModelNode   c                 H   [         R                  " SSS[         R                  R                  SS/S9[         R                  R                  S5      [         R
                  R                  S[         R
                  R                  S	[         R                  R                  S
SS/S9[         R                  R                  SSSS[         R                  R                  S9/5      [         R
                  R                  S/ 5      /SS9[         R                  R                  S/ SQS9[         R
                  R                  S[         R
                  R                  S	[         R                  R                  SSSS9[         R                  R                  SSSSS9[         R                  R                  S S!SS"9/5      [         R
                  R                  S/ 5      /S#S9[         R                  R                  S$/ S%QS&SS'9[         R                  R                  S(S)S)S*[         R                  R                  SS+S,9/[         R                  R                  S-S.9[         R                  " S/5      R                  S0S.9[         R                  R                  S1S.9[         R                  R                  S2S.9/[         R                   R"                  [         R                   R$                  [         R                   R&                  /SS[         R(                  " [         R*                  " S/S39S4S59S69	$ )7Nr   zMeshy: Image to Modelr   r   r    r!   imager*   r+   r,   r-   r.   r/   r0   r1   r2   r6   r7   r8   r:   r;   should_texturer   FNGenerate PBR Maps (metallic, roughness, normal) in addition to the base color.r&   r9   r   r$   Tr   r   r   r   r   {Determines whether textures are generated. Setting it to false skips the texture phase and returns a mesh without textures.rA   rB   rC   rD   rE   r   rF   rG   rH   rJ   rK   rM   rN   rO   rP   widgetsz
                (
                  $prices := {"true": 1.2, "false": 0.8};
                  {"type":"usd","usd": $lookup($prices, widgets.should_texture)}
                )
                
depends_onrR   rS   )r   r\   r]   r   r   r_   r`   ra   rb   rc   r   r^   rd   re   rf   rg   rh   ri   rj   rk   rl   PriceBadgeDependsrm   s    ro   rp   #MeshyImageToModelNode.define_schema   s   yy+0'w
;w'%%#.." "zJPVCW X "$6,2(+(.131A1A1H1H !- !"	 ..w;  Y% & ( 8MN%%$.." "

 0 0$0,1-E !1 !" !#		$4,..2-r	 !0 !" !#$3-D-1	 !/ !"0 ..w;36g; & @ 4L!	   "!#!1!1!8!8+/H  	}HT 		  l ;		/*111O###7###7	 		..		++		##
 //9I8JKuc
 c	
rr   r   r   r*   r:   r   rA   rE   rs   c                 4  #    US   S:H  nS =pU(       aV  US   (       a  US   b  [        S5      eUS   (       a  [        US   SSS9  US   n
US   b  [        XS   SS	9I S h  vN S
   n	[        U [	        SSS9[
        [        [        XSS	9I S h  vN S
   UUR                  SS 5      UR                  SS 5      UUS   S:H  UUR                  SS 5      UR                  5       U
U	US9S9I S h  vN nUR                  n[        U [	        SU 3S9[        S S S9I S h  vN n[        R                  " U S3U[        UR                  R                   SUS9I S h  vN [        UR                  R"                  SUS9I S h  vN 5      $  GN( N N Nq N7 N7f)Nr   r+   r   r   r   rv   r   r   r   r   z#/proxy/meshy/openapi/v1/image-to-3dr{   r|   zUploading base imager,   r/   r*   r   )	image_urlr   r,   r/   r:   r*   r   r   rA   r   r   rE   r   z$/proxy/meshy/openapi/v1/image-to-3d/r   c                     U R                   $ r   r   r   s    ro   r   /MeshyImageToModelNode.execute.<locals>.<lambda>  r   rr   c                     U R                   $ r   r   r   s    ro   r   r     r   rr   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rn   r   r   r*   r:   r   rA   rE   texturer   r   r   r   r   s                 ro   r   MeshyImageToModelNode.executeU  s     !!12f<-11./N?4S4_ !cdd.//? @M]jmn!/0@!Ao.:3O<I\  	%!
 !B6R,)!:3Rh!iiklm&**:t<!.!2!23Et!L++O<F&)--lDA#//+-"3	
 
& //CG9MN+/3
 
 }}it)&*;*;*?*?PWXX)&*;*;*?*?PWXX	
 	
? j
(
 YXsm   A!F#F$-FFAF/F00F F!;FF%FF	FFFFFFr   N)r   r   r   r   r   rp   r   r   r   r   r   r   r   r   r   r   r   rr   ro   r   r      s    d
 d
L 8
8
 {{8
 )	8

 8
 +8
 8
 8
 
8
 8
rr   r   c                       \ rS rSr\S 5       r\S\S\R                  R                  S\
S\S\S\S	\S
\R                  4S j5       rSrg)MeshyMultiImageToModelNodei  c                    [         R                  " SSS[         R                  R                  SS/S9[         R                  R                  S[         R                  R                  [         R                  R                  S5      SS	S
S9S9[         R                  R                  S[         R                  R                  S[         R                  R                  SSS/S9[         R                  R                  SSSS[         R                  R                  S9/5      [         R                  R                  S/ 5      /SS9[         R                  R                  S/ SQSS9[         R                  R                  S[         R                  R                  S[         R                  R                  SSS S!9[         R                  R                  S"S#SS$S%9[         R                  R                  S&S'SS(9/5      [         R                  R                  S/ 5      /S)S9[         R                  R                  S*/ S+QS,SS-9[         R                  R                  S.S/S/S0[         R                  R                  SS1S29/[         R                  R                  S3S49[         R                  " S55      R                  S6S49[         R                   R                  S7S49[         R"                  R                  S8S49/[         R$                  R&                  [         R$                  R(                  [         R$                  R*                  /SS[         R,                  " [         R.                  " S/S99S:S;9S<9	$ )=Nr   zMeshy: Multi-Image to Modelr   r   r    r!   imagesr         )prefixr3   r4   )templater*   r+   r,   r-   r.   r/   r0   r1   r2   r6   r7   r8   r:   r;   Tr?   r   r   Fr   r   r   r$   r   r   r   r   r   r   rA   rB   rC   rD   rE   r   rF   rG   rH   rJ   rK   rM   rN   rO   rP   r   z
                (
                  $prices := {"true": 0.6, "false": 0.2};
                  {"type":"usd","usd": $lookup($prices, widgets.should_texture)}
                )
                r   rS   )r   r\   r]   r   AutogrowTemplatePrefixr   r_   r`   ra   rb   rc   r   r^   rd   re   rf   rg   rh   ri   rj   rk   rl   r   rm   s    ro   rp   (MeshyMultiImageToModelNode.define_schema  s   yy06'w
;!![[77w8OX_eflm7n "  %%#.." "zJPVCW X "$6,2(+(.131A1A1H1H !- !"	 ..w;  Y% & ( 8MX\]%%$.." "

 0 0$0,1-E !1 !" !#		$4,..2-r	 !0 !" !#$3-D-1	 !/ !"0 ..w;36g; & @ 4L!	   "!#!1!1!8!8+/H  	CKZ 		  l ;		/*111O###7###7	 		..		++		##
 //9I8JK{f
 f	
rr   r   r   r*   r:   r   rA   rE   rs   c                 ^  #    US   S:H  nS =pU(       aV  US   (       a  US   b  [        S5      eUS   (       a  [        US   SSS9  US   n
US   b  [        XS   SS	9I S h  vN S
   n	[        U [	        SSS9[
        [        [        U [        UR                  5       5      SS	9I S h  vN UUR                  SS 5      UR                  SS 5      UUS   S:H  UUR                  SS 5      UR                  5       U
U	US9S9I S h  vN nUR                  n[        U [	        SU 3S9[        S S S9I S h  vN n[        R                  " U S3U[!        UR"                  R$                  SUS9I S h  vN [!        UR"                  R&                  SUS9I S h  vN 5      $  GN= N N Nq N7 N7f)Nr   r+   r   r   r   rv   r   r   r   r   z)/proxy/meshy/openapi/v1/multi-image-to-3dr{   r|   zUploading base imagesr,   r/   r*   r   )
image_urlsr   r,   r/   r:   r*   r   r   rA   r   r   rE   r   z*/proxy/meshy/openapi/v1/multi-image-to-3d/r   c                     U R                   $ r   r   r   s    ro   r   4MeshyMultiImageToModelNode.execute.<locals>.<lambda>0  r   rr   c                     U R                   $ r   r   r   s    ro   r   r   1  r   rr   r   r   r   r   r   )r   r   r   r   r   r   r   listvaluesr   r   r   r   r   r   r   r   r   r   r   )rn   r   r   r*   r:   r   rA   rE   r   r   r   r   r   r   s                 ro   r   "MeshyMultiImageToModelNode.execute  s     !!12f<-11./N?4S4_ !cdd.//? @M]jmn!/0@!Ao.:3O<I\  	%!
 !HQWX,.!:fmmo.;R"  &**:t<!.!2!23Et!L++O<F&)--lDA#//+-"3	
 
* //I'ST+/3
 
 }}it)&*;*;*?*?PWXX)&*;*;*?*?PWXX	
 	
C
,
 YXsn   A!F-#F $AF-)F#*AF-F%0F-5F'6;F-1F)2%F-F+	F-#F-%F-'F-)F-+F-r   N)r   r   r   r   r   rp   r   r   r   Typer   r   r   r   r   r   r   rr   ro   r   r     s    g
 g
R :
:
   :
 )	:

 :
 +:
 :
 :
 
:
 :
rr   r   c            
       |    \ rS rSr\S 5       r\ S
S\S\S\R                  S-  S\
R                  4S jj5       rS	rg)MeshyRigModelNodei;  c                    [         R                  " SSSS[         R                  " S5      R                  S5      [         R                  R                  SSS	S
SS9[         R
                  R                  SSSS9/[         R                  R                  SS9[         R                  " S5      R                  SS9[         R                  R                  SS9[         R                  R                  SS9/[         R                  R                  [         R                  R                  [         R                  R                  /SS[         R                  " SS9S9
$ )Nr   zMeshy: Rig Modelr   zProvides a rigged character in standard formats. Auto-rigging is currently not suitable for untextured meshes, non-humanoid assets, or humanoid assets with unclear limb and body structure.rM   rN   height_metersg?g      .@g333333?zcThe approximate height of the character model in meters. This aids in scaling and rigging accuracy.)r3   r4   r&   r9   r   z2The model's UV-unwrapped base color texture image.Tr   rJ   rK   MESHY_RIGGED_TASK_IDrig_task_idrO   rP   z{"type":"usd","usd":0.2}rQ   r   )r   r\   re   r   Floatr   r^   rd   rf   rg   rh   ri   rj   rk   rl   rm   s    ro   rp   MeshyRigModelNode.define_schema=  s.   yy'+'G 		/*00A#A   #P!  " 		  l ;		0188m8T###7###7	 		..		++		##
 3I'
 '	
rr   NrN   r   r   rs   c                   #    S nUb  [        XSS9I S h  vN S   n[        U [        SSS9[        [	        UUUS9S9I S h  vN nUR
                  n[        U [        S	U 3S
9[        S S S9I S h  vN n[        R                  " U S3U[        UR
                  R                  SUS9I S h  vN [        UR
                  R                  SUS9I S h  vN 5      $  N N Nn N4 N7f)Nr   r   r   z/proxy/meshy/openapi/v1/riggingr{   r|   )input_task_idr   r   r   z /proxy/meshy/openapi/v1/rigging/r   c                     U R                   $ r   r   r   s    ro   r   +MeshyRigModelNode.execute.<locals>.<lambda>  r   rr   c                     U R                   $ r   r   r   s    ro   r   r    r   rr   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   rigged_character_glb_urlrigged_character_fbx_url)rn   rN   r   r   r   r   r   r   s           ro   r   MeshyRigModelNode.executeh  s     !$'@`s't!tvw x  &GPVW,$++"3		
 	
 //?yIJ,/3
 
 }}it)&--*P*PRWahii)&--*P*PRWahii	
 	
' "u	

 jisW   C'C+C'C0C'2C!3;C'.C#/%C'C%	C'C'!C'#C'%C'r   r   )r   r   r   r   r   rp   r   floatr   r   r   r   r   r   r   rr   ro   r   r   ;  sa    (
 (
T 
 -1	 
 
  
 {{T)	 

 
 
  
rr   r   c                   X    \ rS rSr\S 5       r\S\S\S\R                  4S j5       r
Srg)	MeshyAnimateModelNodei  c                 &   [         R                  " SSSS[         R                  " S5      R                  S5      [         R                  R                  SSSS	S
S9/[         R
                  R                  SS9[         R                  R                  SS9[         R                  R                  SS9/[         R                  R                  [         R                  R                  [         R                  R                  /SS[         R                  " SS9S9
$ )Nr  zMeshy: Animate Modelr   zCApply a specific animation action to a previously rigged character.r   r   	action_idr   i  zTVisit https://docs.meshy.ai/en/api/animation-library for a list of available values.)r&   r3   r4   r9   rJ   rK   rO   rP   Tz{"type":"usd","usd":0.12}rQ   r   )r   r\   re   r   ra   r^   rd   rf   rg   rh   ri   rj   rk   rl   rm   s    ro   rp   #MeshyAnimateModelNode.define_schema  s    yy+/']		0177Fr  	 		  l ;###7###7 		..		++		##
 47
 	
rr   r   r  rs   c           
        #    [        U [        SSS9[        [        UUS9S9I S h  vN nUR                  n[        U [        SU 3S9[        S S	 S
9I S h  vN n[        R                  " U S3[        UR                  R                  SUS9I S h  vN [        UR                  R                  SUS9I S h  vN 5      $  N Nk N2 N7f)Nz"/proxy/meshy/openapi/v1/animationsr{   r|   )r   r  r   z#/proxy/meshy/openapi/v1/animations/r   c                     U R                   $ r   r   r   s    ro   r   /MeshyAnimateModelNode.execute.<locals>.<lambda>  r   rr   c                     U R                   $ r   r   r   s    ro   r   r    r   rr   r   r   r   r   r   )r   r   r   r	   r   r   r
   r   r   r   animation_glb_urlanimation_fbx_url)rn   r   r  r   r   r   s         ro   r   MeshyAnimateModelNode.execute  s      ! &JSYZ,&'#	
 
 //B7)LM//3
 
 }}it)&--*I*I5Zabb)&--*I*I5Zabb
 	
#

 cbsE   $C	C0C	C:C	C
%C	8C9	C	C	C	C	r   N)r   r   r   r   r   rp   r   r   r   r   r   r   r   rr   ro   r  r    sI    
 
B 

 
 
	
 
rr   r  c                       \ rS rSr\S 5       r\ SS\S\S\S\S\S	\R                  S-  S
\
R                  4S jj5       rSrg)MeshyTextureNodei  c                 X   [         R                  " SSS[         R                  R                  SS/S9[         R                  " S5      R                  S5      [         R
                  R                  S	S
SS
S9[         R
                  R                  SSS
S9[         R                  R                  SSS
SS9[         R                  R                  SS
SS9/[         R                  R                  SS9[         R                  " S5      R                  SS9[         R                  R                  SS9[         R                  R                  SS9/[         R                  R                  [         R                  R                  [         R                  R                  /S
S
[         R                  " SS9S9	$ )Nr  zMeshy: Texture Modelr   r   r    r!   rM   rN   enable_original_uvTzUse the original UV of the model instead of generating new UVs. When enabled, Meshy preserves existing textures from the uploaded model. If the model has no original UV, the quality of the output might not be as good.r   pbrF)r&   r@   text_style_promptr$   zDescribe your desired texture style of the object using text. Maximum 600 characters.Maximum 600 characters. Cannot be used at the same time as 'image_style'.r   image_stylezeA 2d image to guide the texturing process. Can not be used at the same time with 'text_style_prompt'.)r   r9   rJ   rK   MODEL_TASK_IDrO   rP   r   rQ   rS   r   rm   s    ro   rp   MeshyTextureNode.define_schema  s~   yy&/'w
;		/*00A

  ( g " !  

   E		'"`	    !!Q  '6 		  l ;		/*111O###7###7	 		..		++		##
 3W.
 .	
rr   Nr   rN   r  r  r  r  rs   c                 >  #    U(       a  Ub  [        S5      eU(       d  Uc  [        S5      eS nUb  [        XSS9I S h  vN S   n[        U [        SSS9[        [        UUUUU(       a  UOS US	9S
9I S h  vN nUR                  n	[        U [        SU	 3S9[        S S S9I S h  vN n
[        R                  " U	 S3U	[        U
R                  R                  SU	S9I S h  vN [        U
R                  R                  SU	S9I S h  vN 5      $  N N Nn N4 N7f)NzAtext_style_prompt and image_style cannot be used at the same timez3Either text_style_prompt or image_style is requiredzUploading styler   r   z!/proxy/meshy/openapi/v1/retexturer{   r|   )r  r   r  r   r  image_style_urlr   z"/proxy/meshy/openapi/v1/retexture/r   c                     U R                   $ r   r   r   s    ro   r   *MeshyTextureNode.execute.<locals>.<lambda>%  r   rr   c                     U R                   $ r   r   r   s    ro   r   r$  &  r   rr   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rn   r   rN   r  r  r  r  r"  r   r   r   s              ro   r   MeshyTextureNode.execute  s7     !8`aa [%8RSS"%>s\m%nnpqrO  &IRXY,$+#57H"3d /	
 
 //A'KL+/3
 
 }}it)&*;*;*?*?PWXX)&*;*;*?*?PWXX	
 	
-  o

 YXsX   =DD 7D7D80D(D);D$D%%D
D	DDDDDr   r   r   r   rr   ro   r  r    s    /
 /
b  +/*
*
 *
 !	*

 *
 *
 [[4'*
 
*
 *
rr   r  c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)MeshyExtensioni0  rs   c                 T   #    [         [        [        [        [        [
        [        /$ 7fr   )r   r   r   r   r   r  r  )selfs    ro   get_node_listMeshyExtension.get_node_list1  s&      !!&!
 	
s   &(r   N)r   r   r   r   r   r   typer   	ComfyNoder+  r   r   rr   ro   r(  r(  0  s)    	
T$r||*<%= 	
 	
rr   r(  rs   c                     #    [        5       $ 7fr   )r(  r   rr   ro   comfy_entrypointr0  >  s     s   N)%typing_extensionsr   comfy_api.latestr   r   r   comfy_api_nodes.apis.meshyr   r   r	   r
   r   r   r   r   r   r   r   r   r   comfy_api_nodes.utilr   r   r   r   r   r   r.  r   r   r   r   r   r  r  r(  r0  r   rr   ro   <module>r5     s    & 6 6    m
2<< m
`\
bll \
~b
BLL b
Jg
 g
TN
 N
b?
BLL ?
D_
r|| _
D
^ 
 rr   