diff --git a/cli/modules/preview.py b/cli/modules/preview.py new file mode 100755 index 000000000..9365fa91e --- /dev/null +++ b/cli/modules/preview.py @@ -0,0 +1,58 @@ +#!/bin/env python +import io +import json +import base64 +import logging +from PIL import Image + +from util import Map, log +from sdapi import postsync + +template = 'photo of "{name}", {suffix}, high detailed, skin texture, facing camera, 135mm, shot on dslr, 4k, modelshoot style' +opt = { + 'prompt': None, + 'negative_prompt': '', + 'init_images': [], + 'sampler_name': 'DPM2 Karras', + 'batch_size': 1, + 'n_iter': 1, + 'steps': 30, + 'cfg_scale': 6, + 'width': 512, + 'height': 512, + 'restore_faces': False +} + +def encode(f): + img = Image.open(f) + with io.BytesIO() as stream: + img.save(stream, 'JPEG') + values = stream.getvalue() + encoded = base64.b64encode(values).decode() + return encoded + +def img2img(name: str, suffix: str): + opt['prompt'] = template.format(name = name, suffix = suffix) + log.info({ 'preview prompt': opt['prompt'] }) + log.info({ 'preview options': opt }) + opt['init_images'].append(encode('sillouethe.jpg')) + data = postsync('/sdapi/v1/img2img', opt) + if 'error' in data: + log.error({ 'preview': data['error'], 'reason': data['reason'] }) + return + info = Map(json.loads(data['info'])) + log.debug({ 'preview info': info }) + if not 'images' in data: + log.error({ 'preview': 'no images' }) + return + obj = data.copy() + del obj['images'] + log.info({ 'preview response': obj }) + for b64 in data['images']: + image = Image.open(io.BytesIO(base64.b64decode(b64.split(",",1)[0]))) + image.save('test.jpg') + +if __name__ == "__main__": + # log.setLevel(logging.DEBUG) + log.info({ 'preview': 'start' }) + img2img('hanna', 'person, woman, girl, model') diff --git a/cli/modules/sillouethe.jpg b/cli/modules/sillouethe.jpg new file mode 100644 index 000000000..f93db87e3 Binary files /dev/null and b/cli/modules/sillouethe.jpg differ diff --git a/cli/modules/test.jpg b/cli/modules/test.jpg new file mode 100644 index 000000000..3302cbf8f Binary files /dev/null and b/cli/modules/test.jpg differ diff --git a/cli/train.py b/cli/train.py index 15e95b466..d4f4d19ec 100755 --- a/cli/train.py +++ b/cli/train.py @@ -415,7 +415,7 @@ async def main(): parser.add_argument("--init", type = str, default = "person", required = False, help = "initialization class, default: %(default)s") parser.add_argument("--dst", type = str, default = "/tmp", required = False, help = "destination image folder for processed images, default: %(default)s") parser.add_argument("--steps", type = int, default = -1, required = False, help = "training steps, default: %(default)s") - parser.add_argument("--maxsteps", type = int, default = 2500, required = False, help = "max training steps used when dynamic gradient is active, default: %(default)s") + parser.add_argument("--maxsteps", type = int, default = 5000, required = False, help = "max training steps used when dynamic gradient is active, default: %(default)s") parser.add_argument("--vectors", type = int, default = -1, required = False, help = "number of vectors per token, default: dynamic based on number of input images") parser.add_argument("--batch", type = int, default = 1, required = False, help = "batch size, default: %(default)s") parser.add_argument("--rate", type = str, default = "", required = False, help = "learn rate, default: dynamic") diff --git a/config.json b/config.json index 176cfe53f..55d5b359a 100644 --- a/config.json +++ b/config.json @@ -57,7 +57,7 @@ "training_image_repeats_per_epoch": 1, "training_write_csv_every": 1.0, "training_xattention_optimizations": false, - "training_enable_tensorboard": true, + "training_enable_tensorboard": false, "training_tensorboard_save_images": false, "training_tensorboard_flush_every": 120, "sd_model_checkpoint": "sd-v15-runwayml.ckpt [cc6cb27103]", diff --git a/extensions-builtin/sd-extension-steps-animation b/extensions-builtin/sd-extension-steps-animation index ed53dc0ed..d84e051cf 160000 --- a/extensions-builtin/sd-extension-steps-animation +++ b/extensions-builtin/sd-extension-steps-animation @@ -1 +1 @@ -Subproject commit ed53dc0ed2c4547d3629d7712908eb0189bc48bd +Subproject commit d84e051cfc11ce75ce351a8379db7eac0258d796