From 04f2c630cff184dd527edddb50a2306e5cf100c7 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 3 Feb 2023 09:38:09 -0500 Subject: [PATCH] update --- .gitignore | 1 - TODO.md | 1 + config.json | 10 +++- localizations/.placeholder | 0 test/__init__.py | 0 test/basic_features/__init__.py | 0 test/basic_features/extras_test.py | 54 ----------------- test/basic_features/img2img_test.py | 66 --------------------- test/basic_features/txt2img_test.py | 80 -------------------------- test/basic_features/utils_test.py | 62 -------------------- test/server_poll.py | 24 -------- test/test_files/img2img_basic.png | Bin 9932 -> 0 bytes test/test_files/mask_basic.png | Bin 362 -> 0 bytes ui-config.json | 86 +++++++++++++++++++++++++++- webui.bat | 0 webui.py | 2 +- wiki | 2 +- 17 files changed, 95 insertions(+), 293 deletions(-) delete mode 100644 localizations/.placeholder delete mode 100644 test/__init__.py delete mode 100644 test/basic_features/__init__.py delete mode 100644 test/basic_features/extras_test.py delete mode 100644 test/basic_features/img2img_test.py delete mode 100644 test/basic_features/txt2img_test.py delete mode 100644 test/basic_features/utils_test.py delete mode 100644 test/server_poll.py delete mode 100644 test/test_files/img2img_basic.png delete mode 100644 test/test_files/mask_basic.png mode change 100644 => 100755 webui.bat diff --git a/.gitignore b/.gitignore index 8251232fe..d68e0ccc4 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,3 @@ __pycache__ !/embeddings/.placeholder !/outputs/.placeholder !/models/.placeholder -!/localizations/.placeholder diff --git a/TODO.md b/TODO.md index dc2b5b49c..6622db80b 100644 --- a/TODO.md +++ b/TODO.md @@ -52,6 +52,7 @@ Tech that can be integrated as part of the core workflow... - [Hypernetworks](https://civitai.com/models/4086/luisap-tutorial-hypernetwork-monkeypatch-method) - - +- [Null-text inversion](https://github.com/ouhenio/null-text-inversion-colab) ## Video Generation diff --git a/config.json b/config.json index ff1d6b5a3..cc078f23f 100644 --- a/config.json +++ b/config.json @@ -29,7 +29,7 @@ "outdir_grids": "", "outdir_txt2img_grids": "outputs/grids", "outdir_img2img_grids": "outputs/grids", - "outdir_save": "log/save", + "outdir_save": "outputs/save", "save_to_dirs": false, "grid_save_to_dirs": false, "use_save_to_dirs_for_ui": false, @@ -111,7 +111,7 @@ "localization": "None", "live_previews_enable": true, "show_progress_grid": true, - "show_progress_every_n_steps": 1, + "show_progress_every_n_steps": -1, "show_progress_type": "Full", "live_preview_content": "Prompt", "hide_samplers": [ @@ -140,6 +140,7 @@ "eta_noise_seed_delta": 0, "always_discard_next_to_last_sigma": false, "disabled_extensions": [ + "prompt-fusion-extension", "sd-webui-additional-networks", "sdweb-merge-board", "ScuNET" @@ -180,5 +181,8 @@ "outdir_ip2p_samples": "outputs/ip2p-images", "postprocessing_enable_in_main_ui": [], "postprocessing_operation_order": [], - "sd_lora": "None" + "sd_lora": "None", + "images_history_with_subdirs": false, + "images_copy_image": false, + "images_delete_recycle": false } \ No newline at end of file diff --git a/localizations/.placeholder b/localizations/.placeholder deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/__init__.py b/test/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/basic_features/__init__.py b/test/basic_features/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/basic_features/extras_test.py b/test/basic_features/extras_test.py deleted file mode 100644 index 0170c511f..000000000 --- a/test/basic_features/extras_test.py +++ /dev/null @@ -1,54 +0,0 @@ -import unittest -import requests -from gradio.processing_utils import encode_pil_to_base64 -from PIL import Image - -class TestExtrasWorking(unittest.TestCase): - def setUp(self): - self.url_extras_single = "http://localhost:7860/sdapi/v1/extra-single-image" - self.extras_single = { - "resize_mode": 0, - "show_extras_results": True, - "gfpgan_visibility": 0, - "codeformer_visibility": 0, - "codeformer_weight": 0, - "upscaling_resize": 2, - "upscaling_resize_w": 128, - "upscaling_resize_h": 128, - "upscaling_crop": True, - "upscaler_1": "None", - "upscaler_2": "None", - "extras_upscaler_2_visibility": 0, - "image": encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png")) - } - - def test_simple_upscaling_performed(self): - self.extras_single["upscaler_1"] = "Lanczos" - self.assertEqual(requests.post(self.url_extras_single, json=self.extras_single).status_code, 200) - - -class TestPngInfoWorking(unittest.TestCase): - def setUp(self): - self.url_png_info = "http://localhost:7860/sdapi/v1/extra-single-image" - self.png_info = { - "image": encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png")) - } - - def test_png_info_performed(self): - self.assertEqual(requests.post(self.url_png_info, json=self.png_info).status_code, 200) - - -class TestInterrogateWorking(unittest.TestCase): - def setUp(self): - self.url_interrogate = "http://localhost:7860/sdapi/v1/extra-single-image" - self.interrogate = { - "image": encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png")), - "model": "clip" - } - - def test_interrogate_performed(self): - self.assertEqual(requests.post(self.url_interrogate, json=self.interrogate).status_code, 200) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/basic_features/img2img_test.py b/test/basic_features/img2img_test.py deleted file mode 100644 index 9ceb748ea..000000000 --- a/test/basic_features/img2img_test.py +++ /dev/null @@ -1,66 +0,0 @@ -import unittest -import requests -from gradio.processing_utils import encode_pil_to_base64 -from PIL import Image - - -class TestImg2ImgWorking(unittest.TestCase): - def setUp(self): - self.url_img2img = "http://localhost:7860/sdapi/v1/img2img" - self.simple_img2img = { - "init_images": [encode_pil_to_base64(Image.open(r"test/test_files/img2img_basic.png"))], - "resize_mode": 0, - "denoising_strength": 0.75, - "mask": None, - "mask_blur": 4, - "inpainting_fill": 0, - "inpaint_full_res": False, - "inpaint_full_res_padding": 0, - "inpainting_mask_invert": False, - "prompt": "example prompt", - "styles": [], - "seed": -1, - "subseed": -1, - "subseed_strength": 0, - "seed_resize_from_h": -1, - "seed_resize_from_w": -1, - "batch_size": 1, - "n_iter": 1, - "steps": 3, - "cfg_scale": 7, - "width": 64, - "height": 64, - "restore_faces": False, - "tiling": False, - "negative_prompt": "", - "eta": 0, - "s_churn": 0, - "s_tmax": 0, - "s_tmin": 0, - "s_noise": 1, - "override_settings": {}, - "sampler_index": "Euler a", - "include_init_images": False - } - - def test_img2img_simple_performed(self): - self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200) - - def test_inpainting_masked_performed(self): - self.simple_img2img["mask"] = encode_pil_to_base64(Image.open(r"test/test_files/mask_basic.png")) - self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200) - - def test_inpainting_with_inverted_masked_performed(self): - self.simple_img2img["mask"] = encode_pil_to_base64(Image.open(r"test/test_files/mask_basic.png")) - self.simple_img2img["inpainting_mask_invert"] = True - self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200) - - def test_img2img_sd_upscale_performed(self): - self.simple_img2img["script_name"] = "sd upscale" - self.simple_img2img["script_args"] = ["", 8, "Lanczos", 2.0] - - self.assertEqual(requests.post(self.url_img2img, json=self.simple_img2img).status_code, 200) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file diff --git a/test/basic_features/txt2img_test.py b/test/basic_features/txt2img_test.py deleted file mode 100644 index 5aa43a44a..000000000 --- a/test/basic_features/txt2img_test.py +++ /dev/null @@ -1,80 +0,0 @@ -import unittest -import requests - - -class TestTxt2ImgWorking(unittest.TestCase): - def setUp(self): - self.url_txt2img = "http://localhost:7860/sdapi/v1/txt2img" - self.simple_txt2img = { - "enable_hr": False, - "denoising_strength": 0, - "firstphase_width": 0, - "firstphase_height": 0, - "prompt": "example prompt", - "styles": [], - "seed": -1, - "subseed": -1, - "subseed_strength": 0, - "seed_resize_from_h": -1, - "seed_resize_from_w": -1, - "batch_size": 1, - "n_iter": 1, - "steps": 3, - "cfg_scale": 7, - "width": 64, - "height": 64, - "restore_faces": False, - "tiling": False, - "negative_prompt": "", - "eta": 0, - "s_churn": 0, - "s_tmax": 0, - "s_tmin": 0, - "s_noise": 1, - "sampler_index": "Euler a" - } - - def test_txt2img_simple_performed(self): - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_with_negative_prompt_performed(self): - self.simple_txt2img["negative_prompt"] = "example negative prompt" - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_with_complex_prompt_performed(self): - self.simple_txt2img["prompt"] = "((emphasis)), (emphasis1:1.1), [to:1], [from::2], [from:to:0.3], [alt|alt1]" - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_not_square_image_performed(self): - self.simple_txt2img["height"] = 128 - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_with_hrfix_performed(self): - self.simple_txt2img["enable_hr"] = True - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_with_tiling_performed(self): - self.simple_txt2img["tiling"] = True - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_with_restore_faces_performed(self): - self.simple_txt2img["restore_faces"] = True - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_with_vanilla_sampler_performed(self): - self.simple_txt2img["sampler_index"] = "PLMS" - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - self.simple_txt2img["sampler_index"] = "DDIM" - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_multiple_batches_performed(self): - self.simple_txt2img["n_iter"] = 2 - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - def test_txt2img_batch_performed(self): - self.simple_txt2img["batch_size"] = 2 - self.assertEqual(requests.post(self.url_txt2img, json=self.simple_txt2img).status_code, 200) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/basic_features/utils_test.py b/test/basic_features/utils_test.py deleted file mode 100644 index 0bfc28a0d..000000000 --- a/test/basic_features/utils_test.py +++ /dev/null @@ -1,62 +0,0 @@ -import unittest -import requests - -class UtilsTests(unittest.TestCase): - def setUp(self): - self.url_options = "http://localhost:7860/sdapi/v1/options" - self.url_cmd_flags = "http://localhost:7860/sdapi/v1/cmd-flags" - self.url_samplers = "http://localhost:7860/sdapi/v1/samplers" - self.url_upscalers = "http://localhost:7860/sdapi/v1/upscalers" - self.url_sd_models = "http://localhost:7860/sdapi/v1/sd-models" - self.url_hypernetworks = "http://localhost:7860/sdapi/v1/hypernetworks" - self.url_face_restorers = "http://localhost:7860/sdapi/v1/face-restorers" - self.url_realesrgan_models = "http://localhost:7860/sdapi/v1/realesrgan-models" - self.url_prompt_styles = "http://localhost:7860/sdapi/v1/prompt-styles" - self.url_embeddings = "http://localhost:7860/sdapi/v1/embeddings" - - def test_options_get(self): - self.assertEqual(requests.get(self.url_options).status_code, 200) - - def test_options_write(self): - response = requests.get(self.url_options) - self.assertEqual(response.status_code, 200) - - pre_value = response.json()["send_seed"] - - self.assertEqual(requests.post(self.url_options, json={"send_seed":not pre_value}).status_code, 200) - - response = requests.get(self.url_options) - self.assertEqual(response.status_code, 200) - self.assertEqual(response.json()["send_seed"], not pre_value) - - requests.post(self.url_options, json={"send_seed": pre_value}) - - def test_cmd_flags(self): - self.assertEqual(requests.get(self.url_cmd_flags).status_code, 200) - - def test_samplers(self): - self.assertEqual(requests.get(self.url_samplers).status_code, 200) - - def test_upscalers(self): - self.assertEqual(requests.get(self.url_upscalers).status_code, 200) - - def test_sd_models(self): - self.assertEqual(requests.get(self.url_sd_models).status_code, 200) - - def test_hypernetworks(self): - self.assertEqual(requests.get(self.url_hypernetworks).status_code, 200) - - def test_face_restorers(self): - self.assertEqual(requests.get(self.url_face_restorers).status_code, 200) - - def test_realesrgan_models(self): - self.assertEqual(requests.get(self.url_realesrgan_models).status_code, 200) - - def test_prompt_styles(self): - self.assertEqual(requests.get(self.url_prompt_styles).status_code, 200) - - def test_embeddings(self): - self.assertEqual(requests.get(self.url_embeddings).status_code, 200) - -if __name__ == "__main__": - unittest.main() diff --git a/test/server_poll.py b/test/server_poll.py deleted file mode 100644 index 42d56a4ca..000000000 --- a/test/server_poll.py +++ /dev/null @@ -1,24 +0,0 @@ -import unittest -import requests -import time - - -def run_tests(proc, test_dir): - timeout_threshold = 240 - start_time = time.time() - while time.time()-start_time < timeout_threshold: - try: - requests.head("http://localhost:7860/") - break - except requests.exceptions.ConnectionError: - if proc.poll() is not None: - break - if proc.poll() is None: - if test_dir is None: - test_dir = "test" - suite = unittest.TestLoader().discover(test_dir, pattern="*_test.py", top_level_dir="test") - result = unittest.TextTestRunner(verbosity=2).run(suite) - return len(result.failures) + len(result.errors) - else: - print("Launch unsuccessful") - return 1 diff --git a/test/test_files/img2img_basic.png b/test/test_files/img2img_basic.png deleted file mode 100644 index 49a420482d0a70b9f5986d776a66cb3ea39d1a97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9932 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 KMNUMnLSTXg;ov#| diff --git a/test/test_files/mask_basic.png b/test/test_files/mask_basic.png deleted file mode 100644 index 0c2e9a6899e5c0381ce7c7364b31d684464ab423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;D1jS$B+!?x96kznhkhd0>ACglv+8xYZYf@ zg7GSo=i*7f^M21SZkWY22=JGmJVkbv-kp#gwEW^`mya*CxhPGhwnXiGR`q; zo_<(}c}Ira`{OCB1*f%^@py1P=&GJ^RapMOKMtQgA~FY_S)9o&KEP?c*l_PbMs=N@ zV_(`fFl>98;NHv3x8~HrJ}GvYh^fu8rhFC~wAih)4l!|Ub4{*lX7-Da=zYmMk&)H< zvBCDUjP^HV8at;yV&?jG|L~f5QyQAI!wgd$!W<6jey*@rGhFask>nnkY0@8#W!nC+ rec9Q-ulM)Z_RxN|lmdu{w!YU_dMY9qnsK!N7!(Yiu6{1-oD!M 0 do a Compare Paths but only one image. No video will be generated.)/visible": true, + "customscript/seed_travel.py/txt2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/value": 0.0, + "customscript/seed_travel.py/txt2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/minimum": 0, + "customscript/seed_travel.py/txt2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/maximum": 1, + "customscript/seed_travel.py/txt2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/step": 0.01, + "customscript/seed_travel.py/txt2img/Use cache/visible": true, + "customscript/seed_travel.py/txt2img/Use cache/value": true, + "customscript/seed_travel.py/txt2img/Show generated images in ui/visible": true, + "customscript/seed_travel.py/txt2img/Show generated images in ui/value": true, + "customscript/seed_travel.py/txt2img/\"Hug the middle\" during interpolation/visible": true, + "customscript/seed_travel.py/txt2img/\"Hug the middle\" during interpolation/value": false, + "customscript/seed_travel.py/txt2img/Allow the default Euler a Sampling method. (Does not produce good results)/visible": true, + "customscript/seed_travel.py/txt2img/Allow the default Euler a Sampling method. (Does not produce good results)/value": false, + "customscript/seed_travel.py/img2img/Destination seed(s) (Comma separated)/visible": true, + "customscript/seed_travel.py/img2img/Destination seed(s) (Comma separated)/value": "", + "customscript/seed_travel.py/img2img/Only use Random seeds (Unless comparing paths)/visible": true, + "customscript/seed_travel.py/img2img/Only use Random seeds (Unless comparing paths)/value": false, + "customscript/seed_travel.py/img2img/Number of random seed(s)/visible": true, + "customscript/seed_travel.py/img2img/Number of random seed(s)/value": 4.0, + "customscript/seed_travel.py/img2img/Compare paths (Separate travels from 1st seed to each destination)/visible": true, + "customscript/seed_travel.py/img2img/Compare paths (Separate travels from 1st seed to each destination)/value": false, + "customscript/seed_travel.py/img2img/Steps (Number of images between each seed)/visible": true, + "customscript/seed_travel.py/img2img/Steps (Number of images between each seed)/value": 10.0, + "customscript/seed_travel.py/img2img/Loop back to initial seed/visible": true, + "customscript/seed_travel.py/img2img/Loop back to initial seed/value": false, + "customscript/seed_travel.py/img2img/Save results as video/visible": true, + "customscript/seed_travel.py/img2img/Save results as video/value": true, + "customscript/seed_travel.py/img2img/Frames per second/visible": true, + "customscript/seed_travel.py/img2img/Frames per second/value": 30.0, + "customscript/seed_travel.py/img2img/Number of frames for lead in/out/visible": true, + "customscript/seed_travel.py/img2img/Number of frames for lead in/out/value": 0.0, + "customscript/seed_travel.py/img2img/Upscaler/visible": true, + "customscript/seed_travel.py/img2img/Upscaler/value": "Lanczos", + "customscript/seed_travel.py/img2img/Upscale ratio/visible": true, + "customscript/seed_travel.py/img2img/Upscale ratio/value": 1.0, + "customscript/seed_travel.py/img2img/Upscale ratio/minimum": 0.0, + "customscript/seed_travel.py/img2img/Upscale ratio/maximum": 8.0, + "customscript/seed_travel.py/img2img/Upscale ratio/step": 0.1, + "customscript/seed_travel.py/img2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/visible": true, + "customscript/seed_travel.py/img2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/value": 0.0, + "customscript/seed_travel.py/img2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/minimum": 0, + "customscript/seed_travel.py/img2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/maximum": 1, + "customscript/seed_travel.py/img2img/Bump seed (If > 0 do a Compare Paths but only one image. No video will be generated.)/step": 0.01, + "customscript/seed_travel.py/img2img/Use cache/visible": true, + "customscript/seed_travel.py/img2img/Use cache/value": true, + "customscript/seed_travel.py/img2img/Show generated images in ui/visible": true, + "customscript/seed_travel.py/img2img/Show generated images in ui/value": true, + "customscript/seed_travel.py/img2img/\"Hug the middle\" during interpolation/visible": true, + "customscript/seed_travel.py/img2img/\"Hug the middle\" during interpolation/value": false, + "customscript/seed_travel.py/img2img/Allow the default Euler a Sampling method. (Does not produce good results)/visible": true, + "customscript/seed_travel.py/img2img/Allow the default Euler a Sampling method. (Does not produce good results)/value": false } \ No newline at end of file diff --git a/webui.bat b/webui.bat old mode 100644 new mode 100755 diff --git a/webui.py b/webui.py index 189c77e42..88f9074ae 100644 --- a/webui.py +++ b/webui.py @@ -86,7 +86,7 @@ def initialize(): check_versions() extensions.list_extensions() - localization.list_localizations(cmd_opts.localizations_dir) + # localization.list_localizations(cmd_opts.localizations_dir) if cmd_opts.ui_debug_mode: shared.sd_upscalers = upscaler.UpscalerLanczos().scalers diff --git a/wiki b/wiki index 50909c7f7..9772bd6ca 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 50909c7f7e9b4765b61c21263afcd12e96b52e4c +Subproject commit 9772bd6cafe08a08714b58222b08804be00056d7