diff --git a/ldm/dream/server.py b/ldm/dream/server.py index 1c9508e7921..0427cfd56b6 100644 --- a/ldm/dream/server.py +++ b/ldm/dream/server.py @@ -16,6 +16,8 @@ class DreamServer(BaseHTTPRequestHandler): def do_GET(self): if self.path == "/": self.send_response(200) + self.send_header("Access-Control-Allow-Origin", "*") + self.send_header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept") self.send_header("Content-type", "text/html") self.end_headers() with open("./static/dream_web/index.html", "rb") as content: @@ -33,6 +35,8 @@ def do_GET(self): elif self.path == "/cancel": self.canceled.set() self.send_response(200) + self.send_header("Access-Control-Allow-Origin", "*") + self.send_header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept") self.send_header("Content-type", "application/json") self.end_headers() self.wfile.write(bytes('{}', 'utf8')) @@ -55,6 +59,8 @@ def do_GET(self): def do_POST(self): self.send_response(200) + self.send_header("Access-Control-Allow-Origin", "*") + self.send_header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept") self.send_header("Content-type", "application/json") self.end_headers() @@ -199,6 +205,11 @@ def image_progress(sample, step): print(f"Canceled.") return + def do_OPTIONS(self): + self.send_response(200) + self.send_header("Access-Control-Allow-Origin", "*") + self.send_header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept") + self.end_headers() class ThreadingDreamServer(ThreadingHTTPServer): def __init__(self, server_address): diff --git a/ldm/simplet2i.py b/ldm/simplet2i.py index fe96868508b..1f1f43054ea 100644 --- a/ldm/simplet2i.py +++ b/ldm/simplet2i.py @@ -297,7 +297,7 @@ def process_image(image,seed): 0.0 <= variation_amount <= 1.0 ), '-v --variation_amount must be in [0.0, 1.0]' - if len(with_variations) > 0 or variation_amount > 1.0: + if len(with_variations) > 0 or variation_amount > 0.0: assert seed is not None,\ 'seed must be specified when using with_variations' if variation_amount == 0.0: @@ -346,6 +346,7 @@ def process_image(image,seed): callback=step_callback, ) else: + init_latent = None make_image = self._txt2img( prompt, steps=steps, @@ -361,11 +362,11 @@ def process_image(image,seed): if variation_amount > 0 or len(with_variations) > 0: # use fixed initial noise plus random noise per iteration seed_everything(seed) - initial_noise = self._get_noise(init_img,width,height) + initial_noise = self._get_noise(init_latent,width,height) for v_seed, v_weight in with_variations: seed = v_seed seed_everything(seed) - next_noise = self._get_noise(init_img,width,height) + next_noise = self._get_noise(init_latent,width,height) initial_noise = self.slerp(v_weight, initial_noise, next_noise) if variation_amount > 0: random.seed() # reset RNG to an actually random state, so we can get a random seed for variations @@ -377,7 +378,7 @@ def process_image(image,seed): x_T = None if variation_amount > 0: seed_everything(seed) - target_noise = self._get_noise(init_img,width,height) + target_noise = self._get_noise(init_latent,width,height) x_T = self.slerp(variation_amount, initial_noise, target_noise) elif initial_noise is not None: # i.e. we specified particular variations @@ -385,9 +386,8 @@ def process_image(image,seed): else: seed_everything(seed) if self.device.type == 'mps': - x_T = self._get_noise(init_img,width,height) + x_T = self._get_noise(init_latent,width,height) # make_image will do the equivalent of get_noise itself - print(f' DEBUG: seed at make_image() invocation time ={seed}') image = make_image(x_T) results.append([image, seed]) if image_callback is not None: @@ -617,8 +617,8 @@ def load_model(self): return self.model # returns a tensor filled with random numbers from a normal distribution - def _get_noise(self,init_img,width,height): - if init_img: + def _get_noise(self,init_latent,width,height): + if init_latent is not None: if self.device.type == 'mps': return torch.randn_like(init_latent, device='cpu').to(self.device) else: