|
from sd.clip import CLIP |
|
from sd.encoder import VAE_Encoder |
|
from sd.decoder import VAE_Decoder |
|
from sd.diffusion import Diffusion |
|
from sd import model_converter |
|
|
|
def from_pretrained(weights_url, device): |
|
state_dict = model_converter.from_pretrained(weights_url, device) |
|
|
|
encoder = VAE_Encoder().to(device) |
|
encoder.load_state_dict(state_dict['encoder'], strict=True) |
|
|
|
decoder = VAE_Decoder().to(device) |
|
decoder.load_state_dict(state_dict['decoder'], strict=True) |
|
|
|
diffusion = Diffusion().to(device) |
|
diffusion.load_state_dict(state_dict['diffusion'], strict=True) |
|
|
|
clip = CLIP().to(device) |
|
clip.load_state_dict(state_dict['clip'], strict=True) |
|
|
|
return { |
|
'clip': clip, |
|
'encoder': encoder, |
|
'decoder': decoder, |
|
'diffusion': diffusion, |
|
} |