/
githubmirror
/
stablediffusion
Обзор
Документация
Войти
/
githubmirror
/
stablediffusion
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ldm/models/diffusion/sampling_util.py
22 строки
753 B
Robin Rombach
release more models
24 ноя 2022, 03:22
24 ноя 2022, 03:22
ca86da3
Код
Авторство
О чём код?
import torch import numpy as np def append_dims(x, target_dims): """Appends 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.py""" dims_to_append = target_dims - x.ndim if dims_to_append < 0: raise ValueError(f'input has {x.ndim} dims but target_dims is {target_dims}, which is less') return x[(...,) + (None,) * dims_to_append] def norm_thresholding(x0, value): s = append_dims(x0.pow(2).flatten(1).mean(1).sqrt().clamp(min=value), x0.ndim) return x0 * (value / s) def spatial_norm_thresholding(x0, value): # b c h w s = x0.pow(2).mean(1, keepdim=True).sqrt().clamp(min=value) return x0 * (value / s)