readme: # auto-sd-paint-ext
  
  Formerly known as `auto-sd-krita`.
  
  > Extension for AUTOMATIC1111's webUI with Krita Plugin (other drawing studios soon?)
  
  Outdated demo | New UI (TODO: demo image)
  --- | ---
  ![demo image](https://user-images.githubusercontent.com/42513874/194701722-e7a3f7eb-be4a-4f43-93a5-480835c9260f.jpg) | ![demo image 2](https://user-images.githubusercontent.com/42513874/199507299-66729f9b-3581-43a3-b5f4-57eb90b8f981.png)
  
  Why use this?
  
  - Optimized workflow (txt2img, img2img, inpaint, outpaint, upscale) & UI design.
  - Only drawing studio plugin that exposes the Script API.
  - Easily create/save profiles (prompts, samplers, model, etc used).
  - Some of the above isn't actually implemented yet.
  
  ## Quick Jump
  
  - Full Installation & Workflow Tutorial Video! (Coming Soon...)
  - [Installation Guide](https://github.com/Interpause/auto-sd-paint-ext/wiki/Install-Guide)
  - [Usage Guide](https://github.com/Interpause/auto-sd-paint-ext/wiki/Usage-Guide)
    - [Step by Step Guide to Better Inpainting](https://github.com/Interpause/auto-sd-paint-ext/wiki/Usage-Guide#inpainting-step-by-step)
  - [Update Guide](https://github.com/Interpause/auto-sd-paint-ext/wiki/Update-Guide)
  - [Features](https://github.com/Interpause/auto-sd-paint-ext/wiki/Features)
  - [TODO](https://github.com/Interpause/auto-sd-paint-ext/wiki/TODO)
  - [Contribution Guide](https://github.com/Interpause/auto-sd-paint-ext/wiki/Contribution-Guide)
  
  (Outdated) Usage & Workflow Demo:
  
  [![Youtube Video](http://img.youtube.com/vi/nP8MuRwcDN8/0.jpg)](https://youtu.be/nP8MuRwcDN8 "Inpaint like a pro with Stable Diffusion! auto-sd-krita workflow guide")
  
  ### Differences from Video
  
  - All webUI scripts have been tested to work!
    - SD Upscale, Outpainting Mk 2, Img2Img Alt, etc
  - Inpainting experience is better
    - Inpaint mask is auto-hidden
    - Better mask blur & inpaint full resolution technique than webUI
  - UI no longer freezes during image update
  - UI has been improved, takes up less space
  - Error messages have been improved
  
  ## Breaking Changes
  
  - The URL is different now, so reset "Backend URL" to default under the Config tab.
  - It is now an AUTOMATIC1111 extension.
    - Do <https://github.com/Interpause/auto-sd-krita/wiki/Quick-Switch-Using-Existing-AUTOMATIC1111-Install> in reverse for a quick fix.
  - `krita_config.yaml` was renamed to `auto-sd-paint-ext-backend.yaml`.
  
  ## FAQ
  
  Q: How does the base_size, max_size system work?
  
  A:
  
  It is an alternative to AUTO's highres fix that works for all modes, not just txt2img.
  
  The selection will be resized such that the shorter dimension is base_size. However, if the aforementioned resize causes the longer dimension to exceed max_size, the shorter dimension will be resized to less than base_size. Setting base_size and max_size higher can be used to generate higher resolution images (along with their issues), essentially **disabling the system**, _though it might make sense for img2img mode_.
  
  This is actually smarter than the builtin highres fix + firstphase width/height system. Thank the original plugin writer, @sddebz, for writing this.
  
  <hr/>
  
  Q: Outpainting tab?
  
  A:
  While the outpainting tab is still WIP, the outpainting scripts (under img2img tab) works perfectly fine! Alternatively, if you want more control over outpainting, you can:
  
  1. Expand the canvas
  2. Scribble in the newly added blank area
  3. img2img on the blank area + some of the image
  
  <hr/>
  
  Q: Is the model loaded into memory twice?
  
  A: No, it shares the same backend. Both the Krita plugin and webUI can be used concurrently.
  
  <hr/>
  
  Q: How can you commit to updating regularly?
  
  A: It is easy for me.
  
  <hr/>
  
  Q: Will it work with other Krita plugin backends?
  
  A: Unfortunately no, all plugins so far have different APIs. The official API is coming soon though...
  
  ## UI Changelog
  
  See [CHANGELOG.md](./CHANGELOG.md) for the full changelog.
  
  ### 2022-12-28
  
  - Added "Alt Dock Behaviour" under "SD Plugin Config".
    - _Modifies default Krita dock behaviour!_
      - Dragging title bar of docker now drags all stacked/tabbed dockers out instead of just one docker.
      - Dragging the tab now drags the specific docker out instead of only re-arranging the tab.
    - Enables floating stacked/tabbed dockers.
    - Enables subdividing dock areas further.
    - See: <https://doc.qt.io/qt-6/qmainwindow.html#DockOption-enum>
  - All generations are added to group layer per batch with generation info.
    - For batches of generations, all but the last image generated is hidden by default.
  
  ### 2022-12-20
  
  - **UI Overhaul**: A few miscellaneous changes with some big ones:
    - All tabs are now their own dockers to allow more flexibility in arranging.
      - "Restore Defaults" will make all dockers re-appear and arrange themselves.
    - Progress & number of pending requests now shown.
    - All dropdowns now support searching, useful if your model checkpoint list is really long.
  
  ### 2022-12-04
  
  - Add Interrupt button.
  
  ### 2022-11-15
  
  - Scripts/features that increase the image size (Simple