mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
* Counteract recent bit-rot and churn negatively affecting my PR, as per feedback.
This commit is contained in:
@ -699,6 +699,8 @@ class InvokeAIWebServer:
|
|||||||
'variations',
|
'variations',
|
||||||
'steps',
|
'steps',
|
||||||
'cfg_scale',
|
'cfg_scale',
|
||||||
|
'threshold',
|
||||||
|
'perlin',
|
||||||
'step_number',
|
'step_number',
|
||||||
'width',
|
'width',
|
||||||
'height',
|
'height',
|
||||||
|
@ -486,6 +486,8 @@ def parameters_to_generated_image_metadata(parameters):
|
|||||||
"variations",
|
"variations",
|
||||||
"steps",
|
"steps",
|
||||||
"cfg_scale",
|
"cfg_scale",
|
||||||
|
"threshold",
|
||||||
|
"perlin",
|
||||||
"step_number",
|
"step_number",
|
||||||
"width",
|
"width",
|
||||||
"height",
|
"height",
|
||||||
|
@ -529,6 +529,18 @@ class Args(object):
|
|||||||
type=float,
|
type=float,
|
||||||
help='Classifier free guidance (CFG) scale - higher numbers cause generator to "try" harder.',
|
help='Classifier free guidance (CFG) scale - higher numbers cause generator to "try" harder.',
|
||||||
)
|
)
|
||||||
|
render_group.add_argument(
|
||||||
|
'--threshold',
|
||||||
|
default=0.0,
|
||||||
|
type=float,
|
||||||
|
help='Latent threshold for classifier free guidance (CFG) - prevent generator from "trying" too hard. Use positive values, 0 disables.',
|
||||||
|
)
|
||||||
|
render_group.add_argument(
|
||||||
|
'--perlin',
|
||||||
|
default=0.0,
|
||||||
|
type=float,
|
||||||
|
help='Perlin noise scale (0.0 - 1.0) - add perlin noise to the initialization instead of the usual gaussian noise.',
|
||||||
|
)
|
||||||
render_group.add_argument(
|
render_group.add_argument(
|
||||||
'--grid',
|
'--grid',
|
||||||
'-g',
|
'-g',
|
||||||
@ -725,7 +737,7 @@ def metadata_dumps(opt,
|
|||||||
|
|
||||||
# remove any image keys not mentioned in RFC #266
|
# remove any image keys not mentioned in RFC #266
|
||||||
rfc266_img_fields = ['type','postprocessing','sampler','prompt','seed','variations','steps',
|
rfc266_img_fields = ['type','postprocessing','sampler','prompt','seed','variations','steps',
|
||||||
'cfg_scale','step_number','width','height','extra','strength']
|
'cfg_scale','threshold','perlin','step_number','width','height','extra','strength']
|
||||||
|
|
||||||
rfc_dict ={}
|
rfc_dict ={}
|
||||||
|
|
||||||
|
@ -32,6 +32,8 @@ COMMANDS = (
|
|||||||
'--iterations','-n',
|
'--iterations','-n',
|
||||||
'--width','-W','--height','-H',
|
'--width','-W','--height','-H',
|
||||||
'--cfg_scale','-C',
|
'--cfg_scale','-C',
|
||||||
|
'--threshold',
|
||||||
|
'--perlin',
|
||||||
'--grid','-g',
|
'--grid','-g',
|
||||||
'--individual','-i',
|
'--individual','-i',
|
||||||
'--init_img','-I',
|
'--init_img','-I',
|
||||||
|
@ -361,7 +361,7 @@ class Generate:
|
|||||||
), '-v --variation_amount must be in [0.0, 1.0]'
|
), '-v --variation_amount must be in [0.0, 1.0]'
|
||||||
assert (
|
assert (
|
||||||
0.0 <= perlin <= 1.0
|
0.0 <= perlin <= 1.0
|
||||||
), '-v --perlin must be in [0.0, 1.0]'
|
), '--perlin must be in [0.0, 1.0]'
|
||||||
assert (
|
assert (
|
||||||
(embiggen == None and embiggen_tiles == None) or (
|
(embiggen == None and embiggen_tiles == None) or (
|
||||||
(embiggen != None or embiggen_tiles != None) and init_img != None)
|
(embiggen != None or embiggen_tiles != None) and init_img != None)
|
||||||
|
@ -31,6 +31,8 @@ class DreamBase():
|
|||||||
width: int = 512
|
width: int = 512
|
||||||
height: int = 512
|
height: int = 512
|
||||||
cfg_scale: float = 7.5
|
cfg_scale: float = 7.5
|
||||||
|
threshold: float = 0.0
|
||||||
|
perlin: float = 0.0
|
||||||
sampler_name: string = 'klms'
|
sampler_name: string = 'klms'
|
||||||
seamless: bool = False
|
seamless: bool = False
|
||||||
model: str = None # The model to use (currently unused)
|
model: str = None # The model to use (currently unused)
|
||||||
@ -83,6 +85,8 @@ class DreamBase():
|
|||||||
self.width = int(j.get('width'))
|
self.width = int(j.get('width'))
|
||||||
self.height = int(j.get('height'))
|
self.height = int(j.get('height'))
|
||||||
self.cfg_scale = float(j.get('cfgscale') or j.get('cfg_scale'))
|
self.cfg_scale = float(j.get('cfgscale') or j.get('cfg_scale'))
|
||||||
|
self.threshold = float(j.get('threshold'))
|
||||||
|
self.perlin = float(j.get('perlin'))
|
||||||
self.sampler_name = j.get('sampler') or j.get('sampler_name')
|
self.sampler_name = j.get('sampler') or j.get('sampler_name')
|
||||||
# model: str = None # The model to use (currently unused)
|
# model: str = None # The model to use (currently unused)
|
||||||
# embeddings = None # The embeddings to use (currently unused)
|
# embeddings = None # The embeddings to use (currently unused)
|
||||||
|
@ -363,6 +363,8 @@ class GeneratorService:
|
|||||||
fit = None if init_img is None else jobRequest.fit,
|
fit = None if init_img is None else jobRequest.fit,
|
||||||
iterations = jobRequest.iterations,
|
iterations = jobRequest.iterations,
|
||||||
cfg_scale = jobRequest.cfg_scale,
|
cfg_scale = jobRequest.cfg_scale,
|
||||||
|
threshold = jobRequest.threshold,
|
||||||
|
perlin = jobRequest.perlin,
|
||||||
width = jobRequest.width,
|
width = jobRequest.width,
|
||||||
height = jobRequest.height,
|
height = jobRequest.height,
|
||||||
seed = jobRequest.seed,
|
seed = jobRequest.seed,
|
||||||
|
Reference in New Issue
Block a user