Forked from https://github.com/Interpause/auto-sd-paint-ext
Extension for AUTOMATIC1111's webUI
and SD.Nextwith Krita Plugin (SD.Next support currently broken on master branch, use v1.1.2 release for latest working version)
This update should make the extension a lot more flexible in terms of which version of A1111 or SD.Next you can use! If it doesn't work with your version, open an issue and we'll look into it.
- Optimized workflow (txt2img, img2img, inpaint, upscale) & UI design.
- Only drawing studio plugin that exposes the Script API.
Please refer to the original's wiki for information while I remake these sections in the fork
- Full Installation & Workflow Tutorial Video! (Coming Soon...)
- Installation Guide
- Usage Guide
- Update Guide
- Features
- TODO
- Contribution Guide
Thanks @rexelbartolome for making these videos:
- Installation: https://youtu.be/eCSIqJ5cmJs
- Rundown of plugin features: https://youtu.be/h-BIC9iuPGc
Q: How does the base_size, max_size system work?
A:
It's 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. I recommend not setting base_size lower than 512.
According to Interpause, this is smarter than the builtin highres fix + firstphase width/height system. Thank the original plugin writer, @sddebz, for writing this.
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:
- Expand the canvas
- Scribble in the newly added blank area
- img2img on the blank area + some of the image
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.
See CHANGELOG.md for the full changelog.
- Added script to add an inpaint layer for faster and better workflow integration. This script also automatically switches to the brush tool and selects the "Inpaint Brush" brush preset if it is present. Otherwise, the Pencil-2 brush is selected. This allows you to configure one brush specifically for inpaint and never have to worry about it again. This script is currently bound to <ctrl+alt+a>.
Prior versions of auto-sd-paint-ext were incredibly prone to breaking when A1111 or SD.Next updated, due to tapping into internal API calls. This resulted in lots of downtime on the extension, and a version that worked for A1111 would break on SD.Next.
With this update, the extension is far more robust:
- The extension now works for A1111 and SD.Next
- The extension is now forward and backwards compatible, being able to work on older and newer
- Add a parameter warning system when the backend expects a parameter which the plugin does not have (yet)
An example image of the new parameter warning system.
- Add ability to disable base size/max size system; Image generated will be same size as selection.
- Removed "Use selection as mask" option; Using the selection to mask generated images is now default behaviour.
- Added "Add transparency mask" option; Choose to mask generated images by adding transparency mask, or directly flatten/crop image.
- Top paintlayer will now be set as active layer when generation is complete.
- New docker that shows a live preview of image generation (if enabled in WebUI).
- 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
- Modifies default Krita dock behaviour!
- 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.
- @sddebz for writing the original backend API and Krita plugin while keeping the Gradio webUI functionality intact.
MIT for the Krita Plugin backend server & frontend plugin. Code has been nearly completely rewritten compared to original plugin by now.