Spaces:
Paused
Paused
import os | |
import random | |
import torch | |
import numpy as np | |
from comfy.sd import load_checkpoint_guess_config | |
from nodes import VAEDecode, KSamplerAdvanced, EmptyLatentImage, SaveImage, CLIPTextEncode | |
from modules.path import modelfile_path | |
xl_base_filename = os.path.join(modelfile_path, 'sd_xl_base_1.0.safetensors') | |
xl_refiner_filename = os.path.join(modelfile_path, 'sd_xl_refiner_1.0.safetensors') | |
xl_base, xl_base_clip, xl_base_vae, xl_base_clipvision = load_checkpoint_guess_config(xl_base_filename) | |
del xl_base_clipvision | |
opCLIPTextEncode = CLIPTextEncode() | |
opEmptyLatentImage = EmptyLatentImage() | |
opKSamplerAdvanced = KSamplerAdvanced() | |
opVAEDecode = VAEDecode() | |
with torch.no_grad(): | |
positive_conditions = opCLIPTextEncode.encode(clip=xl_base_clip, text='a handsome man in forest')[0] | |
negative_conditions = opCLIPTextEncode.encode(clip=xl_base_clip, text='bad, ugly')[0] | |
initial_latent_image = opEmptyLatentImage.generate(width=1024, height=1024, batch_size=1)[0] | |
samples = opKSamplerAdvanced.sample( | |
add_noise="enable", | |
noise_seed=random.randint(1, 2 ** 64), | |
steps=25, | |
cfg=9, | |
sampler_name="euler", | |
scheduler="normal", | |
start_at_step=0, | |
end_at_step=25, | |
return_with_leftover_noise="enable", | |
model=xl_base, | |
positive=positive_conditions, | |
negative=negative_conditions, | |
latent_image=initial_latent_image, | |
)[0] | |
vae_decoded = opVAEDecode.decode(samples=samples, vae=xl_base_vae)[0] | |
for image in vae_decoded: | |
i = 255. * image.cpu().numpy() | |
img = np.clip(i, 0, 255).astype(np.uint8) | |
import cv2 | |
cv2.imwrite('a.png', img[:, :, ::-1]) | |