mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix normalized prompt when a variation is generated
- The seed printed needs to be the one generated prior to the initial noising operation. To do this, I added a new "first_seed" argument to the image callback in dream.py. - Closes #641
This commit is contained in:
parent
0632a3a2ea
commit
b93f04ee38
@ -51,6 +51,7 @@ class Generator():
|
|||||||
|
|
||||||
results = []
|
results = []
|
||||||
seed = seed if seed else self.new_seed()
|
seed = seed if seed else self.new_seed()
|
||||||
|
first_seed = seed
|
||||||
seed, initial_noise = self.generate_initial_noise(seed, width, height)
|
seed, initial_noise = self.generate_initial_noise(seed, width, height)
|
||||||
with scope(self.model.device.type), self.model.ema_scope():
|
with scope(self.model.device.type), self.model.ema_scope():
|
||||||
for n in trange(iterations, desc='Generating'):
|
for n in trange(iterations, desc='Generating'):
|
||||||
@ -71,7 +72,7 @@ class Generator():
|
|||||||
image = make_image(x_T)
|
image = make_image(x_T)
|
||||||
results.append([image, seed])
|
results.append([image, seed])
|
||||||
if image_callback is not None:
|
if image_callback is not None:
|
||||||
image_callback(image, seed)
|
image_callback(image, seed, first_seed=first_seed)
|
||||||
seed = self.new_seed()
|
seed = self.new_seed()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
@ -765,10 +765,10 @@ class Generate:
|
|||||||
m, u = model.load_state_dict(sd, strict=False)
|
m, u = model.load_state_dict(sd, strict=False)
|
||||||
|
|
||||||
if self.precision == 'float16':
|
if self.precision == 'float16':
|
||||||
print('Using faster float16 precision')
|
print('>> Using faster float16 precision')
|
||||||
model.to(torch.float16)
|
model.to(torch.float16)
|
||||||
else:
|
else:
|
||||||
print('Using more accurate float32 precision')
|
print('>> Using more accurate float32 precision')
|
||||||
|
|
||||||
model.to(self.device)
|
model.to(self.device)
|
||||||
model.eval()
|
model.eval()
|
||||||
|
@ -250,11 +250,12 @@ def main_loop(gen, opt, infile):
|
|||||||
results = [] # list of filename, prompt pairs
|
results = [] # list of filename, prompt pairs
|
||||||
grid_images = dict() # seed -> Image, only used if `opt.grid`
|
grid_images = dict() # seed -> Image, only used if `opt.grid`
|
||||||
prior_variations = opt.with_variations or []
|
prior_variations = opt.with_variations or []
|
||||||
first_seed = opt.seed
|
|
||||||
|
|
||||||
def image_writer(image, seed, upscaled=False):
|
def image_writer(image, seed, upscaled=False, first_seed=None):
|
||||||
|
# note the seed is the seed of the current image
|
||||||
|
# the first_seed is the original seed that noise is added to
|
||||||
|
# when the -v switch is used to generate variations
|
||||||
path = None
|
path = None
|
||||||
nonlocal first_seed
|
|
||||||
nonlocal prior_variations
|
nonlocal prior_variations
|
||||||
if opt.grid:
|
if opt.grid:
|
||||||
grid_images[seed] = image
|
grid_images[seed] = image
|
||||||
|
Loading…
Reference in New Issue
Block a user