Commit Graph

36 Commits

Author SHA1 Message Date
Qing
203f2bc9c7 add paint by example 2022-12-11 09:14:28 +08:00
Qing
6a0ffdc96e update diffusers to 0.9; add SD2 2022-12-04 20:44:59 +08:00
Qing
023306ae40 wip: add interactive seg model 2022-11-30 21:53:56 +08:00
Qing
f7d7e89197 fix is_disable_switch_model 2022-11-30 21:53:56 +08:00
Anders Haglund
8e408640a4 Match stable diffusion result's histogram to image's 2022-11-23 14:50:58 -08:00
Qing
08c295a70d add Manga Model 2022-11-18 22:21:52 +08:00
Qing
c54950c05c add mask rerun button 2022-11-15 21:53:16 +08:00
Qing
d7c3149f67 add euler sampler 2022-11-15 21:11:45 +08:00
Qing
8c2904c9c8 add negative prompt 2022-11-13 12:45:29 +08:00
Qing
e971f6090b change lama default strategy to CROP
it's more user friendly for first time user, especially for users who use cpu
2022-10-26 21:10:12 +08:00
Qing
126cc25dd8 change default sampler to pndm, klms seems can't get good result 2022-10-20 22:42:28 +08:00
Qing
b63429483d frontend: clear localstorage 2022-10-20 22:23:03 +08:00
Qing
88a3e16ca5 frontend: sd1.4->sd1.5 2022-10-20 21:31:56 +08:00
Qing
d892d9166f frontend: add k_lms sampler 2022-10-15 23:11:17 +08:00
Qing
35cbbd653c Add OpenCV2 model 2022-09-25 21:27:12 +08:00
Qing
26d938839c make mask blur work 2022-09-22 21:50:41 +08:00
Qing
19f1f07c95 SD: remove dice button 2022-09-22 21:40:36 +08:00
Qing
d39bf73fac always use graduallyInpainting 2022-09-21 21:58:29 +08:00
Qing
3e4021ec0d return seed 2022-09-20 22:43:20 +08:00
Qing
32854d40da wip 2022-09-19 22:37:42 +08:00
Qing
2119a5f905 FcF use unique resize strategy 2022-09-04 16:00:42 +08:00
Qing
6d2b24ed6b add MAT model 2022-08-24 21:30:20 +08:00
Qing
b0c5d22a5a each model has its own hdsettings 2022-07-18 22:43:55 +08:00
Qing
eee91e7b82 frontend: add ZITS config 2022-07-14 17:01:39 +08:00
Qing
1f8fb29594 add Download mask settings 2022-07-14 17:00:14 +08:00
Qing
54289ea66d fix graduallyInpainting: alway draw newest lines on mask
this can prevent previous result change
2022-06-29 21:33:37 +08:00
Qing
dc950ed3fe fix localStorage restore 2022-06-28 22:58:50 +08:00
Qing
335685d581 add gradually inpainting mode 2022-06-14 15:03:03 +08:00
Qing
35b92ba9de ldm add plms sampler 2022-06-12 21:21:04 +08:00
Sanster
f97e17a593 add manual run mode 2022-04-23 20:21:34 +08:00
Sanster
0b5130420b initial settings atom from localStorage 2022-04-18 22:05:05 +08:00
Sanster
f7e1e073dc make model switch work with toast 2022-04-18 08:46:19 +08:00
Sanster
205286a414 big update 2022-04-16 21:29:18 +08:00
Sanster
78d6b1cc3e wip: add setting page 2022-04-14 20:43:07 +08:00
Sanster
aa411c7524 WIP 2022-04-12 20:58:57 +08:00
blessedcoolant
eea85b834e Complete GUI Refactor
This patch brings in a massive number of changes to the frontend of the application. Please feel free to discuss the proposed changes with me at any time.

Implemented Recoil as a state management system.
Why Recoil? It is a robust library built by developers at Facebook for state management. It has an  extremely simple API for implementation that is in sync with React syntax compared to any other state management system out there and works amazingly well. While the official release status is beta as it becomes fully featured, the library is already used in various systems at Facebook and is very stable for the use cases of this application.

Why global state management? One of the major issues I saw with the current file structure is that there is minimal code splitting and it makes further development of the frontend a cumbersome task. I have broken down the frontend into various easy to access components isolating the GUI from the logic. To avoid prop drilling, we need global state management to handle the necessary tasks. This will also facilitate the addition of any new features greatly.

Code Splitting. Majority of the components that can be isolated in the application have now been done so.
All New Custom CSS & Removal of Tailwind
While Tailwind is a great way to deploy beautiful interfaces quickly, anyone trying to stylize the application further needs to be familiar with Tailwind which makes it harder for more people to work on it. Not to mention, I am not a particular fan of flooding JSX elements with inline CSS classes. That makes reading the code extremely hard and bloats up component code drastically.

As a replacement to Tailwind, I implemented a custom styling system using SCSS as a developer dependency.

In the new system, all the general and shared styles are in the styles folder and all the component styles are in the same folder as the component for easy access.The _index.scss file now acts as a central import for every other stylesheet that needs to be loaded.

What Changed?
The entire application looks and feels like the current implementation with minimal changes.
The green (#bdff01) highlight used in the application has now been changed to a bright yellow (rgb(255, 190, 0)) because I felt it better suited the new Dark Mode (see below).
The swipe bar for comparing before and after images has now been removed and instead the comparison is a smooth fade effect. I felt this was better to analyze image changes rather than a swiper. // Can add the swipe back if needed.

Dark Mode
A brand new Dark Mode has been added for the application. Users can enable and disable by tapping the button in the header or by using the Shift + D hotkey.

Other Misc New Features
When the editor image is now zoomed out to its default size, the image now also gets centered back.

TODO
The currently used react-zoom-pinch-pan module is not mobile friendly. It does not allow brush strokes. Need to figure out a way to fix this.
Further optimization of the frontend code with better code splitting and performance.
When using the LaMa model, the first stroke has a delayed response from the backend but the ones that follow are almost immediate. I believe this is happening because of the initialization of the model on the first stroke. I wonder if either of us can look at it and see if this can somehow be preloaded so the user experience is smooth from the first stroke.
Enable threading for the desktop application mode so flaskwebgui does not block the main applications Python console.
2022-03-28 17:52:05 +13:00