
    3j                         S SK Jr  S SKrS SKrS SKJr  S SKJrJ	r	   " S S\	R                  5      r " S S\	R                  5      r " S	 S
\5      rS\4S jrg)    )UNION_CONTROLNET_TYPESN)override)ComfyExtensionioc                   T    \ rS rSr\S 5       r\S\R                  4S j5       r\r	Sr
g)SetUnionControlNetType   c                 (   [         R                  " SSS/SS[         R                  R                  S5      [         R                  R                  SS/[        [        R                  " 5       5      -   S	9/[         R                  R                  5       /S
9$ )Nr   zset controlnet typezunion controlnet typezSet Union ControlNet Typemodel/conditioning/controlnetcontrol_nettypeauto)optionsnode_idsearch_aliasesdisplay_namecategoryinputsoutputs)	r   Schema
ControlNetInputCombolistr   keysOutputclss    =/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_controlnet.pydefine_schema$SetUnionControlNetType.define_schema   s}    yy,13JK44##M2vx$?U?Z?Z?\:]/]^
 $$&
 	
    returnc                     UR                  5       n[        R                  " US5      nUS:  a  UR                  SU/5        OUR                  S/ 5        [        R
                  " U5      $ )Nr   control_type)copyr   getset_extra_argr   
NodeOutput)r   r   r   type_numbers       r    executeSetUnionControlNetType.execute   s[    !&&(,00r:!%%n{mD%%nb9}}[))r#    N)__name__
__module____qualname____firstlineno__classmethodr!   r   r+   r-   set_controlnet_type__static_attributes__r/   r#   r    r   r      s;    
 
 *2== * * "r#   r   c                   T    \ rS rSr\S 5       r\S\R                  4S j5       r\r	Sr
g) ControlNetInpaintingAliMamaApply&   c                    [         R                  " SS/SS[         R                  R                  S5      [         R                  R                  S5      [         R                  R                  S5      [         R
                  R                  S5      [         R                  R                  S	5      [         R                  R                  S
5      [         R                  R                  SSSSSS9[         R                  R                  SSSSSSS9[         R                  R                  SSSSSSS9/	[         R                  R                  SS9[         R                  R                  SS9/S9$ )Nr8   zmasked controlnetz%Apply ControlNet Inpainting (AliMama)r   positivenegativer   vaeimagemaskstrength      ?g        g      $@g{Gz?)defaultminmaxstepstart_percentgMbP?T)rB   rC   rD   rE   advancedend_percent)r   r   )
r   r   Conditioningr   r   VaeImageMaskFloatr   r   s    r    r!   .ControlNetInpaintingAliMamaApply.define_schema'   s   yy6/0@4%%j1%%j1##M2U#w'f%z3CTPTU#TYdhi}csRWbfg
 &&J&?&&J&?!
 	
r#   r$   c
                    / n
UR                   (       a  SUR                  SSUR                  S   UR                  S   45      -
  n[        R                  R                  XeR                  S   UR                  S   SS5      R                  5       nX[R                  SS5      R                  SSSUR                  S   5      -  nU/n
[        R                  " 5       R                  XX5XxXU
S	9	n[        R                  " US
   US   5      $ )NrA   r&         bilinearcenter   )r=   extra_concatr   )concat_maskreshapeshapecomfyutilscommon_upscaleroundmovedimrepeatnodesControlNetApplyAdvancedapply_controlnetr   r+   )r   r;   r<   r   r=   r>   r?   r@   rF   rH   rV   
mask_applyresults                r    r-   (ControlNetInpaintingAliMamaApply.execute?   s    ""r1djjndjjn&MNND33D++a.%++VW.ZdfnouuwJ..q"5<<Q1ekkRSnUUE 6L..0AA(Vajr  DO  gsA  t}}VAYq	22r#   r/   N)r0   r1   r2   r3   r4   r!   r   r+   r-   apply_inpaint_controlnetr6   r/   r#   r    r8   r8   &   s>    
 
. 	3qsq~q~ 	3 	3  'r#   r8   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)ControlNetExtensionN   r$   c                 "   #    [         [        /$ 7fN)r   r8   )selfs    r    get_node_list!ControlNetExtension.get_node_listO   s      #,
 	
s   r/   N)r0   r1   r2   r3   r   r   r   r   	ComfyNoderm   r6   r/   r#   r    rh   rh   N   s)    
T$r||*<%= 
 
r#   rh   r$   c                     #    [        5       $ 7frk   )rh   r/   r#   r    comfy_entrypointrq   W   s       s   )comfy.cldm.control_typesr   r`   comfy.utilsrZ   typing_extensionsr   comfy_api.latestr   r   ro   r   r8   rh   rq   r/   r#   r    <module>rv      sN    ;   & /"R\\ ">%'r|| %'P
. 
! 3 !r#   