a
    
d                     @   s,   d dl Z d dlZdd Zdd Zdd ZdS )    Nc                 C   s:   || j  }|dk r*td| j  d| d| dd|   S )zAppends dimensions to the end of a tensor until it has target_dims dimensions.
    From https://github.com/crowsonkb/k-diffusion/blob/master/k_diffusion/utils.pyr   z
input has z dims but target_dims is z, which is less).)N)ndim
ValueError)xtarget_dimsdims_to_append r   u/var/www/html/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/models/diffusion/sampling_util.pyappend_dims   s    
r	   c                 C   s6   t | ddd j|d| j}| ||  S )N      min)r	   powflattenmeansqrtclampr   x0valuesr   r   r   norm_thresholding   s    *r   c                 C   s,   |  djddd j|d}| ||  S )Nr
   r   T)keepdimr   )r   r   r   r   r   r   r   r   spatial_norm_thresholding   s     r   )torchnumpynpr	   r   r   r   r   r   r   <module>   s   	