Commit Graph

986 Commits

Author SHA1 Message Date
cmdr2
d1738baf44 Merge branch 'beta' into refactor 2022-12-14 16:53:23 +05:30
cmdr2
7eb29fa91b Fix: errors were overwritten by the time taken in the UI 2022-12-14 16:52:46 +05:30
cmdr2
35ff4f439e Refactor save_to_disk 2022-12-14 16:30:19 +05:30
cmdr2
12e0194c7f Allow None as the value type in dnd parsing 2022-12-14 16:30:08 +05:30
cmdr2
d1ac90e16d [metadata parsing] Support loading the flat JSON format saved by the next backend; Set the dropdown to None if the value is undefined or null in the metadata 2022-12-14 15:43:24 +05:30
cmdr2
7dc7f70582 Allow parsing .safetensors stable diffusion model path in the metadata parser 2022-12-14 10:34:36 +05:30
cmdr2
84d606408a Prompt is now a keyword in the new metadata format generated from diffusionkit 2022-12-14 10:31:19 +05:30
cmdr2
d103693811 Bug in the metadata generation - made an array of None 2022-12-14 10:22:24 +05:30
cmdr2
0dbce101ac sampler -> sampler_name 2022-12-14 10:21:44 +05:30
cmdr2
cb81e2aacd Fix a bug where the metadata output format wouldn't get sent to the backend 2022-12-14 10:18:01 +05:30
cmdr2
6cd0b530c5 Simplify the code for VAE loading, and make it faster to load VAEs (because we don't reload the entire SD model each time a VAE changes); Record the error and end the thread if the SD model fails to load during startup 2022-12-13 15:46:04 +05:30
cmdr2
80bc80dc2c
removeTask() 2022-12-13 12:02:43 +05:30
cmdr2
a483bd0800 No need to catch and report exceptions separately in the renderer now 2022-12-13 11:46:13 +05:30
cmdr2
47a39569bc Merge branch 'beta' into refactor 2022-12-13 11:45:43 +05:30
cmdr2
f00e1a92d8
Don't hang the task if something other than the renderer fails (e.g. model loading) 2022-12-13 11:44:20 +05:30
Jens Sülwald
b750c0d7c3 The exception should also mention dpm2 2022-12-12 16:24:03 +01:00
cmdr2
a244a6873a Use the new 'diffusionkit' package name 2022-12-12 20:46:11 +05:30
cmdr2
ceff4f06c1 Merge branch 'beta' into refactor 2022-12-12 20:43:29 +05:30
cmdr2
92030a3917 Don't collapse the task entry if 'Stop Task' is pressed 2022-12-12 19:56:27 +05:30
cmdr2
5c4e6f7e96 Tweak editor width 2022-12-12 19:42:43 +05:30
cmdr2
8c032579b8 Hide the hypernetwork strength slider if no hypernetwork model is selected; Support drag-n-drop for hypernetwork models 2022-12-12 19:31:59 +05:30
cmdr2
b53935bfd4 Revert "Scrolling panes (#632)"
This reverts commit e3184622e8.
2022-12-12 19:03:16 +05:30
cmdr2
d4db027cfa Move the hypernetwork options below the sampler settings; Whitespace fixes 2022-12-12 19:02:34 +05:30
cmdr2
27963decc9 Use the multi-filters API 2022-12-12 18:12:55 +05:30
cmdr2
25f488c6e1 Merge branch 'beta' into refactor 2022-12-12 15:47:13 +05:30
cmdr2
07bd580050 Typos 2022-12-12 15:44:22 +05:30
cmdr2
fb32a38d96 Rename sampler to sampler_name in the API 2022-12-12 15:21:02 +05:30
cmdr2
ac0961d7d4 Typos from the refactor 2022-12-12 15:18:56 +05:30
cmdr2
4bbf683d15 Minor refactor 2022-12-12 14:41:36 +05:30
cmdr2
d0e50584ea Expose the metadata format option in the UI 2022-12-12 14:06:20 +05:30
cmdr2
b57649828d Refactor the save-to-disk code, moving parts of it to diffusionkit 2022-12-12 14:01:47 +05:30
Marc-Andre Ferland
1f44a283b3 Update 'release-notes' to use loadScript 2022-12-12 02:47:42 -05:00
Marc-Andre Ferland
9947c3bcfb
Start timer to IDLE_COOLDOWN before idleEventPromise completes. (#649) 2022-12-12 11:12:11 +05:30
JeLuF
8faf6b9f52
Don't allow to make zero images, make at least one. (#647) 2022-12-12 11:11:33 +05:30
cmdr2
e45cbbf1ca Use the turbo setting if requested 2022-12-11 20:42:31 +05:30
cmdr2
1a5b6ef260 Rename runtime2.py to renderer.py; Will remove the old runtime soon 2022-12-11 20:21:25 +05:30
cmdr2
096556d8c9 Move away the remaining model-related code to the model_manager 2022-12-11 20:13:44 +05:30
cmdr2
97919c7e87 Simplify the runtime code 2022-12-11 19:58:12 +05:30
cmdr2
0aa7968503 Move color correction to diffusionkit; Rename color correction to 'Preserve color profile' 2022-12-11 19:34:07 +05:30
JeLuF
bd1bc78953 Use onIdle(), move pause button, quick resume without using the promise 2022-12-11 14:57:01 +01:00
cmdr2
6ce6dc3ff6 Get rid of the ugly copying around (and maintaining) of multiple request-related fields. Split into two objects: task-related fields, and render-related fields. Also remove the ability for request-defined full-precision. Full-precision can now be forced by using a USE_FULL_PRECISION environment variable 2022-12-11 18:16:29 +05:30
JeLuF
e6346775e7 Merge branch 'beta' into pause 2022-12-11 11:19:48 +01:00
cmdr2
d03eed3859 Simplify the logic for reloading gfpgan and realesrgan models (based on the request), using the code path used for the other model types 2022-12-11 14:14:59 +05:30
cmdr2
afb88616d8 Load the models after the device init, to let the UI load before the models finish loading 2022-12-11 13:30:16 +05:30
cmdr2
543f13f9a3 Tweak logging to increase the space available by 3 characters 2022-12-11 13:19:22 +05:30
patriceac
af5c68051a
Fix for the tooltips being cutoff (#636) 2022-12-11 12:59:23 +05:30
Marc-Andre Ferland
5b7cd11de8
Added support for Async events (#643)
* Added support for async events callbacks

* Don't fire IDLE event if the first callback hasn't completed execution.
2022-12-11 11:22:52 +05:30
cmdr2
d3c3496e55
Merge pull request #639 from madrang/newEngine
Check if window is defined. Not all JS execution environments have it.
2022-12-11 11:19:11 +05:30
cmdr2
c08c8b2789
Merge pull request #638 from JeLuF/initimg
show initimg in task list
2022-12-11 11:18:10 +05:30
cmdr2
069315e434
Merge pull request #642 from patriceac/patch-5
Fixing a typo
2022-12-11 11:16:24 +05:30
cmdr2
7e4ad83a1c
Merge pull request #637 from madrang/mainjs_fixes
Fix (typeof stepUpdate !== 'object') not completing the task on stop.
2022-12-11 11:15:31 +05:30
JeLuF
38951f5581 Pause button - check whether function is defined before calling it 2022-12-11 02:49:49 +01:00
patriceac
b5329ee93d
Fixing a typo
Yeah, I know... What can I say? I have my OCD too. 👀
2022-12-10 17:45:14 -08:00
JeLuF
c568bca69e Pause button 2022-12-11 02:31:23 +01:00
Marc-Andre Ferland
7b2be12587 Check if window is defined. Not all JS execution environments have it. 2022-12-10 18:26:48 -05:00
JeLuF
099fde2652 show initimg in task list 2022-12-10 17:17:37 +01:00
Marc-Andre Ferland
83e5410945 Fix (typeof stepUpdate !== 'object') not completing the task on stop. 2022-12-10 00:52:27 -05:00
patriceac
b330c34b29
Fix auto-scroll setting management
After thinking about it, the auto-save toggle is meant for the *Editor* fields listed behind the Configure button. The auto-scroll toggle is not part of the Editor, and is more akin to a system setting, although it's placed in the main UI for convenience reasons related to its nature. As such, and especially considering it's a plugin, I lean towards decoupling auto-scroll from the auto-save settings, and just storing it independently.
2022-12-09 19:34:41 -08:00
patriceac
e3184622e8
Scrolling panes (#632)
Decouple the editor and the preview panes. Scrollbars color updated as well as requested.
2022-12-09 23:11:39 +05:30
patriceac
28f822afe0
Fix tags not being properly applied to prompt matrix (#610)
There is an issue on the beta where if you use pipe ( | ) in the prompt to make a prompt matrix, the optional prompts are only applied when the last prompt in the matrix is used.
2022-12-09 23:04:25 +05:30
cmdr2
a2af811ad2 Disable uvicorn access logging in favor of cleaner server-side logging, we already get all that info; Print the request metadata 2022-12-09 22:47:34 +05:30
cmdr2
cde8c2d3bd Use a logger 2022-12-09 21:30:18 +05:30
cmdr2
79cc84b611 Option to apply color correction (balances the histogram) during inpainting; Refactor the runtime to use a general-purpose dict 2022-12-09 19:39:56 +05:30
cmdr2
f1de0be679 Fix integration issues after the refactor 2022-12-09 17:50:33 +05:30
Marc-Andre Ferland
854e3d3576
Fix reading value from undefined. (#631) 2022-12-09 16:34:59 +05:30
cmdr2
dbac2655f5 Typo 2022-12-09 16:14:04 +05:30
cmdr2
0f656dbf2f Typo 2022-12-09 16:11:08 +05:30
cmdr2
3fbb3f6773 Use const 2022-12-09 16:09:10 +05:30
cmdr2
8820814002 Simplify the API for resolving model paths; Code cleanup 2022-12-09 15:45:36 +05:30
cmdr2
b40fb3a422 Model readme file write flag 2022-12-09 15:27:40 +05:30
cmdr2
aa59575df3 Remove unused patch files 2022-12-09 15:24:55 +05:30
cmdr2
accfec9007 Space 2022-12-09 15:22:56 +05:30
cmdr2
16410d90b8 Use the simplified model loading API in diffusion-kit; Catch and report exceptions while generating images 2022-12-09 15:21:49 +05:30
cmdr2
27c6113287 Support hypernetworks; moves the hypernetwork module to diffusion-kit 2022-12-09 13:29:06 +05:30
cmdr2
f4a6910ab4 Work-in-progress: refactored the end-to-end codebase. Missing: hypernetworks, turbo config, and SD 2. Not tested yet 2022-12-08 21:39:09 +05:30
cmdr2
bad89160cc Work-in-progress model loading 2022-12-08 13:50:46 +05:30
cmdr2
5782966d63 Merge branch 'beta' into refactor 2022-12-08 11:58:09 +05:30
Marc-Andre Ferland
ba2c966329
First draft of multi-task in a single session. (#622) 2022-12-08 11:12:46 +05:30
Marc-Andre Ferland
f8dee7e25f
Add test sample to one of the plugin. (#626)
* Added test example from a plugin.

* Only load style if #news was created.
2022-12-08 10:57:50 +05:30
cmdr2
fb6a7e04f5 Work-in-progress refactor of the backend, to move most of the logic to diffusion-kit and keeping this as a UI around that engine. Does not work yet. 2022-12-07 22:15:35 +05:30
cmdr2
bfdf487d52 SD2 models no longer need to be prefixed with 'sd2_' . The model loader now checks for a key that only SD2 models seem to have, to deduce which config file to use 2022-12-07 16:19:46 +05:30
cmdr2
273525e6f9 Merge branch 'beta' of github.com:cmdr2/stable-diffusion-ui into beta 2022-12-07 13:12:02 +05:30
cmdr2
064a4938c1 Don't show prompt strength when the app starts 2022-12-07 13:11:49 +05:30
Marc-Andre Ferland
182236e742
Hypernets mergefixes (#625)
* Add hypernetwork args definition in the engine.

* Add the values to reqBody

* Don't load hypernetwork.py with SD2 until it's compatible.
2022-12-07 12:35:36 +05:30
cmdr2
d4a378827f Paint editor - translucent mask, more brush size options 2022-12-07 12:27:40 +05:30
Guillaume Mercier
cbe91251ac
Hypernetwork support (#619)
* Update README.md

* Update README.md

* Make on_sd_start.sh executable

* Merge pull request #542 from patriceac/patch-1

Fix restoration of model and VAE

* Merge pull request #541 from patriceac/patch-2

Fix restoration of parallel output setting

* Hypernetwork support

Adds support for hypernetworks. Hypernetworks are stored in /models/hypernetworks

* forgot to remove unused code

Co-authored-by: cmdr2 <secondary.cmdr2@gmail.com>
2022-12-07 11:24:16 +05:30
Marc-Andre Ferland
1283c6483d
Use the reqBody exposed to events to allow plugins to change the request. (#620) 2022-12-07 09:34:04 +05:30
Marc-Andre Ferland
7984327d81
Fixed tasks buttons by replacing the error with a warning when setting properties to undefined. (#618) 2022-12-06 21:49:05 +05:30
cmdr2
ef90832aea
engine.js (#615)
* New engine.js first draft.

* Small fixes...

* Bump version for cache...

* Improved cancellation code.

* Cleaning

* Wrong argument used in Task.waitUntil

* session_id needs to always match SD.sessionId

* Removed passing explicit Session ID from UI.
Use SD.sessionID to replace.

* Cleaning... Removed a disabled line and a hardcoded value.

* Fix return if tasks are still waiting.

* Added checkbox to reverse processing order.

* Fixed progress not displaying properly.

* Renamed reverse label.

* Only hide progress bar inside onCompleted.

* Thanks to rbertus2000 for helping testing and debugging!

* Resolve async promises when used optionally.

* when removed var should have used let, not const.

* Renamed getTaskErrorHandler to onTaskErrorHandler to better reflect actual implementation.

* Switched to the unsafer and less git friendly end of lines comma as requested in review.

* Raised SERVER_STATE_VALIDITY_DURATION to 90 seconds to match the changes to Beta.

* Added logging.

* Added one more hook before those inside the SD engine.

* Added selftest.plugin.js as part of core.

* Removed a tests that wasn't yet implemented...

* Groupped task stopping and abort in single function.

* Added optional test for plugins.

* Allow prompt text to be selected.

* Added comment.

* Improved isServerAvailable for better mobile usage and added comments for easier debugging.

* Comments...

* Normalized EVENT_STATUS_CHANGED to follow the same pattern as the other events.

* Disable plugins if editorModifierTagsList is not defined.

* Adds a new ServiceContainer to register IOC handlers.

* Added expect test for a missing dependency in a ServiceContainer

* Moved all event code in it's own sub class for easier reuse.

* Removed forgotten unused var...

* Allow getPrompts to be reused be plugins.

* Renamed EventSource to GenericEventSource to avoid redefining an existing class name.

* Added missing time argument to debounce

* Added output_quality to engine.js

* output_quality need to be an int.

* Fixed typo.

* Replaced the default euler_a by dpm2 to work with both SD1.# and SD2

* Remove generic completed tasks from plugins on generator complete.

* dpm2 starts at step 2, replaced with plms to start at step 1.

* Merge error

* Merge error

* changelog

Co-authored-by: Marc-Andre Ferland <madrang@gmail.com>
2022-12-06 17:04:08 +05:30
cmdr2
ff43dac2a7 Open the color box when the custom label is clicked 2022-12-06 16:17:45 +05:30
cmdr2
c9e34457cd Tweak text in editor 2022-12-06 15:39:27 +05:30
cmdr2
47c8eb304f Revert the button styling 2022-12-06 15:36:52 +05:30
cmdr2
2dd39fa218 Disable auto-save for the auto-scroll toggle, until a better way to save it is figured out. It currently breaks a few UI fields, since it calls initSettings() a second time 2022-12-06 15:20:31 +05:30
Malcolm Diller
cb618efb98
Image Editor Updates (#612)
* fixed tools for image editor to be more modular and made cursor an actual cursor change

* fixed eraser cursor positioning

* updated opacity to not have a 100 option

* separated clear into an actions section

* added history support for image editor. ctrl-z and ctrl-y both work now

* removed extra console log debugging stuff

* updated buttons style

* updated the button ui on the main page as requested

* updated with a bunch of bugfixes
2022-12-06 13:56:51 +05:30
JeLuF
e7ca8090fd
Make JPEG Output quality user controllable (#607)
Add a slider to the image options for the JPEG quality
For PNG images, the slider is hidden.
2022-12-05 11:02:33 +05:30
JeLuF
7861c57317
Safetensor support (Fixes #599) (#608)
* safetensors support
Add support for checkpoints in safetensors format: https://github.com/huggingface/safetensors

This format shall be safer than pickle files

* pip install safetensors
2022-12-05 10:59:48 +05:30
Marc-Andre Ferland
f701b8dc29
Simplify onUpscaleClick (#602)
* Simplified onUpscaleClick code.

* Updated fix with comment as to what it's fixing.

* Move the fix to enqueueImageVariationTask
2022-12-05 10:46:10 +05:30
patriceac
bd10a850fa
Fix upscaling when a source image is set (#593)
* Fix upscaling when a source image is set

If you have an image selected (img2img) then clicking Upscale on another unrelated image, the image for img2img is used and you get something very unexpected.

* Fix for img2img and mask gens
2022-12-03 22:25:14 +05:30
JeLuF
0f96688a54
Highlight artist modifiers when clicked (#596)
Artist modifiers, with the exception of Artstation (the first one), don't have the outline when selected. All the other modifiers, above or below, seem to work as intended

https://discord.com/channels/1014774730907209781/1014774732018683927/1048343258775949322
2022-12-03 22:18:57 +05:30
JeLuF
8eeca90d55
Fix weird scrolling when using a pen (#588)
With a pen, typing on a browser page, waiting a short moment, and then moving the pen scrolls the page.
Call event.preventDefault() to disable this default behaviour for events in the canvas area.
2022-12-02 14:40:21 +05:30