zero01101 / openOutpaint

local offline javascript and html canvas outpainting gizmo for stable diffusion webUI API 🐠
MIT License
499 stars 43 forks source link

Workspaces #181

Closed seijihariki closed 1 year ago

seijihariki commented 1 year ago

Support for editing sessions/workspaces - Also planning to add #133 support.

For now, workspaces.js is not really being used, but it probably should (for saving SD settings together with history). Still, we have a fully (I hope) functional [save workspace] and [load workspace] buttons on save/upscale that allow for saving the full history state to a JSON file in your computer and reloading it in the future.

I plan to also integrate this thing with IndexedDB, so sessions between page reloads are maintained (if you close the window and open it again it should reload the last auto-saved state). Also, a workspace selector, so you can have several sessions in parallel and switch between them as you wish.

seijihariki commented 1 year ago

Quick Demo:

https://user-images.githubusercontent.com/7552751/213903351-b4521fbf-c025-480d-afdd-70eb69d42c84.mp4

Oh, I did not show it here, but you should not have to worry about canvas resizing. It should handle that automatically.

zero01101 commented 1 year ago

jurassic-park-remove-glasses

this is legit magic; i never once even considered something like this but the value is instantly obvious

seijihariki commented 1 year ago

Now supporting IndexedDB storage!

https://user-images.githubusercontent.com/7552751/215011635-bc7de852-be5c-4918-9812-c7ede8b57f27.mp4

zero01101 commented 1 year ago

this is so absurdly cool it's unreal, like i usually just had a stamped resource of my "default" fish test picture but now i can just import the workspace between different browsers/sessions, seriously this is so rad

minorest quibble: i kind of expected the workspace button menu to re-collapse after i clicked the reticle on the canvas; exceptionally minor of course :)

the downloadable log's really nice too; only thing i could think of suggesting with that would be maybe to include the prompt(s) and model used? otherwise 🎬 this is super slick and i feel wildly inadequate what with my silly 90% manual script interface lmao

seijihariki commented 1 year ago

minorest quibble: i kind of expected the workspace button menu to re-collapse after i clicked the reticle on the canvas; exceptionally minor of course :)

I was actually trying to make it work, but just gave up in the middle. Shouldn't be absurdly difficult to do, but it would take some fiddling with global bars and events around the code in general to make it work.

the downloadable log's really nice too; only thing i could think of suggesting with that would be maybe to include the prompt(s) and model used? otherwise 🎬 this is super slick and i feel wildly inadequate what with my silly 90% manual script interface lmao

That... Makes a lot of sense. I actually wanted to include those and probably just forgot when writing the code. If you want to implement that it would be quite easy to modify. Cannot do that for now but tomorrow or on Sunday I may be able to do this.

zero01101 commented 1 year ago

If you want to implement that it would be quite easy to modify

well maybe if i wasn't a lazy bum i'd have done so earlier ;)

seijihariki commented 1 year ago

If it is working fine, you can merge it to main no problems! I will try making the auto-collapse of the workspace buttons, but this can be directly to main.

zero01101 commented 1 year ago

will work on docs today after i get some drudgery around the house done :D thanks for everything once again, magnificent work <3