openOutpaint/README.md

83 lines
5.9 KiB
Markdown
Raw Normal View History

2022-11-19 04:12:11 +00:00
# hello there 🐠
2022-11-16 00:48:41 +00:00
2022-12-03 18:10:39 +00:00
[openOutpaint creating some undersea... well, stuff](https://user-images.githubusercontent.com/1649724/205455599-7817812e-5b50-4c96-807e-268b40fa2fd7.mp4)
2022-11-26 03:53:45 +00:00
_silly demo example current as of [9b174d6](https://github.com/zero01101/openOutpaint/commit/9b174d66c9b9d83ce8657128c97f917b473b13a9) / v0.0.8 / 2022-12-03_ //TODO UPDATE SRSLY
2022-11-16 00:48:41 +00:00
2022-12-03 18:08:34 +00:00
this is a completely vanilla javascript and html canvas outpainting convenience doodad built for the API optionally exposed by [AUTOMATIC1111's stable diffusion webUI](https://github.com/AUTOMATIC1111/stable-diffusion-webui), operating similarly to a few others that are probably more well-known. this simply offers an alternative for my following vain desires:
2022-12-09 22:03:56 +00:00
- avoiding the overhead of an additional virtual python environment or impacting a pre-existing one
- operates against the API exposed by A1111's webUI
- no external dependencies, extremely boring vanilla
- no external connectivity, self-hosted and offline
- unobfuscated (cough cough)
- <a name="terrible"></a>i am terrible at javascript and should probably correct that
- i have never used html canvas for anything before and should try it out
## features
- [now available as an extension for webUI!](https://github.com/zero01101/openOutpaint-webUI-extension) you can find it under the default "available" section in the webUI _extensions_ tab
- **_NOTE: extension still requires `--api` flag in webui-user launch script_**
2022-12-03 18:08:34 +00:00
- intuitive, convenient outpainting - that's like the whole point right
2022-12-16 03:55:54 +00:00
- queueable, cancelable dreams - just start a'clickin' all over the place
- arbitrary dream reticle size - draw the rectangle of your dreams
2022-12-18 23:24:43 +00:00
- an [effectively infinite](https://github.com/zero01101/openOutpaint/pull/108), resizable, scalable canvas for you to paint all over
2023-01-02 03:39:58 +00:00
- **_NOTE: v0.0.10 introduces a new "camera control" modifier key - hold [`CTRL`] and use the scrollwheel to zoom (scroll the wheel or use the two-finger vertical gesture on, uh, modern touchpads) and pan (hold the scrollwheel button, or if you don't have one, left-click button) around the canvas_**
- a very nicely functional and familiar layer system
2022-12-03 18:08:34 +00:00
- inpainting/touchup mask brush
2022-12-16 03:55:54 +00:00
- prompt history panel
2022-12-03 18:08:34 +00:00
- optional (visibly) inverted mask mode - red masks get mutated, blue masks stay the same, but you can't take both pills at once
- inpainting color brush to bring out your inner vincent van bob ross
- dedicated img2img tool with optional border masking for enhanced output coherence with existing subject matter
- marquee select tool to select regions and arbitrarily scale, create stamps, move chunks, peek at lower layers, do all sorts of damage
2022-12-16 03:55:54 +00:00
- optionally decoupled cursor size and output resolution
- interrogate tool
- floating control panel to easily change models/samplers/steps/prompts/CFG/etc options for each dream summoned from the latent void _(NOTE: model switching requires A1111 webUI to be on commit [5a6387e](https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/5a6387e189dc365c47a7979b9040d5b6fdd7ba43) or more recent)_
2022-12-03 18:08:34 +00:00
- floating toolbox with handy keyboard shortcuts
- optional grid snapping for precision
- optional hi-res fix for blank/txt2img dreams which, if enabled, uses image width/height / 2 as firstpass size
2023-01-02 03:39:58 +00:00
- optional HRfix lock px to constrain maximum firstpass values
- optional overmasking for potentially better seams between outpaints - set overmask px value to 0 to disable the feature
2022-12-10 19:45:06 +00:00
- import arbitrary images and scale/stamp on the canvas whenever, wherever you'd like
2022-12-03 18:08:34 +00:00
- upscaler support for final output images
- saves your preferences/imported images to browser localstorage for maximum convenience
- reset to defaults button to unsave your preferences if things go squirrely
2022-12-03 18:08:34 +00:00
- floating navigable undo/redo palette with ctrl+z/y keyboard shortcuts for additional maximum convenience and desquirreliness
2022-12-16 04:34:22 +00:00
- _all this and much more for the low, low price of simply already owning an expensive GPU!_
## operation
### prerequisities
you'll obviously need A1111's webUI installed before you can use this, thus you're presumed to have an operational python install up and running to boot.
2022-12-24 18:53:53 +00:00
A1111 webUI must be launched with the `--api` flag enabled, and the `--cors-allow-origins=` flag set with the host where openOutpaint will be running.
**_NOTE: the commandline flag `--gradio-debug` disables custom API routes and completely breaks openOutpaint. please remove it from your COMMANDLINE_ARGS before running openOutpaint._**
### surprising incompatibilities
If anything goes wrong with openOutpaint, try running it on another browser and disable all extensions and try again. If a new incompatible extension is found, please open an issue so we can notify other users of extension incompatibilities.
2022-12-30 04:00:04 +00:00
- [microsoft editor extension for chrome/edge seems to disable the overmask slider](https://github.com/zero01101/openOutpaint/discussions/88#discussioncomment-4498341)
- [duckduckgo privacy extension for firefox breaks outpainting, resulting in pure black output](https://github.com/zero01101/openOutpaint-webUI-extension/issues/3#issuecomment-1367694000) - add an exception for your openOutpaint host (likely localhost or 127.0.0.1)
- [same for dark reader](https://github.com/zero01101/openOutpaint-webUI-extension/issues/3#issuecomment-1367838766)
### quickstart speedrun
1. edit your `cors-allow-origins` to include https://zero01101.github.io and run webUI
2. go to https://zero01101.github.io/openOutpaint/ and fill in the host value with your webUI API address
3. click things and do stuff
2022-12-10 19:45:06 +00:00
### step-by-step actually useful instructions
2022-11-17 02:20:04 +00:00
2022-12-10 19:46:32 +00:00
please see the [quickstart wiki article](https://github.com/zero01101/openOutpaint/wiki/SBS-Guided-Example) and comprehensive [manual](https://github.com/zero01101/openOutpaint/wiki/Manual).
2022-12-10 19:45:06 +00:00
## pull requests/bug reports
2022-11-19 00:23:58 +00:00
2022-12-10 19:45:06 +00:00
please do! see [contributing](https://github.com/zero01101/openOutpaint/blob/main/CONTRIBUTING.md) for details!
2022-11-19 00:23:58 +00:00
2022-12-10 19:45:06 +00:00
## warranty
2022-11-20 02:33:32 +00:00
2022-12-10 19:45:06 +00:00
[lmao](https://github.com/moyix/fauxpilot#support-and-warranty)