Commit Graph

66 Commits

Author SHA1 Message Date
Thomas Mello
d9a163b1b0
chore: bump Gradio to 3.4.1 (#1520)
* update gradio
* fix some glaring styling issues

Note: the server message has changed and now the address `0.0.0.0:7680`
is shown by default which might not work in browsers. The server is
still accessible through `localhost`/real ip address
2022-10-14 14:54:35 +03:00
xaedes
33b896d0cb
Scene-to-Image Prompt Layering System (#1179)
# Summary of the change

- new Scene-to-Image tab
- new scn2img function
- functions for loading and running monocular_depth_estimation with
tensorflow

# Description

(relevant motivation, which issue is fixed)

Related to discussion #925

> Would it be possible to have a layers system where we could do have
foreground, mid, and background objects which relate to one another and
share the style? So we could say generate a landscape, one another layer
generate a castle, and on another layer generate a crowd of people.

To make this work I made a prompt-based layering system in a new
"Scene-to-Image" tab.
You write a a multi-line prompt that looks like markdown, where each
section declares one layer.
It is hierarchical, so each layer can have their own child layers.

Examples: https://imgur.com/a/eUxd5qn
![](https://i.imgur.com/L61w00Q.png)

In the frontend you can find a brief documentation for the syntax,
examples and reference for the various arguments.

Here a short summary:

Sections with "prompt" and child layers are img2img, without child
layers they are txt2img.
Without "prompt" they are just images, useful for mask selection, image
composition, etc.
Images can be initialized with "color", resized with "resize" and their
position specified with "pos".
Rotation and rotation center are "rotation" and "center". 

Mask can automatically be selected by color or by estimated depth based
on https://huggingface.co/spaces/atsantiago/Monocular_Depth_Filter.

![](https://i.imgur.com/8rMHWmZ.png)

# Additional dependencies that are required for this change

For mask selection by monocular depth estimation tensorflow is required
and the model must be cloned to ./src/monocular_depth_estimation/
Changes in environment.yaml:
- einops>=0.3.0
- tensorflow>=2.10.0 

Einops must be allowed to be newer for tensorflow to work.

# Checklist:

- [x] I have changed the base branch to `dev`
- [x] I have performed a self-review of my own code
- [x] I have commented my code in hard-to-understand areas
- [x] I have made corresponding changes to the documentation

Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-10-02 18:23:37 +01:00
hlky
4a15702fe9
License header 2022-09-26 14:02:48 +01:00
Thomas Mello
fa4e63a549
Fix css (#1303)
* fix css for highlight output info elements

* clean up css_and_js.py

* remove unused js imports
2022-09-24 22:58:50 +03:00
Thomas Mello
f8b8a1357e
fix: copy of output parameters (#1301)
refactor js invocation on txt2img and img2img pages
2022-09-24 20:57:12 +03:00
xaedes
acb051e9f5
fix broken output info in img2img to highlight parameters like in txt2img (#1289)
- change gr.Textbox to gr.Highlightedtext like in txt2img
2022-09-24 03:21:33 +03:00
Thomas Mello
8540c8d42c fix: copy to clipboard button 2022-09-18 15:08:47 +03:00
Thomas Mello
148c41826b Merge branch 'dev' into the-merge
# Conflicts:
#	.gitignore
#	README.md
#	configs/webui/webui_streamlit.yaml
#	environment.yaml
#	frontend/css/streamlit.main.css
#	frontend/frontend.py
#	scripts/webui_streamlit.py
2022-09-18 12:31:17 +03:00
Mark Knol
ea6b422bff
very minor spelling error (#762)
* Update frontend.py

* Update frontend.py

Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-18 04:57:08 +01:00
JuanLagu
98adf69c7c
Calculate aspect ratio and pixel count on start (#1157) 2022-09-15 20:39:05 +03:00
cobryan05
76de9f9b65
JobManager: Buttons skip queue (#1092)
Have JobManager buttons skip Gradio's queue, since otherwise
they aren't sending JobManager button presses.
2022-09-13 22:25:51 +03:00
Thomas Mello
c63fcb1502
fix: disable live prompt parsing 2022-09-13 00:42:53 +03:00
Thomas Mello
e6a9e5d968
fix: disable live prompt parsing, fix #676 2022-09-13 00:37:56 +03:00
endomorphosis
372ac31c20
add Gradio API endpoint settings (#1055)
* add Gradio API endpoint settings
2022-09-12 14:27:24 +03:00
Hafiidz
0a3d4eea58 remove deprecated kwargs/parameter 2022-09-11 09:21:32 +08:00
Soul-Burn
3e9cdb1dcb Better support for large batches in optimized mode 2022-09-10 15:25:13 +01:00
xaedes
f6aa2c64eb
Add mask_restore to restore images based on mask, fixing #665 (#898)
* Add mask_restore option to give users the option to restore images based on mask, fixing #665.

Before commit c73fdd78  (Implement masking during sampling to improve blending, #308)
image mask was applied after sampling, resulting in masked parts that are not regenerated
to actually stay the same.
Since c73fdd78 the masked img2img will change the whole image, even in masked areas.
It gives better looking results at first glance, but will result in image degredation when
applied a few times. See issue #665.

In the workflow of using repeated masked img2img, users may want to use this options to keep the parts
of image they actually want to keep without image degradation. A final masked img2img or whole image img2img with mask_restore disabled
will give the better blending of "Implement masking during sampling".

* revert changes of a7be43ba in change_image_editor_mode

* fix ui_functions.change_image_editor_mode by adding gr.update to the end of the list it returns

* revert inserted newlines and whitespaces to match format of previous code

* improve caption of new option mask_restore

"Only modify regenerated parts of image"

* fix ui_functions.change_image_editor_mode by adding gr.update to the end of the list it returns

an old copy of the function exists in webui.py, this superflous function mistakenly was changed by the earlier commit b6a9e16b

* remove unused functions that are near duplicates of functions in ui_functions.py
2022-09-10 00:07:14 +03:00
James Pound
c37de9f04e
Fixed aspect ratio box not being updated on txt2img tab, for issue 219 from old repo (#812) 2022-09-09 17:58:59 +03:00
Thomas Mello
da9dab22a7
Merge pull request #872 from nagolinc/voroni-outcrop
Improve outpainting with Perlin noise
2022-09-09 17:39:12 +03:00
M
70db27fa6a
frontend: display current device info (#889)
Displays the current device info at the bottom of the page.

For users who run multiple instances of `sd-webui` on the same system (for multiple GPUs), it helps to know which of the active `CUDA_VISIBLE_DEVICES` is being used.
2022-09-09 17:16:39 +03:00
Logan zoellner
754e530d70 when in outcrop mode, mask added regions and fill in with voroni noise for better outpainting 2022-09-09 10:13:38 -04:00
Thomas Mello
0dffc3918d fix: advanced editor (#827), close #811
refactor js_Call hook to take all gradio arguments
2022-09-08 16:09:10 +03:00
Thomas Mello
ffb2d7ae9c
fix: advanced editor (#827), close #811
refactor js_Call hook to take all gradio arguments
2022-09-08 15:43:08 +03:00
hlky
a00d827cd8
Dev merge (#819)
* #715 #699 #698 #663 #625 #617 #611 #604 (#716)

* Update README.md

* Add sampler name to metadata (#695)

Co-authored-by: EliEron <example@example.com>

* old-dev-merge

Co-authored-by: EliEron <subanimehd@gmail.com>
Co-authored-by: EliEron <example@example.com>

* img2img-fix (#717)

* Revert "img2img-fix (#717)"

This reverts commit 70d4b1ca2a.

* img2img fixes

* Revert "img2img fixes"

This reverts commit e66eddc621.

* Revert "Revert "img2img-fix (#717)""

This reverts commit bf08b617d4.

* img2img fixed

* - Removed duplicated calls to save_sample.
- Change variables and arguments to be more self-explanatory and easier to understand what they do.

* Moved streamlit files to their proper location, before they were incorrectly added to the repository root folder.

* Added retry dependency for the streamlit version.

* Added .cmd file for easy running and updating the streamlit version of the UI.

* Removed duplicated entry for streamlit on the environment.yaml file.

* Removed some unnecessary lines from the the webui_streamlit.cmd file.

* add gfpgan folder to gitignore, auto gen by imglab

* added placeholder text similar to gradio

* added auto conversion for 4 channel PNG to RGB

* fix: regex escape characters

* Update Readme links to sd-webui when appropriate (#781)

* Update link to sd-webui when appropriate

* added LDSR instruction per devilismyfriend guide

* fix: stack overflow during recursion call (#784)

* Added option to set default sampler name from config file, will be useful for those wanting to change the default sampler and  have it persist even when closing the UI and opening it again.

* Added try and except block to handle basic errors like StopException which is raised by streamlit when you hit the stop button and KeyError which happens also when stopping the generation because it tries to check the model at the end which is not loaded at that time, this can be ignored and so thats the reason for the exception.

* separate css to external file

* Added "git pull" and "git stash" to the commands run by the cmd scripts when launching the UI, this should make it so people who use it can automatically update the code from the repo and be up to date without manually using those commands everytime.

* resolve conflict with master

Co-authored-by: EliEron <subanimehd@gmail.com>
Co-authored-by: EliEron <example@example.com>
Co-authored-by: ZeroCool <ZeroCool940711@users.noreply.github.com>
Co-authored-by: ZeroCool940711 <alejandrogilelias940711@gmail.com>
Co-authored-by: Hafiidz <3688500+Hafiidz@users.noreply.github.com>
Co-authored-by: Thomas Mello <work.mello@gmail.com>
2022-09-08 11:41:04 +01:00
Thomas Mello
67b6196b1e
Merge branch 'master' into dev 2022-09-08 13:28:50 +03:00
Thomas Mello
a8e15c85f3 resolve conflict with master 2022-09-08 13:27:21 +03:00
hlky
490bbbc103
Img2img dev (#736)
* #715 #699 #698 #663 #625 #617 #611 #604 (#716)

* Update README.md

* Add sampler name to metadata (#695)

Co-authored-by: EliEron <example@example.com>

* old-dev-merge

Co-authored-by: EliEron <subanimehd@gmail.com>
Co-authored-by: EliEron <example@example.com>

* img2img-fix (#717)

* Revert "img2img-fix (#717)"

This reverts commit 70d4b1ca2a.

* img2img fixes

* Revert "img2img fixes"

This reverts commit e66eddc621.

* Revert "Revert "img2img-fix (#717)""

This reverts commit bf08b617d4.

* img2img fixed

* feat: bring back Crop mode, formatting

Co-authored-by: EliEron <subanimehd@gmail.com>
Co-authored-by: EliEron <example@example.com>
Co-authored-by: Thomas Mello <work.mello@gmail.com>
2022-09-07 20:19:00 +01:00
hlky
3b490df708
img2img fixed 2022-09-07 03:08:29 +01:00
hlky
cf754f9fe6
Revert "Revert "img2img-fix (#717)""
This reverts commit bf08b617d4.
2022-09-07 02:56:27 +01:00
hlky
06df5a5697
Revert "img2img fixes"
This reverts commit e66eddc621.
2022-09-07 02:56:23 +01:00
hlky
e66eddc621
img2img fixes 2022-09-07 02:35:01 +01:00
hlky
bf08b617d4
Revert "img2img-fix (#717)"
This reverts commit 70d4b1ca2a.
2022-09-07 01:45:15 +01:00
hlky
70d4b1ca2a
img2img-fix (#717) 2022-09-07 00:48:13 +01:00
hlky
f28255466b
#715 #699 #698 #663 #625 #617 #611 #604 (#716)
* Update README.md

* Add sampler name to metadata (#695)

Co-authored-by: EliEron <example@example.com>

* old-dev-merge

Co-authored-by: EliEron <subanimehd@gmail.com>
Co-authored-by: EliEron <example@example.com>
2022-09-07 00:43:51 +01:00
hlky
e5e1663457
Revert load settings/tkinter 2022-09-04 01:46:17 +01:00
Thomas Mello
435d152c24
fix mask generation (#600) 2022-09-04 01:28:15 +01:00
devilismyfriend
de95a09593
[Various Changes] GoBig fixes, model loading unloading and more (#553)
* added image lab

* first release

model loading/unloading and save procedure added, commented out unused code from frontend

* bug fixes

Changed the image output to a gallery to display multiple items

Fixed results not showing up in output

Fixed RealESRGAN 2x mode not working and hard coded the default value for the reload.

* added GoBig model check

* added LDSR load check

* removed global statements, added model loader/unloader function

* fixed optimized mode

* update

* update

Added send to lab button
Added a print out if latent-diffusion folder isn't found

* brought back the fix faces and upscale in generation tab

* uncommenting img lab flag

* added LDSR instructions

* default imgProcessorTask set to false

* exposed LDSR settings to lab

users need to reclone the LDSR repo to use them.

* Update frontend.py

moving some stuff around to make them more coherent

* restored upscale and fix faces to img2img

* added notice section

* fixed gfpgan/upscaled pictures not showing in 2img interfaces

* send to lab button now sends info as well

* uncommented dimension info update

* added increment buttons to sampler for that k_euler_a action

* image lab settings toggle on and off with selection

* removed wip settings panel

* better model loading handling and removed increment buttons

* explaining

* disabled SD unloading in image lab upscaling with realesgan and face fix

* fixed a conflict with image lab

Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com>
Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-03 09:07:17 +01:00
cobryan05
6a1a97e31e
Image Lab: Display Png metadata (#528)
This adds a text box to Image Lab that displays the metadata
of any PNG files dropped on it. Can be used to read the info
saved with --save-metadata

Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-03 08:40:02 +01:00
cobryan05
b969428590
Job Manager feature - view images before all are complete, cancel ongoing generations (#460)
* Add max-jobs command line argument

Adds a new command line argument, max-jobs, which will set the number
of concurrent jobs the gradio queue will allow. When set to more than
the default of 1 the gradio UI will be able to process additional
UI commands at the same time.

* JobManager: initial txt2img implementation

Initial implementation of JobManager, applied to txt2img.
Adds 'refresh' and 'cancel' buttons to the UI. These are useful when
generating images with large batch counts. The 'refresh' button will
update the gallery with the currently-generated images, and the cancel
button will cause the generation to stop after the current iteration.

The new job manager can be disabled with the parameter
  --no-job-manager

* JobManager: Add status update text

* JobManager: Replace wrapped inputs as well

* JobManager: Per-session unique keys

* JobManager: Pre and Post call funcs, UI updates

Added pre- and post- function call 'dummy objects' to allow updating
the UI before and after a generate run. Update the visuals of the
buttons and status text in these new functions.

* JobManager: enforce maximum jobs

* JobManager: Move 'call' func code block

It just makes more sense between _pre and _post.

* JobManager: Add session management

Adds support for multiple browser sessions.
A single session cannot run the same job twice.

If there are no available jobs when Generate is clicked, the
generation aborts. It does *not* queue.

* JobManager: add session maintenance

Addded the ability for one session to stop all concurrent sessions,
and to free memory from any 'finished' sessions for which the
browser has been closed (as the images will be stored until the
browser does a final 'refresh' after the job finishes, which will
never happen if the browser closed)

* JobManager: Add img2img support

This *should* add JobManager to img2img, but it is untested
since img2img is broken for me even without my changes.

* Fixed img2img functionality on this pr

* Revert "Fixed img2img functionality on this pr"

This reverts commit 649b1e8e65.

* Img2Img: Fix 'image editor' options not visible

* Fix Img2Img Job Manager integration

* Img2Img UI: Move JobManager above Image Actions

It is helpful if it is on the screen when you hit generate, so
you can notice the button light up when generation starts.

* Improve job status text

* JobManager: Free available job on exception

* JobManager: Add queueing

Adds a simple queueing system to JobManager. If max-jobs concurrent
jobs are already active then any subsequent jobs will block until
a slot frees up.

Note: The UI does not give great feedback to this. The JobManager
status box will say "Loading..."

* JobManager: Fix queue accidentally LIFO

Queues should really be first in, first out.

* JobManager: add draw_gradio_ui function

Reduces a lot of boilerplate code in frontend.py

Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-03 08:30:07 +01:00
Johannes Gäßler
4af33ccda9
Load txt2img setting from files or clipboard (#436)
Functional restore defaults

From file, non-working paste

Working paste settings
2022-09-03 08:24:03 +01:00
hlky
3ea787b5d7
Merge branch 'master' of https://github.com/hlky/stable-diffusion-webui 2022-09-01 18:58:06 +01:00
hlky
decd31ca92
Can't run batches more than 10 after latest commits #218 2022-09-01 18:58:02 +01:00
devilismyfriend
678578c99d
[Image lab] Send to lab button (#444)
* added image lab

* first release

model loading/unloading and save procedure added, commented out unused code from frontend

* bug fixes

Changed the image output to a gallery to display multiple items

Fixed results not showing up in output

Fixed RealESRGAN 2x mode not working and hard coded the default value for the reload.

* added GoBig model check

* added LDSR load check

* removed global statements, added model loader/unloader function

* fixed optimized mode

* update

* update

Added send to lab button
Added a print out if latent-diffusion folder isn't found

* brought back the fix faces and upscale in generation tab

Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com>
Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-01 18:48:51 +01:00
altryne
45fafec68a
[Big update] - Dynamic params, Ui rehaul, mobile fixes, and simplification of the txt2img tab (#421)
* Merge with master

* params in prompt WIP

Signed-off-by: Alex Volkov <alex.volkov@fundbox.com>

* Added highligted text output, added copy and pastable dynamic params

Signed-off-by: Alex Volkov <alex.volkov@fundbox.com>

* Fixes with working repo

Signed-off-by: altryne <altryne@gmail.com>

* some fixes

Signed-off-by: Alex Volkov <alex.volkov@fundbox.com>
Signed-off-by: altryne <altryne@gmail.com>
Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-01 14:18:17 +01:00
devilismyfriend
a447938cde
[updates] Image Tab (#433)
* added image lab

* first release

model loading/unloading and save procedure added, commented out unused code from frontend

* bug fixes

Changed the image output to a gallery to display multiple items

Fixed results not showing up in output

Fixed RealESRGAN 2x mode not working and hard coded the default value for the reload.

* added GoBig model check

* added LDSR load check

* removed global statements, added model loader/unloader function

* fixed optimized mode

* update

Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com>
Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-01 12:56:11 +01:00
hlky
66dac9bcf9
conflict fix 2022-09-01 11:49:29 +01:00
devilismyfriend
1f22b0f5aa
[Feature] Image Processing tab (#401)
* added image lab

* first release

model loading/unloading and save procedure added, commented out unused code from frontend

* bug fixes

Changed the image output to a gallery to display multiple items

Fixed results not showing up in output

Fixed RealESRGAN 2x mode not working and hard coded the default value for the reload.

* added GoBig model check

* added LDSR load check

* removed global statements, added model loader/unloader function

Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com>
Co-authored-by: hlky <106811348+hlky@users.noreply.github.com>
2022-09-01 11:32:11 +01:00
Thomas Mello
773aa60e8a
refactor: python js interface (#381)
* refactor js interface

* rename call_SD to call_JS

* add invocation example to call_JS

* serialize args before passing them to js

* allow override of x
2022-09-01 11:11:22 +01:00
hlky
fecac5c242
Update frontend.py 2022-08-31 14:59:38 +01:00
hlky
7754880f55
#234 2022-08-31 14:34:50 +01:00