Spaces:
Running
on
A10G
Running
on
A10G
File size: 1,806 Bytes
bfd34e9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import torchvision.transforms.functional as TF
from lib.utils.iimage import IImage
import torch
import sys
from .utils import *
input_mask = None
input_shape = None
timestep = None
timestep_index = None
class Seed:
def __getitem__(self, idx):
if isinstance(idx, slice):
idx = list(range(*idx.indices(idx.stop)))
if isinstance(idx, list) or isinstance(idx, tuple):
return [self[_idx] for _idx in idx]
return 12345 ** idx % 54321
class DDIMIterator:
def __init__(self, iterator):
self.iterator = iterator
def __iter__(self):
self.iterator = iter(self.iterator)
global timestep_index
timestep_index = 0
return self
def __next__(self):
global timestep, timestep_index
timestep = next(self.iterator)
timestep_index += 1
return timestep
seed = Seed()
self = sys.modules[__name__]
def reshape(x):
return input_shape.reshape(x)
def set_shape(image_or_shape):
global input_shape
# if isinstance(image_or_shape, IImage):
if hasattr(image_or_shape, 'size'):
input_shape = InputShape(image_or_shape.size)
if isinstance(image_or_shape, torch.Tensor):
input_shape = InputShape(image_or_shape.shape[-2:][::-1])
elif isinstance(image_or_shape, list) or isinstance(image_or_shape, tuple):
input_shape = InputShape(image_or_shape)
def set_mask(mask):
global input_mask, mask64, mask32, mask16, mask8, painta_mask
input_mask = InputMask(mask)
painta_mask = InputMask(mask)
mask64 = input_mask.val64[0,0]
mask32 = input_mask.val32[0,0]
mask16 = input_mask.val16[0,0]
mask8 = input_mask.val8[0,0]
set_shape(mask)
def exists(name):
return hasattr(self, name) and getattr(self, name) is not None |