
    +j                         S SK Jr  S SKJr  S SKrS SKJrJr  S SK	r	 " S S\R                  5      r " S S\5      rS	\4S
 jrg)    )canny)overrideN)ComfyExtensionioc                   `    \ rS rSr\S 5       r\S 5       r\S\R                  4S j5       r	Sr
g)Canny	   c                 0   [         R                  " SS/ SQSS[         R                  R                  S5      [         R                  R                  SSS	S
S	S9[         R                  R                  SSS	S
S	S9/[         R                  R                  5       /S9$ )Nr   zDetect Edges (Canny))zedge detectionoutlinezcontour detectionzline artzimage/filterszImage Toolsimagelow_thresholdg?g{Gz?gGz?)defaultminmaxstephigh_thresholdg?)node_iddisplay_namesearch_aliasescategoryessentials_categoryinputsoutputs)r   SchemaImageInputFloatOutput)clss    8/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_canny.pydefine_schemaCanny.define_schema
   s    yy/Y$ -w'4VZ[/$DW[\
 XX__&'
 	
    c                 &    U R                  XU5      $ N)execute)r   r   r   r   s       r    detect_edgeCanny.detect_edge   s     {{5@@r#   returnc                    [        UR                  [        R                  R	                  5       [
        R                  S9R                  SS5      X#5      nUS   R                  [        R                  R                  5       [        R                  R                  5       S9R                  SSSS5      R                  SS5      n[        R                  " U5      $ )N)devicedtype      )r   tocomfymodel_managementget_torch_devicetorchfloat32movedimintermediate_deviceintermediate_dtyperepeatr   
NodeOutput)r   r   r   r   outputimg_outs         r    r&   Canny.execute   s    uxxu'='='N'N'PX]XeXexfnnoqstu  xE  V),,e&<&<&P&P&RZ_ZpZp  [D  [D  [F,  G  N  N  OP  RS  UV  XY  Z  b  b  cd  fh  i}}W%%r#    N)__name__
__module____qualname____firstlineno__classmethodr!   r'   r   r:   r&   __static_attributes__r>   r#   r    r   r   	   sI    
 
 A A &bmm & &r#   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)CannyExtension&   r)   c                    #    [         /$ 7fr%   )r   )selfs    r    get_node_listCannyExtension.get_node_list'   s     ws   
r>   N)r?   r@   rA   rB   r   listtyper   	ComfyNoderJ   rD   r>   r#   r    rF   rF   &   s)    T$r||*<%=  r#   rF   r)   c                     #    [        5       $ 7fr%   )rF   r>   r#   r    comfy_entrypointrP   ,   s     s   )kornia.filtersr   typing_extensionsr   comfy.model_managementr1   comfy_api.latestr   r   r4   rN   r   rF   rP   r>   r#   r    <module>rU      s<      &  / &BLL &:^  r#   