
    +j                         d Z ddlZddlZddlmZ ddlmZmZ dZdZ	d Z
d Z G d	 d
ej                  Z G d de          ZdefdZdS )zIdeogram 4 sampling helper
    N)override)ComfyExtensioniog      .g      2@c                    t          j        | t           j                  } dt           j                            ||t           j                            |           z  z             z
  }ddt          j        dt          z            z   z  }ddt          j        dt          z            z   z  }|
                    ||          S )Ndtype      ?      ?)torch	as_tensorfloat64specialexpitndtrimathexp_LOGSNR_MAX_LOGSNR_MINclamp)umeanstdtt_mint_maxs         </home/wildlama/comfy/ComfyUI/comfy_extras/nodes_ideogram4.py_logit_normal_scheduler      s    ///Aem!!$u}/B/B1/E/E)E"EFFFA3#"34445E3#"34445E775%       c                 "   |dt          j        ||z  dz            z  z   }t          j        dd| dz   t          j                  }dt          |||          z
                      d          }d|d<   |                    t          j                  S )	zDescending sigmas (len num_steps+1) for the reference schedule.

    mu + the resolution term form the logSNR shift; std is the spread.
    r
   i           r	      r   r   )	r   logr   linspacer   r   fliptofloat32)	num_stepswidthheightmur   r   r   sigmass           r   ideogram4_sigmasr-      s    
 dh9=>>>>DsCQemDDDA*1dC888>>qAAFF2J99U]###r   c                   Z    e Zd Zedej        fd            Zedej        fd            ZdS )Ideogram4Schedulerreturnc                    t          j        dddt           j                            dddd          t           j                            d	d
ddd          t           j                            dd
ddd          t           j                            ddddd          t           j                            ddddd          gt           j                                        g          S )Nr/   zIdeogram 4 Schedulerz#sampling/custom_sampling/schedulerssteps   r!      )defaultminmaxr)   i      i       )r5   r6   r7   stepr*   r+   r    g      $g      $@g?r   g      ?g?g      @)node_iddisplay_namecategoryinputsoutputs)r   SchemaIntInputFloatSigmasOutput)clss    r   define_schemaz Ideogram4Scheduler.define_schema$   s    y(/:WbaSAAWdBOOXt$RPPtSeDQQud4PP Y%%''(
 
 
 	
r   c           	      L    t          j        t          |||||                    S N)r   
NodeOutputr-   )rF   r2   r)   r*   r+   r   s         r   executezIdeogram4Scheduler.execute4   s#    }-eUFBLLMMMr   N)	__name__
__module____qualname__classmethodr   r@   rG   rJ   rK    r   r   r/   r/   #   sk        
bi 
 
 
 [
 Nr} N N N [N N Nr   r/   c                   L    e Zd Zedeeej                          fd            ZdS )Ideogram4Extensionr0   c                    K   t           gS rI   )r/   )selfs    r   get_node_listz Ideogram4Extension.get_node_list:   s      "##r   N)	rL   rM   rN   r   listtyper   	ComfyNoderU   rP   r   r   rR   rR   9   sE        $T$r|*<%= $ $ $ X$ $ $r   rR   r0   c                  "   K   t                      S rI   )rR   rP   r   r   comfy_entrypointrZ   ?   s      r   )__doc__r   r   typing_extensionsr   comfy_api.latestr   r   r   r   r   r-   rX   r/   rR   rZ   rP   r   r   <module>r^      s       & & & & & & / / / / / / / /! ! !	$ 	$ 	$N N N N N N N N,$ $ $ $ $ $ $ $  2            r   