
    +j                         d dl mZ d dlZd dlZd dlmZ d dlmZm	Z	  G d de	j
                  Z G d de	j
                  Z G d	 d
e          ZdefdZdS )    )UNION_CONTROLNET_TYPESN)override)ComfyExtensionioc                   N    e Zd Zed             Zedej        fd            ZeZdS )SetUnionControlNetTypec                 ,   t          j        ddt           j                            d          t           j                            ddgt          t          j                              z             gt           j                                        g          S )Nr   model/conditioning/controlnetcontrol_nettypeauto)options)node_idcategoryinputsoutputs)	r   Schema
ControlNetInputCombolistr   keysOutputclss    =/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_controlnet.pydefine_schemaz$SetUnionControlNetType.define_schema   s    y,4##M22vx$?U?Z?\?\:]:]/]^^
 $$&&

 

 

 
	
    returnc                     |                                 }t          j        |d          }|dk    r|                    d|g           n|                    dg            t	          j        |          S )Nr   control_type)copyr   getset_extra_argr   
NodeOutput)r   r   r   type_numbers       r   executezSetUnionControlNetType.execute   sq    !&&((,0r::!%%n{mDDDD%%nb999}[)))r   N)	__name__
__module____qualname__classmethodr   r   r&   r(   set_controlnet_type r   r   r   r      sZ        
 
 [
 *2= * * * [* "r   r   c                   N    e Zd Zed             Zedej        fd            ZeZdS ) ControlNetInpaintingAliMamaApplyc                    t          j        ddgdt           j                            d          t           j                            d          t           j                            d          t           j                            d          t           j                            d          t           j                            d	          t           j                            d
dddd          t           j                            dddddd          t           j                            dddddd          g	t           j        	                    d          t           j        	                    d          g          S )Nr0   zmasked controlnetr
   positivenegativer   vaeimagemaskstrength      ?g        g      $@g{Gz?)defaultminmaxstepstart_percentgMbP?T)r9   r:   r;   r<   advancedend_percent)display_name)r   search_aliasesr   r   r   )
r   r   Conditioningr   r   VaeImageMaskFloatr   r   s    r   r   z.ControlNetInpaintingAliMamaApply.define_schema%   s%   y6/04%%j11%%j11##M22U##w''f%%z3CTPTUU#TYdhii}csRWbfgg
 &&J&??&&J&??
 
 
 	
r   r   c
                 (   g }
|j         rd|                    dd|j        d         |j        d         f          z
  }t          j                            ||j        d         |j        d         dd                                          }||                    dd                              ddd|j        d                   z  }|g}
t          j
                                        |||||||	||
		  	        }t          j        |d
         |d                   S )Nr8   r!         bilinearcenter   )r4   extra_concatr   )concat_maskreshapeshapecomfyutilscommon_upscaleroundmovedimrepeatnodesControlNetApplyAdvancedapply_controlnetr   r&   )r   r2   r3   r   r4   r5   r6   r7   r=   r?   rN   
mask_applyresults                r   r(   z(ControlNetInpaintingAliMamaApply.execute<   s   " 	"r1djndjn&MNNND33D%+a.%+VW.ZdfnoouuwwJJ..q"55<<Q1ekRSnUUUE 6L.00AA(HVachjr  uB  DO  UX  gsA  t  t}VAYq	222r   N)	r)   r*   r+   r,   r   r   r&   r(   apply_inpaint_controlnetr.   r   r   r0   r0   $   s\        
 
 [
, 	3qsq~ 	3 	3 	3 [	3  'r   r0   c                   L    e Zd Zedeeej                          fd            ZdS )ControlNetExtensionr   c                 "   K   t           t          gS N)r   r0   )selfs    r   get_node_listz!ControlNetExtension.get_node_listL   s       #,
 	
r   N)	r)   r*   r+   r   r   r   r   	ComfyNoderc   r.   r   r   r_   r_   K   sE        
T$r|*<%= 
 
 
 X
 
 
r   r_   r   c                  "   K   t                      S ra   )r_   r.   r   r   comfy_entrypointrf   T   s         r   )comfy.cldm.control_typesr   rX   comfy.utilsrR   typing_extensionsr   comfy_api.latestr   r   rd   r   r0   r_   rf   r.   r   r   <module>rk      s    ; ; ; ; ; ;      & & & & & & / / / / / / / /" " " " "R\ " " ":$' $' $' $' $'r| $' $' $'N
 
 
 
 
. 
 
 
! 3 ! ! ! ! ! !r   