diff options
author | AUTOMATIC <16777216c@gmail.com> | 2023-01-23 06:24:43 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2023-01-23 06:24:43 +0000 |
commit | b5230197a69d36a79fdc4919c59a03e00e872dd3 (patch) | |
tree | 05f238653fd8fb48d736e98ad69ef4b482764347 /scripts/postprocessing_gfpgan.py | |
parent | 68303c96e5ab31576a8238a24bf5b6191cf16ed1 (diff) | |
download | stable-diffusion-webui-gfx803-b5230197a69d36a79fdc4919c59a03e00e872dd3.tar.gz stable-diffusion-webui-gfx803-b5230197a69d36a79fdc4919c59a03e00e872dd3.tar.bz2 stable-diffusion-webui-gfx803-b5230197a69d36a79fdc4919c59a03e00e872dd3.zip |
rework extras tab to use script system
Diffstat (limited to 'scripts/postprocessing_gfpgan.py')
-rw-r--r-- | scripts/postprocessing_gfpgan.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/postprocessing_gfpgan.py b/scripts/postprocessing_gfpgan.py new file mode 100644 index 00000000..d854f3f7 --- /dev/null +++ b/scripts/postprocessing_gfpgan.py @@ -0,0 +1,33 @@ +from PIL import Image
+import numpy as np
+
+from modules import scripts_postprocessing, gfpgan_model
+import gradio as gr
+
+from modules.ui_components import FormRow
+
+
+class ScriptPostprocessingGfpGan(scripts_postprocessing.ScriptPostprocessing):
+ name = "GFPGAN"
+ order = 2000
+
+ def ui(self):
+ with FormRow():
+ gfpgan_visibility = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="GFPGAN visibility", value=0, elem_id="extras_gfpgan_visibility")
+
+ return {
+ "gfpgan_visibility": gfpgan_visibility,
+ }
+
+ def process(self, pp: scripts_postprocessing.PostprocessedImage, gfpgan_visibility):
+ if gfpgan_visibility == 0:
+ return
+
+ restored_img = gfpgan_model.gfpgan_fix_faces(np.array(pp.image, dtype=np.uint8))
+ res = Image.fromarray(restored_img)
+
+ if gfpgan_visibility < 1.0:
+ res = Image.blend(pp.image, res, gfpgan_visibility)
+
+ pp.image = res
+ pp.info["GFPGAN visibility"] = round(gfpgan_visibility, 3)
|