diff --git a/.gitignore b/.gitignore index e81ad31f..7c57c2fd 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ notification.mp3 /cache trace.json /sysinfo-????-??-??-??-??.json +/extensions-builtin/sd-webui-ux/.git +/sd_models.db diff --git a/extensions-builtin/sd-webui-ux/.gitignore b/extensions-builtin/sd-webui-ux/.gitignore index 5c325f32..57199f49 100644 --- a/extensions-builtin/sd-webui-ux/.gitignore +++ b/extensions-builtin/sd-webui-ux/.gitignore @@ -1,4 +1,7 @@ __pycache__ package-lock.json +sd_webui_ux.db node_modules -temp \ No newline at end of file +temp +**/thumbnails/ +user \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/README.md b/extensions-builtin/sd-webui-ux/README.md index d077e041..10a346e9 100644 --- a/extensions-builtin/sd-webui-ux/README.md +++ b/extensions-builtin/sd-webui-ux/README.md @@ -1,25 +1,22 @@ # SD Web UI UX -A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, utilizing the powerful [Gradio](https://www.gradio.app/) library. This cutting-edge browser interface offers an unparalleled level of customization and optimization for users, setting it apart from other web interfaces. +A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, engineered for unmatched user experience and performance. -This extension is compatible with both backends: [Stable Diffusion web UI](https://github.com/AUTOMATIC1111/stable-diffusion-webui) and [Stable Diffusion web UI Forge](https://github.com/lllyasviel/stable-diffusion-webui-forge). +Compatible with both [Stable Diffusion web UI](https://github.com/AUTOMATIC1111/stable-diffusion-webui) and [Stable Diffusion web UI Forge](https://github.com/lllyasviel/stable-diffusion-webui-forge) backends. -Please note that while this extension focuses solely on frontend optimizations, [Stable Diffusion web UI UX](https://github.com/anapnoe/stable-diffusion-webui-ux), along with its variant [Stable Diffusion web UI UX Forge](https://github.com/anapnoe/stable-diffusion-webui-ux-forge), incorporates backend optimizations for an even better and faster user experience. Together, these changes ensure a more effective and enjoyable interaction with the application. +*This extension performs frontend optimizations **post-DOM load** (modifying elements after they're created), meaning developer tools may show initial resource allocation before optimizations apply. In contrast [Stable Diffusion web UI UX](https://github.com/anapnoe/stable-diffusion-webui-ux) & [Stable Diffusion web UI UX Forge](https://github.com/anapnoe/stable-diffusion-webui-ux-forge) implement **upstream backend optimizations** that prevent unnecessary element creation entirely, enabling faster performance from initialization.* -[🌟 Your Support Makes a Difference! 🌟](https://buymeacoffee.com/dayanbayah) +[💖 Your Support Makes a Difference! 💖](https://buymeacoffee.com/dayanbayah) -![](screenshot.png) - -## Optimizations -- **Redundant Checkpoints & Extra Networks**: Removing redundant Checkpoints and "Extra Networks" (Textual Inversion, Lora, and Hypernetworks) from img2img to reduce duplicated images and event listeners. -- **Inline Event Listeners**: Eradicating inline event listeners from "Extra Networks" cards and action buttons. -- **Event Delegation Pattern**: Applying an event delegation pattern to further streamline the code by consolidating event handling for "Extra Networks" cards and action buttons. -- **Optimized Stylesheets**: Enhanced visual coherence by substituting all default Gradio stylesheets in the DOM with an optimized version. -- **Inline Styles & Svelte Classes**: Improved efficiency by eliminating unnecessary inline styles and Svelte classes. +![](/assets/images/anapnoe-ui-ux-flux.png) ## Features Overview - **Mobile Responsive Design**: Optimal display and usability across various devices. - **Versatile Micro-Template Engine**: Leverage for enhanced functionality through other extensions. - **Customizable Theme Styles**: User-friendly interface for theme customization. +- **Styles Manager**: Versatile database-driven styles management. +- **Image Browser**: High-performance database-powered image navigation. +- **Civitai Images**: Ultra-fast virtualized browser for Civitai images. +- **Civitai Models**: Ultra-fast virtualized browser for Civitai models. - **Built-in Console Log**: Debugging capabilities for developers. - **Production and Development Modes**: Dynamically compile the web UI UX using Vite directly from the interface. - **Ignore Overrides Option**: Flexibility to maintain original settings when necessary. @@ -27,12 +24,68 @@ Please note that while this extension focuses solely on frontend optimizations, - **Toggle Input Modes**: Switch between slider and numeric input modes for a compact interface. - **Compatible with Gradio 3 and 4**: Works seamlessly with both Gradio 3 and Gradio 4 frameworks. -## Seamless UI Integration with Extensions +### Seamless UI Integration with Extensions - **Infinite Image Browsing Extension** - **Deforum Extension** - **Prompt-All-In-One Extension** - **Aspect-Ratio-Helper Extension** +## Optimizations +- **Redundant Checkpoints & Extra Networks**: Removed redundant Checkpoints and Extra Networks (Textual Inversion, LoRA, Hypernetworks) from txt2img/img2img tabs. → Implemented single-instance infinite scroll to progressively load optimized assets + metadata from SQLite DB. +- **Inline Event Listeners**: Eradicating inline event listeners from "Extra Networks" cards and action buttons. +- **Event Delegation Pattern**: Applying an event delegation pattern to further streamline the code by consolidating event handling for "Extra Networks" cards and action buttons. +- **Optimized Stylesheets**: Enhanced visual coherence by substituting all default Gradio stylesheets in the DOM with an optimized version. +- **Inline Styles & Svelte Classes**: Improved efficiency by eliminating unnecessary inline styles and Svelte classes. +- **Database-Powered**: SQLite implementation enables rapid indexing/searching across: Extra Networks, Image Browser and Styles Manager. +- **Virtualized Grid**: Dynamic virtualized grid with memory/DOM efficiency for: Checkpoints, Textual Inversions, LoRA, Hypernetworks, Image Browser, Styles Manager, Civitai Images & Models. + +### Performance Comparison: UI vs UX +| Core Metrics | SD web UI | SD web UI UX | Δ (%) | Key Improvements | +|-----------------|-----------:|-------------:|-----------:|:-----------------| +| **JS Heap** | 96,945,380 | 55,048,600 | **-43.2%** | **Memory Efficiency**: 43% ↓ JS heap memory | +| **Documents** | 109 | 134 | **+22.9%** | **Resource Management**: Optimized overhead | +| **Nodes** | 53,895 | 41,542 | **-22.9%** | **DOM Efficiency**: 23% ↓ nodes despite 23% ↑ documents | +| **Listeners** | 8,195 | 4,178 | **-49.0%** | **Event Handling**: 49% ↓ listeners | + +| **Visual Comparison** | | +|---|---| +| ![SD web UI](/assets/images/stable-diffusion-webui-insights.png) | ![SD web UI UX](/assets/images/stable-diffusion-webui-ux-insights.png) | +| *Automatic1111 - Stable Diffusion web UI* | *Anapnoe - Stable Diffusion web UI UX* | + +### Performance Comparison: Forge vs UX Forge +| Core Metrics | SD web UI Forge | SD web UI UX Forge | Δ (%) | Key Improvements | +|-----------------|-----------------:|-------------------:|------------:|:-----------------| +| **JS Heap** | 56,121,196 | 45,049,884 | **-19.7%** | **Memory Efficiency**: 19% ↓ JS heap memory | +| **Documents** | 21 | 111 | **+428.6%** | **Resource Management**: Optimized overhead | +| **Nodes** | 46,943 | 43,651 | **-7.0%** | **DOM Efficiency**: 7% ↓ nodes despite 428% ↑ documents | +| **Listeners** | 10,562 | 7,495 | **-29.0%** | **Event Handling**: 29% ↓ listeners | + +| **Visual Comparison** | | +|---|---| +| ![SD web UI Forge](/assets/images/stable-diffusion-webui-forge-insights.png) | ![SD web UI UX Forge](/assets/images/stable-diffusion-webui-ux-forge-insights.png) | +| *lllyasviel - Stable Diffusion web UI Forge* | *Anapnoe - Stable Diffusion web UI UX Forge* | + +⚠️ *Baseline metrics reflect measurements with **all additional webui extensions disabled** - particularly relevant for SD Forge's extensive collection - to ensure balanced comparisons; enabling these extensions raises event listeners beyond 16,000 and introduces significant test-run performance variability.* + + +### 🚀 Scalable Event Handling & DOM Optimization +SD webUI UX implements **event delegation** + **virtualized grid** for O(1) performance scaling. + +**Stable Diffusion web UI & web UI Forge Constraints**: +- **DOM Bloat**: Loads all assets → 10k LoRAs create 60k+ DOM nodes (10k images + 50k+ container elements) +- **Listener Overload**: ~5 listeners per asset → 50k+ listeners for 10K LoRAs +- **O(n) Scaling**: Linear performance degradation ***(Checkpoints, Textual Inversions, LoRAs, Hypernetworks)*** + +**Stable Diffusion web UI UX & web UI UX Forge optimized Architecture**: +- **Virtualized Grid**: Renders only visible assets (~15 items in default viewport) +- **Event Delegation**: Single listener handles all interactions +- **DOM Recycling**: Dynamic pool manages thumbnail elements + +🎯 **Performance Outcome**: +- Flat memory profile (≈50MB heap regardless of model assets library size) +- O(1) event handling complexity +- Instant scrolling with 100K+ assets + ## Installation - **Open the Extensions tab in SD-webui.** - **Select the Install from URL option.** @@ -41,25 +94,28 @@ Please note that while this extension focuses solely on frontend optimizations, - **Wait for the installation to complete and click on Apply and restart UI.** ## Todo -- Separate and organize CSS into individual files (in progress). -- Create documentation for developers on how to incorporate their components into various areas of the UI/UX. -- Implement fullscreen gallery functionality. -- Fork the Gradio project and contribute to enhancing their components. +- [ ] Separate and organize CSS into individual files (in progress). +- [ ] Create documentation for component integration into UI/UX. +- [ ] Automatically update the Image Browser's SQLite database when files added or removed. +- [ ] Improve Civitai Models download manager. +- [ ] Add virtualization for **Tree View** component. +- [ ] Develop framework-specific npm packages for the UI/UX Dynamic Virtualized Grid component, supporting React, Vue, Svelte, Solid, and Qwik. - -## Advanced Theme Style Configurator (in progress)(upcoming feature) -A sophisticated theme editor allowing you to personalize any aspect of the UI-UX. Tailor the visual experience of the user interface with the Advanced Theme Style configurator. - -[🌟 Get early access to Advanced Theme Style Configurator! 🌟](https://buymeacoffee.com/dayanbayah) - -![anapnoe-ui-ux-theme-editor-advanced](https://github.com/anapnoe/sd-webui-ux/blob/main/assets/images/anapnoe-ui-ux-theme-editor-advanced.png) - - -## Workspaces UI-UX (in progress)(upcoming extension) +## Workspaces UI-UX (in progress)(early access) The workspaces extension empowers you to create customized views and organize them according to your unique preferences. With an intuitive drag-and-drop interface, you can design workflows that are perfectly tailored to your specific requirements, giving you ultimate control over your work environment. [🌟 Get early access to Workspaces! 🌟](https://buymeacoffee.com/dayanbayah) -![anapnoe-ui-ux-workspaces](https://github.com/anapnoe/sd-webui-ux/blob/main/assets/images/anapnoe-ui-ux-workspaces.png) +![anapnoe-ui-ux-workspaces](/assets/images/anapnoe-ui-ux-workspaces.png) + +## Advanced Theme Style Configurator (in progress)(upcoming) +A sophisticated theme editor allowing you to personalize any aspect of the UI-UX. Tailor the visual experience of the user interface with the Advanced Theme Style configurator. + +[🌟 Get early access to Advanced Theme Style Configurator! 🌟](https://buymeacoffee.com/dayanbayah) + +![anapnoe-ui-ux-theme-editor-advanced](/assets/images/anapnoe-ui-ux-theme-editor-advanced.png) + + + diff --git a/extensions-builtin/sd-webui-ux/assets/css/style-gradio-4.css b/extensions-builtin/sd-webui-ux/assets/css/style-gradio-4.css index 1a637ce8..ec2d72f8 100644 --- a/extensions-builtin/sd-webui-ux/assets/css/style-gradio-4.css +++ b/extensions-builtin/sd-webui-ux/assets/css/style-gradio-4.css @@ -52,6 +52,7 @@ --ae-uiux_exnet_header_size: 14; --ae-uiux_exnet_image_tint: 0; --ae-uiux_min_wrap_size: 140; + --ae-uiux_exnet_aspect_ratio: calc(var(--ae-uiux_exnet_aspect_ratio_x) / var(--ae-uiux_exnet_aspect_ratio_y)); } body { @@ -342,6 +343,7 @@ body { padding: var(--ae-input-padding); margin: 0; min-height: var(--ae-input-height); + } .range-line, @@ -353,6 +355,13 @@ body { order: -1; } +* select, +* input:not([type="range"]), +* textarea { + padding-left: calc(var(--ae-input-padding) + (var(--ae-border-radius) * 0.25)) !important; + padding-right: calc(var(--ae-input-padding) + (var(--ae-border-radius) * 0.25)) !important; +} + /* * .no-slider-layout .min-width, * .no-slider-layout .flexbox, * .no-slider-layout .gradio-slider{ @@ -869,6 +878,8 @@ label>span+div, flex-direction: column; height: auto; white-space: normal; + padding-left: calc(var(--ae-border-radius) * 0.5); + padding-right: calc(var(--ae-border-radius) * 0.5); } .gradio-video .controls .inner { @@ -1438,8 +1449,10 @@ li.item span { .mask-icon { display: inline-block; background: var(--ae-input-text-color); + /* border: var(--ae-input-border-size) solid var(--ae-input-border-color); border-radius: var(--ae-border-radius); + */ line-height: var(--ae-input-line-height); font-size: var(--ae-input-font-size); padding: var(--ae-input-padding); @@ -1776,24 +1789,46 @@ div#layout-3 { z-index: 1; } + +.sponsors_grid, #contributors_grid { gap: 5px; align-items: flex-start; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); - white-space: nowrap; - overflow: auto; - margin: var(--ae-panel-padding); + /*white-space: nowrap;*/ padding-right: var(--ae-panel-padding); } - +.sponsors_grid.current { + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); +} +#contributors_grid{ + overflow: auto; +} +.sponsors_grid a, #contributors_grid a { align-items: center; padding: 10px; + position: relative; + flex-flow: wrap !important; + flex-direction: column !important; + height: 100%; } +.sponsors_grid figure, #contributors_grid figure { margin: 0; + width: 60px; + height: 60px; + border-radius: 50%; + background-size: cover; + background-position: center; + background-color: var(--ae-panel-bg-color); +} + +.sponsors_grid.current figure{ + width: 120px; + height: 120px;; } #contributors_grid img { @@ -1801,6 +1836,34 @@ div#layout-3 { border-radius: 50%; } +.sponsors-coffee +{ + position: absolute; + top: 0; + right: 0; + width: 25px; + line-height: 25px; + background-color: var(--ae-panel-bg-color); + display: flex; + justify-content: center; + margin: 5px; + border-radius: 50%; + color: var(--ae-label-color); +} +.sponsors-coffee::before{ + content: 'x'; +} + +#contributors_tabitem_parent .lrp-32, +#sponsors_tabitem_parent .lrp-32 +{ + max-width: unset; +} + +.sponsors_grid a { + pointer-events: none; +} + #flexbox-9 { justify-content: flex-end; } @@ -2421,8 +2484,8 @@ button.gridjs-sort-neutral { } -#template-settings .split-container:first-child, -.layout-extra-networks .split-container:first-child { +#split-settings-left, +.split-container.exnet-left { min-width: 135px; } @@ -2669,11 +2732,10 @@ span.star_count b { } #popup_close { - position: absolute; - right: calc(var(--ae-panel-padding) * 2); - bottom: calc(var(--ae-panel-padding) * 3); - height: 24px; - padding-right: calc(var(--ae-panel-padding) * 3); + width: 120px; + order: -1; + margin: auto; + margin-right: 0; } @@ -2818,6 +2880,7 @@ div[data-testid="image"] canvas { .group-row>* button, .group-row>* { border-radius: 0 !important; + min-width: fit-content; } .group-row>*:last-child button, @@ -3967,4 +4030,55 @@ select, .about-image-container:hover .about-image-fade:last-child { opacity: 1; +} + +.flex-width { + width: 0%; + flex-grow: 1; + flex-shrink: 1; + min-width: min(calc(var(--ae-uiux_min_wrap_size)* 1px), 100%); +} + +.no-top-padding { + padding-top: 0; +} + +.no-bottom-padding { + padding-bottom: 0; +} + + +table.non-editable-table { + display: block; + text-align: left; +} + +table.non-editable-table td { + line-break: anywhere; + text-wrap: wrap; + min-width: 100px; + vertical-align: top; +} + +.non-editable-div img.thumbnail-image { + max-height: 180px; + width: 100%; + height: auto; + object-fit: contain; + min-width: 120px; + display: block; +} + +.non-editable-info { + justify-content: space-between !important; +} +/* +.ae-button .portal button { + pointer-events: none; +} +*/ +.no-slider-layout .min-width, +.no-slider-layout .flexbox:not(.unset-min-width, .flex-start, .shrink), +.no-slider-layout .block { + min-width: min(100px, 100%) !important; } \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/css/style.css b/extensions-builtin/sd-webui-ux/assets/css/style.css new file mode 100644 index 00000000..0023fcaf --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/css/style.css @@ -0,0 +1,3741 @@ +* { + box-sizing: border-box; + transition-property: color, opacity, background-color, border-color; + transition-duration: 0.2s; + transition-timing-function: ease-out; +} + +:root { + --ae-primary-color: #1485d8; + --ae-secondary-color: #d81485; + --ae-main-bg-color: rgb(32 32 32); + + --ae-input-height: 35px; + --ae-input-slider-height: 0.6; + --ae-input-icon-height: calc(var(--ae-input-height) - var(--ae-input-border-size) * 2); + --ae-input-padding: 5px; + --ae-input-font-size: 14px; + --ae-input-line-height: 14px; + --ae-label-color: rgba(255, 255, 255, 0.75); + --ae-secondary-label-color: rgba(255, 255, 255, 0.5); + --ae-input-border-size: 2px; + --ae-input-border-radius: 0px; + + --ae-input-text-color: rgba(255, 255, 255, 0.75); + --ae-input-placeholder-color: rgba(255, 255, 255, 0.35); + --ae-input-bg-color: rgba(0, 0, 0, 0.25); + --ae-input-border-color: rgba(0, 0, 0, 0.1); + + --ae-input-hover-text-color: rgba(255, 255, 255, 0.75); + + --ae-panel-bg-color: rgba(64, 64, 64, 0.5); + --ae-panel-border-color: rgba(64, 64, 64, 0.75); + --ae-panel-padding: 5px; + --ae-border-radius: 5px; + --ae-border-size: 2px; + --ae-gap-size-val: 5px; + + --ae-gap-size: max(var(--ae-gap-size-val), var(--ae-border-size)); + --ae-border-size-neg: calc(var(--ae-border-size) * -1); + --ae-border-size-x2: calc((var(--ae-border-size) * 2) + 0px); + + --ae-group-bg-color: rgba(0, 0, 0, 0.25); + --ae-group-padding: 2px; + --ae-group-radius: 7px; + --ae-group-border-size: 2px; + --ae-group-border-color: rgba(0, 0, 0, 0.25); + --ae-group-gap: 6px; + + --ae-uiux_exnet_aspect_ratio_x: 3; + --ae-uiux_exnet_aspect_ratio_y: 4; + --ae-uiux_exnet_fit_size: 160; + --ae-uiux_min_wrap_size: 140; + +} + +body { + margin: 0; + color: var(--ae-label-color); + font-size: var(--ae-input-font-size); + /* line-height: 16px; */ + background-color: var(--ae-main-bg-color); + font-family: "IBM Plex Mono", monospace; +} + +.portal, +* .panel { + background-color: var(--ae-panel-bg-color); + padding: var(--ae-panel-padding); + border-radius: var(--ae-border-radius); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + flex-direction: column; + display: flex; + flex: 1 1 0%; + justify-content: space-between; + height: auto; +} + +* .panel { + flex-direction: inherit; + justify-content: flex-start !important; +} + +* .no-panel .portal { + background-color: transparent; +} + +.flexbox { + display: flex; + justify-content: flex-start; + align-items: stretch; + flex-wrap: wrap; + padding: 0; + margin: 0; + flex: 1 1 0%; + gap: 5px; + min-width: min(calc(var(--ae-uiux_min_wrap_size)*1px), 100%); + flex-grow: 1; +} + +.flexbox.row { + flex-direction: row; +} + +.flexbox.col { + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; +} + +.flexbox.group { + background-color: var(--ae-group-bg-color); + padding: var(--ae-group-padding); + ; + border-radius: var(--ae-group-radius); + outline: var(--ae-group-border-size) solid var(--ae-group-border-color); + gap: var(--ae-group-gap); +} + +.sub-group { + background-color: transparent !important; + outline: none !important; + padding: 0 !important; +} + +.inset { + padding: 2px !important; + margin: -2px; +} + +.flexbox.group .flexbox:not(.no-border) { + gap: var(--ae-group-gap); +} + +.grow-all div:not(.shrink) { + flex-grow: 1 !important; +} + +.unset-min-width { + flex-grow: 0; + min-width: unset; +} + +.row { + gap: var(--ae-gap-size); + flex-direction: row; +} + +.col { + gap: var(--ae-gap-size); + flex-direction: column; +} + +.no-border { + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + border-radius: var(--ae-border-radius); + background-color: var(--ae-panel-bg-color); + /* gap: 0; */ + min-width: unset; + padding: var(--ae-panel-padding); +} + +.shrink { + min-width: unset; + flex-wrap: nowrap; + white-space: nowrap; + flex-grow: 0; +} + +.no-wrap { + flex-wrap: nowrap; +} + +.fb-60 { + flex-basis: 20%; + min-width: min(calc(var(--ae-uiux_min_wrap_size) * 1px + 30px), 100%); +} + +.fb-60G { + flex-basis: 67%; +} + +.fb-40 { + flex-basis: 5%; +} + +.fb-40G { + flex-basis: 30%; +} + +.min-width { + min-width: min(calc(var(--ae-uiux_min_wrap_size) * 1px + 30px), 100%); +} + +*.gradio-button.tool { + padding: 0; + align-self: flex-end; +} + +.fb-50 { + flex-basis: 49%; +} + +.flexbox.no-border.shrink { + color: black; +} + +.no-border>* { + align-self: flex-end; + background-color: transparent; + outline: none; + flex-basis: 0%; + flex-grow: 1; + padding: 0; +} + +.invisible *.gradio-button.tool { + font-size: 0; + line-height: 0; + background-color: var(--ae-input-bg-color); +} + +.invisible *.gradio-button.tool:hover { + background-color: var(--ae-primary-color); +} + +.invisible *.gradio-button.tool:hover .mask-icon { + background-color: var(--ae-input-hover-text-color); +} + +*.tab-nav button:hover, +*.tab-nav button.selected, +*.gradio-button:hover { + color: var(--ae-input-hover-text-color); +} + +.portal.no-border { + flex-basis: 0%; +} + +.portal.gap { + gap: var(--ae-gap-size); +} + +.portal.gap>* { + gap: var(--ae-gap-size); + display: flex; + flex-direction: column; +} + +.portal.gap>div>* { + gap: var(--ae-gap-size); + display: flex; + flex-direction: row; +} + +.portal.no-min-width { + min-width: unset; + width: 0%; + height: 100%; +} + +* select, +* input, +* textarea, +* button { + background: var(--ae-input-bg-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + vertical-align: middle; + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-input-padding); + color: var(--ae-input-text-color); + margin: 0; + min-height: var(--ae-input-height); +} + +*.gradio-textbox label { + flex-direction: column; + display: flex; +} + +*.gradio-slider label { + flex-direction: column; + display: flex; +} + +* label>span { + border: var(--ae-input-border-size) solid transparent; + margin-bottom: 5px; + vertical-align: middle; + margin-top: 0; + color: var(--ae-label-color); + font-family: inherit; + line-height: calc(var(--ae-input-line-height)); + font-size: var(--ae-input-font-size); + user-select: none; +} + +*.gradio-slider .head { + margin-bottom: 0; + display: grid; + grid-template-columns: auto 70px; +} + +*.gradio-slider input[type="range"] { + height: calc(var(--ae-input-height) * var(--ae-input-slider-height)); + width: 100%; + min-height: calc(var(--ae-input-height) * var(--ae-input-slider-height)); + margin-bottom: calc(var(--ae-input-height) * (1 - var(--ae-input-slider-height)) * 0.5); + margin-top: calc(var(--ae-input-height) * (1 - var(--ae-input-slider-height)) * 0.5); + padding: 0; +} + +* .no-slider-layout .gradio-slider input[type="range"] { + display: none; +} + +* .no-slider-layout .gradio-slider .head { + flex-direction: column; + display: flex; +} + +* .no-slider-layout .gradio-slider input[type="number"] { + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-input-padding); + margin: 0; + min-height: var(--ae-input-height); +} + +/* * .no-slider-layout .min-width, +* .no-slider-layout .flexbox, +* .no-slider-layout .gradio-slider{ + min-width: unset !important; +} */ + + +*.gradio-dropdown label { + flex-direction: column; + display: flex; + justify-content: space-between; + height: 100%; +} + +* button { + min-width: var(--ae-input-height); + min-height: var(--ae-input-height); +} + +*.gradio-slider input[type="number"] { + line-height: 16px; + /* font-size: 14px; */ + min-height: 22px; + max-height: 22px; + margin-top: 0px; + width: auto; + font-family: inherit; + padding: 0 5px; +} + +*.no-border>*:not(:first-child) { + padding-left: 0; +} + +*.wrap-inner { + display: flex; + position: relative; + flex-wrap: wrap; + align-items: center; + gap: var(--ae-gap-size); +} + +*.gradio-dropdown div.wrap, +* input, +* textarea, +* button { + background: var(--ae-input-bg-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + vertical-align: middle; + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-input-padding); + color: var(--ae-input-text-color); + margin: 0; + min-height: var(--ae-input-height); +} + +*.shrink { + min-width: unset; + flex-wrap: nowrap; + white-space: nowrap; + flex-grow: 0; +} + +*.hidden { + display: none; +} + +*.gradio-accordion .label-wrap { + min-height: var(--ae-input-height); + align-items: center; + display: flex; + justify-content: space-between; + cursor: pointer; + width: 100%; + margin: 0; + padding: var(--ae-panel-padding) calc(var(--ae-panel-padding) + 4px); + border-radius: var(--ae-border-radius); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + background-color: var(--ae-input-bg-color); + color: var(--ae-primary-color); + white-space: nowrap; +} + +*.gradio-accordion .label-wrap.open { + margin-bottom: calc(var(--ae-panel-padding) - var(--ae-border-size)); + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + + /* background-color: var(--ae-panel-bg-color); + outline-color: var(--ae-primary-color); */ +} + +.gradio-accordion:has(> .open) { + /* outline: var(--ae-border-size) solid var(--ae-primary-color) !important; */ + background-color: var(--ae-input-bg-color); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + border-radius: var(--ae-border-radius); + position: relative; + outline-offset: 0px; +} + +.gradio-accordion>div>.gap { + padding: var(--ae-panel-padding); +} + +*.flexbox.align-flex-end { + justify-content: flex-end; +} + +* input[type="checkbox"] { + min-height: var(--ae-input-line-height); +} + +* input[type="radio"] { + min-height: var(--ae-input-line-height); +} + +*.no-bg { + background-color: transparent; + outline: none; +} + +*.gradio-checkboxgroup label, +*.gradio-radio label { + display: flex; + align-items: center; + transition: none; + cursor: pointer; + box-shadow: none; + gap: 1px; + flex: 0 1 0%; + background: var(--ae-input-bg-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + vertical-align: middle; + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-input-padding); + color: var(--ae-input-text-color); + margin: 0; + min-height: var(--ae-input-height); +} + +*.gradio-checkboxgroup span, +*.gradio-radio label span { + margin: 0; + white-space: nowrap; + border: 0; +} + +*.gradio-checkboxgroup .wrap, +*.gradio-radio .wrap { + gap: 5px; + display: flex; + flex-wrap: wrap; +} + +*.gradio-checkboxgroup>span, +*.gradio-radio>span { + border: var(--ae-input-border-size) solid transparent; + margin-bottom: 5px; + vertical-align: middle; + margin-top: 0; + color: var(--ae-label-color); + font-family: inherit; + line-height: var(--ae-input-font-size); + font-size: var(--ae-input-font-size); +} + +* textarea::placeholder { + color: var(--ae-input-placeholder-color); + opacity: 1; +} + +*.gradio-gallery .icon { + opacity: 0.5; + height: var(--ae-input-icon-height); + color: var(--ae-input-text-color); +} + +*.gradio-html p { + margin: 0; + font-size: 13px; + line-height: 16px; + color: var(--ae-label-color); + overflow-wrap: anywhere; +} + +*.gradio-image .image-container { + width: 100%; + height: 100%; +} + +/* *[class*="gradio"] .center { + display: flex; + justify-content: center; + align-items: center; + text-align: center; + cursor: pointer; + width: 100%; + height: 100%; + background: var(--ae-input-bg-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + min-height: 25vh; + position: relative; +} */ + +/* * [data-testid="image"] img { + max-height: 40vh; +} */ + +*.block { + border: 0 !important; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + justify-content: space-between; + height: auto; + flex: 1 1 0%; + min-width: min(calc(var(--ae-uiux_min_wrap_size)*1px), 100%); +} + +[data-testid="block-label"], +div.float { + position: absolute; + display: inline-flex; + align-items: center; + z-index: 20; + background: var(--ae-input-bg-color); + padding: 3px; + pointer-events: none; + font-weight: normal; + font-size: 10px; + line-height: 10px; + width: fit-content; + border-radius: var(--ae-border-radius); + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border: var(--ae-input-border-size) solid var(--ae-input-border-color); +} + +[data-testid="block-label"] span, +div.float span { + opacity: 0.8; + margin-right: 3px; + width: 11px; + height: 11px; +} + +[data-testid="block-label"] { + position: relative; +} + +.gradio-highlightedtext span { + padding: 0; +} + +.gradio-highlightedtext .textfield span { + padding: 2px; + border-radius: 5px; +} + +.gradio-highlightedtext span.textspan span { + color: #000; + border-radius: 5px; + min-width: 16px; + display: inline-block; + text-align: center; +} + +.gradio-highlightedtext .textfield { + display: flex; + gap: 5px; + padding: 5px; + background-color: var(--ae-input-bg-color); + border-radius: var(--ae-border-radius); + margin-top: 5px; + flex-wrap: wrap; +} + +[id$="edit_user_metadata"] { + gap: var(--ae-gap-size); + text-align: left; +} + +[id$="edit_user_metadata"] .gradio-column.gap { + flex-grow: 1; + justify-content: flex-end; + width: auto; +} + +[id$="edit_user_metadata"] .gradio-column.gap:first-child { + flex-grow: 100; +} + +[id$="edit_user_metadata"] .extra-network-name { + font-size: 16px; + flex-grow: 0; +} + +[id$="edit_user_metadata"] .extra-network-name+.form label, +[id$="edit_user_metadata"] .extra-network-name+.form textarea, +[id$="edit_user_metadata"] .extra-network-name+.form { + flex-grow: 10; +} + +[id$="edit_user_metadata"] .extra-network-name~.form .gradio-dropdown, +[id$="edit_user_metadata"] .extra-network-name+.form .gradio-textbox { + padding: 0; + background-color: transparent; + outline: 0; +} + +[id$="edit_user_metadata"] .gradio-column.gap:has(img) { + line-height: 0; +} + +[id$="edit_user_metadata"] .scroll-hide { + overflow-y: auto !important; +} + +* input.svelte-116rqfv { + display: none; +} + +*.wrap.svelte-xwlu1w { + display: flex; + flex-direction: column; + justify-content: center; +} + +* button:hover { + cursor: pointer; + background-color: var(--ae-primary-color); +} + +* select:focus, +* input:focus, +* button:focus, +* textarea:focus { + outline: none; + border-color: var(--ae-primary-color); +} + +*.gradio-dropdown input:focus { + outline: var(--ae-input-border-size) solid var(--ae-primary-color); +} + +*.tab-nav button { + border-radius: 0; +} + +*.tab-nav button:first-child { + border-top-left-radius: var(--ae-border-radius); +} + +*.tab-nav button:last-child { + border-top-right-radius: var(--ae-border-radius); +} + +*.tab-item { + background-color: var(--ae-panel-bg-color); + padding: var(--ae-panel-padding); +} + +*.gradio-tabitem { + background-color: var(--ae-input-bg-color); + padding: var(--ae-panel-padding); + border-radius: var(--ae-border-radius); + border-top-left-radius: 0; +} + +button:hover, +button.active, +*.tab-nav button:hover, +*.tab-nav button.selected { + background-color: var(--ae-primary-color); +} + +button.active span, +button:hover span { + color: var(--ae-input-hover-text-color); +} + +button.active .mask-icon, +button:hover .mask-icon { + background-color: var(--ae-input-hover-text-color); +} + + + +*.gap { + display: flex; + flex-direction: column; + gap: var(--ae-gap-size); +} + +*.form { + display: inherit; + flex-direction: inherit; + gap: var(--ae-gap-size); + flex: 1 1 0%; + flex-wrap: inherit; +} + +/* +* textarea { + height: auto !important; + overflow-x: hidden; + overflow-y: auto !important; +} +*/ + +*.hidden, +*.hide { + display: none !important; +} + +.gradio-column:empty, +.hide-empty:has(.form.hidden), +.hide-empty:has(.gradio-html:first-child:empty) { + display: none; +} + +:not(.portal)>.gradio-row { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: var(--ae-gap-size); +} + +:not(.portal)>.gradio-column { + display: flex; + flex-direction: column; + gap: var(--ae-gap-size); + flex-grow: 1; + width: 100%; +} + +:not(.portal)>.gradio-highlightedtext, +:not(.portal)>.gradio-row, +:not(.portal)>.block.gradio-slider, +:not(.portal)>.block.gradio-dropdown, +:not(.portal)>.block.gradio-radio, +:not(.portal)>.block.gradio-checkbox, +:not(.portal)>.block.gradio-checkboxgroup, +:not(.portal)>.block.gradio-textbox { + background-color: var(--ae-panel-bg-color); + padding: var(--ae-panel-padding); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + border-radius: var(--ae-border-radius); + margin: 0; +} + +:not(.portal)>.gradio-row>.gradio-row>.gradio-column>.block, +:not(.portal)>.gradio-row>.form>.block, +:not(.portal)>.gradio-row .form { + padding: 0; + background-color: transparent; + outline: none; + justify-content: space-between; + margin: 0; +} + +label>span+div, +:not(.portal)>.gradio-row .form>.gradio-row { + flex-grow: 1; +} + +:not(.portal)>.gradio-file .wrap, +:not(.portal)>.gradio-video .wrap, +:not(.portal)>.gradio-image .wrap { + flex-direction: column; + display: flex; + justify-content: center; + align-items: center; + min-height: 15vh; + width: 100%; + height: 100%; + /*position: absolute !important;*/ + top: 0; +} + +:not(.portal)>.gradio-image .wrap:has(canvas) { + position: absolute !important; +} + +:not(.portal)>.gradio-video .wrap { + position: relative !important; + z-index: 0; +} + +[data-testid="block-info"] { + display: flex; + flex-direction: column; + /*height: 100%;*/ + white-space: normal; + height: auto; +} + +.gradio-video .controls .inner { + display: flex; + max-height: 25px; + gap: 5px; + align-items: center; +} + +.gradio-video .controls .inner>* { + display: flex; + text-wrap: nowrap; +} + +.gradio-video .controls .inner>progress { + display: flex; + flex-grow: 1; + min-width: 50%; +} + +.gradio-video .controls .inner>[role="button"] { + max-width: 20px; +} + +.gradio-video .controls { + width: 100%; + padding: 5px; +} + +.gradio-video .svelte-19sk1im { + position: absolute; + z-index: 2; + padding: var(--ae-panel-padding); + right: var(--ae-panel-padding); +} + +*.gradio-dropdown { + overflow: visible !important; + pointer-events: none; +} + +*.gradio-dropdown .secondary-wrap input { + border: none !important; + background: none; + min-height: unset; + line-height: calc(var(--ae-input-icon-height) - 10px); + flex-grow: 1; + min-height: calc(var(--ae-input-height) - (var(--ae-input-border-size) * 2)); +} + +*.gradio-dropdown .secondary-wrap { + display: flex; + align-items: center; + flex-grow: 1; + gap: var(--ae-gap-size-val); + padding-right: var(--ae-input-height); +} + +*.gradio-dropdown div.wrap { + background: var(--ae-input-bg-color); + padding: 0; + position: relative; + pointer-events: all; + flex-grow: 0; +} + +*.gradio-dropdown label>span { + margin-bottom: 5px; +} + +*.gradio-dropdown label>* { + margin-bottom: 0; +} + +* svg.dropdown-arrow { + height: 90%; + position: absolute; + right: 5px; + fill: var(--ae-input-text-color); +} + +* .gradio-dropdown input { + display: flex; + flex: 1 1 100%; + width: 0px; +} + +ul.options { + position: absolute; + z-index: 99999; + margin: 0px !important; + box-shadow: none; + border-radius: var(--ae-border-radius); + background: var(--ae-main-bg-color); + min-width: fit-content; + max-width: 50vh; + max-height: 25vh !important; + overflow: auto; + color: var(--ae-label-color); + list-style: none; + top: var(--ae-input-height) !important; + margin-top: calc(var(--ae-border-size) * -1) !important; + bottom: unset !important; + padding: 0; + width: 100% !important; + outline: var(--ae-border-size) solid var(--ae-input-border-color); + overflow-x: hidden; +} + +li.item { + display: flex; + cursor: pointer; + padding: var(--ae-panel-padding); + justify-content: space-between; + margin: 0; +} + +li.item.active { + background: var(--ae-primary-color); + color: var(--ae-input-hover-text-color); +} + +li.item span { + order: 2; +} + +*.token { + flex-direction: row; + display: flex; + gap: 5px; + line-height: calc(var(--ae-input-height) - (var(--ae-input-border-size) * 2)); + background: var(--ae-panel-bg-color); + outline: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + font-size: var(--ae-input-font-size); + padding: 0 5px; + color: var(--ae-input-text-color); + margin: 0px; + overflow: hidden; +} + +*.token>span { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +*.token-remove { + display: flex; + flex-direction: column; + align-self: center; + background: var(--ae-input-bg-color); + border-radius: 50%; + padding: 1px; + border: var(--ae-input-border-size) solid var(--ae-input-bg-color); +} + +*.token-remove svg { + fill: var(--ae-input-text-color); +} + +*.gradio-gallery { + justify-content: center; + position: relative; + width: 100%; +} + +*.grid-container { + grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); + display: grid; + gap: var(--ae-gap-size); +} + +*.thumbnails.scroll-hide { + /* display: flex; */ + scroll-behavior: smooth; + overflow: hidden; + align-self: center; + gap: 5px; + height: 100%; + padding: 5px; + flex-grow: 0; + max-height: 60px; +} + +*.thumbnail-small img { + width: 100%; + height: 100%; + object-fit: contain; +} + +*.gradio-gallery .preview { + position: absolute; + z-index: 1; + top: 0; + background-color: var(--ae-main-bg-color); + height: 100%; + display: flex; + flex-direction: column; + width: 100%; + border: var(--ae-border-size) solid var(--ae-input-border-color); +} + +*.gradio-gallery .preview img { + width: 100%; + max-height: 100vh; + object-fit: contain; + background-color: var(--ae-input-bg-color); + border: var(--ae-border-size) solid var(--ae-input-border-color); +} + +*.gradio-gallery .preview>img { + border: 0; +} + +*.grid-wrap { + overflow-y: auto; + position: absolute !important; + z-index: 0; + top: 0; + background-color: var(--ae-main-bg-color); + height: 100%; + display: flex; + flex-direction: column; + width: 100%; +} + +*.thumbnail-lg img { + width: 100%; + height: 100%; + object-fit: contain; + margin-bottom: calc(var(--ae-border-size) * -1); +} + +*.thumbnail-item { + height: auto; + width: 100%; + object-fit: contain; +} + +* button.thumbnail-item.thumbnail-small { + min-width: fit-content; + padding: 0; +} + +* button.thumbnail-item:hover { + background: var(--ae-panel-bg-color); +} + +* button.thumbnail-item.selected { + border: var(--ae-border-size) solid var(--ae-primary-color); +} + +*.gradio-gallery .preview button[aria-label] { + width: var(--ae-input-height); + height: var(--ae-input-height); +} + +*.gradio-gallery .preview .svelte-19sk1im { + right: 0; +} + +*.gradio-gallery .empty { + min-height: 100%; + align-items: center; + display: flex; + justify-content: center; +} + +* .styler { + display: flex; + flex-direction: column; + gap: var(--ae-gap-size); +} + +* .icon-buttons { + position: absolute; + display: flex; + right: 0; + padding: var(--ae-panel-padding); + gap: var(--ae-gap-size); +} + +* .livePreview { + position: absolute; + z-index: 2; + width: 100% !important; + height: 100% !important; + object-fit: contain; + background-color: var(--ae-main-bg-color); +} + +* .livePreview img { + object-fit: contain; + width: 100%; + height: 100%; + position: absolute; +} + +::-webkit-scrollbar { + width: 10px; + height: 10px; +} + +::-webkit-scrollbar-button { + display: none; +} + +::-webkit-scrollbar-thumb, +::-webkit-scrollbar-track { + border-radius: var(--ae-border-radius); + border: var(--ae-input-border-size) solid transparent; + background-clip: content-box; + background-color: var(--ae-input-bg-color); +} + +::-webkit-scrollbar-thumb { + background-color: var(--ae-panel-border-color) +} + +.split { + color: #ddd; + min-height: 50px; + display: flex; + flex-direction: row; + height: 100%; + flex-grow: 1; +} + +.split[direction="vertical"] { + flex-direction: column; + height: 100%; +} + +.split-container { + position: relative; + overflow: auto; +} + +* .gutter.gutter-horizontal { + background: linear-gradient(90deg, + rgba(0, 0, 0, 0) 40%, + var(--ae-panel-bg-color) 45%, + var(--ae-panel-bg-color) 55%, + rgba(0, 0, 0, 0) 60%); +} + +* .gutter.gutter-horizontal:hover { + background: linear-gradient(90deg, + rgba(0, 0, 0, 0) 40%, + var(--ae-primary-color) 45%, + var(--ae-primary-color) 55%, + rgba(0, 0, 0, 0) 60%); + cursor: col-resize; +} + +* .gutter.gutter-vertical { + background: linear-gradient(0deg, + rgba(0, 0, 0, 0) 40%, + var(--ae-panel-bg-color) 45%, + var(--ae-panel-bg-color) 55%, + rgba(0, 0, 0, 0) 60%); +} + +* .gutter.gutter-vertical:hover { + background: linear-gradient(0deg, + rgba(0, 0, 0, 0) 40%, + var(--ae-primary-color) 45%, + var(--ae-primary-color) 55%, + rgba(0, 0, 0, 0) 60%); + cursor: row-resize; +} + +.gutter:has(+ .split-container .accordion-vertical:not(.expand)) { + display: none; +} + +.accordion-title { + font-family: "IBM Plex Mono", monospace; + /* text-shadow: 0px 2px 2px #000000; */ +} + +.accordion { + display: flex; + flex-direction: column; + border-radius: var(--ae-border-radius); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + background-color: var(--ae-panel-bg-color); +} + +.accordion-container { + display: none; + flex-direction: column; + min-height: 16px; + margin-top: var(--ae-border-size); + gap: var(--ae-gap-size); + padding: var(--ae-panel-padding); +} + +.accordion.expand .accordion-container { + display: flex; +} + +.accordion-bar { + display: flex; + align-items: center; + background-color: var(--ae-panel-bg-color); + justify-content: space-between; + cursor: pointer; + border-radius: var(--ae-border-radius); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-panel-padding) calc(var(--ae-panel-padding) + 4px); + color: var(--ae-input-text-color); + margin: 0px; + min-height: var(--ae-input-height); + gap: var(--ae-gap-size); +} + +.accordion-bar .portal { + padding: 0; +} + +.accordion-bar .flexbox { + gap: var(--ae-gap-size); + align-items: center; +} + +.accordion.expand .accordion-bar { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.accordion-icon { + transform: rotate(90deg); +} + +.accordion.expand .accordion-icon { + transform: rotate(0deg); +} + +.accordion-vertical.expand .accordion-icon { + transform: rotate(-90deg); +} + +.accordion-vertical { + margin: calc(var(--ae-panel-padding) * 1); + height: calc(100% - var(--ae-panel-padding) * 2); + position: relative; + flex-direction: row; +} + +.accordion-vertical .accordion-bar { + border-radius: var(--ae-border-radius) !important; + flex-direction: column-reverse; + min-height: 100%; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + flex-grow: 0; + padding: var(--ae-panel-padding); + padding-left: var(--ae-panel-padding); +} + +.accordion-vertical .accordion-container { + margin: 0; + overflow-x: hidden; + position: relative; + height: 100%; + flex-direction: row; + min-height: 100%; + overflow-y: auto; + flex-grow: 1; + margin-left: var(--ae-border-size); +} + +.accordion-vertical .accordion-title { + transform: rotate(-90deg) translateX(50%); + white-space: nowrap; + width: 0; +} + +/* .accordion-bar .xtabs-tab { + justify-content: flex-start; +} */ + +.split-container.v-expand { + flex-basis: 0% !important; + min-width: fit-content; +} + +.split-container.v-expand .accordion-vertical .accordion-bar { + border-radius: var(--ae-border-radius) !important; +} + +.portal.auto-scroll { + flex: 2 2 auto; + overflow-x: hidden; + overflow-y: auto; + min-height: 0px; +} + +.layout { + display: flex; + flex-direction: column; + position: absolute; + inset: 0; + padding: var(--ae-panel-padding); + gap: var(--ae-gap-size); +} + +.layout-header { + flex-direction: column; + gap: var(--ae-gap-size); + display: flex; + padding: 0; +} + +.layout-footer { + flex-direction: column; + gap: var(--ae-gap-size); + display: flex; + padding: 0; +} + +.layout-content { + flex-direction: column; + gap: var(--ae-gap-size); + flex-grow: 1; + display: flex; + min-height: 16px; + overflow-y: auto; + padding: var(--ae-border-size); + margin: calc(var(--ae-border-size) * -1); + height: 100%; +} + +.mask-icon { + display: inline-block; + background: var(--ae-input-text-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-input-padding); + color: var(--ae-input-text-color); + margin: 0; + height: calc(var(--ae-input-height) - var(--ae-input-border-size) * 2); + width: calc(var(--ae-input-height) - var(--ae-input-border-size) * 2); + cursor: pointer; + -webkit-mask-size: contain; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center center; + max-width: 24px; + max-height: 24px; + border: 0; +} + +/* .mask-icon:hover { + background-color: var(--ae-primary-color); +} */ + +*.invisible { + position: relative; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + background-color: transparent; + outline: none; +} + +*.invisible .tool { + background: transparent; +} + +*.invisible label { + display: none; +} + +*.invisible:has(.gradio-checkbox) { + pointer-events: none; +} + +.invisible *.gradio-button { + min-width: var(--ae-input-height); + min-height: var(--ae-input-height); + font-size: 0; + line-height: 0; +} + +/* button .mask-icon:hover { + background-color: var(--ae-input-hover-text-color); +} */ + +.icons-bar { + padding-top: 0; + padding-bottom: 0; + justify-content: center; +} + +.accordion-vertical .icons-bar { + padding-left: 0; + padding-right: 0; + padding-top: var(--ae-panel-padding); + padding-bottom: var(--ae-panel-padding); +} + +.icons-bar .flexbox>.mask-icon { + min-width: calc(var(--ae-input-height) + var(--ae-input-border-size) * 2); +} + +/* .icons-bar .mask-icon:hover { + background-color: var(--ae-input-hover-text-color); +} */ + +.xtabs { + position: relative; + display: flex; + flex-direction: column; + border-radius: var(--ae-border-radius); + outline: var(--ae-border-size) solid var(--ae-panel-border-color); + background-color: var(--ae-panel-bg-color); +} + +.xtabs-item { + flex-direction: column; + min-height: 16px; + gap: var(--ae-gap-size); + padding: var(--ae-panel-padding); +} + +.xtabs-item.active { + display: flex; +} + +.xtabs-tab.active { + background-color: var(--ae-primary-color); +} + +.xtabs-tabs { + display: flex; + flex-wrap: wrap; +} + +.xtabs-tab { + display: flex; + gap: 5px; + align-items: center; + background: var(--ae-input-bg-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + border-radius: var(--ae-border-radius); + line-height: var(--ae-input-line-height); + font-size: var(--ae-input-font-size); + padding: var(--ae-input-padding); + color: var(--ae-input-text-color); + margin: 0; + min-height: var(--ae-input-height); + min-width: var(--ae-input-height); + cursor: pointer; + justify-content: center; +} + +.xtabs-tab:hover { + background-color: var(--ae-primary-color); + color: var(--ae-input-text-color); +} + +/* .xtabs-tab:hover .mask-icon { + background-color: var(--ae-input-hover-text-color); +} */ + +/* .active .mask-icon { + background-color: var(--ae-input-hover-text-color); +} */ + +.accordion-bar .xtabs-tab { + width: 100%; +} + +* .gradio-video video, +* [data-testid="image"] img { + object-fit: contain; + width: 100%; + height: 100%; +} + +* .gradio-video .wrap, +* [data-testid="image"] .wrap { + display: flex; + flex-direction: column; +} + +.gr-group { + width: 100%; + position: relative; +} + +.border-padding { + padding: var(--ae-panel-padding); +} + +.full-height>textarea, +.full-height { + height: 100% !important; + resize: none; +} + +h1 { + line-height: 1em; + margin: 0; +} + +.no-padding-one, +.no-padding { + padding: 0; +} + +.no-padding>* { + padding: 0; +} + +*.extra-network-cards { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(calc(var(--ae-uiux_exnet_fit_size) * 1px), 1fr)); + gap: var(--ae-gap-size); + /* content-visibility: auto; */ +} + +*.extra-network-cards .card { + display: block; +} + +*.extra-network-cards .card img { + object-fit: cover; + width: 100%; + height: 100%; + border-radius: var(--ae-border-radius); + transform: scale(1.1); + pointer-events: none; + object-position: center; +} + +*.extra-network-cards .card:hover .button-row { + display: flex; +} + +*.extra-network-cards .card:hover { + cursor: pointer; +} + +*.extra-network-cards .card .button-row { + position: absolute; + display: none; + z-index: 1; + top: 0px; + right: 0; + background-color: var(--ae-input-bg-color); + padding: 2px; +} + +*.extra-network-cards .card .card-button:hover { + background-color: var(--ae-primary-color); +} + +*.extra-network-cards .card .card-button { + background-color: var(--ae-label-color); + width: 24px; + height: 24px; +} + +*.extra-network-cards .card { + position: relative; + overflow: hidden; + background-color: var(--ae-input-bg-color); + border-radius: var(--ae-border-radius); + border: var(--ae-border-size) solid var(--ae-input-bg-color); + aspect-ratio: var(--ae-uiux_exnet_aspect_ratio_x) / var(--ae-uiux_exnet_aspect_ratio_y); +} + +*.extra-network-settings .gradio-slider .head { + display: flex; + flex-direction: column; +} + + + +*.actions { + position: absolute; + bottom: 0; + padding: 10px; + background-color: var(--ae-main-bg-color); + font-size: 16px; + font-weight: 600; + left: 0; + right: 0; + display: flex; + flex-direction: column; + gap: 5px; + max-height: 100%; +} + +span.name { + overflow-wrap: anywhere; + /* text-shadow: 0 0px 3px #000; */ + text-transform: uppercase; + display: block; + color: var(--ae-label-color); + text-align: center; +} + +span.description { + font-size: 11px; + line-height: 14px; + display: block; + max-height: 80px; + overflow: hidden; + opacity: 0.6; +} + +div#flexbox-10 { + justify-content: center; +} + +div#flexbox-10>* { + flex-grow: 0; +} + +div#iobp { + position: relative; + height: 90vh; +} + +[id$="2img_neg_prompt"] textarea, +[id$="2img_prompt"] textarea { + position: absolute; + inset: 0; + resize: none !important; + font-size: 16px; + line-height: 24px; + width: 100%; + min-height: 100%; + overflow-y: auto !important; + height: auto !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.token_counter { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +div#layout-3 { + position: relative; + height: 90vh; +} + + + +.gradio-button:has([class*="icon-2"])::before, +.gradio-button:has([class*="icon-2"])::after { + content: ""; + width: 11px; + height: 11px; + position: absolute; +} + + +.gradio-button:has([class*="icon-2"])::before { + right: -1px; + top: -1px; + background-color: var(--ae-primary-color); + padding: 1px; + border-radius: 50%; + z-index: 1; +} + +#contributors_grid { + gap: 5px; + align-items: flex-start; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + white-space: nowrap; + overflow: auto; + margin: var(--ae-panel-padding); + padding-right: var(--ae-panel-padding); +} + +#contributors_grid a { + align-items: center; + padding: 10px; +} + +#contributors_grid figure { + margin: 0; +} + +#contributors_grid img { + width: 60px; + border-radius: 50%; +} + +#flexbox-9 { + justify-content: flex-end; +} + +#flexbox-8 { + min-width: 0px; + justify-content: flex-end; +} + +#split-2 { + height: 100%; +} + +#portal-49 { + min-height: 100%; +} + +#portal-50 { + min-height: 100%; +} + + + + + + + + +.icons-bar>* { + flex-grow: 0; +} + +.accordion-bar .xtabs-tab span { + display: none; +} + + + +.xtabs-tab svg { + fill: var(--ae-input-text-color); + position: relative; + top: -2px; +} + +/* #main-nav .xtabs-tab { + background-color: transparent; +} + +#main-nav .xtabs-tab.hover, +#main-nav .xtabs-tab.active { + background-color: var(--ae-input-bg-color); +} +*/ + +div#main-nav { + padding: 0px; + margin: calc(var(--ae-panel-padding) * 2); + margin-right: calc(var(--ae-panel-padding) * -1); + margin-left: calc(var(--ae-panel-padding) * 2); + padding: var(--ae-panel-padding); +} + +.no-br { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.no-tr { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.no-rr { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.no-lr { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + + + +.extra-network-subdirs>button, +.settings-tabs button { + text-align: left; + font-size: 98%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.extra-network-subdirs, +.settings-tabs .tab-nav { + gap: 1px; + display: flex; + flex-direction: column; +} + +.split-container[data-initsize="25"] { + min-width: 135px !important; +} + +.gradio-row:empty, +.hide-empty:has(.form.hidden), +.hide-empty:has(.gradio-html:first-child:empty) { + display: none; +} + +.gradio-checkbox>div, +.gradio-checkbox+div, +.has-info+div, +* .settings-comment { + font-size: 10px; + border: var(--ae-input-border-size) solid transparent; + margin-bottom: 5px; + vertical-align: middle; + margin-top: 0; + color: var(--ae-label-color); + font-family: inherit; + line-height: 14px; + white-space: normal; +} + +.no-extra-info label>span+div:not(.wrap), +.no-extra-info .gradio-checkbox>div:not(.mask-icon), +.no-extra-info .has-info+div { + display: none; +} + +.prose { + white-space: normal; +} + +.prose p { + line-height: var(--ae-input-line-height); +} + +* .settings-comment:has(a) { + font-size: 0; +} + +* .settings-comment a { + font-size: 10px; +} + +* a:not(:has(button)) { + color: var(--ae-input-text-color); + background-color: var(--ae-input-bg-color); + border-radius: 3px; + padding: 2px 10px; + text-decoration: none; +} + +* a:not(:has(button)):hover { + color: var(--ae-input-hover-text-color); + background-color: var(--ae-primary-color); +} + +.spacer-v { + max-height: var(--ae-input-border-size); + min-height: var(--ae-input-border-size); + background-color: var(--ae-input-border-color); +} + +* button[aria-label] { + width: var(--ae-input-height); + height: var(--ae-input-height); +} + +* button[aria-label="Edit"] { + display: none; +} + + +* .center.boundedheight { + background-color: var(--ae-input-bg-color); +} + +.ae-button { + display: flex; + align-items: center; + justify-content: center; + gap: var(--ae-gap-size); + border-radius: var(--ae-border-radius); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + background-color: var(--ae-input-bg-color); + /* padding: var(--ae-panel-padding); */ + cursor: pointer; +} + + +/* .ae-button .mask-icon:hover, +.ae-button.active .mask-icon:hover { + background-color: var(--ae-input-hover-text-color); +} */ + +.ae-button.active { + color: var(--ae-input-hover-text-color); + background-color: var(--ae-primary-color); +} + +.ae-button:hover, +.ae-button.active:hover { + color: var(--ae-input-hover-text-color); + background-color: var(--ae-primary-color); +} + +button:hover .icon-letters, +button.active .icon-letters { + color: var(--ae-input-hover-text-color); +} + +button.active svg, +button:hover svg { + fill: var(--ae-input-hover-text-color); +} + +/* .ae-button:hover .mask-icon { + background-color: var(--ae-input-hover-text-color); +} + +.ae-button:hover span{ + color: var(--ae-input-hover-text-color); +} */ + +.portal:has(.gradio-accordion) { + padding: 0; +} + +.icons-bar .portal { + border: 0; + outline: 0; + background: transparent; +} + +.icons-bar .portal button { + padding: 0; + border: 0; + outline: 0; + background: transparent; +} + +.ae-button .gradio-button { + border: 0; + padding: 0; + min-width: unset; + min-height: unset; + align-items: center; + display: flex; +} + +.ae-button .gradio-button span { + padding: 5px; + font-size: var(--ae-input-font-size); +} + +.padding { + padding: var(--ae-panel-padding); +} + +.ae-button .portal { + padding: 0; + outline: 0; + background: transparent; +} + +.ae-button .portal button { + background-color: transparent !important; +} + +.center { + justify-content: center !important; +} + +#portal-16>div>div:first-child { + display: none; +} + +.toggle-seed { + padding: var(--ae-panel-padding) !important; + min-width: var(--ae-input-height); + height: var(--ae-input-height); +} + +.gradio-group:has(> .styler:empty), +.portal:has(> .hide), +.gradio-column:has(> .form:empty), +.gradio-row:has(> .form:empty) { + display: none; +} + +.ae-button .gradio-button span { + padding: 5px; + font-size: var(--ae-input-font-size); +} + + + + +*.disable { + opacity: 0.5; + pointer-events: none; +} + +*.disable>button { + display: flex !important; +} + +.generate { + overflow: hidden; +} + +.generate.active>.portal::before { + content: ""; + position: absolute; + height: 200px; + width: 200px; + background-image: linear-gradient(90deg, + rgba(0, 0, 0, 0.1) 0%, + rgba(0, 0, 0, 0.1) 50%, + rgba(255, 255, 255, 0) 51%, + rgba(255, 255, 255, 0) 100%); + background-repeat: repeat; + background-size: 20px; + transform: rotate(30deg); + z-index: 1; + -webkit-animation-name: bg-slide; + -webkit-animation-duration: 3s; + -webkit-animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; +} + +.generate.active>.portal>button { + position: relative; + -webkit-filter: drop-shadow(0px 0px 1px var(--ae-primary-color)) drop-shadow(0px 0px 1px var(--ae-primary-color)) drop-shadow(0px 0px 1px var(--ae-primary-color)) drop-shadow(0px 0px 1px var(--ae-primary-color)); + z-index: 1; +} + +/* .generate.active > span{ + display:none !important; +} */ + +* #extensions_installed_top { + display: flex !important; +} + +*.notransition .fade-in, +*.notransition .fade-out { + transition: none !important; + animation: none !important; +} + +/* +*.notransition div { + transition: none !important; + animation: none !important; +} +*/ + +*.fade-in, +*.fade-out { + position: absolute; + inset: 0; + justify-content: flex-start !important; + overflow: auto; + z-index: 999; +} + +*.fade-in { + display: flex !important; + animation: fade-in 0.25s; + animation-fill-mode: forwards; +} + +*.notransition .fade-in { + display: flex !important; + /* position: initial !important; */ +} + +*.notransition .fade-out { + display: none !important; + position: initial !important; +} + +*.fade-in>div:not(.layout-content) { + flex-grow: 0; +} + +*.fade-out { + animation: fade-out 0.25s; + animation-fill-mode: forwards; +} + +*.template { + position: absolute; + inset: 0; +} + +.initial { + position: initial; +} + +.app { + min-height: 100vh; + width: 100%; + gap: 0; +} + +.app_footer { + flex-grow: 0; + margin: 0; + align-items: center; + gap: 0; +} + +.app_footer br { + display: none; +} + +.grow { + flex-grow: 1; +} + +.flex-start { + justify-content: flex-start; +} + +/* #main-nav .xtabs-tab { + justify-content: flex-start; +} */ + +#main-nav .xtabs-tab span { + display: none; +} + +#split-left>.xtabs-item { + padding: 0; +} + +.auto { + overflow: auto; +} + +.center.flexbox { + justify-content: center; +} + +.center>.portal>button { + align-self: center; +} + +.ae-button.tool { + width: var(--ae-input-height); + height: var(--ae-input-height); + min-width: var(--ae-input-height); + min-height: var(--ae-input-height); +} + +.xtabs-tab, +.portal>button { + align-items: center; + justify-content: center; +} + +#sp-ac1>.xtabs-item { + padding: 0; +} + +#template-right-sidebar, +#split-right { + min-width: calc(var(--ae-input-height) + var(--ae-border-size) + ((var(--ae-panel-padding) + var(--ae-input-padding)) * 2) + 1px); + +} + +.flex-start { + justify-content: flex-start !important; +} + +.flex-end { + justify-content: flex-end; +} + +#txt2img_header span { + display: none; +} + +.scroll-hide { + overflow-y: hidden !important; + resize: none; +} + +textarea.scroll-hide { + overflow-y: auto !important; + resize: vertical; +} + +.no-labels span { + display: none; +} + + +[id$='2img_script_container']>div>.form~div { + padding: var(--ae-panel-padding); + outline: var(--ae-input-border-size) solid var(--ae-panel-border-color); + background-color: var(--ae-input-bg-color); + border-radius: var(--ae-border-radius); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); +} + +.portal .gradio-accordion div:has([id^='setting_']) { + display: flex; + flex-direction: row; + flex-wrap: wrap; + flex: 1 1 0%; + min-width: min(160px, 100%); +} + +.portal .gradio-accordion .gradio-row:has([id^='setting_']) { + padding: 0; + background-color: transparent; + outline: none; +} + +#imageARPreview { + position: absolute; + top: 0; + left: 0; + outline: 2px solid var(--ae-primary-color); + background: radial-gradient(circle, rgba(0, 0, 0, 0.2) 0%, var(--ae-primary-color) 200%); + z-index: 9000; + pointer-events: none; + display: block; +} + + +.tab-nav button { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +#resize_mode>span, +.accordion:has(#inpaint_controls.hide) { + display: none; +} + +.accordion:has(#resize_mode) .accordion-bar, +.accordion:has(#inpaint_controls) .accordion-bar { + background-color: var(--ae-input-bg-color); +} + +.icon-left button { + display: flex; + flex-direction: row-reverse; + gap: 5px; +} + +.thumbnails.scroll-hide { + display: none; +} + +.thumbnails.scroll-hide:has(.thumbnail-item:nth-child(2)) { + display: flex; +} + +.gradio-gallery .preview>img { + height: 100% !important; +} + +.gradio-gallery:has(.thumbnail-item:nth-child(2)) .preview>img { + height: calc(100% - 60px) !important; +} + +.tabulator { + border: 1px solid var(--ae-panel-border-color); + background-color: var(--ae-panel-bg-color); +} + +.tabulator .tabulator-header { + border-bottom: 1px solid var(--ae-panel-border-color); + background-color: var(--ae-panel-bg-color); + color: var(--ae-label-color); +} + +.tabulator .tabulator-tableholder .tabulator-table { + background-color: var(--ae-panel-bg-color); + color: var(--ae-label-color); +} + +.tabulator-row { + background-color: var(--ae-panel-bg-color); +} + +.tabulator-row.tabulator-row-even { + background-color: var(--ae-panel-bg-color); +} + +.tabulator-row.tabulator-selectable:hover { + background-color: var(--ae-input-bg-color); +} + +.tabulator-row .tabulator-cell { + border-right: 1px solid var(--ae-panel-border-color); +} + +.rgRow { + transition: none !important; +} + +button.gridjs-sort-neutral { + width: 13px !important; + height: 13px !important; + min-width: unset; + min-height: unset; +} + +.gridjs-td a { + display: block; + +} + +.gridjs-tbody, +td.gridjs-td { + background-color: var(--ae-panel-bg-color); +} + +td.gridjs-td { + border: var(--ae-border-size) solid var(--ae-panel-border-color); + padding: var(--ae-panel-padding); + +} + +.gridjs-container { + color: var(--ae-label-color); + font-size: 14px; + font-family: inherit; +} + +th.gridjs-th { + background-color: var(--ae-input-bg-color); + ; + border: var(--ae-border-size) solid var(--ae-input-border-color); + color: var(--ae-label-color); + padding: var(--ae-panel-padding); + +} + +th.gridjs-th-sort:focus, +th.gridjs-th-sort:hover { + background-color: var(--ae-panel-bg-color); +} + +td.gridjs-td[data-column-id="description"] { + flex-grow: 1; +} + +.gridjs-tr { + border: none; + display: flex; + flex-direction: column; + gap: 1px; +} + +.gridjs-tbody, +td.gridjs-td { + background-color: var(--ae-panel-bg-color); + display: grid; + grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + gap: var(--ae-gap-size); + overflow-wrap: anywhere; +} + + +.additional, +.additional ul { + display: none !important; +} + +.additional, +.additional ul { + margin: auto; + padding: 0; + gap: 5px; + margin-bottom: 2px; +} + +.card:hover .additional, +.card:hover .additional ul { + display: flex; +} + +.additional ul a { + width: 24px; + height: 24px; + font-size: 125% !important; + align-items: center; + display: flex; + justify-content: center; + margin: 0 !important; +} + +.params { + min-width: 370px; + +} + +#template-settings .split-container:first-child, +.layout-extra-networks .split-container:first-child { + min-width: 135px; +} + +#split-right:not(.v-expand) { + min-width: 512px; +} + +.layout-extra-networks:has(.show-dirs) .gutter, +.layout-extra-networks:has(.show-dirs) .split-container:first-child { + display: none; +} + +.layout-extra-networks:has(.show-dirs:not(.active)) .split-container { + flex-basis: 100% !important; +} + +.layout-extra-networks:has(.show-dirs.active) .gutter, +.layout-extra-networks:has(.show-dirs.active) .split-container:first-child { + display: flex; +} + +.layout-extra-networks { + gap: 2px; + +} + +.layout-extra-networks>div:first-child { + padding-bottom: 0 !important; + +} + +/* tab extensions */ +.tabs_extensions table { + width: 100%; +} + +.tabs_extensions thead { + display: none; +} + +.tabs_extensions tbody { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: var(--ae-gap-size); + content-visibility: auto; +} + +.tabs_extensions tr { + flex-direction: column; + display: flex; + padding: var(--ae-panel-padding); + background-color: var(--ae-panel-bg-color); + gap: 5px; + border: var(--ae-border-size) solid var(--ae-panel-border-color); + border-radius: var(--ae-border-radius); + position: relative; +} + +.tabs_extensions td { + display: flex; + text-wrap: wrap; + flex-direction: row; + overflow-wrap: anywhere; + flex-wrap: wrap; + gap: 5px; +} + +.tabs_extensions td:has(p.info) { + flex-direction: column; + flex-grow: 1; + justify-content: space-between; + gap: 10px; +} + +.tabs_extensions td p.info:has(span) { + flex-direction: row; + display: flex; + flex-wrap: wrap; + gap: 7px; + flex-grow: 0; + justify-content: space-between; + align-items: flex-end; +} + +.tabs_extensions span.date_added { + max-width: 130px; + text-align: justify; + text-align-last: justify; + color: var(--ae-secondary-label-color); + background-color: var(--ae-input-bg-color); + padding: var(--ae-panel-padding); + border-radius: var(--ae-border-radius); + font-size: 11px; +} + +span.star_count { + background-color: var(--ae-input-bg-color); + padding: 5px 10px 5px 5px; + display: flex; + flex-direction: row; + justify-content: center; + border-radius: 5px; + font-size: 0; + line-height: 0; + justify-items: end; + gap: 2px; + align-items: center; +} + +span.star_count b { + font-size: 12px; +} + +.tabs_extensions td br { + flex-basis: 100%; + content: ""; +} + +.tabs_extensions td a { + font-size: 14px; + padding: 5px; + display: block; +} + +.tabs_extensions td button { + display: flex; + flex-grow: 1; + justify-content: center; + align-items: center; +} + +.tabs_extensions td label:has(input) { + display: flex; + gap: 5px; + font-size: 14px; + border-radius: 5px; + align-items: center; +} + +.tabs_extensions td label>input { + align-self: flex-start; +} + + + +/* .tabs_extensions .wrap { + display: flex; + flex-direction: column; + position: relative; + z-index: 1; + background-color: black; + padding: 10px; + gap: 5px; +} +*/ +.tabs_extensions tr:has(a[href=""]) { + background-color: var(--ae-input-bg-color); + border-color: var(--ae-input-border-color); +} + +.tabs_extensions td:empty, +.tabs_extensions td:has(a:empty) { + display: none !important; +} + +.tabs_extensions td:nth-child(1) a, +.tabs_extensions td:nth-child(2) a { + background-color: transparent; + color: var(--ae-primary-color); + padding: 0; + font-size: 12px; +} + +.tabs_extensions td:nth-child(1) a:hover, +.tabs_extensions td:nth-child(2) a:hover { + color: var(--ae-label-color); +} + +.tabs_extensions td:nth-child(1) a { + font-size: 14px; +} + +.gradio-video, +.gradio-image { + height: 100%; + width: 100%; + object-fit: contain; +} + +#pnginfo_image [data-testid="image"] img { + max-height: unset; + min-height: 100%; +} + +.full-height>textarea { + overflow-y: auto !important; +} + +.gradio-video video { + height: auto; + width: 100%; + object-fit: contain; +} + +.ae-popup { + /* position: fixed; + width: 100vw; + height: 100vh; + z-index: 9999; + */ + align-items: center; + background-color: var(--ae-input-bg-color); + justify-content: center !important; +} + +.ae-popup-inner { + /* width:50vw; + height:50vh; */ + width: 100%; + height: 100%; + background-color: var(--ae-main-bg-color); + position: relative; +} + +.ae-popup .standalone-card-preview img { + height: 100%; + width: 100%; + object-fit: contain; + max-height: 45vh; +} + +.ae-popup .edit-user-metadata-buttons button:first-child { + display: none; +} + +.global-popup-inner { + flex-grow: 0; + position: relative; +} + +.relative-height { + flex-grow: 0; + position: relative +} + +#popup_close { + position: absolute; + right: calc(var(--ae-panel-padding) * 2); + bottom: calc(var(--ae-panel-padding) * 3); + height: 24px; + padding-right: calc(var(--ae-panel-padding) * 3); +} + + +.wrap .svelte-zyxd38 svg { + display: none !important; +} + +.wrap .progress-text { + background-color: var(--ae-main-bg-color); + color: var(--ae-label-color); + font-size: 10px; + display: flex; + flex-grow: 0; +} + +#popup_trigger { + display: none; +} + + +@-webkit-keyframes bg-slide { + from { + background-position: 0%; + } + + to { + background-position: -100%; + } +} + +@-webkit-keyframes fade-in { + 0% { + opacity: 0; + /* transform: scale(0.5); */ + } + + 100% { + opacity: 1; + /* transform: scale(1.0); */ + } +} + +.icon-letters { + justify-content: center; + text-transform: uppercase; + font-size: 14px; + font-weight: 600; + width: 24px; + line-height: 24px; +} + + +.center.boundedheight.flex { + width: 100% !important; + height: auto !important; + /* max-height: 50vh;*/ +} + + + +.image-container img.absolute-img { + position: relative !important; + /* position: absolute !important; */ +} + +/* .image-container img { + max-height: 50vh !important; + } */ + +.image-container { + min-height: 15vh !important; + /* height: auto !important; */ + display: flex; + position: relative; +} + +/* .image-container:has(canvas) { + min-height: 50vh !important; + } */ + +.absolute-img { + position: relative; + opacity: 0; +} + +.block.gradio-image { + /* height: auto !important; */ +} + +div[data-testid="image"] canvas { + width: 100% !important; + height: auto !important; + position: absolute !important; + border: 0 !important; + inset: 0; +} + + + +#tab_img2img div.center.boundedheight.flex { + display: block !important; +} + +* .center.boundedheight>div:has(.brush), +* .center.boundedheight>div:has([aria-label="Clear"]) { + position: absolute; + padding: var(--ae-panel-padding); + top: 0; + right: 0; + z-index: 999; +} + +* .center.boundedheight>div:has(.brush) { + top: 70px; + min-height: unset; + width: auto; + height: auto; + gap: var(--ae-gap-size); +} + + + +[id*="label_copy_to"] { + /* flex-basis: 100%; */ + font-size: 12px; + flex-grow: 0; + min-width: 65px; + justify-content: center; + line-height: 12px; +} + +[id*="_copy_to_"].gradio-row { + justify-items: center; + background-color: transparent; + padding: 0; + outline: 0; +} + +[id*="_copy_to_"].gradio-row button { + flex-grow: 1; +} + +.group-row { + gap: 1px !important; +} + +.group-row>* button, +.group-row>* { + border-radius: 0 !important; +} + +.group-row>*:last-child button, +.group-row>*:last-child { + border-top-right-radius: var(--ae-border-radius) !important; + border-bottom-right-radius: var(--ae-border-radius) !important; +} + +.group-row>*:first-child button, +.group-row>*:first-child { + border-top-left-radius: var(--ae-border-radius) !important; + border-bottom-left-radius: var(--ae-border-radius) !important; +} + +.progress-flex { + position: absolute; + padding: calc(var(--ae-panel-padding) * 1); + bottom: 0; + left: 0; + right: 0; + display: none; +} + +.progress-flex>div { + position: relative; + z-index: 123; + white-space: nowrap; + padding: 0; + border-radius: 0; +} + +.progress-flex:has(.progress) { + display: flex; +} + +.progress { + background-color: var(--ae-primary-color); + padding: 2px; + border-radius: 0; + transition: width 1.0s linear; +} + +iframe { + border: 0; +} + +.other>div { + background: transparent; + outline: 0; +} + +.other .gradio-column:first-child { + flex-grow: 1; + padding: 0; + gap: 0; +} + +.other iframe:first-child { + max-height: calc(100vh - var(--ae-panel-padding) * 6); +} + +.ae-button>a:hover, +.ae-button>a { + padding: 0; + background-color: transparent; + line-height: 0; + display: flex; + align-items: center; + gap: 5px; +} + +div#workspaces_tabitem>div { + padding: 0; +} + +/*infinite-image-browsing*/ +#tab_infinite-image-browsing_tabitem { + overflow: hidden; + padding: 0; +} + +/*a1111-sd-webui-tagcomplete*/ +ul { + padding: 0; + margin: 0; +} + +.autocompleteResults { + background-color: var(--ae-main-bg-color) !important; + border: var(--ae-border-size) solid var(--ae-input-border-color) !important; + border-radius: var(--ae-border-radius) !important; +} + +.autocompleteResultsList>li:nth-child(odd) { + background-color: var(--ae-panel-bg-color) !important; +} + +.autocompleteResultsList>li.selected { + background-color: var(--ae-primary-color) !important; +} + +.log-row { + display: table; + overflow-wrap: anywhere; +} + +.log-row a { + padding: 0 5px; +} + +.log-date { + color: #cacaca; + display: table-cell; + white-space: nowrap; + padding: 0px 10px; + font-size: 9px; +} + +.log-boolean, +.log-undefined { + color: magenta; +} + +.log-object { + color: #cfb0ff; +} + +.log-string { + color: #ffca68; +} + +.log-number { + color: cyan; +} + +.log-info { + color: yellow; +} + +.log-string.log-remove { + color: #ff4f4f; +} + +.log-string.log-load { + color: #74ff80; +} + +.log-string.log-url { + color: #8fc9ff; +} + +.log-string.log-object { + color: #8fc9ff; +} + + +.card.selected { + border: var(--ae-border-size) solid var(--ae-primary-color); +} + +.card.selected .actions { + background-color: var(--ae-primary-color); +} + +.column-1 { + column-count: 1; + gap: 32px; +} + +.column-2 { + columns: 320px 2; + gap: 32px; +} + +.column-3 { + column-count: 3; + gap: 32px; +} + +.lcol { + gap: 32px; + align-items: flex-start; + display: grid; + /* grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); */ +} + +.lcol>.col { + min-width: min(480px, 100%); +} + +#about_tabitem { + font-size: 14px; + line-height: 20px; + font-family: monospace; + /* text-align: justify; */ +} + +#about_tabitem img { + display: flex; + width: 100%; + height: auto; +} + +#about_tabitem a { + background-color: transparent; + color: var(--ae-primary-color); + padding: 0; +} + +#about_tabitem a:hover { + color: var(--ae-label-color); +} + +#about_tabitem p, +h1, +h2 { + margin: 0; + margin-bottom: calc(var(--ae-panel-padding) * 1); +} + +#about_tabitem p, +#about_tabitem ul, +#about_tabitem img { + margin-bottom: 24px; +} + +#about_tabitem h1, +h2 { + /* margin-top: calc(var(--ae-panel-padding) * 3 ); */ + font-size: 20px; + color: var(--ae-primary-color); +} + +#about_tabitem ul { + padding-inline-start: calc(var(--ae-panel-padding) * 4); +} + +#about_tabitem li::marker { + color: var(--ae-primary-color); +} + +.lrp-32 { + gap: 32px; + padding-top: 20px; + padding-left: 32px; + padding-right: 32px; + max-width: 960px; +} + +.gradio-audio>.wrap, +.gradio-video>.wrap, +.gradio-file>.wrap, +.gradio-image>.wrap, +.wrap.center.full.translucent { + min-height: unset; + position: absolute; + z-index: 100; + height: auto; + width: auto; +} + +div#quicksettings { + flex-direction: row; + display: inline-flex; + gap: var(--ae-gap-size); + flex-wrap: wrap; +} + +div#quicksettings>div { + flex: 1 0 calc(100% - var(--ae-input-height) * 2); +} + +div#quicksettings div+button { + flex: 0 1 0%; + margin-bottom: var(--ae-panel-padding); +} + +.relative { + position: relative; +} + +.accordion-vertical.expand { + flex-grow: 1 !important; +} + +.no-grow { + flex-grow: 0; +} + +#sidebar_secondary_tabs { + justify-content: flex-end; +} + +#pnginfo_image .center.boundedheight.flex { + display: flex; + align-items: center; + text-align: center; +} + +.gradio-colorpicker label { + flex-direction: row; + align-items: center; + pointer-events: none; +} + +.gradio-colorpicker input { + pointer-events: all; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: var(--ae-primary-color); + cursor: pointer; +} + +.selected span.name { + color: var(--ae-input-hover-text-color); +} + +#txt2img_edit_style_close, +#lightboxModal, +.gradio-container.app { + display: none !important; +} + +#train_tabitem .tabs { + width: 100%; +} + +#setting_uiux_ignore_overrides { + min-width: 100%; +} + +#img2img_override_settings, +#txt2img_override_settings { + display: flex !important; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: var(--ae-input-bg-color); + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: none; + padding: 0px; + min-width: 20px; + min-height: 20px; + line-height: 20px; + text-align: center; + display: inline-block; + transform: scale(0.8); + transform-origin: left; + background-color: var(--ae-input-bg-color); + /*outline: var(--ae-input-border-size) solid var(--ae-input-border-color);*/ + border-radius: var(--ae-border-radius); +} + +.gradio-accordion>.label-wrap input[type=checkbox], +.wrap>label>input[type=checkbox], +.wrap>label>input[type="radio"] { + background-color: var(--ae-panel-bg-color); +} + +input[type=radio]:checked, +input[type=checkbox]:checked { + background-color: var(--ae-primary-color) !important; +} + +input[type="radio"]:after, +input[type=checkbox]:after { + content: " "; + color: var(--ae-input-bg-color); + visibility: visible; + border-radius: var(--ae-input-border-radius); +} + +input[type=radio]:checked:after, +input[type=checkbox]:checked:after { + content: "❖"; + position: absolute; + inset: 0; + transform: scale(1.5); +} + +.gradio-accordion .label-wrap>span { + display: flex; + align-items: center; +} + +.gradio-accordion .label-wrap:not(.open)>span.icon { + transform: rotate(90deg); +} + +.gradio-checkbox>div.mask-icon { + margin: 0; +} + +:not(.tool)>.gradio-checkbox label { + display: flex; + white-space: normal; + align-items: flex-start; + gap: var(--ae-gap-size); +} + +#interrogate, +#deepbooru { + font-size: 0px; +} + +#interrogate>div, +#deepbooru>div { + position: absolute; +} + +/* +input[type=checkbox]+span { + margin-left: -8px; +} +#setting_uiux_ignore_overrides input[type=checkbox]+span { + margin-left: 0px; +} +*/ + +span.settings-category { + padding: 0 var(--ae-input-padding); + font-weight: bold; + line-height: var(--ae-input-height); + color: var(--ae-primary-color); +} + +.extra-network-tree.hidden { + display: flex !important; + cursor: pointer; +} + +.extra-network-tree .tree-list-content { + position: relative; + display: grid; + width: 100%; + user-select: none; + background-color: transparent; + border: none; + grid-template-rows: min-content; + grid-template-areas: "leading-action leading-visual label trailing-visual trailing-action"; + grid-template-columns: min-content min-content minmax(0, auto) min-content min-content; + grid-gap: 10px; + /* align-items: start; */ + flex-grow: 1; +} + +.extra-network-tree .tree-list-content>span { + pointer-events: none; +} + +.extra-network-tree .tree-list-content+.tree-list--subgroup { + height: 0; + visibility: hidden; + opacity: 0; +} + +.extra-network-tree .tree-list-content[data-expanded]+.tree-list--subgroup { + height: auto; + visibility: visible; + opacity: 1; +} + +.extra-network-tree .tree-list-item-label--truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.extra-network-tree .tree-list--subgroup>.tree-list-item { + margin-left: 5px !important; + padding-left: 5px !important; + list-style: none; + line-height: calc(var(--ae-input-font-size) + 2px); +} + +.tree-list-item-action-chevron { + display: inline-flex; + padding: 0.25rem; + box-shadow: 0.1rem 0.1rem 0 0 var(--ae-primary-color) inset; + transform: rotate(135deg); +} + +.extra-network-tree .tree-list-content-dir .tree-list-item-action-chevron { + -ms-transform: rotate(135deg); + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + transition: transform 0.2s; +} + +.extra-network-tree .tree-list-content-dir[data-expanded] .tree-list-item-action-chevron { + -ms-transform: rotate(225deg); + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + transition: transform 0.2s; +} + +.extra-network-tree .tree-list-content-file .tree-list-item-action--leading { + visibility: hidden; +} + +.extra-network-tree .tree-list-content .button-row { + display: none; + pointer-events: all; +} + +.extra-network-tree .tree-list-content:hover .button-row { + display: inline-flex; +} + +.extra-network-tree .tree-list-content .button-row>div { + width: calc(var(--ae-input-font-size) + 2px); + height: calc(var(--ae-input-font-size) + 2px); + background-color: var(--ae-label-color); +} + +.extra-network-tree .tree-list-content .button-row>div:hover { + background-color: var(--ae-primary-color); +} + +.extra-network-tree .tree-list-item-action--trailing { + grid-area: trailing-action; + display: inline-flex; +} + +.extra-network-tree div.tree-list-content:hover { + color: var(--ae-primary-color); + transition: none; +} + +.token_counter * { + display: block !important; +} + +#accordions-extras>div>div { + padding: 0; + outline: 0; +} + +#accordions-extras>div>div:first-child { + display: none; +} + +.hide-empty:not(:has(>*)) { + display: none !important; +} + + +@-webkit-keyframes fade-out { + 0% { + opacity: 1; + /* transform: scale(1.0); */ + } + + 100% { + opacity: 0; + /* transform: scale(0.5); */ + } +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="range"] { + overflow: hidden; + width: 100%; + -webkit-appearance: none; + background-color: var(--ae-input-bg-color); + border: var(--ae-input-border-size) solid var(--ae-input-border-color); + position: relative; + border-radius: var(--ae-border-radius); + } + + input[type="range"]::after { + content: ""; + position: absolute; + height: 100%; + background-image: var(--ae-slider-bg-overlay); + width: 100%; + left: 1px; + } + + input[type="range"]::-webkit-slider-runnable-track { + height: 14px; + -webkit-appearance: none; + color: var(--ae-primary-color); + margin-top: -1px; + } + + input[type="range"]::-webkit-slider-thumb { + width: 0px; + -webkit-appearance: none; + height: 14px; + cursor: ew-resize; + background-color: var(--ae-primary-color); + box-shadow: -1024px 0 0 1024px var(--ae-primary-color); + } +} + +#sidebar_secondary_tabs a span, +.default-desktop .mobile, +.default-auto .mobile { + display: none; +} + +.default-mobile .mobile { + display: flex; +} + +.default-mobile .split-container.params { + min-width: 100% !important; +} + +.default-mobile .split-container.params~div { + display: none; +} + +#txt2img_results_generate_tabitem .generate, +#img2img_results_generate_tabitem .generate { + flex-grow: 1; +} + +.aside-labels #sidebar_secondary_tabs a span, +.main-labels #main-nav .xtabs-tab span, +.tab-labels [id$="2img_header"] span, +.aside-labels #accordion-aside .xtabs-tab span { + display: flex !important; + text-transform: capitalize; +} + +.main-labels #main-nav .xtabs-tab, +.tab-labels [id$="2img_header"] .xtabs-tab, +.aside-labels #accordion-aside .xtabs-tab { + justify-content: flex-start; +} + +#acc-arrow-button, +.aside-labels .accordion-bar>div { + width: 100%; +} + +.aside-labels div#sidebar_secondary_tabs button { + width: 100%; + justify-content: flex-start; +} + +.info-results-container { + overflow-y: auto; + max-height: 33vh; +} + +#layout_main_wrapper { + padding-left: 0; +} + +.template>.layout { + padding-right: var(--ae-border-size); +} + +.template>.full-height { + padding-left: var(--ae-border-size); + padding-right: var(--ae-border-size); +} + +#split-right.v-expand { + margin-left: calc(var(--ae-border-size) * -1); +} + +#split-right:not(.v-expand) #accordion-aside { + margin-left: var(--ae-border-size); +} + +[toggle] .wrap { + display: none; +} + +.default-mobile #split-right:not(.v-expand) { + position: fixed; + inset: var(--ae-panel-padding); + z-index: 999; + background-color: var(--ae-main-bg-color); + outline: var(--ae-border-size) solid var(--ae-main-bg-color); +} + +.default-mobile #split-right:not(.v-expand) #accordion-aside { + margin-left: var(--ae-panel-padding); +} + +.default-mobile .template>.full-height { + padding: var(--ae-panel-padding); +} + +/* +.tabitem > .gap{ + overflow:hidden; +} +*/ + +.pointer-events-none { + pointer-events: none; +} + +.pointer-events-none button { + pointer-events: all; +} + +@media (max-width: 768px) { + .xtabs-tab span { + display: none; + } + + .default-auto .mobile { + display: flex; + } + + .default-auto .split-container.params { + min-width: 100% !important; + } + + .default-auto .split-container.params~div { + display: none; + } +} + +/* Firefox */ +* { + scrollbar-color: var(--ae-panel-border-color) var(--ae-main-bg-color) !important; + scrollbar-width: thin !important; +} + +input[type="range"]::-moz-range-progress { + background-color: var(--ae-primary-color); + height: 100%; + background-image: var(--ae-slider-bg-overlay); +} + +input[type="range"]::-moz-range-track { + width: 100%; + height: 100%; + background-color: var(--ae-input-bg-color); + border: none; + border-radius: 0px; + position: relative; + background-image: var(--ae-slider-bg-overlay); + opacity: 1; +} + +input[type="range"]::-moz-range-thumb { + border: 0px solid var(--ae-primary-color); + width: 0px; + border-radius: 0%; + background-color: var(--ae-primary-color); +} + +/*hide the outline behind the border*/ +input[type="range"]:-moz-focusring { + outline: 1px solid var(--ae-primary-color); + outline-offset: -1px; +} + +input[type="range"]:focus::-moz-range-track { + background-color: var(--ae-input-bg-color); +} + +input[type="number"] { + -moz-appearance: textfield; +} + +input[type="number"]:hover, +input[type="number"]:focus { + -moz-appearance: initial; +} + +/* IE maybe later */ + +input[type="range"]::-ms-fill-lower { + background-color: var(--ae-primary-color); +} + +input[type="range"]::-ms-fill-upper { + background-color: var(--ae-input-bg-color); +} + +.tabs>.tab-nav { + display: flex; + position: relative; + flex-wrap: wrap; +} + +table { + border-collapse: collapse; +} + +table.popup-table { + width: 98%; +} + +.popup-table td, +.popup-table th { + border: var(--ae-border-size) solid var(--ae-panel-border-color); + padding: var(--ae-panel-padding); + box-sizing: border-box; + text-align: left; + white-space: normal; +} + +.popup-table td { + line-break: anywhere; +} + +.popup-table thead th { + position: sticky; + top: 0; + z-index: 2; + background: var(--ae-panel-bg-color); +} + +.popup-table thead th:first-child { + left: 0; + z-index: 3; +} + +.popup-table tr> :first-child { + position: sticky; + background: var(--ae-group-bg-color); + left: 0; +} + + +.popup-table td.muted { + width: 5%; + overflow: hidden; + font-size: 0; + border: 0; + background: var(--ae-group-bg-color); +} + +.popup-table td.muted+td:not(.muted) { + width: 60%; +} + +.popup-table td.link { + color: var(--ae-primary-color); +} + +.popup-table tr>td:last-child { + width: 35%; + position: relative; + z-index: 1; +} + +.popup-table tr>td:last-child:before { + content: ""; + position: absolute; + inset: 0; + width: 0%; + background-color: var(--ae-primary-color); + z-index: -1; + opacity: 0.5; + margin: 1px; +} + +.search_extra_networks { + min-width: 100px; + flex: 1 1 0; +} + +.prose p, +.gradio-checkbox label>span { + margin-bottom: 0 !important; +} + +#extensions_installed_top>button:nth-child(1), +#extensions_installed_top>button:nth-child(2) { + width: max(140px, 40%); + flex-grow: 1; +} + +* #extensions_installed_top { + align-items: flex-end; + display: flex !important; +} + +#extensions_disable_all { + min-width: 170px; +} + +#anapnoe_app:not(.default-mobile) .group-row>*:has(+button.mobile) { + border-top-right-radius: var(--ae-border-radius) !important; + border-bottom-right-radius: var(--ae-border-radius) !important; +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/css/uiux-icons.css b/extensions-builtin/sd-webui-ux/assets/css/uiux-icons.css index 443cbb5a..b3840b07 100644 --- a/extensions-builtin/sd-webui-ux/assets/css/uiux-icons.css +++ b/extensions-builtin/sd-webui-ux/assets/css/uiux-icons.css @@ -302,4 +302,118 @@ button.active .icon-sort { .icon-gallery { -webkit-mask-image: url(../svg/gallery-line.svg); -} \ No newline at end of file +} + +.icon-stylez { + -webkit-mask-image: url(../svg/quill-pen-ai-line.svg); +} + +.icon-rebuild-thumbs { + -webkit-mask-image: url(../svg/image-circle-ai-line.svg); +} + +.icon-civitai-images { + -webkit-mask-image: url(../svg/image-ai-line.svg); +} + +.icon-civitai-models { + -webkit-mask-image: url(../svg/planet-line.svg); +} + +.icon-create-new { + -webkit-mask-image: url(../svg/add-circle-line.svg); +} + +.icon-full-screen{ + -webkit-mask-image: url(../svg/fullscreen-line.svg); +} +.ae-virtual.fullscreen .icon-full-screen{ + -webkit-mask-image: url(../svg/fullscreen-exit-line.svg); +} + +.icon-grid-size{ + -webkit-mask-image: url(../svg/focus-mode.svg); +} + +.ae-virtual.full .icon-grid-size{ + -webkit-mask-image: url(../svg/focus-mode.svg); + background-color: var(--ae-primary-color); +} + +.icon-shut-down { + -webkit-mask-image: url(../svg/shut-down-line.svg); +} +.icon-refresh { + -webkit-mask-image: url(../svg/refresh-line.svg); +} + +.icon-tile{ + display: none; +} +.ae-virtual.full .icon-tile{ + -webkit-mask-image: url(../svg/grid-line.svg); + display: block; +} +.ae-virtual.full.tileable .icon-tile{ + -webkit-mask-image: url(../svg/grid-fill.svg); +} + +.ae-virtual .icon-info{ + display: none; +} +.ae-virtual.full .icon-info{ + -webkit-mask-image: url(../svg/file-info-fill.svg); + display: block; +} +.ae-virtual.full.info .icon-info{ + background-color: var(--ae-primary-color); +} + +.ae-virtual .icon-delete{ + -webkit-mask-image: url(../svg/delete-bin-2-fill.svg); + background-color: var(--ae-primary-color); +} + +.ae-virtual .icon-send-params{ + -webkit-mask-image: url(../svg/arrow-left-up-box-line.svg); +} + +.ae-virtual .icon-link{ + -webkit-mask-image: url(../svg/link.svg); +} + +.send-button:has([class*="icon-2"])::before { + right: -1px; + top: -1px; + background-color: var(--ae-primary-color); + padding: 1px; + border-radius: 50%; + z-index: 1; +} +.send-button:has([class*="icon-2"])::before, .send-button:has([class*="icon-2"])::after { + content: ""; + width: 11px; + height: 11px; + position: absolute; +} +.send-button:has([class*="icon-2"])::after { + right: 0px; + top: 0px; + background-color: var(--ae-input-hover-text-color); + -webkit-mask-image: url(../svg/arrow-up-line.svg); + z-index: 2; +} +.send-button{ + position: relative; + padding: 0; + background-color: transparent; + border: 0; + line-height: 0; +} + +button[class^="icon-"] { + mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: contain; +} diff --git a/extensions-builtin/sd-webui-ux/assets/css/uiux-tree.css b/extensions-builtin/sd-webui-ux/assets/css/uiux-tree.css new file mode 100644 index 00000000..05dbf4df --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/css/uiux-tree.css @@ -0,0 +1,149 @@ +.tree-view .nested { + display: none; +} + +.tree-view .active { + display: block; +} + +.tree-view { + --spacing_x: 10px; + --spacing_y: 20px; + --radius: 8px; + --lw: 1px; + line-height: 20px; + font-size: 14px; + margin-left: 0px; +} + +.tree-view li { + display: block; + position: relative; + padding-left: calc(2 * var(--spacing_x) - var(--radius) - var(--lw)); +} + +.tree-view ul { + margin-left: calc(var(--radius) - var(--spacing_x)); + padding-left: 0; +} + +.tree-view ul li { + border-left: var(--lw) solid var(--ae-main-bg-color); +} + +.tree-view ul li.active { + background-color: var(--ae-main-bg-color); +} + +.tree-view li.active summary.tree-file::before { + background-color: var(--ae-primary-color); +} + +.tree-view ul li:last-child { + border-color: transparent; +} + +.tree-view ul li::before { + content: ''; + display: block; + position: absolute; + top: calc(var(--spacing_y) / -2 + var(--radius)); + left: calc(var(--lw) * -1); + width: calc(var(--spacing_x) - var(--radius)); + height: calc(var(--spacing_y) - var(--radius)); + border: solid var(--ae-main-bg-color); + border-width: 0 0 var(--lw) var(--lw); +} + +.tree-view summary{ + padding-right: 70px; + display: block; + cursor: pointer; + margin-left: calc(var(--radius)); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.tree-view summary::marker, +.tree-view summary::-webkit-details-marker { + display: none; +} + +.tree-view summary:focus { + outline: none; +} + +.tree-view summary:focus-visible { + outline: var(--lw) dotted var(--ae-primary-color); +} + +.tree-view summary.tree-file::before, +.tree-view summary::before { + content: ''; + display: block; + position: absolute; + top: calc(var(--spacing_y) / 2 - var(--radius)); + left: calc(var(--spacing_x) - var(--radius) - var(--lw)); + width: calc(2 * var(--radius)); + height: calc(2 * var(--radius)); + border-radius: 50%; + background-color: var(--ae-primary-color); +} + +/* +.tree-view summary.tree-file { + + margin-left: calc(var(--spacing_x)* -1 + var(--radius)* 2); + +} +*/ + +.tree-view summary.tree-folder { + color: var(--ae-primary-color); +} + +.tree-view summary.tree-file::before { + + top: calc(var(--spacing_y) / 2 - var(--radius) * 0.5); + left: calc(var(--spacing_x) - var(--radius) * 0.5 - var(--lw)); + width: calc(2 * var(--radius) * 0.5); + height: calc(2 * var(--radius) *0.5); + background-color: var(--ae-main-bg-color); + /* + -webkit-mask-image: url(../svg/file-info-line.svg); + */ +} + +.tree-view ul li.li-file::before { + width: calc(var(--spacing_x) - var(--radius)* 0.5); +} + +.tree-view .caret.tree-folder::before { + -webkit-mask-image: url(../svg/add-circle-fill.svg); +} + +.tree-view .caret-down.tree-folder::before { + -webkit-mask-image: url(../svg/indeterminate-circle-fill.svg); +} + +.tree-view li > .item-actions { + position: absolute; + right: 0; + top: 0; + transform-origin: top right; + transform: scale(0.8); + padding: 0; +} + +.tree-view ul > li:hover > .item-actions { + display: flex; +} + +.tree-view ul > li:hover > summary { + width: calc(100% - 60px); +} + +.tree-view ul:hover > li[data-name]:hover { + background-color: var(--ae-main-bg-color); +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/css/uiux-virtual.css b/extensions-builtin/sd-webui-ux/assets/css/uiux-virtual.css new file mode 100644 index 00000000..ee498607 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/css/uiux-virtual.css @@ -0,0 +1,644 @@ +.ae-virtual { + position: relative; + overflow: hidden; + width: 100%; + height: 100%; + overflow : auto; + /*touch-action: none;*/ + contain: strict; +} + +.ae-virtual-detail .item, +.ae-virtual .item { + position: relative; + overflow: hidden; + background-color: var(--ae-input-bg-color); + border-radius: var(--ae-border-radius); + /*border: var(--ae-border-size) solid var(--ae-input-bg-color);*/ + aspect-ratio: var(--ae-uiux_exnet_aspect_ratio_x) / var(--ae-uiux_exnet_aspect_ratio_y); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + user-select:none; + justify-content: flex-end; + /*isolation: isolate;*/ +} + +.ae-virtual.vertical .item { + height: auto; + width: 100%; +} + +.ae-virtual.horizontal .item { + height: 100%; + width: auto; + /*min-width: calc(var(--ae-uiux_exnet_fit_size) * var(--ae-uiux_exnet_aspect_ratio) * 1px);*/ +} + +.overflow-hidden { + overflow: hidden; +} + +.ae-virtual .sentinel { + position: absolute; + /*background-color: #ff4f4f;*/ + top: 0px; + left: 0px; + will-change: transform; + transform-style: preserve-3d; /* Better GPU utilization */ + backface-visibility: hidden; /* Prevents invisible redraws */ +} + +.ae-virtual.vertical .sentinel { + height: 1px; + width: 100%; +} + +.ae-virtual.horizontal .sentinel { + width: 1px; + height: 100%; +} + +.ae-virtual > .ae-virtual-wrapper{ + position: relative; + display: grid; + gap: var(--ae-gap-size); + /*touch-action: none;*/ + will-change: transform; + transform-style: preserve-3d; /* Better GPU utilization */ + backface-visibility: hidden; /* Prevents invisible redraws */ +} + +.ae-virtual.vertical > .ae-virtual-wrapper { + grid-auto-flow: row; + width: 100%; + grid-auto-rows: minmax(calc(var(--ae-uiux_exnet_fit_size) * 1px), auto); + grid-template-columns: repeat(auto-fit, minmax(calc(var(--ae-uiux_exnet_fit_size) * 1px), 1fr)); + + /*grid-template-columns: repeat(auto-fill, minmax(0, 1fr));*/ + /*grid-template-rows: repeat(auto-fill, minmax(0, 1fr));*/ +} + +.ae-virtual.horizontal > .ae-virtual-wrapper { + grid-auto-flow: column; + height: 100%; + /* width: fit-content; */ + /*grid-auto-columns: minmax(calc(var(--ae-uiux_exnet_fit_size) * 1px), auto);*/ + grid-auto-columns: min-content; + grid-template-rows: repeat(auto-fill, minmax(calc(var(--ae-uiux_exnet_fit_size) * 1px), 1fr)); +} + +.ae-virtual.full { + width: 100%; + height: 100%; + display: flex; + flex-wrap: wrap; + overflow: hidden; + +} + +.ae-virtual.full > .ae-virtual-wrapper { + display: flex; + flex-wrap: wrap; + width: 100%; + height: 100%; + gap: 0; +} +.ae-virtual.full .item { + height: 100%; + width: 100%; + background-size: contain; +} + +.ae-virtual.horizontal.full > .ae-virtual-wrapper { + flex-direction: column; +} + +.item-img { + width: 100%; + height: 100%; +} + +.item-img { + position: absolute; + top: 0; + width: 100%; + height: calc(100% - 5px); + + transition: transform 0.65s cubic-bezier(0.3, 1, 0.3, 1); + contain: layout size; + will-change: transform; + touch-action: pan-x pan-y; + + background-repeat: no-repeat; + background-size: cover; + background-position: center; +} + +.ae-virtual.full .item-img { + background-size: contain; + touch-action: none; +} + +.ae-virtual.full.tileable .item-img { + background-repeat: repeat; + background-size: 33vh; +} + +.ae-virtual-detail, +.loading-indicator { + position: absolute; + text-align: center; + background: rgba(0, 0, 0, 0.75); + display: flex; + flex-direction: column; + line-height: 20px; + justify-content: center; + inset: 0; +} + +.ae-virtual-detail { + background-color: var(--ae-main-bg-color); + justify-content: flex-start; +} + +.ae-virtual-detail-content>.ae-virtual-wrapper { + grid-auto-rows: minmax(250px, auto); + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); +} + +.ae-virtual { + font-size: calc(var(--ae-uiux_exnet_header_size)* 1px); +} + +.ae-virtual-wrapper .title { + position: absolute; + bottom: 0; + padding: 5px; + background-color: var(--ae-main-bg-color); + font-weight: 600; + left: 0; + right: 0; + overflow-wrap: anywhere; + /* text-transform: uppercase; */ + display: block; + color: var(--ae-label-color); + text-align: center; +} + +.ae-virtual .item-info { + /* + position: absolute; + bottom: 0; + padding: 5px; + background-color: var(--ae-main-bg-color); + font-weight: 600; + left: 0; + right: 0; + overflow-wrap: anywhere; + display: block; + color: var(--ae-label-color); + text-align: center; + */ +} +.ae-virtual .item-info-description { + display: none;; +} + +.ae-virtual.full .item-info { + text-align: left; + display: none;; + overflow: hidden; +} +.ae-virtual.full.info .item-info-description, +.ae-virtual.full.info .item-info { + display: flex; + font-weight: normal; + flex-direction: column; +} + +.ae-virtual-wrapper .active .title { + background-color: var(--ae-primary-color); +} +.ae-virtual-wrapper .item.active { + border: 2px solid var(--ae-primary-color); +} + +option { + background-color: var(--ae-main-bg-color); +} + +select:focus option:hover, +option:checked { + background-color: var(--ae-primary-color); + color: var(--ae-main-bg-color); +} + + +.additional, +.additional ul { + position: relative; + z-index: 99; +} + +.card:hover .additional, +.card:hover .additional ul { + display: flex !important; +} + +*.extra-network-cards .card ul { + gap: 2px; +} + +*.extra-network-cards .card ul .card-button { + width: 20px; + height: 20px; + font-size: 15px !important; + background: transparent; +} + + +.ae-virtual-detail-content { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + position: absolute; + overflow-y: auto; + inset: 0; +} + +.ae-virtual-detail>.close { + position: absolute; + z-index: 999; + right: 15px; + top: 5px; +} + +.ae-virtual-detail:has(> .ae-virtual-detail-content > *) { + display: flex; +} + +.ae-virtual-detail:not(:has(> .ae-virtual-detail-content > *)) { + display: none; +} + + +.ae-virtual-detail-content>.ae-virtual-wrapper { + /* + display: flex; + flex-direction: column; + flex-grow: 1;*/ +} + +.ae-virtual-detail-content>.ae-virtual-wrapper>* { + /* + flex: 1 0 100%; + width: 100%; + height: 100%; + box-sizing: border-box; + */ +} + +span.extra-type { + background-color: var(--ae-main-bg-color); + padding: 3px; + margin: 2px; + position: absolute; + border-radius: var(--ae-border-radius); +} + +.item-actions, .item-actions-top { + display: none; + justify-content: flex-end; + padding: 5px; +} + +.item.card:hover .item-actions, +.item.card:hover .item-actions-top +{ + display: flex; +} + +.item-actions-top>*, +.item-actions>* { + width: 24px; + height: 24px; + min-width: unset; + min-height: unset; + background: var(--ae-input-text-color); +} + +.item-send-actions { + /* + position: absolute; + top: 40px; + background: transparent; + margin-top: -1px; + gap: 3px; + display: flex; + flex-wrap: wrap; + height: auto; + width: auto; + flex-direction: column; + */ +} + +.ae-virtual .item { + display: flex; + flex-direction: column; + +} + +.ae-virtual .item-info { + position: relative; + padding: 5px; + background-color: var(--ae-main-bg-color); + font-weight: 600; + overflow-wrap: anywhere; + display: block; + color: var(--ae-label-color); + text-align: center; +} + + +.item-actions, .item-actions-top { + background: transparent; + margin-top: -1px; + gap: 3px; + display: flex; + flex-direction: row; + /*justify-content: center;*/ +} + +.item-actions-row { + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: space-between; + z-index: 1; + background-color: transparent; +} + +.ae-virtual.full .item-actions-row { + flex-direction: row; +} + +.ae-virtual .item-spacer { + flex-grow: 1; + background-color: transparent; +} +.ae-virtual.full .item-spacer { + display:none; +} + +.ae-virtual.full .item-actions-top { + position: initial; + width: auto; + flex-direction: row; + flex-grow: 1; + padding-right: 0; +} + +.ae-virtual:not(.full) .item.card:hover .item-img{ + filter: brightness(0.5); +} + +.ae-virtual:not(.full) .item.card .item-actions-row{ + display: none; +} +.ae-virtual:not(.full) .item.card:hover .item-actions-row{ + display: flex; +} + +/* metadata preview */ +.card.standalone-card-preview img { + width: 100%; +} + +[id$="edit_user_metadata"] { + gap: var(--ae-gap-size); + text-align: left; + padding: 5px; +} + +.ae-virtual { + opacity: 0; + transition: opacity 0s; + /*transition: opacity 1.0s ease-in; */ +} + +.ae-virtual.visible { + opacity: 1; +} + +.item-info > button { + background-color: transparent; + border: 0; + padding: 0; + min-height: unset; + font-size: calc(var(--ae-uiux_exnet_header_size)* 1px); +} + +.item-info > button:hover { + color:var(--ae-primary-color) +} + +.ae-virtual span.extra-type { + background-color: var(--ae-main-bg-color); + padding: 3px; + margin: 2px; + position: absolute; + border-radius: var(--ae-border-radius); + z-index: 1; + top: 0; + font-size: 85%; +} + +.ae-virtual.full .item-info { + max-height: 50%; + overflow: hidden; +} +.ae-virtual.full .item-info-description { + height: 100%; + overflow-y: auto; +} + +.ae-virtual.full .item-info > * , +.ae-virtual.full .item-info-description > * { + margin: 0; + margin-bottom: 10px; + font-size: 14px; + line-height: 16px; + display: block; + white-space: pre-wrap; + word-wrap: break-word; +} + +.ae-virtual.full .item-info-description a { + margin: 0; + font-size: 12px; + line-height: 19px; +} + +.ae-virtual.full .item-info-description img { + width: 100%; +} + +.ae-virtual.full .item-info-title { + font-size: 16px; + line-height: 22px; + font-weight: 600; + display: block; + width: fit-content; +} + +#civitai_models_tabitem .ae-virtual-detail>.close { + display: none; +} + +#civitai_models_tabitem .item-actions-row { + justify-content: flex-end; +} + +.ae-virtual.full .item-img { + position: relative; +} + +.model-sdownload{ + display: inline-block !important; + line-height: var(--ae-input-height) !important; +} + + +.ae-virtual .item { + background-color : rgb(255 255 255 / 0%); +} + +.ae-virtual:not(.full) .card:before { + content: ""; + position: absolute; + inset: 0; + background: var(--ae-secondary-color); +} + +/* Hover effects */ +/* +.layout-extra-networks .ae-virtual:not(.full) .item-img { + animation: addEffect 0.3s forwards; +} +.layout-extra-networks .ae-virtual:not(.full) .card:before { + animation: addBgEffect 0.3s forwards; +} + +.layout-extra-networks:hover .ae-virtual:not(.full) .item-img { + animation: removeEffect 0.3s forwards; +} +.layout-extra-networks:hover .ae-virtual:not(.full) .card:before { + animation: removeBgEffect 0.3s forwards; +} + +.layout-extra-networks.mouseenter:hover .ae-virtual:not(.full) .item-img, +.layout-extra-networks.mouseenter .ae-virtual:not(.full) .item-img { + filter: none !important; + mix-blend-mode: normal !important; + animation: none !important; +} +.layout-extra-networks.mouseenter:hover .ae-virtual:not(.full) .card:before, +.layout-extra-networks.mouseenter .ae-virtual:not(.full) .card:before { + opacity: 0 !important; +} + +.layout-extra-networks.init-view .ae-virtual:not(.full) .item-img { + filter: grayscale(calc(var(--ae-uiux_exnet_image_tint) * 10)) !important; + mix-blend-mode: multiply !important; + animation: none !important; +} +.layout-extra-networks.init-view .ae-virtual:not(.full) .card:before { + opacity: var(--ae-uiux_exnet_image_tint) !important; + animation: none !important; +} + +.default-mobile .layout-extra-networks .ae-virtual:not(.full) .item-img, +.default-mobile .layout-extra-networks.init-view .ae-virtual:not(.full) .item-img { + filter: none !important; + mix-blend-mode: normal !important; + animation: none !important; +} +.default-mobile .layout-extra-networks .ae-virtual:not(.full) .card:before, +.default-mobile .layout-extra-networks.init-view .ae-virtual:not(.full) .card:before { + opacity: 0 !important; +} +*/ + +.layout-extra-networks .ae-virtual:not(.full) .item-img { + filter: grayscale(calc(var(--ae-uiux_exnet_image_tint) * 10)) !important; + mix-blend-mode: multiply !important; + animation: none !important; +} +.layout-extra-networks .ae-virtual:not(.full) .card:before { + opacity: var(--ae-uiux_exnet_image_tint) !important; + animation: none !important; +} +.layout-extra-networks:hover .ae-virtual:not(.full) .item-img { + filter: none !important; + mix-blend-mode: normal !important; + animation: none !important; +} +.layout-extra-networks:hover .ae-virtual:not(.full) .card:before { + opacity: 0 !important; + animation: none !important; +} + +.layout-extra-networks:hover .ae-virtual:not(.full) .item:hover .item-img{ + filter: brightness(0.25) !important; +} + + +@keyframes removeEffect { + 0% { + filter: grayscale(calc(var(--ae-uiux_exnet_image_tint) * 10)); + mix-blend-mode: multiply; + } + 99% { + filter: grayscale(0); + mix-blend-mode: multiply; + } + 100% { + filter: none; + mix-blend-mode: normal; + } +} + +@keyframes addEffect { + 0% { + filter: none; + mix-blend-mode: normal; + } + 1% { + filter: grayscale(0); + mix-blend-mode: multiply; + } + 100% { + filter: grayscale(calc(var(--ae-uiux_exnet_image_tint) * 10)); + mix-blend-mode: multiply; + } +} + +@keyframes removeBgEffect{ + 0% { + opacity: var(--ae-uiux_exnet_image_tint); + } + 100% { + opacity: 0; + } +} + +@keyframes addBgEffect{ + 0% { + opacity: 0; + } + 100% { + opacity: var(--ae-uiux_exnet_image_tint); + } +} diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-flux.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-flux.png new file mode 100644 index 00000000..22707046 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-flux.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-new-03.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-new-03.png new file mode 100644 index 00000000..064207c6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-new-03.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-2.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-2.png deleted file mode 100644 index 1d4c1ac0..00000000 Binary files a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-2.png and /dev/null differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-a.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-a.png new file mode 100644 index 00000000..9d0077c0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-a.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-forge.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-forge.png new file mode 100644 index 00000000..be34bb91 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-forge.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover-m.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover-m.png new file mode 100644 index 00000000..4d2e64ba Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover-m.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover.png index 28dbcc28..cc67245b 100644 Binary files a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover.png and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-hover.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-v.0.01-hover.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-v.0.01-hover.png new file mode 100644 index 00000000..28dbcc28 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-v.0.01-hover.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-v.0.01.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-v.0.01.png new file mode 100644 index 00000000..4a27e43e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces-v.0.01.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces.png b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces.png index 4a27e43e..868c0bff 100644 Binary files a/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces.png and b/extensions-builtin/sd-webui-ux/assets/images/anapnoe-ui-ux-workspaces.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-forge-insights.png b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-forge-insights.png new file mode 100644 index 00000000..7b26e1d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-forge-insights.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-insights.png b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-insights.png new file mode 100644 index 00000000..cedf4f57 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-insights.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-ux-forge-insights.png b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-ux-forge-insights.png new file mode 100644 index 00000000..82c30687 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-ux-forge-insights.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-ux-insights.png b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-ux-insights.png new file mode 100644 index 00000000..57803aec Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/images/stable-diffusion-webui-ux-insights.png differ diff --git a/extensions-builtin/sd-webui-ux/assets/img/arrow.svg b/extensions-builtin/sd-webui-ux/assets/img/arrow.svg new file mode 100644 index 00000000..126ab268 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/autofit.svg b/extensions-builtin/sd-webui-ux/assets/img/autofit.svg new file mode 100644 index 00000000..f12f7a77 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/autofit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/close.svg b/extensions-builtin/sd-webui-ux/assets/img/close.svg new file mode 100644 index 00000000..179a24dd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/download.svg b/extensions-builtin/sd-webui-ux/assets/img/download.svg new file mode 100644 index 00000000..52db45bc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/error.svg b/extensions-builtin/sd-webui-ux/assets/img/error.svg new file mode 100644 index 00000000..4c9ac41a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/heart-outline.svg b/extensions-builtin/sd-webui-ux/assets/img/heart-outline.svg new file mode 100644 index 00000000..2a89f672 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/heart-outline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/heart.svg b/extensions-builtin/sd-webui-ux/assets/img/heart.svg new file mode 100644 index 00000000..81e49db2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/info.svg b/extensions-builtin/sd-webui-ux/assets/img/info.svg new file mode 100644 index 00000000..dead630b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/info.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/extensions-builtin/sd-webui-ux/assets/img/maximize.svg b/extensions-builtin/sd-webui-ux/assets/img/maximize.svg new file mode 100644 index 00000000..e768cabb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/minimize.svg b/extensions-builtin/sd-webui-ux/assets/img/minimize.svg new file mode 100644 index 00000000..7ff3ce3f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/pause.svg b/extensions-builtin/sd-webui-ux/assets/img/pause.svg new file mode 100644 index 00000000..14448b41 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/pixel.gif b/extensions-builtin/sd-webui-ux/assets/img/pixel.gif new file mode 100644 index 00000000..5bfd67a2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/assets/img/pixel.gif differ diff --git a/extensions-builtin/sd-webui-ux/assets/img/play.svg b/extensions-builtin/sd-webui-ux/assets/img/play.svg new file mode 100644 index 00000000..e8e2bc22 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/preloader.svg b/extensions-builtin/sd-webui-ux/assets/img/preloader.svg new file mode 100644 index 00000000..1c6ef35e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/preloader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/theme.svg b/extensions-builtin/sd-webui-ux/assets/img/theme.svg new file mode 100644 index 00000000..f6fb4aa7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/zoom-in.svg b/extensions-builtin/sd-webui-ux/assets/img/zoom-in.svg new file mode 100644 index 00000000..8964085a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/zoom-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/img/zoom-out.svg b/extensions-builtin/sd-webui-ux/assets/img/zoom-out.svg new file mode 100644 index 00000000..38e30be0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/img/zoom-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/add-circle-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/add-circle-fill.svg new file mode 100644 index 00000000..0827f914 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/add-circle-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/add-circle-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/add-circle-line.svg new file mode 100644 index 00000000..d5520b53 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/add-circle-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/add-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/add-line.svg new file mode 100644 index 00000000..5b518ce0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/add-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/arrow-left-up-box-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/arrow-left-up-box-line.svg new file mode 100644 index 00000000..bfd5e0a0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/arrow-left-up-box-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/arrow-right-up-box-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/arrow-right-up-box-line.svg new file mode 100644 index 00000000..8bf261bb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/arrow-right-up-box-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/book-shelf-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/book-shelf-line.svg new file mode 100644 index 00000000..2f93921d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/book-shelf-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-fill.svg new file mode 100644 index 00000000..dca9ee6f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-line.svg index b4c69c05..d8bd5068 100644 --- a/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-line.svg +++ b/extensions-builtin/sd-webui-ux/assets/svg/checkbox-indeterminate-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/delete-bin-2-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/delete-bin-2-fill.svg new file mode 100644 index 00000000..9532589c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/delete-bin-2-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/expand-collapse.svg b/extensions-builtin/sd-webui-ux/assets/svg/expand-collapse.svg new file mode 100644 index 00000000..f34809c9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/expand-collapse.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/extensions-builtin/sd-webui-ux/assets/svg/file-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/file-fill.svg new file mode 100644 index 00000000..be6f512a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/file-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/file-search-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/file-search-fill.svg new file mode 100644 index 00000000..94f0c22e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/file-search-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/focus-mode.svg b/extensions-builtin/sd-webui-ux/assets/svg/focus-mode.svg new file mode 100644 index 00000000..e07a433b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/focus-mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/folder-add-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/folder-add-fill.svg new file mode 100644 index 00000000..a0cec382 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/folder-add-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/folder-add-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/folder-add-line.svg new file mode 100644 index 00000000..12394e64 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/folder-add-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/folder-reduce-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/folder-reduce-fill.svg new file mode 100644 index 00000000..480384a8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/folder-reduce-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/folder-reduce-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/folder-reduce-line.svg new file mode 100644 index 00000000..83cfd57f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/folder-reduce-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/gallery-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/gallery-fill.svg new file mode 100644 index 00000000..efc74913 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/gallery-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/gallery-view-2.svg b/extensions-builtin/sd-webui-ux/assets/svg/gallery-view-2.svg new file mode 100644 index 00000000..4d8dfdf7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/gallery-view-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/gallery-view.svg b/extensions-builtin/sd-webui-ux/assets/svg/gallery-view.svg new file mode 100644 index 00000000..34ce43ce --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/gallery-view.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/image-ai-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/image-ai-line.svg new file mode 100644 index 00000000..3443f87f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/image-ai-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/image-circle-ai-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/image-circle-ai-line.svg new file mode 100644 index 00000000..eba9f7fd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/image-circle-ai-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/indeterminate-circle-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/indeterminate-circle-fill.svg new file mode 100644 index 00000000..4b625f70 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/indeterminate-circle-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/indeterminate-circle-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/indeterminate-circle-line.svg new file mode 100644 index 00000000..3bb56f5d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/indeterminate-circle-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/link.svg b/extensions-builtin/sd-webui-ux/assets/svg/link.svg new file mode 100644 index 00000000..2a5a962a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/markup-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/markup-line.svg index 49b7ab78..e193c734 100644 --- a/extensions-builtin/sd-webui-ux/assets/svg/markup-line.svg +++ b/extensions-builtin/sd-webui-ux/assets/svg/markup-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/planet-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/planet-line.svg index 3bb04682..ad71cf8a 100644 --- a/extensions-builtin/sd-webui-ux/assets/svg/planet-line.svg +++ b/extensions-builtin/sd-webui-ux/assets/svg/planet-line.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/quill-pen-ai-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/quill-pen-ai-line.svg new file mode 100644 index 00000000..3b15cfc2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/quill-pen-ai-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/restart-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/restart-line.svg new file mode 100644 index 00000000..63c519ec --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/restart-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/square-fill.svg b/extensions-builtin/sd-webui-ux/assets/svg/square-fill.svg new file mode 100644 index 00000000..19dc4279 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/square-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/square-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/square-line.svg new file mode 100644 index 00000000..8af42339 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/square-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/svg/subtract-line.svg b/extensions-builtin/sd-webui-ux/assets/svg/subtract-line.svg new file mode 100644 index 00000000..55b92728 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/svg/subtract-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-about-extension.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-about-extension.html new file mode 100644 index 00000000..6198c0ba --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-about-extension.html @@ -0,0 +1,89 @@ +
+
+
+

Anapnoe UI-UX Core

+
+

+ A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, engineered for unmatched user experience and performance. +

+

+ Compatible with both Stable Diffusion web UI + and Stable Diffusion web UI Forge backends. +

+

+ This extension performs frontend optimizations post-DOM load (modifying elements after they're created), meaning developer tools may show initial resource allocation before optimizations apply. In contrast Stable Diffusion web UI UX & Stable Diffusion web UI UX Forge implement upstream backend optimizations that prevent unnecessary element creation entirely, enabling faster performance from initialization. +

+ +
+
+
+

+ Open Source +

+
+

+ Open source projects play a crucial role in protecting user privacy and security, + advocating for unhindered access to source code, and nurturing a more transparent technology + ecosystem. + By supporting this project through your donation, you'll contribute to its ongoing development + without any compromise + from advertisements or corporate agendas, and ensure that it stays freely accessible, current, and + open to all. +

💖 Your Support Makes a Difference! 💖 +
+
+
+
+

Upcoming add-ons for UI-UX

+
+
+

+ Workspaces UI-UX +

+
+

+ With workspaces extension, you can craft personalized views and arrange them in any way that + suits your preferences, + allowing you to tailor-make workflows that cater to your specific needs. +

+

+ 🌟 Get early access to Workspaces for UI-UX. 🌟 +

+
+ Anapnoe UI-UX Workspaces + Anapnoe UI-UX Workspaces +
+
+
+
+

+ Advanced Theme Style configurator [work in progress] +

+
+

+ A sophisticated theme editor allowing you to personalize any aspect of the UI-UX. + Tailor the visual experience of the user interface with the Advanced Theme Style configurator. +

+

+ 🌟 Get early access to Advanced Theme Style configurator for UI-UX. 🌟 +

+ Anapnoe UI-UX Advanced Theme editor +
+
+
+

+ Visual Builder for Gradio Apps [work in progress] +

+
+

+ Introducing a low-code visual editor builder for Gradio Apps. + Create templates and customize Gradio apps without extensive programming knowledge. Drag, drop, + design, and deploy - all within a user-friendly interface. + Build anything from simple AI applications to complex enterprise solutions. +

+ Anapnoe Gradio Visual editor +
+
+
+
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-about.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-about.html new file mode 100644 index 00000000..1f5a7235 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-about.html @@ -0,0 +1,81 @@ +
+
+
+

Anapnoe UI-UX Core

+
+

+ A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, engineered for unmatched user experience and performance. +

+
+
+
+

+ Open Source +

+
+

+ Open source projects play a crucial role in protecting user privacy and security, + advocating for unhindered access to source code, and nurturing a more transparent technology + ecosystem. + By supporting this project through your donation, you'll contribute to its ongoing development + without any compromise + from advertisements or corporate agendas, and ensure that it stays freely accessible, current, and + open to all. +

💖 Your Support Makes a Difference! 💖 +
+
+
+
+

Upcoming add-ons for UI-UX

+
+
+

+ Workspaces UI-UX +

+
+

+ With workspaces extension, you can craft personalized views and arrange them in any way that + suits your preferences, + allowing you to tailor-make workflows that cater to your specific needs. +

+

+ 🌟 Get early access to Workspaces for UI-UX. 🌟 +

+
+ Anapnoe UI-UX Workspaces + Anapnoe UI-UX Workspaces +
+
+
+
+

+ Advanced Theme Style configurator [work in progress] +

+
+

+ A sophisticated theme editor allowing you to personalize any aspect of the UI-UX. + Tailor the visual experience of the user interface with the Advanced Theme Style configurator. +

+

+ 🌟 Get early access to Advanced Theme Style configurator for UI-UX. 🌟 +

+ Anapnoe UI-UX Advanced Theme editor +
+
+
+

+ Visual Builder for Gradio Apps [work in progress] +

+
+

+ Introducing a low-code visual editor builder for Gradio Apps. + Create templates and customize Gradio apps without extensive programming knowledge. Drag, drop, + design, and deploy - all within a user-friendly interface. + Build anything from simple AI applications to complex enterprise solutions. +

+ Anapnoe Gradio Visual editor +
+
+
+
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-app-root.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-app-root.html new file mode 100644 index 00000000..12a03eb2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-app-root.html @@ -0,0 +1,317 @@ +
+
+ + + + +
+ + + + + +
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ + + + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + + + +
+
+
+
+
+
+
+ + + +
+
+ +
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-aside-extra-networks.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-aside-extra-networks.html new file mode 100644 index 00000000..6aefa2cc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-aside-extra-networks.html @@ -0,0 +1,137 @@ +
+
+ + +
+ + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-civitai-explorer.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-civitai-explorer.html new file mode 100644 index 00000000..8765415c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-civitai-explorer.html @@ -0,0 +1,83 @@ +
+
+
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-console-log.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-console-log.html new file mode 100644 index 00000000..51c6b020 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-console-log.html @@ -0,0 +1,31 @@ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-deforum-params.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-deforum-params.html new file mode 100644 index 00000000..bd413234 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-deforum-params.html @@ -0,0 +1,78 @@ +
+
+
+
+ + + +
+
+ + + + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-deforum-results.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-deforum-results.html new file mode 100644 index 00000000..b0d70513 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-deforum-results.html @@ -0,0 +1,82 @@ +
+
+
+
+
+ +
+
+
+
+ + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extensions.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extensions.html new file mode 100644 index 00000000..450e894b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extensions.html @@ -0,0 +1,15 @@ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extra-networks-db.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extra-networks-db.html new file mode 100644 index 00000000..60765015 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extra-networks-db.html @@ -0,0 +1,95 @@ +
+
+
+ + + +
+ + + + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extras-params.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extras-params.html new file mode 100644 index 00000000..f7f44e11 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extras-params.html @@ -0,0 +1,116 @@ +
+
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+ + + +
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extras-results.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extras-results.html new file mode 100644 index 00000000..62d60a6c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-extras-results.html @@ -0,0 +1,51 @@ + +
+
+
+
+
+
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-img2img-params.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-img2img-params.html new file mode 100644 index 00000000..25b97b89 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-img2img-params.html @@ -0,0 +1,409 @@ +
+
+
+
+ + + + + + + +
+
+ + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ Inpaint options + +
+
+
+
+
+
+ +
+
+ +
+
+ Resize mode + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+
+ +
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-img2img-results.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-img2img-results.html new file mode 100644 index 00000000..f6db8500 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-img2img-results.html @@ -0,0 +1,65 @@ + +
+
+
+
+
+
+
+
+
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-model-merger.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-model-merger.html new file mode 100644 index 00000000..d70d6058 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-model-merger.html @@ -0,0 +1,129 @@ + +
+
+ + + +
+
+
+
+ + +
+
+
+ + + +
+
+ + +
+ + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ + + +
+
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ + + + + + +
+
+
+ + + +
+
+
+ +
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-pnginfo.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-pnginfo.html new file mode 100644 index 00000000..2324b5b6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-pnginfo.html @@ -0,0 +1,49 @@ +
+
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-quicksettings.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-quicksettings.html new file mode 100644 index 00000000..00b1d172 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-quicksettings.html @@ -0,0 +1,21 @@ + + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+ \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-settings.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-settings.html new file mode 100644 index 00000000..2e144b86 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-settings.html @@ -0,0 +1,35 @@ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-sponsors.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-sponsors.html new file mode 100644 index 00000000..fe35403c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-sponsors.html @@ -0,0 +1,13 @@ +
+
+
+

+ 💎 Sponsors +

+ +

+ 🥇 Supporters +

+
+
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-styles-db.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-styles-db.html new file mode 100644 index 00000000..2d75c3b3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-styles-db.html @@ -0,0 +1,82 @@ +
+
+ + + + + + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-theme.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-theme.html new file mode 100644 index 00000000..73acf38a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-theme.html @@ -0,0 +1,22 @@ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-train-params.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-train-params.html new file mode 100644 index 00000000..0e7d558c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-train-params.html @@ -0,0 +1,43 @@ +
+
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-train-results.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-train-results.html new file mode 100644 index 00000000..6667d332 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-train-results.html @@ -0,0 +1,12 @@ +
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-txt2img-params.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-txt2img-params.html new file mode 100644 index 00000000..7dd6bbf2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-txt2img-params.html @@ -0,0 +1,323 @@ +
+
+
+
+ + + + + + + +
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-txt2img-results.html b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-txt2img-results.html new file mode 100644 index 00000000..993aa0cf --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/forge-gradio-4/template-txt2img-results.html @@ -0,0 +1,74 @@ + +
+ +
+
+
+
+
+
+
+
+ + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about-extension.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about-extension.html index 6919784a..e3e81dbc 100644 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about-extension.html +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about-extension.html @@ -4,26 +4,14 @@

Anapnoe UI-UX Core

- A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, utilizing the powerful - Gradio - library. This cutting-edge browser interface offers an unparalleled level of customization and optimization for users, setting it apart from other web interfaces. + A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, engineered for unmatched user experience and performance.

- This extension is compatible with both backends: - Stable Diffusion web UI - and - Stable Diffusion web UI Forge - . + Compatible with both Stable Diffusion web UI + and Stable Diffusion web UI Forge backends.

- Please note that this extension focuses solely on frontend optimizations to significantly reduce DOM memory usage and improve loading speed. In contrast, the - Stable Diffusion web UI UX - and its variant, - Stable Diffusion web UI UX Forge - , incorporate backend optimizations for an even better and faster user experience. Together, these changes ensure a more effective and enjoyable interaction with the application. -

-

- 🌟 Your Support Makes a Difference! 🌟 + This extension performs frontend optimizations post-DOM load (modifying elements after they're created), meaning developer tools may show initial resource allocation before optimizations apply. In contrast Stable Diffusion web UI UX & Stable Diffusion web UI UX Forge implement upstream backend optimizations that prevent unnecessary element creation entirely, enabling faster performance from initialization.

@@ -40,28 +28,7 @@ without any compromise from advertisements or corporate agendas, and ensure that it stays freely accessible, current, and open to all. -
- There is only so much time in a day that a person can otherwise give (Dave Glick). -
-

- - -
-

- Sponsors & Supporters -

-
-

- Our sponsors and supporters will be prominently featured on a dedicated tab and on the GitHub page, - highlighting their commitment to advancing innovation in development. - As a heartfelt thank you, they'll get early access to all new features and premium add-ons. -

- - Donate now, and join forces to - create a sustainable realm of open source software that benefits everyone. - -
-

+

💖 Your Support Makes a Difference! 💖
@@ -79,7 +46,7 @@ allowing you to tailor-make workflows that cater to your specific needs.

- Get early access to Workspaces for UI-UX. + 🌟 Get early access to Workspaces for UI-UX. 🌟

Anapnoe UI-UX Workspaces @@ -97,7 +64,7 @@ Tailor the visual experience of the user interface with the Advanced Theme Style configurator.

- Get early access to Advanced Theme Style configurator for UI-UX. + 🌟 Get early access to Advanced Theme Style configurator for UI-UX. 🌟

Anapnoe UI-UX Advanced Theme editor
@@ -118,4 +85,4 @@ - + \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about.html index cc707b7a..1f5a7235 100644 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about.html +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-about.html @@ -4,39 +4,8 @@

Anapnoe UI-UX Core

- Anapnoe UI-UX Core framework leverages a custom-made visual editor and a cutting-edge component - library - to facilitate the rapid development of sophisticated Gradio applications. - In addition to its visually appealing design and well-planned layout, this extension - offers several performance enhancements to both the - - Stable Diffusion - web UI - - and the - Gradio - framework. These optimizations include: + A bespoke, highly adaptable, blazing fast user interface for Stable Diffusion, engineered for unmatched user experience and performance.

- -

- The current optimizations significantly reduce DOM memory usage and improve loading speed. -
- Nevertheless, there is still potential for further enhancements, which will be explored in - upcoming releases of the - - Stable Diffusion Web - UI-UX - . -

-
@@ -52,28 +21,7 @@ without any compromise from advertisements or corporate agendas, and ensure that it stays freely accessible, current, and open to all. -
- There is only so much time in a day that a person can otherwise give (Dave Glick). -
-

-
- -
-

- Sponsors & Supporters -

-
-

- Our sponsors and supporters will be prominently featured on a dedicated tab and on the GitHub page, - highlighting their commitment to advancing innovation in development. - As a heartfelt thank you, they'll get early access to all new features and premium add-ons. -

- - Donate now, and join forces to - create a sustainable realm of open source software that benefits everyone. - -
-

+

💖 Your Support Makes a Difference! 💖
@@ -91,7 +39,7 @@ allowing you to tailor-make workflows that cater to your specific needs.

- Get early access to Workspaces for UI-UX. + 🌟 Get early access to Workspaces for UI-UX. 🌟

Anapnoe UI-UX Workspaces @@ -109,7 +57,7 @@ Tailor the visual experience of the user interface with the Advanced Theme Style configurator.

- Get early access to Advanced Theme Style configurator for UI-UX. + 🌟 Get early access to Advanced Theme Style configurator for UI-UX. 🌟

Anapnoe UI-UX Advanced Theme editor
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-app-root.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-app-root.html index a827b310..5c1b6409 100644 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-app-root.html +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-app-root.html @@ -66,7 +66,7 @@
-
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-aside-extra-networks.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-aside-extra-networks.html index bd428426..8bc3b6dd 100644 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-aside-extra-networks.html +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-aside-extra-networks.html @@ -11,7 +11,7 @@
-
-
-
-
-
+ +
+
+
+
+
- + +
+
- - - diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-civitai-explorer.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-civitai-explorer.html new file mode 100644 index 00000000..8765415c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-civitai-explorer.html @@ -0,0 +1,83 @@ +
+
+
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-extra-networks-db.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-extra-networks-db.html new file mode 100644 index 00000000..99c4cce7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-extra-networks-db.html @@ -0,0 +1,93 @@ +
+
+
+ + + +
+ + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-extra-networks.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-extra-networks.html deleted file mode 100644 index 1308ec91..00000000 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-extra-networks.html +++ /dev/null @@ -1,63 +0,0 @@ -
-
- - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-pnginfo.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-pnginfo.html index 2d5e377d..4c5a2ca4 100644 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-pnginfo.html +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-pnginfo.html @@ -2,23 +2,23 @@
- - - - diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-styles-db.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-styles-db.html new file mode 100644 index 00000000..2d75c3b3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-styles-db.html @@ -0,0 +1,82 @@ +
+
+ + + + + + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-stylez.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-stylez.html deleted file mode 100644 index 7d8f2a9e..00000000 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-stylez.html +++ /dev/null @@ -1,27 +0,0 @@ -
-
-
-
-
-
-
-
-
-
- -
diff --git a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-txt2img-params.html b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-txt2img-params.html index 040b02e0..d955d4cb 100644 --- a/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-txt2img-params.html +++ b/extensions-builtin/sd-webui-ux/assets/templates/uiux-gradio-3/template-txt2img-params.html @@ -115,7 +115,7 @@
-
+
diff --git a/extensions-builtin/sd-webui-ux/javascript/anapnoe_sd_webui_ux.js b/extensions-builtin/sd-webui-ux/javascript/anapnoe_sd_webui_ux.js index ba61abf2..5b077a90 100644 --- a/extensions-builtin/sd-webui-ux/javascript/anapnoe_sd_webui_ux.js +++ b/extensions-builtin/sd-webui-ux/javascript/anapnoe_sd_webui_ux.js @@ -8,13 +8,13 @@ document.addEventListener('DOMContentLoaded', async() => { } }; const loadScript = async() => { - const scriptPath = './file=extensions-builtin/sd-webui-ux/javascript/src/index.js'; + const scriptPath = './file=extensions/sd-webui-ux/javascript/src/index.js'; const exists = await scriptExists(scriptPath); if (exists) { - window.basePath = './file=extensions-builtin/sd-webui-ux/'; + window.basePath = './file=extensions/sd-webui-ux/'; const script = document.createElement('script'); script.type = 'module'; - script.src = './file=extensions-builtin/sd-webui-ux/javascript/src/index.js'; + script.src = './file=extensions/sd-webui-ux/javascript/src/index.js'; document.head.appendChild(script); return; } diff --git a/extensions-builtin/sd-webui-ux/javascript/dist/index.js b/extensions-builtin/sd-webui-ux/javascript/dist/index.js index ed434041..c58df92e 100644 --- a/extensions-builtin/sd-webui-ux/javascript/dist/index.js +++ b/extensions-builtin/sd-webui-ux/javascript/dist/index.js @@ -1,30 +1,48 @@ -async function dt(t,e,o){const n=document.querySelector(o),s=` - `,i=document.createElement("div");i.innerHTML=s;const a=i.firstElementChild;n.append(a)}async function mt(t){const e=document.querySelector("#split-left"),o=` -
-
-
`,n=document.createElement("div");n.innerHTML=o;const s=n.firstElementChild;e.append(s)}async function pt(){let t=["tab_txt2img","tab_img2img","tab_extras","tab_pnginfo","tab_train","tab_modelmerger","tab_settings","tab_extensions","tab_deforum_interface","tab_infinite-image-browsing","tab_anapnoe_dock","tab_anapnoe_sd_uiux_core","tab_space"];const e=document.querySelectorAll("#tabs > .tabitem");for(const o of e){const n=o.id,s=n.split("tab_")[1];!t.includes(n)&&!n.startsWith("tab_ui_theme")&&await Promise.all([dt(n,s,"#other_extensions"),mt(n)])}}function ft(t,e){const o=document.querySelector(t);if(o){const n=s=>{e.forEach(i=>{const a=document.querySelector(`link[rel="stylesheet"][href*="${i}"]`);if(a){const r=a.cloneNode();s.appendChild(r)}})};o.contentDocument.readyState==="complete"?n(o.contentDocument.head):o.addEventListener("load",s=>{n(s.target.contentDocument.head)},{once:!0})}}function Ae(t,e,o){for(const n of t)if(!e.querySelector(`link[rel="stylesheet"][href*="${Ne}${n}"]`)){const i=document.createElement("link");i.rel="stylesheet",i.href=`${Ne}${n}`,i.onload=()=>{console.log(`Stylesheet ${n} loaded successfully.`)},i.onerror=()=>{console.error(`Error loading stylesheet ${n}.`)},o?e.insertBefore(i,o.nextSibling):e.appendChild(i)}}function gt(t){const e=document.body,o=e.querySelector('link[rel="stylesheet"][href*="sd-webui-ux"]');o?Ae(t,e,o):(Ae(t,e),console.warn("The sd-webui-ux/style.css is not found in the body."))}function ht(t,e,o){const s=Array.from(o.querySelectorAll(`link[rel="stylesheet"][href*="${t}"]`)).find(i=>i.href.includes("sd-webui-ux")&&i.href.includes(t));s?(Ae([e],o,s),s.parentNode.removeChild(s),console.log(`Removed existing stylesheet: ${t}`)):console.warn(`No existing stylesheet found: ${t}`)}const Z=window.basePath.includes("builtin"),ke="anapnoe/stable-diffusion-webui-ux",yt="AUTOMATIC1111/stable-diffusion-webui",_t="#anapnoe_app",bt="0.1.0",Be=window.basePath,fe=`${Be}assets/`,Ne=`${fe}css/`,Ge=`${fe}templates/`,vt=`${Ge}uiux-gradio-3/`,St=`${Ge}forge-gradio-4/`,We={"template-deforum-params.html":"deforum","template-deforum-results.html":"deforum","template-stylez.html":"enable_Stylez"},xt=["uiux-icons.css","uiux-theme-editor.css","uiux-deforum.css","uiux-iibrowser.css","uiux-physton.css"];let he=null;const G=()=>(he||(he=document.querySelector(_t)),he);let ye=null;const Ve=()=>(ye||(ye=document.getElementById("tab_anapnoe_sd_uiux_core")),ye);let _e=null;const j=()=>(_e||(_e=document.querySelector("gradio-app")),_e);let be=null;const Xe=()=>(be||(be=document.getElementById("loggerUiUx")),be),D={};let se=null;const wt=()=>{if(!se){const t=j().querySelector(".versions");if(!t){console.error("Versions element not found");return}se=t.innerHTML.replace(yt,ke).replace(/\n/g,"").split("• "),se.forEach(s=>{const[i,a]=s.split(":").map(r=>r.trim());i&&a&&(D[i]=a)});const o=D.version.split(".")[0].includes("f")?"forge":"AUTOMATIC1111",n=parseInt(D.gradio,10);D.variant=o,D.gradio_major=n}return se};let ie=null;const Je=()=>(ie||(ie=vt,D.gradio_major>3&&D.variant==="forge"&&(ie=St)),ie);let J;async function At(){(function(o){console.oldLog=console.log,console.oldWarn=console.warn,J=function(n,s){return function(...i){const r=i.slice(0,10);let c="",d,p;for(c+=` -
${new Date().toLocaleString().replace(",","")}`,p=0;p"),c+=` - `,typeof d=="object"&&typeof JSON=="object"&&typeof JSON.stringify=="function"?c+=JSON.stringify(d):c+=d,c+=" "}o.innerHTML+=c+"
",s.apply(void 0,r)}},console.log=J("log",console.oldLog),console.warn=J("warn",console.oldWarn)})(Xe()),console.log(` +
${t.slice(0,2)}
+ ${t} + `,o=document.createElement("div");o.innerHTML=i;const a=o.firstElementChild;s.append(a)}async function ws(e){const t=document.querySelector("#split-left"),n=` +
+
+
`,s=document.createElement("div");s.innerHTML=n;const i=s.firstElementChild;t.append(i)}async function Es(){let e=["tab_txt2img","tab_img2img","tab_extras","tab_pnginfo","tab_train","tab_modelmerger","tab_settings","tab_extensions","tab_space","tab_deforum_interface","tab_infinite-image-browsing","tab_anapnoe_sd_uiux_core","tab_anapnoe_sd_uiux_db","tab_anapnoe_sd_uiux_civitai","tab_anapnoe_dock"];const t=document.querySelectorAll("#tabs > .tabitem");for(const n of t){const s=n.id,i=s.split("tab_")[1];!e.includes(s)&&!s.startsWith("tab_ui_theme")&&await Promise.all([Ss(s,i,"#other_extensions"),ws(s)])}}function xs(e,t){const n=document.querySelector(e);if(n){const s=i=>{t.forEach(o=>{const a=document.querySelector(`link[rel="stylesheet"][href*="${o}"]`);if(a){const l=a.cloneNode();i.appendChild(l)}})};n.contentDocument.readyState==="complete"?s(n.contentDocument.head):n.addEventListener("load",i=>{s(i.target.contentDocument.head)},{once:!0})}}function ln(e,t,n){for(const s of e)if(!t.querySelector(`link[rel="stylesheet"][href*="${On}${s}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=`${On}${s}`,o.onload=()=>{console.log(`Stylesheet ${s} loaded successfully.`)},o.onerror=()=>{console.error(`Error loading stylesheet ${s}.`)},n?t.insertBefore(o,n.nextSibling):t.appendChild(o)}}function Ts(e){const t=document.body,n=t.querySelector('link[rel="stylesheet"][href*="sd-webui-ux"]');n?ln(e,t,n):(ln(e,t),console.warn("The sd-webui-ux/style.css is not found in the body."))}function Ls(e,t,n){const i=Array.from(n.querySelectorAll(`link[rel="stylesheet"][href*="${e}"]`)).find(o=>o.href.includes("sd-webui-ux")&&o.href.includes(e));i?(ln([t],n,i),i.parentNode.removeChild(i),console.log(`Removed existing stylesheet: ${e}`)):console.warn(`No existing stylesheet found: ${e}`)}const zt=window.basePath.includes("builtin"),mn="anapnoe/stable-diffusion-webui-ux",Cs="AUTOMATIC1111/stable-diffusion-webui",As="#anapnoe_app",Yn="1.0.0",Zn=window.basePath,Ft=`${Zn}assets/`,On=`${Ft}css/`,Kn=`${Ft}templates/`,Is=`${Kn}uiux-gradio-3/`,Ns=`${Kn}forge-gradio-4/`,Jn={"template-deforum-params.html":"deforum","template-deforum-results.html":"deforum"},Ps=["uiux-icons.css","uiux-theme-editor.css","uiux-deforum.css","uiux-iibrowser.css","uiux-physton.css","uiux-virtual.css","uiux-tree.css"];let Gt=null;const at=()=>(Gt||(Gt=document.querySelector(As)),Gt);let Vt=null;const Qn=()=>(Vt||(Vt=document.getElementById("tab_anapnoe_sd_uiux_core")),Vt);let Xt=null;const Ye=()=>(Xt||(Xt=document.querySelector("gradio-app")),Xt);let Yt=null;const es=()=>(Yt||(Yt=document.getElementById("loggerUiUx")),Yt),Ve={};let Lt=null;const Os=()=>{if(!Lt){const e=Ye().querySelector(".versions");if(!e){console.error("Versions element not found");return}Lt=e.innerHTML.replace(Cs,mn).replace(/\n/g,"").split("• "),Lt.forEach(i=>{const[o,a]=i.split(":").map(l=>l.trim());o&&a&&(Ve[o]=a)});const n=Ve.version.split(".")[0].includes("f")?"forge":"AUTOMATIC1111",s=parseInt(Ve.gradio,10);Ve.variant=n,Ve.gradio_major=s}return Lt};let Ct=null;const ts=()=>(Ct||(Ct=Is,Ve.gradio_major>3&&Ve.variant==="forge"&&(Ct=Ns)),Ct),pn=[{value:"SD1",textContent:"SD1"},{value:"SD2",textContent:"SD2"},{value:"SD3",textContent:"SD3"},{value:"SDXL",textContent:"SDXL"},{value:"PONY",textContent:"PONY"},{value:"FLUX",textContent:"FLUX"},{value:"Unknown",textContent:"Unknown"}];let gt;async function ks(){(function(n){console.oldLog=console.log,console.oldWarn=console.warn,gt=function(s,i){return function(...o){const l=o.slice(0,10);let r="",u,d;for(r+=` +
${new Date().toLocaleString().replace(",","")}`,d=0;d"),r+=` + `,typeof u=="object"&&typeof JSON=="object"&&typeof JSON.stringify=="function"?r+=JSON.stringify(u):r+=u,r+=" "}n.innerHTML+=r+"
",i.apply(void 0,l)}},console.log=gt("log",console.oldLog),console.warn=gt("warn",console.oldWarn)})(es()),console.log(` `,"╔═╗╔═╦╦═╗╔═╦═╦╦═╦═╗",` `,"║╬╚╣║║║╬╚╣╬║║║║╬║╩╣",` `,"╚══╩╩═╩══╣╔╩╩═╩═╩═╝",` -`,"─────────╚╝"),console.log(`Initialize Anapnoe UI/UX runtime engine version ${bt}`),console.log("UI/UX Backend Optimizations:",Z),console.log(navigator.userAgent),console.log(wt()),console.log("Console log enabled: ",window.opts.uiux_enable_console_log),console.log("Dev Mode enabled: ",window.opts.uiux_enable_dev_mode),console.log("Theme editor enabled: ",window.opts.uiux_enable_theme_editor),console.log("Maximum resolution output: ",window.opts.uiux_max_resolution_output),console.log("Ignore overrides: ",window.opts.uiux_ignore_overrides),console.log("Show ticks for input range slider: ",window.opts.uiux_show_input_range_ticks),console.log("Default layout: ",window.opts.uiux_default_layout),console.log("Disable transitions: ",window.opts.uiux_disable_transitions),console.log("Aside labels: ",window.opts.uiux_show_labels_aside),console.log("Main labels: ",window.opts.uiux_show_labels_main),console.log("Tabs labels: ",window.opts.uiux_show_labels_tabs),console.log("Hide extra info for labels, checkboxes: ",window.opts.uiux_hide_extra_info),navigator.userAgent.toLowerCase().includes("firefox")&&console.log("Go to the Firefox about:config page, then search and toggle layout. css.has-selector. enabled"),window.opts.uiux_enable_console_log||(console.log=function(){});let e=document.querySelector("link[rel~='icon']");e||(e=document.createElement("link"),e.rel="icon",document.head.appendChild(e)),e.href=`${fe}favicon.svg/`}function Et(t){t?(console.log=J("log",console.oldLog),console.warn=J("warn",console.oldWarn)):console.log=function(){}}async function Lt(t){const e=[];return t.querySelectorAll(".template:not([status])").forEach(o=>{const n={},s=o.getAttribute("url");n.url=s||Je();const i=o.getAttribute("key");n.key=i||void 0;const a=o.getAttribute("template")||o.id;if(a)!Z&&a.includes("about")?n.template=`${a}-extension.html`:n.template=`${a}.html`;else{console.warn("Template not found on element:",o);return}n.id=o.id,n.extensionEnabled=kt(n.template),e.push(n)}),e}function kt(t){const e=We[t];return e?!!document.head.querySelector(`script[type="text/javascript"][src*="${e}"]`):!1}async function B(t,e){const o=t[e],n=e0&&(t=t.concat(p)),console.log("Template loaded",a),s.setAttribute("status","true"),s.append(d.firstElementChild),await B(t,e+1)}else r.status===404&&(console.error("404 template:",a),s.setAttribute("status","error"),await B(t,e+1))}catch(r){console.error("Error loading template:",r),s.setAttribute("status","error"),await B(t,e+1)}}}else console.log("Template files merged successfully")}async function qt(){console.log("Loading Templates",D.gradio);const t=[{url:Je(),template:"template-app-root.html",parent:Ve()}];await B(t,0)}function Ee(t){if(t){const e=new Event("input",{bubbles:!0});t.dispatchEvent(e)}}function Tt(){const t=G();t.addEventListener("animationend",e=>{e.animationName==="fade-out"&&e.target.classList.add("hidden")}),t.addEventListener("animationstart",e=>{const o=t.classList.contains("notransition");e.animationName==="fade-out"?o&&e.target.classList.add("hidden"):e.animationName==="fade-in"&&e.target.classList.remove("hidden")})}function $t(t){let e=0;const o=s=>{const i=Object.getOwnPropertyDescriptors(s);i&&i.onclick&&e++;for(const a of["onblur","onchange","onclick","oncontextmenu","ondblclick","onerror","onfocus","oninput","onkeydown","onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onresize","onscroll","onselect","onsubmit"])s[a]&&e++},n=s=>{o(s);for(let i=s.firstElementChild;i;i=i.nextElementSibling)n(i)};return n(t),e}const ue=new WeakMap;function Ke(t){if(!(t instanceof Element))return 0;let e=0;const o=ue.get(t);if(o)for(const n in o)e+=o[n].size;for(const n of t.children)e+=Ke(n);return e}(function(){const t=EventTarget.prototype.addEventListener,e=EventTarget.prototype.removeEventListener;EventTarget.prototype.addEventListener=function(o,n,s){typeof s>"u"&&(s=!1);const i=ue.get(this)||{};i[o]||(i[o]=new Set),i[o].add(n),ue.set(this,i),t.call(this,o,n,s)},EventTarget.prototype.removeEventListener=function(o,n,s){const i=ue.get(this);i&&i[o]&&(i[o].delete(n),i[o].size===0&&delete i[o]),e.call(this,o,n,s)},window.countEventListeners=Ke})();const C=typeof window<"u"?window:null,qe=C===null,Y=qe?void 0:C.document,I="addEventListener",M="removeEventListener",ve="getBoundingClientRect",V="_a",N="_b",R="_c",re="horizontal",U=()=>!1,zt=qe?"calc":`${["","-webkit-","-moz-","-o-"].filter(t=>{const e=Y.createElement("div");return e.style.cssText=`width:${t}calc(9px)`,!!e.style.length}).shift()}calc`,Ze=t=>typeof t=="string"||t instanceof String,Ue=t=>{if(Ze(t)){const e=Y.querySelector(t);if(!e)throw new Error(`Selector ${t} did not match a DOM element`);return e}return t},L=(t,e,o)=>{const n=t[e];return n!==void 0?n:o},ce=(t,e,o,n)=>{if(e){if(n==="end")return 0;if(n==="center")return t/2}else if(o){if(n==="start")return 0;if(n==="center")return t/2}return t},Ot=(t,e)=>{const o=Y.createElement("div");return o.className=`gutter gutter-${e}`,o},Ct=(t,e,o)=>{const n={};return Ze(e)?n[t]=e:n[t]=`${zt}(${e}% - ${o}px)`,n},It=(t,e)=>({[t]:`${e}px`}),Mt=(t,e={})=>{if(qe)return{};let o=t,n,s,i,a,r,c;Array.from&&(o=Array.from(o));const p=Ue(o[0]).parentNode,y=getComputedStyle?getComputedStyle(p):null,h=y?y.flexDirection:null;let v=L(e,"sizes")||o.map(()=>100/o.length);const E=L(e,"minSize",100),T=Array.isArray(E)?E:o.map(()=>E),b=L(e,"maxSize",1/0),A=Array.isArray(b)?b:o.map(()=>b),f=L(e,"expandToMin",!1),_=L(e,"gutterSize",10),x=L(e,"gutterAlign","center"),w=L(e,"snapOffset",30),k=Array.isArray(w)?w:o.map(()=>w),O=L(e,"dragInterval",1),P=L(e,"direction",re),ge=L(e,"cursor",P===re?"col-resize":"row-resize"),nt=L(e,"gutter",Ot),$e=L(e,"elementStyle",Ct),ot=L(e,"gutterStyle",It);P===re?(n="width",s="clientX",i="left",a="right",r="clientWidth"):P==="vertical"&&(n="height",s="clientY",i="top",a="bottom",r="clientHeight");function W(m,l,u,g){const S=$e(n,l,u,g);Object.keys(S).forEach(q=>{m.style[q]=S[q]})}function st(m,l,u){const g=ot(n,l,u);Object.keys(g).forEach(S=>{m.style[S]=g[S]})}function te(){return c.map(m=>m.size)}function ze(m){return"touches"in m?m.touches[0][s]:m[s]}function Oe(m){const l=c[this.a],u=c[this.b],g=l.size+u.size;l.size=m/this.size*g,u.size=g-m/this.size*g,W(l.element,l.size,this[N],l.i),W(u.element,u.size,this[R],u.i)}function it(m){let l;const u=c[this.a],g=c[this.b];this.dragging&&(l=ze(m)-this.start+(this[N]-this.dragOffset),O>1&&(l=Math.round(l/O)*O),l<=u.minSize+u.snapOffset+this[N]?l=u.minSize+this[N]:l>=this.size-(g.minSize+g.snapOffset+this[R])&&(l=this.size-(g.minSize+this[R])),l>=u.maxSize-u.snapOffset+this[N]?l=u.maxSize+this[N]:l<=this.size-(g.maxSize-g.snapOffset+this[R])&&(l=this.size-(g.maxSize+this[R])),Oe.call(this,l),L(e,"onDrag",U)(te()))}function Ce(){const m=c[this.a].element,l=c[this.b].element,u=m[ve](),g=l[ve]();this.size=u[n]+g[n]+this[N]+this[R],this.start=u[i],this.end=u[a]}function rt(m){if(!getComputedStyle)return null;const l=getComputedStyle(m);if(!l)return null;let u=m[r];return u===0?null:(P===re?u-=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight):u-=parseFloat(l.paddingTop)+parseFloat(l.paddingBottom),u)}function Ie(m){const l=rt(p);if(l===null||T.reduce((q,$)=>q+$,0)>l)return m;let u=0;const g=[],S=m.map((q,$)=>{const F=l*q/100,ne=ce(_,$===0,$===m.length-1,x),oe=T[$]+ne;return F{let F=q;if(u>0&&g[$]-u>0){const ne=Math.min(u,g[$]-u);u-=ne,F=q-ne}return F/l*100})}function ct(){const m=this,l=c[m.a].element,u=c[m.b].element;m.dragging&&L(e,"onDragEnd",U)(te()),m.dragging=!1,C[M]("mouseup",m.stop),C[M]("touchend",m.stop),C[M]("touchcancel",m.stop),C[M]("mousemove",m.move),C[M]("touchmove",m.move),m.stop=null,m.move=null,l[M]("selectstart",U),l[M]("dragstart",U),u[M]("selectstart",U),u[M]("dragstart",U),l.style.userSelect="",l.style.webkitUserSelect="",l.style.MozUserSelect="",l.style.pointerEvents="",u.style.userSelect="",u.style.webkitUserSelect="",u.style.MozUserSelect="",u.style.pointerEvents="",m.gutter.style.cursor="",m.parent.style.cursor="",Y.body.style.cursor=""}function at(m){if("button"in m&&m.button!==0)return;const l=this,u=c[l.a].element,g=c[l.b].element;l.dragging||L(e,"onDragStart",U)(te()),m.preventDefault(),l.dragging=!0,l.move=it.bind(l),l.stop=ct.bind(l),C[I]("mouseup",l.stop),C[I]("touchend",l.stop),C[I]("touchcancel",l.stop),C[I]("mousemove",l.move),C[I]("touchmove",l.move),u[I]("selectstart",U),u[I]("dragstart",U),g[I]("selectstart",U),g[I]("dragstart",U),u.style.userSelect="none",u.style.webkitUserSelect="none",u.style.MozUserSelect="none",u.style.pointerEvents="none",g.style.userSelect="none",g.style.webkitUserSelect="none",g.style.MozUserSelect="none",g.style.pointerEvents="none",l.gutter.style.cursor=ge,l.parent.style.cursor=ge,Y.body.style.cursor=ge,Ce.call(l),l.dragOffset=ze(m)-l.end}v=Ie(v);const H=[];c=o.map((m,l)=>{const u={element:Ue(m),size:v[l],minSize:T[l],maxSize:A[l],snapOffset:k[l],i:l};let g;if(l>0&&(g={a:l-1,b:l,dragging:!1,direction:P,parent:p},g[N]=ce(_,l-1===0,!1,x),g[R]=ce(_,!1,l===o.length-1,x),h==="row-reverse"||h==="column-reverse")){const S=g.a;g.a=g.b,g.b=S}if(l>0){const S=nt(l,P,u.element);st(S,_,l),g[V]=at.bind(g),S[I]("mousedown",g[V]),S[I]("touchstart",g[V]),p.insertBefore(S,u.element),g.gutter=S}return W(u.element,u.size,ce(_,l===0,l===o.length-1,x),l),l>0&&H.push(g),u});function Me(m){const l=m.i===H.length,u=l?H[m.i-1]:H[m.i];Ce.call(u);const g=l?u.size-m.minSize-u[R]:m.minSize+u[N];Oe.call(u,g)}c.forEach(m=>{const l=m.element[ve]()[n];l{if(g>0){const S=H[g-1],q=c[S.a],$=c[S.b];q.size=l[g-1],$.size=u,W(q.element,q.size,S[N],q.i),W($.element,$.size,S[R],$.i)}})}function ut(m,l){H.forEach(u=>{if(l!==!0?u.parent.removeChild(u.gutter):(u.gutter[M]("mousedown",u[V]),u.gutter[M]("touchstart",u[V])),m!==!0){const g=$e(n,u.a.size,u[N]);Object.keys(g).forEach(S=>{c[u.a].element.style[S]="",c[u.b].element.style[S]=""})}})}return{setSizes:lt,getSizes:te,collapse(m){Me(c[m])},destroy:ut,parent:p,pairs:H}};class K{constructor(){return K.instance||(this.splitInstances={},K.instance=this),K.instance}set(e){Object.assign(this.splitInstances,e)}get(){return this.splitInstances}}const Te=new K;Object.freeze(Te);function Nt(t){Te.set(t)}function Ut(){return Te.get()}async function Pt(t){const e=[];await Promise.all(Array.from(t.querySelectorAll("div.split")).map(async o=>{const n=o.id,s=t.querySelector(`#${n}`),i=(s==null?void 0:s.getAttribute("direction"))==="vertical"?"vertical":"horizontal",a=(s==null?void 0:s.getAttribute("gutterSize"))||"8",r=t.querySelectorAll(`#${n} > div.split-container`),c=Array.from(r).map(h=>{const v=h.getAttribute("data-initSize")?parseInt(h.getAttribute("data-initSize")):100/r.length,E=h.getAttribute("data-minSize")?parseInt(h.getAttribute("data-minSize")):1/0;return{id:`#${h.id}`,initSize:v,minSize:E}}),d=c.map(h=>h.id),p=c.map(h=>h.initSize),y=c.map(h=>h.minSize);console.log("Split component",d,p,y,i,a),e[n]=Mt(d,{sizes:p,minSize:y,direction:i,gutterSize:parseInt(a),snapOffset:0,dragInterval:1,elementStyle:(h,v,E)=>({"flex-basis":`calc(${v}% - ${E}px)`}),gutterStyle:(h,v)=>({"flex-basis":`${v}px`,"min-width":`${v}px`,"min-height":`${v}px`})})})),Nt(e)}const me={setItem:function(t,e){localStorage.setItem(t,e),this.notifyChange(t,e)},getItem:function(t){return localStorage.getItem(t)},removeItem:function(t){localStorage.removeItem(t),this.notifyChange(t,null)},notifyChange:function(t,e){const o=new CustomEvent("localStorageChange",{detail:{key:t,value:e}});window.dispatchEvent(o)}};function Rt(t,e){const o=me.getItem(e);t(e,o);const n=s=>{t(s.detail.key,s.detail.value)};return window.addEventListener("localStorageChange",n),()=>{window.removeEventListener("localStorageChange",n)}}let Se=0;function Dt(t,e){const o=t.querySelectorAll("td:last-child"),n=document.createElement("style");let s=1,i="";o.forEach((a,r)=>{const c=parseFloat(a.textContent.trim());if(a.id=`td_${r}`,!isNaN(c)){let d;r===0?(s=c,d=100):d=c/s*100,i+=`#td_${r}::before { min-width: ${d}%; }`}}),n.textContent=i,e.appendChild(n)}function jt(){const t=document.querySelector("#popup_tabitem");t.querySelectorAll(".portal").forEach((e,o,n)=>{ee(e,t,0,o,n.length)})}function Ht(t,e){t.querySelectorAll(`${e}, style`).forEach(n=>{t.removeChild(n)})}function Ft(t,e){const o=t.getAttribute("append-index");Array.from(t.children).forEach(s=>{if(s!==e)if(e.className.includes("gradio-accordion"))if(o){const i=parseInt(o,10);let a=e.children[2].children[i];e.children[2].insertBefore(s,a)}else e.children[2].append(s);else e.append(s)})}async function ee(t,e,o=0,n,s,i=!1){var p;const a=t.getAttribute("data-selector"),r=t.getAttribute("data-parent-selector");let c;if(o%2===0?c=document.querySelector(`${r} ${a}`):c=e.querySelector(`${a}`),c&&t){t.classList.contains("dynamic")&&(Ht(t,a),a.includes("popup-table")&&Dt(c,t)),t.append(c),i&&Se++,console.log("register | Ref",n,r,a),t.getAttribute("droppable")&&Ft(t,c);const h=t.getAttribute("show-button");h&&((p=document.querySelector(h))==null||p.classList.remove("hidden"))}else if(o<2){const y=t.getAttribute("data-timeout"),h=y?parseInt(y):500;await new Promise(v=>setTimeout(v,h)),console.log(o+1,"retry | ",h," | Ref",n,r,a),await ee(t,e,o+1,n,s,i)}else t.classList.contains("dynamic")?console.error("error | Ref",n,r,a):console.warn("dynamic | Ref",n,r,a),i&&Se++;Se===s&&i&&me.getItem("UiUxReady")==="false"&&(console.log("Runtime components initialized"),me.setItem("UiUxReady","true"))}async function Bt(t){await Promise.all(Array.from(t.querySelectorAll(".portal:not(.dynamic)")).map(async(e,o,n)=>{ee(e,t,0,o,n.length,!0)}))}async function Gt(t){const e=G();await Promise.all(Array.from(t.querySelectorAll(".xtabs-tab")).map(async n=>{if(n.addEventListener("click",()=>{const i=n.parentElement,a=n.getAttribute("tabGroup");n.getAttribute("data-click");const r=n.getAttribute("toggle"),c=n.classList.contains("active");function d(p){p.classList.remove("active");const y=p.getAttribute("tabItemId");e.querySelectorAll(y).forEach(h=>{h.classList.remove("fade-in"),h.classList.add("fade-out")})}if((!r||r&&c)&&(a?e.querySelectorAll(`[tabGroup="${a}"]`).forEach(p=>{p.classList.contains("active")&&d(p)}):i&&[].slice.call(i.children).forEach(y=>{y.classList.contains("active")&&d(y)})),!r||r&&!c){const p=n.getAttribute("tabItemId");e.querySelectorAll(p).forEach(y=>{y.classList.remove("fade-out"),y.classList.add("fade-in"),y.querySelectorAll(".portal.dynamic").forEach((h,v,E)=>{ee(h,document,0,v,E.length)})}),n.classList.add("active"),o(n)}}),!n.getAttribute("active")){const i=n.getAttribute("tabItemId");e.querySelectorAll(i).forEach(a=>{a.classList.remove("fade-in"),a.classList.add("fade-out")})}})),await Promise.all(Array.from(t.querySelectorAll(".xtabs-tab[active]")).map(async n=>{n.classList.add("active");const s=n.getAttribute("tabItemId");n.getAttribute("data-click"),e.querySelectorAll(s).forEach(i=>{i.classList.remove("fade-out"),i.classList.add("fade-in")}),o(n)}));function o(n,s,i){const a=n.closest(".accordion-bar");if(a){const r=a.parentElement;if(r.className.indexOf("expand")===-1){let c=a;const d=r.getAttribute("iconTrigger");if(d){const p=t.querySelector(d);p&&(c=p)}c.click()}}}}const Pe={DEFAULT_PATH:Be,FOCUS_PROMPT:"txt2img",loadCurrentTemplate:B,initUiUxComponents:et};async function Wt(){document.head.querySelectorAll(` +`,"─────────╚╝"),console.log(`Initialize Anapnoe UI/UX Core version ${Yn}`),console.log("UI/UX Backend Optimizations:",zt),console.log(navigator.userAgent),console.log(Os()),console.log("Console log enabled: ",window.opts.uiux_enable_console_log),console.log("Dev Mode enabled: ",window.opts.uiux_enable_dev_mode),console.log("Theme editor enabled: ",window.opts.uiux_enable_theme_editor),console.log("SD Styles enabled: ",window.opts.uiux_enable_sd_styles),console.log("Image Browser enabled: ",window.opts.uiux_enable_sd_output_images),console.log("Civitai Explorer enabled: ",window.opts.uiux_enable_civitai_explorer),console.log("Maximum resolution output: ",window.opts.uiux_max_resolution_output),console.log("Ignore overrides: ",window.opts.uiux_ignore_overrides),console.log("Show ticks for input range slider: ",window.opts.uiux_show_input_range_ticks),console.log("Default layout: ",window.opts.uiux_default_layout),console.log("Disable transitions: ",window.opts.uiux_disable_transitions),console.log("Aside labels: ",window.opts.uiux_show_labels_aside),console.log("Main labels: ",window.opts.uiux_show_labels_main),console.log("Tabs labels: ",window.opts.uiux_show_labels_tabs),console.log("Hide extra info for labels, checkboxes: ",window.opts.uiux_hide_extra_info),navigator.userAgent.toLowerCase().includes("firefox")&&console.log("Go to the Firefox about:config page, then search and toggle layout. css.has-selector. enabled"),window.opts.uiux_enable_console_log||(console.log=function(){});let t=document.querySelector("link[rel~='icon']");t||(t=document.createElement("link"),t.rel="icon",document.head.appendChild(t)),t.href=`${Ft}favicon.svg/`}function Ms(e){e?(console.log=gt("log",console.oldLog),console.warn=gt("warn",console.oldWarn)):console.log=function(){}}async function $s(e){const t=[];return e.querySelectorAll(".template:not([status])").forEach(n=>{const s={},i=n.getAttribute("url");s.url=i||ts();const o=n.getAttribute("key");s.key=o||void 0;const a=n.getAttribute("template")||n.id;if(a)!zt&&a.includes("about")?s.template=`${a}-extension.html`:s.template=`${a}.html`;else{console.warn("Template not found on element:",n);return}s.id=n.id,s.extensionEnabled=Rs(s.template),t.push(s)}),t}function Rs(e){const t=Jn[e];return t?!!document.head.querySelector(`script[type="text/javascript"][src*="${t}"]`):!1}async function it(e,t){const n=e[t],s=t0&&(e=e.concat(d)),console.log("Template loaded",a),i.setAttribute("status","true"),i.append(u.firstElementChild),await it(e,t+1)}else l.status===404&&(console.error("404 template:",a),i.setAttribute("status","error"),await it(e,t+1))}catch(l){console.error("Error loading template:",l),i.setAttribute("status","error"),await it(e,t+1)}}}else console.log("Template files merged successfully")}async function Ds(){console.log("Loading Templates",Ve.gradio);const e=[{url:ts(),template:"template-app-root.html",parent:Qn()}];await it(e,0)}function He(e){if(e){const t=new Event("input",{bubbles:!0,cancelable:!0});e.dispatchEvent(t)}}function zs(e){if(e){const t=new Event("change",{bubbles:!0,cancelable:!0});e.dispatchEvent(t)}}function Fs(){const e=at();e.addEventListener("animationend",t=>{t.animationName==="fade-out"&&t.target.classList.add("hidden")}),e.addEventListener("animationstart",t=>{const n=e.classList.contains("notransition");t.animationName==="fade-out"?n&&t.target.classList.add("hidden"):t.animationName==="fade-in"&&t.target.classList.remove("hidden")})}async function Us(e,t=4){return new Promise(n=>{const s=i=>{e.value!=""||i>=t?n(!0):setTimeout(()=>s(i+1),500)};s(0)})}async function ot(e,t){const n=document.querySelector("#root-dock-components"),s=document.querySelector('#pnginfo_image input[type="file"]'),i=document.querySelector(`#pnginfo_send_buttons ${t}`),o=document.querySelector("#main-nav .active"),a=document.querySelector("#workspaces_tabitem"),l=document.querySelector('[data-selector="#tab_pnginfo textarea"] textarea');l&&(l.value="",He(l));try{const u=await(await fetch(e)).blob(),d=new File([u],"image.jpg"),m=new DataTransfer;m.items.add(d),s.files=m.files,zs(s),await Us(l)?(n&&(a.classList.add("no-redraw"),setTimeout(()=>{o==null||o.click(),a.classList.remove("no-redraw")},1e3)),i==null||i.click()):console.error("PNG info not loaded")}catch(r){console.error("Error:",r)}}function qs(e){let t;document.querySelectorAll(e).forEach(n=>{n.addEventListener("mouseenter",s=>{clearTimeout(t),n.classList.remove("init-view"),t=setTimeout(()=>{n.classList.add("mouseenter")},500)}),n.addEventListener("mouseleave",s=>{clearTimeout(t),n.classList.remove("mouseenter")})})}const Ne=typeof window<"u"?window:null,fn=Ne===null,bt=fn?void 0:Ne.document,Oe="addEventListener",ke="removeEventListener",Zt="getBoundingClientRect",ct="_a",Me="_b",We="_c",At="horizontal",$e=()=>!1,Hs=fn?"calc":`${["","-webkit-","-moz-","-o-"].filter(e=>{const t=bt.createElement("div");return t.style.cssText=`width:${e}calc(9px)`,!!t.style.length}).shift()}calc`,ns=e=>typeof e=="string"||e instanceof String,kn=e=>{if(ns(e)){const t=bt.querySelector(e);if(!t)throw new Error(`Selector ${e} did not match a DOM element`);return t}return e},Se=(e,t,n)=>{const s=e[t];return s!==void 0?s:n},It=(e,t,n,s)=>{if(t){if(s==="end")return 0;if(s==="center")return e/2}else if(n){if(s==="start")return 0;if(s==="center")return e/2}return e},Bs=(e,t)=>{const n=bt.createElement("div");return n.className=`gutter gutter-${t}`,n},js=(e,t,n)=>{const s={};return ns(t)?s[e]=t:s[e]=`${Hs}(${t}% - ${n}px)`,s},Ws=(e,t)=>({[e]:`${t}px`}),Gs=(e,t={})=>{if(fn)return{};let n=e,s,i,o,a,l,r;Array.from&&(n=Array.from(n));const d=kn(n[0]).parentNode,m=getComputedStyle?getComputedStyle(d):null,g=m?m.flexDirection:null;let L=Se(t,"sizes")||n.map(()=>100/n.length);const x=Se(t,"minSize",100),j=Array.isArray(x)?x:n.map(()=>x),I=Se(t,"maxSize",1/0),M=Array.isArray(I)?I:n.map(()=>I),f=Se(t,"expandToMin",!1),y=Se(t,"gutterSize",10),h=Se(t,"gutterAlign","center"),v=Se(t,"snapOffset",30),O=Array.isArray(v)?v:n.map(()=>v),W=Se(t,"dragInterval",1),ne=Se(t,"direction",At),q=Se(t,"cursor",ne===At?"col-resize":"row-resize"),A=Se(t,"gutter",Bs),p=Se(t,"elementStyle",js),C=Se(t,"gutterStyle",Ws);ne===At?(s="width",i="clientX",o="left",a="right",l="clientWidth"):ne==="vertical"&&(s="height",i="clientY",o="top",a="bottom",l="clientHeight");function $(w,_,E,P){const Z=p(s,_,E,P);Object.keys(Z).forEach(oe=>{w.style[oe]=Z[oe]})}function R(w,_,E){const P=C(s,_,E);Object.keys(P).forEach(Z=>{w.style[Z]=P[Z]})}function b(){return r.map(w=>w.size)}function S(w){return"touches"in w?w.touches[0][i]:w[i]}function z(w){const _=r[this.a],E=r[this.b],P=_.size+E.size;_.size=w/this.size*P,E.size=P-w/this.size*P,$(_.element,_.size,this[Me],_.i),$(E.element,E.size,this[We],E.i)}function V(w){let _;const E=r[this.a],P=r[this.b];this.dragging&&(_=S(w)-this.start+(this[Me]-this.dragOffset),W>1&&(_=Math.round(_/W)*W),_<=E.minSize+E.snapOffset+this[Me]?_=E.minSize+this[Me]:_>=this.size-(P.minSize+P.snapOffset+this[We])&&(_=this.size-(P.minSize+this[We])),_>=E.maxSize-E.snapOffset+this[Me]?_=E.maxSize+this[Me]:_<=this.size-(P.maxSize-P.snapOffset+this[We])&&(_=this.size-(P.maxSize+this[We])),z.call(this,_),Se(t,"onDrag",$e)(b()))}function J(){const w=r[this.a].element,_=r[this.b].element,E=w[Zt](),P=_[Zt]();this.size=E[s]+P[s]+this[Me]+this[We],this.start=E[o],this.end=E[a]}function se(w){if(!getComputedStyle)return null;const _=getComputedStyle(w);if(!_)return null;let E=w[l];return E===0?null:(ne===At?E-=parseFloat(_.paddingLeft)+parseFloat(_.paddingRight):E-=parseFloat(_.paddingTop)+parseFloat(_.paddingBottom),E)}function F(w){const _=se(d);if(_===null||j.reduce((oe,Q)=>oe+Q,0)>_)return w;let E=0;const P=[],Z=w.map((oe,Q)=>{const le=_*oe/100,he=It(y,Q===0,Q===w.length-1,h),pe=j[Q]+he;return le{let le=oe;if(E>0&&P[Q]-E>0){const he=Math.min(E,P[Q]-E);E-=he,le=oe-he}return le/_*100})}function ie(){const w=this,_=r[w.a].element,E=r[w.b].element;w.dragging&&Se(t,"onDragEnd",$e)(b()),w.dragging=!1,Ne[ke]("mouseup",w.stop),Ne[ke]("touchend",w.stop),Ne[ke]("touchcancel",w.stop),Ne[ke]("mousemove",w.move),Ne[ke]("touchmove",w.move),w.stop=null,w.move=null,_[ke]("selectstart",$e),_[ke]("dragstart",$e),E[ke]("selectstart",$e),E[ke]("dragstart",$e),_.style.userSelect="",_.style.webkitUserSelect="",_.style.MozUserSelect="",_.style.pointerEvents="",E.style.userSelect="",E.style.webkitUserSelect="",E.style.MozUserSelect="",E.style.pointerEvents="",w.gutter.style.cursor="",w.parent.style.cursor="",bt.body.style.cursor=""}function U(w){if("button"in w&&w.button!==0)return;const _=this,E=r[_.a].element,P=r[_.b].element;_.dragging||Se(t,"onDragStart",$e)(b()),w.preventDefault(),_.dragging=!0,_.move=V.bind(_),_.stop=ie.bind(_),Ne[Oe]("mouseup",_.stop),Ne[Oe]("touchend",_.stop),Ne[Oe]("touchcancel",_.stop),Ne[Oe]("mousemove",_.move),Ne[Oe]("touchmove",_.move),E[Oe]("selectstart",$e),E[Oe]("dragstart",$e),P[Oe]("selectstart",$e),P[Oe]("dragstart",$e),E.style.userSelect="none",E.style.webkitUserSelect="none",E.style.MozUserSelect="none",E.style.pointerEvents="none",P.style.userSelect="none",P.style.webkitUserSelect="none",P.style.MozUserSelect="none",P.style.pointerEvents="none",_.gutter.style.cursor=q,_.parent.style.cursor=q,bt.body.style.cursor=q,J.call(_),_.dragOffset=S(w)-_.end}L=F(L);const K=[];r=n.map((w,_)=>{const E={element:kn(w),size:L[_],minSize:j[_],maxSize:M[_],snapOffset:O[_],i:_};let P;if(_>0&&(P={a:_-1,b:_,dragging:!1,direction:ne,parent:d},P[Me]=It(y,_-1===0,!1,h),P[We]=It(y,!1,_===n.length-1,h),g==="row-reverse"||g==="column-reverse")){const Z=P.a;P.a=P.b,P.b=Z}if(_>0){const Z=A(_,ne,E.element);R(Z,y,_),P[ct]=U.bind(P),Z[Oe]("mousedown",P[ct]),Z[Oe]("touchstart",P[ct]),d.insertBefore(Z,E.element),P.gutter=Z}return $(E.element,E.size,It(y,_===0,_===n.length-1,h),_),_>0&&K.push(P),E});function B(w){const _=w.i===K.length,E=_?K[w.i-1]:K[w.i];J.call(E);const P=_?E.size-w.minSize-E[We]:w.minSize+E[Me];z.call(E,P)}r.forEach(w=>{const _=w.element[Zt]()[s];_{if(P>0){const Z=K[P-1],oe=r[Z.a],Q=r[Z.b];oe.size=_[P-1],Q.size=E,$(oe.element,oe.size,Z[Me],oe.i),$(Q.element,Q.size,Z[We],Q.i)}})}function me(w,_){K.forEach(E=>{if(_!==!0?E.parent.removeChild(E.gutter):(E.gutter[ke]("mousedown",E[ct]),E.gutter[ke]("touchstart",E[ct])),w!==!0){const P=p(s,E.a.size,E[Me]);Object.keys(P).forEach(Z=>{r[E.a].element.style[Z]="",r[E.b].element.style[Z]=""})}})}return{setSizes:ce,getSizes:b,collapse(w){B(r[w])},destroy:me,parent:d,pairs:K}};class _t{constructor(){return _t.instance||(this.splitInstances={},_t.instance=this),_t.instance}set(t){Object.assign(this.splitInstances,t)}get(){return this.splitInstances}}const hn=new _t;Object.freeze(hn);function Vs(e){hn.set(e)}function Xs(){return hn.get()}async function Ys(e){const t=[];await Promise.all(Array.from(e.querySelectorAll("div.split")).map(async n=>{const s=n.id,i=e.querySelector(`#${s}`),o=(i==null?void 0:i.getAttribute("direction"))==="vertical"?"vertical":"horizontal",a=(i==null?void 0:i.getAttribute("gutterSize"))||"8",l=e.querySelectorAll(`#${s} > div.split-container`),r=Array.from(l).map(g=>{const L=g.getAttribute("data-initSize")?parseInt(g.getAttribute("data-initSize")):100/l.length,x=g.getAttribute("data-minSize")?parseInt(g.getAttribute("data-minSize")):1/0;return{id:`#${g.id}`,initSize:L,minSize:x}}),u=r.map(g=>g.id),d=r.map(g=>g.initSize),m=r.map(g=>g.minSize);console.log("Split component",u,d,m,o,a),t[s]=Gs(u,{sizes:d,minSize:m,direction:o,gutterSize:parseInt(a),snapOffset:0,dragInterval:1,elementStyle:(g,L,x)=>({"flex-basis":`calc(${L}% - ${x}px)`}),gutterStyle:(g,L)=>({"flex-basis":`${L}px`,"min-width":`${L}px`,"min-height":`${L}px`})})})),Vs(t)}const Rt={setItem:function(e,t){localStorage.setItem(e,t),this.notifyChange(e,t)},getItem:function(e){return localStorage.getItem(e)},removeItem:function(e){localStorage.removeItem(e),this.notifyChange(e,null)},notifyChange:function(e,t){const n=new CustomEvent("localStorageChange",{detail:{key:e,value:t}});window.dispatchEvent(n)}};function Zs(e,t){const n=Rt.getItem(t);e(t,n);const s=i=>{e(i.detail.key,i.detail.value)};return window.addEventListener("localStorageChange",s),()=>{window.removeEventListener("localStorageChange",s)}}let Kt=0;function Ks(e,t){const n=e.querySelectorAll("td:last-child"),s=document.createElement("style");let i=1,o="";n.forEach((a,l)=>{const r=parseFloat(a.textContent.trim());if(a.id=`td_${l}`,!isNaN(r)){let u;l===0?(i=r,u=100):u=r/i*100,o+=`#td_${l}::before { min-width: ${u}%; }`}}),s.textContent=o,t.appendChild(s)}function Js(e,t){e.querySelectorAll(`${t}, style`).forEach(s=>{e.removeChild(s)})}function Qs(e,t){const n=e.getAttribute("append-index");Array.from(e.children).forEach(i=>{if(i!==t)if(t.className.includes("gradio-accordion"))if(n){const o=parseInt(n,10);let a=t.children[2].children[o];t.children[2].insertBefore(i,a)}else t.children[2].append(i);else t.append(i)})}async function gn(e,t,n=0,s,i,o=!1){var d;const a=e.getAttribute("data-selector"),l=e.getAttribute("data-parent-selector");let r;if(n%2===0?r=document.querySelector(`${l} ${a}`):r=t.querySelector(`${a}`),r&&e){e.classList.contains("dynamic")&&(Js(e,a),a.includes("popup-table")&&Ks(r,e)),e.append(r),o&&Kt++,console.log("register | Ref",s,l,a),e.getAttribute("droppable")&&Qs(e,r);const g=e.getAttribute("show-button");g&&((d=document.querySelector(g))==null||d.classList.remove("hidden"))}else if(n<2){const m=e.getAttribute("data-timeout"),g=m?parseInt(m):500;await new Promise(L=>setTimeout(L,g)),console.log(n+1,"retry | ",g," | Ref",s,l,a),await gn(e,t,n+1,s,i,o)}else e.classList.contains("dynamic")?console.error("error | Ref",s,l,a):console.warn("dynamic | Ref",s,l,a),o&&Kt++;Kt===i&&o&&Rt.getItem("UiUxReady")==="false"&&(console.log("Runtime components initialized"),Rt.setItem("UiUxReady","true"))}async function ei(e){await Promise.all(Array.from(e.querySelectorAll(".portal:not(.dynamic)")).map(async(t,n,s)=>{gn(t,e,0,n,s.length,!0)}))}async function ti(e){const t=at();await Promise.all(Array.from(e.querySelectorAll(".xtabs-tab")).map(async s=>{if(s.addEventListener("click",()=>{const o=s.parentElement,a=s.getAttribute("tabGroup");s.getAttribute("data-click");const l=s.getAttribute("toggle"),r=s.classList.contains("active");function u(d){d.classList.remove("active");const m=d.getAttribute("tabItemId");t.querySelectorAll(m).forEach(g=>{g.classList.remove("fade-in","init-view"),g.classList.add("fade-out")})}if((!l||l&&r)&&(a?t.querySelectorAll(`[tabGroup="${a}"]`).forEach(d=>{d.classList.contains("active")&&u(d)}):o&&[].slice.call(o.children).forEach(m=>{m.classList.contains("active")&&u(m)})),!l||l&&!r){const d=s.getAttribute("tabItemId");t.querySelectorAll(d).forEach(m=>{m.classList.remove("fade-out"),m.classList.add("fade-in","init-view"),m.querySelectorAll(".portal.dynamic").forEach((g,L,x)=>{gn(g,document,0,L,x.length)})}),s.classList.add("active"),n(s)}}),!s.getAttribute("active")){const o=s.getAttribute("tabItemId");t.querySelectorAll(o).forEach(a=>{a.classList.remove("fade-in","init-view"),a.classList.add("fade-out")})}})),await Promise.all(Array.from(e.querySelectorAll(".xtabs-tab[active]")).map(async s=>{s.classList.add("active");const i=s.getAttribute("tabItemId");s.getAttribute("data-click"),t.querySelectorAll(i).forEach(o=>{o.classList.remove("fade-out"),o.classList.add("fade-in")}),n(s)}));function n(s,i,o){const a=s.closest(".accordion-bar");if(a){const l=a.parentElement;if(l.className.indexOf("expand")===-1){let r=a;const u=l.getAttribute("iconTrigger");if(u){const d=e.querySelector(u);d&&(r=d)}r.click()}}}}async function ni(e){await Promise.all(Array.from(e.querySelectorAll(".ae-button")).map(async t=>{const n=t.getAttribute("toggle"),s=t.getAttribute("active"),i=t.getAttribute("data-click"),o=t.querySelector("input");i&&t.addEventListener("click",a=>{const l=document.querySelector(i);l==null||l.click()}),o&&(o.checked===!0&&!s||o.checked===!1&&s)&&o.click(),s?t.classList.add("active"):t.classList.remove("active"),n&&t.addEventListener("click",a=>{const l=t.querySelector("input");l?(l.click(),l.checked===!0?t.classList.add("active"):l.checked===!1&&t.classList.remove("active")):t.classList.toggle("active")})}))}async function si(e){const t=Xs();await Promise.all(Array.from(e.querySelectorAll(".accordion-bar")).map(async n=>{const s=n.parentElement,i=s.closest(".split-container");let o=n;const a=s.getAttribute("iconTrigger");if(a){const l=e.querySelector(a);l&&(o=l,n.classList.add("pointer-events-none"))}if(s.className.indexOf("accordion-vertical")!==-1&&i.className.indexOf("split")!==-1){s.classList.add("expand");const l=i.parentElement.id,r=t[l];i.setAttribute("data-sizes",JSON.stringify(r.getSizes())),o==null||o.addEventListener("click",()=>{if(s.classList.toggle("expand"),i.className.indexOf("v-expand")!==-1)i.classList.remove("v-expand"),r.setSizes(JSON.parse(i.getAttribute("data-sizes")));else{i.classList.add("v-expand");let u=r.getSizes();i.setAttribute("data-sizes",JSON.stringify(u)),console.log(u),u[u.length-1]=0,u[u.length-2]=100;const d=parseFloat(window.getComputedStyle(n,null).getPropertyValue("padding-left"))*2;i.style.minWidth=n.offsetWidth+d+"px",r.setSizes(u)}})}else o==null||o.addEventListener("click",()=>{s.classList.toggle("expand")})}))}async function ss(e){var n;await Ys(e),await ei(e),await si(e),await ti(e),await ni(e),document.querySelector("#container-console-log").append(es()),(n=document.querySelector("#logger_screen"))==null||n.remove()}const Mn={ANAPNOE_APP_VER:Yn,DEFAULT_PATH:Zn,FOCUS_PROMPT:"txt2img",loadCurrentTemplate:it,initUiUxComponents:ss};async function ii(){document.head.querySelectorAll(` [rel="stylesheet"][href*="/assets/"], [rel="stylesheet"][href*="theme.css"], - [rel="stylesheet"][href*="index"]`).forEach(n=>{n.remove(),console.log("Remove stylesheet",n.getAttribute("href"))}),document.body.querySelectorAll(` - [rel="stylesheet"][href*="file=style.css"]`).forEach(n=>{n.remove(),console.log("Remove stylesheet",n.getAttribute("href"))});const t=document.querySelectorAll('.styler, [class*="svelte"]:not(input)'),e=t.length;let o=0;t.forEach(n=>{n.style.display!=="none"&&n.style.display!=="block"&&(n.removeAttribute("style"),o++),[...n.classList].filter(s=>s.match(/^svelte.*/)).forEach(s=>n.classList.remove(s))}),console.log("Remove inline styles from DOM","Total Selectors:",e,"Removed Selectors:",o)}function Ye(t){var n;const e=t.getAttribute("data-apply"),o=e?e.match(/^(\w+)\s*\(.*\)$/):null;if(o&&typeof window[o[1]]=="function"){t.removeEventListener("click",window[o[1]]);const s=t.getAttribute("data-name")||t.getAttribute("data-path")||((n=t.closest(".card"))==null?void 0:n.getAttribute("data-name"));s&&console.log("Remove EventListener",`${s} - ${o[1]} - ${t.getAttribute("title")||""}`)}}function Re(t){var n;const{target:e,currentTarget:o}=t;if(e.classList.contains("card")||e.classList.contains("card-button")||e.classList.contains("tree-list-content")){let s=e.getAttribute("data-apply")||e.getAttribute("onClick");if(s&&(e.setAttribute("data-apply",s),e.removeAttribute("onClick")),e.setAttribute("onClick",s),e.click(),Ye(e),e.removeAttribute("onClick"),e.classList.contains("card-button")&&jt(),e.classList.contains("tree-list-content-dir")){const i=(n=o.closest(".layout-extra-networks"))==null?void 0:n.querySelector(".search_extra_networks");i&&e.getAttribute("data-path")&&(i.value=e.getAttribute("data-path"),Ee(i))}t.stopImmediatePropagation()}}async function Qe(t){if(window.opts.uiux_enable_event_delegation||Z){const e=$t(t);console.log("Starting Optimizations for",t.id),Z||t.querySelectorAll(".card, .card-button, .tree-list-content").forEach(o=>{const n=o.getAttribute("onClick")||o.getAttribute("data-apply");n&&(o.setAttribute("data-apply",n),o.removeAttribute("onClick"),Ye(o))}),console.log("Total Inline Event Listeners Before:",e,"After:",0),console.log("Attaching Event Listener using Event Delegation",t.id),t.removeEventListener("click",Re),t.addEventListener("click",Re)}}async function Vt(){const t=j(),e=function(n){const s=n.target.value.toLowerCase(),i=n.target.getAttribute("data-target");t.querySelectorAll(i).forEach(a=>{let c=a.getAttribute("data-sort-path").toLowerCase().indexOf(s)!==-1;s.length<2&&(c=!0),a.style.display=c?"":"none"})};document.querySelectorAll(".search_extra_networks").forEach(n=>{n.addEventListener("input",e)});function o(n,s){function i(v,E){const T=v.getAttribute(s),b=E.getAttribute(s);return!isNaN(T)&&!isNaN(b)?parseInt(T)-parseInt(b):Tb?1:0}const a=n.getAttribute("data-target"),r=t.querySelectorAll(a),c=r[0].parentElement,p=Array.from(r).sort(i);n.nextElementSibling.className.indexOf("active")!==-1&&p.reverse(),p.forEach(v=>c.appendChild(v))}document.querySelectorAll(".extra_networks_order_by").forEach(n=>{n.addEventListener("change",function(s){o(s.target,this.value)}),n.nextElementSibling.addEventListener("click",s=>{o(n,n.value),console.log("You selected: ",n.value)})})}async function Xt(){var t,e,o,n;if(!Z){const s=j();console.log("Remove Extra Networks Instances"),(t=s.querySelector("#img2img_textual_inversion_cards_html"))==null||t.remove(),(e=s.querySelector("#img2img_checkpoints_cards_html"))==null||e.remove(),(o=s.querySelector("#img2img_hypernetworks_cards_html"))==null||o.remove(),(n=s.querySelector("#img2img_lora_cards_html"))==null||n.remove(),console.log("Remove element #img2img_textual_inversion_cards_html"),console.log("Remove element #img2img_checkpoints_cards_html"),console.log("Remove element #img2img_hypernetworks_cards_html"),console.log("Remove element #img2img_lora_cards_html")}}async function Jt(t){await Promise.all(Array.from(t.querySelectorAll(".ae-button")).map(async e=>{const o=e.getAttribute("toggle"),n=e.getAttribute("active"),s=e.querySelector("input");s&&(s.checked===!0&&!n||s.checked===!1&&n)&&s.click(),n?e.classList.add("active"):e.classList.remove("active"),o&&e.addEventListener("click",a=>{const r=e.querySelector("input");r?(r.click(),r.checked===!0?e.classList.add("active"):r.checked===!1&&e.classList.remove("active")):e.classList.toggle("active")});const i=e.getAttribute("data-click");i&&e.addEventListener("click",a=>{var r;if(e.classList.contains("refresh-extra-networks")){const d=((r=e.closest(".layout"))==null?void 0:r.id).split("layout_")[1],p=document.querySelector(`#${d}_pane > div`);[document.querySelector(`#${d}_dirs`),document.querySelector(`#${d}_tree`),document.querySelector(`#${d}_cards`)].forEach(v=>{v&&p.append(v)}),document.querySelector(`#${d}_extra_refresh_internal`).dispatchEvent(new Event("click")),setTimeout(()=>{const v=document.querySelector(`#${d}_aside_split`);v.querySelectorAll(".portal").forEach((E,T,b)=>{ee(E,v,0,T,b.length)}),Qe(v)},1e3)}setTimeout(()=>{document.querySelectorAll(i).forEach(c=>{c.click()})},500)})}))}async function Kt(t){const e=Ut();await Promise.all(Array.from(t.querySelectorAll(".accordion-bar")).map(async o=>{const n=o.parentElement,s=n.closest(".split-container");let i=o;const a=n.getAttribute("iconTrigger");if(a){const r=t.querySelector(a);r&&(i=r,o.classList.add("pointer-events-none"))}if(n.className.indexOf("accordion-vertical")!==-1&&s.className.indexOf("split")!==-1){n.classList.add("expand");const r=s.parentElement.id,c=e[r];s.setAttribute("data-sizes",JSON.stringify(c.getSizes())),i==null||i.addEventListener("click",()=>{if(n.classList.toggle("expand"),s.className.indexOf("v-expand")!==-1)s.classList.remove("v-expand"),c.setSizes(JSON.parse(s.getAttribute("data-sizes")));else{s.classList.add("v-expand");let d=c.getSizes();s.setAttribute("data-sizes",JSON.stringify(d)),console.log(d),d[d.length-1]=0,d[d.length-2]=100;const p=parseFloat(window.getComputedStyle(o,null).getPropertyValue("padding-left"))*2;s.style.minWidth=o.offsetWidth+p+"px",c.setSizes(d)}})}else i==null||i.addEventListener("click",()=>{n.classList.toggle("expand")})}))}async function et(t){var o;await Pt(t),await Bt(t),await Kt(t),await Gt(t),await Jt(t),document.querySelector("#container-console-log").append(Xe()),(o=document.querySelector("#logger_screen"))==null||o.remove()}async function Zt(t=ke,e=1){return await(await fetch(`https://api.github.com/repos/${t}/contributors?per_page=100&page=${e}`,{method:"GET",headers:{"Content-Type":"application/json"}})).json()}async function tt(t=ke,e=1,o=[]){const n=await Zt(t,e);return o=o.concat(n),n.length===100?tt(t,e+1,o):o}function Yt(){const t=document.querySelector("#contributors"),e=document.querySelector("#contributors_tabitem"),o=document.createElement("div");o.id="contributors_grid",o.innerHTML=`Kindly allow us a moment to retrieve the contributors. - We're grateful for the many individuals who have generously put their time and effort to make this possible.`,e.append(o),t.addEventListener("click",n=>{t.getAttribute("data-visited")||(t.setAttribute("data-visited","true"),tt().then(i=>{o.innerHTML="";for(let a=0;a + [rel="stylesheet"][href*="index"]`).forEach(s=>{s.remove(),console.log("Remove stylesheet",s.getAttribute("href"))}),document.body.querySelectorAll(` + [rel="stylesheet"][href*="file=style.css"]`).forEach(s=>{s.remove(),console.log("Remove stylesheet",s.getAttribute("href"))});const e=document.querySelectorAll('.styler, [class*="svelte"]:not(input)'),t=e.length;let n=0;e.forEach(s=>{s.style.display!=="none"&&s.style.display!=="block"&&(s.removeAttribute("style"),n++),[...s.classList].filter(i=>i.match(/^svelte.*/)).forEach(i=>s.classList.remove(i))}),console.log("Remove inline styles from DOM","Total Selectors:",t,"Removed Selectors:",n)}async function oi(){var e,t,n,s,i,o,a,l;if(!zt){const r=Ye();console.log("Remove Extra Networks Instances"),(e=r.querySelector("#img2img_textual_inversion_cards_html"))==null||e.remove(),(t=r.querySelector("#img2img_checkpoints_cards_html"))==null||t.remove(),(n=r.querySelector("#img2img_hypernetworks_cards_html"))==null||n.remove(),(s=r.querySelector("#img2img_lora_cards_html"))==null||s.remove(),(i=r.querySelector("#txt2img_textual_inversion_cards_html"))==null||i.remove(),(o=r.querySelector("#txt2img_checkpoints_cards_html"))==null||o.remove(),(a=r.querySelector("#txt2img_hypernetworks_cards_html"))==null||a.remove(),(l=r.querySelector("#txt2img_lora_cards_html"))==null||l.remove(),console.log("Remove element #img2img_textual_inversion_cards_html"),console.log("Remove element #img2img_checkpoints_cards_html"),console.log("Remove element #img2img_hypernetworks_cards_html"),console.log("Remove element #img2img_lora_cards_html"),console.log("Remove element #txt2img_textual_inversion_cards_html"),console.log("Remove element #txt2img_checkpoints_cards_html"),console.log("Remove element #txt2img_hypernetworks_cards_html"),console.log("Remove element #txt2img_lora_cards_html")}}async function ai(e=mn,t=1){return await(await fetch(`https://api.github.com/repos/${e}/contributors?per_page=100&page=${t}`,{method:"GET",headers:{"Content-Type":"application/json"}})).json()}async function is(e=mn,t=1,n=[]){const s=await ai(e,t);return n=n.concat(s),s.length===100?is(e,t+1,n):n}function ri(){const e=document.querySelector("#contributors"),t=document.querySelector("#contributors_tabitem"),n=document.createElement("div");n.className="flexbox col padding lrp-32",n.innerHTML=`Kindly allow us a moment to retrieve the contributors. + We're grateful for the many individuals who have generously put their time and effort to make this possible.`,t.append(n),e.addEventListener("click",s=>{e.getAttribute("data-visited")||(e.setAttribute("data-visited","true"),is().then(o=>{n.innerHTML="";const a=document.createElement("div");a.id="contributors_grid";for(let l=0;l
${r}
- `}}))})}const De=()=>window.innerWidth<=768,ae=t=>{var o;const e=G();e.querySelectorAll("[mobile]").forEach(n=>{if(t){if(n.childElementCount===0){const s=n.getAttribute("mobile");if(s){const i=e.querySelector(s);i&&(n.setAttribute("mobile-restore",`#${i.parentElement.id}`),n.append(i))}}}else if(n.childElementCount>0){const s=n.getAttribute("mobile-restore");if(s){const i=e.querySelector(s);i&&i.append(n.firstElementChild)}}}),t?((o=e.querySelector(".accordion-vertical.expand #mask-icon-acc-arrow"))==null||o.click(),e.classList.add("default-mobile")):e.classList.remove("default-mobile")},Qt=()=>{const t=G(),e=window.opts.uiux_default_layout;t.classList.add(`default-${e.toLowerCase()}`),e==="Auto"?(window.addEventListener("resize",o=>{const n=De();ae(n)}),ae(De())):ae(e==="Mobile")};function en(){const t=G(),e=j();if(!t||!e){console.warn(`Required elements not found: ${t?"":"anapnoeApp"} ${e?"":"gradioApp"}`);return}e.querySelector("#setting_uiux_mobile_scale input[type=range]").classList.add("hidden");const n=e.querySelector("#setting_uiux_mobile_scale input[type=number]");function s(f){document.head.querySelector('meta[name="viewport"]').setAttribute("content",`width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=${f}`)}n.addEventListener("change",f=>{n.value=f.target.value,Ee(n),s(f.target.value)}),s(window.opts.uiux_mobile_scale);function i(f){e.querySelectorAll('[id$="2img_width"] input,[id$="2img_height"] input').forEach(_=>{_.max=f})}e.querySelector("#setting_uiux_max_resolution_output").addEventListener("input",f=>{let _=parseInt(f.target.value);_=Math.min(Math.max(_,512),16384),i(_)}),i(window.opts.uiux_max_resolution_output);function a(f){f.forEach(_=>{const x=_.step/(_.max-_.min)*100,w=`max(3px, calc(${x}% - 1px))`,k=`max(4px, calc(${x}% + 0px))`;_.style.setProperty("--ae-slider-bg-overlay",`repeating-linear-gradient(90deg, transparent, transparent ${w}, var(--ae-input-border-color) ${w}, var(--ae-input-border-color) ${k})`)})}function r(f,_){const w=e.querySelectorAll("input[type='range']");f?a(w):_&&w.forEach(k=>{k.style.setProperty("--ae-slider-bg-overlay","transparent")})}e.querySelector("#setting_uiux_show_input_range_ticks input").addEventListener("click",f=>{r(f.target.checked,!0)}),r(window.opts.uiux_show_input_range_ticks);function d(){const f=Array.from(e.querySelectorAll("#setting_uiux_ignore_overrides input:checked")).map(x=>x.nextElementSibling.innerHTML);e.querySelectorAll("[id$='2img_override_settings'] .token").forEach(x=>{var O;const[w,k]=x.querySelector("span").textContent.split(":").map(P=>P.trim());f.includes(w)&&(e.querySelector("[id$='2img_override_settings']").classList.add("show"),(O=x.querySelector(".token-remove"))==null||O.click())})}e.querySelector("#setting_uiux_ignore_overrides").addEventListener("click",()=>{setTimeout(d,100)});const p=new MutationObserver(f=>{f.forEach(_=>{_.type==="attributes"&&_.attributeName==="class"&&setTimeout(d,1e3)})}),y=new MutationObserver(f=>{f.forEach(_=>{_.addedNodes.length&&setTimeout(d,1e3)})});document.querySelectorAll("#txt2img_override_settings .wrap-inner, #img2img_override_settings .wrap_inner").forEach(f=>y.observe(f,{childList:!0})),document.querySelectorAll("#txt2img_nav, #img2img_nav").forEach(f=>p.observe(f,{attributes:!0}));function E(f,_){const x=e.querySelector(`${f} input`);if(x){const w=f.split("#setting_")[1],k=window.opts[w];t.classList.toggle(_,k),localStorage.setItem(w,k),x.addEventListener("click",O=>{localStorage.setItem(w,O.target.checked),t.classList.toggle(_,O.target.checked),w==="uiux_enable_console_log"&&Et(O.target.checked)})}}const T=[{key:"#setting_uiux_no_slider_layout",className:"no-slider-layout"},{key:"#setting_uiux_show_labels_aside",className:"aside-labels"},{key:"#setting_uiux_show_labels_main",className:"main-labels"},{key:"#setting_uiux_show_labels_tabs",className:"tab-labels"},{key:"#setting_uiux_hide_extra_info",className:"no-extra-info"},{key:"#setting_uiux_disable_transitions",className:"notransition"},{key:"#setting_uiux_enable_console_log",className:"debug-log"}];for(const{key:f,className:_}of T)E(f,_);function b(f,_){t.style.setProperty(f,_)}const A=["#setting_uiux_exnet_fit_size","#setting_uiux_exnet_aspect_ratio_x","#setting_uiux_exnet_aspect_ratio_y","#setting_uiux_exnet_header_size","#setting_uiux_min_wrap_size","#setting_uiux_exnet_image_tint"];for(const f of A){const _=document.querySelector(`${f} input[type=number]`),x=document.querySelector(`${f} input[type=range]`);if(x&&x.classList.add("hidden"),_){const w=f.split("#setting_")[1],k=`--ae-${w}`,O=window.opts[w];b(k,O),_.addEventListener("change",P=>{Ee(_),b(k,P.target.value)})}}}function tn(){["#txt2img","#img2img","#deforum"].forEach(e=>{var n;const o=document.querySelector(`${e}_generate`);if(o){(n=document.querySelector(`${e}_nav`))==null||n.classList.remove("hidden");const s=document.querySelector(`${e}_interrupt`),i=s.closest(".portal"),a=o.closest(".ae-button"),r=document.querySelector(`${e}_skip`).closest(".portal"),c=document.querySelector(`${e}_loop`);s.addEventListener("click",()=>{c==null||c.classList.add("stop")}),new MutationObserver(p=>{p.forEach(y=>{s.style.display==="none"?(document.querySelector(".progressDiv .progress")&&(i.classList.remove("disable"),setTimeout(()=>s.click(),500)),c?c.className.indexOf("stop")!==-1||c.className.indexOf("active")===-1?(c.classList.remove("stop"),i.classList.add("disable"),r==null||r.classList.add("disable"),a.classList.remove("active")):c.className.indexOf("active")!==-1&&o.click():(i.classList.add("disable"),a.classList.remove("active"))):(i.classList.remove("disable"),r==null||r.classList.remove("disable"),a.classList.add("active"))})}).observe(s,{attributes:!0,attributeFilter:["style"]})}})}function nn(){const t=document.querySelector("#setting_sd_model_checkpoint .wrap .secondary-wrap input")||document.querySelector(".gradio-dropdown.model_selection .wrap .secondary-wrap input"),e=document.querySelector("#setting_sd_model_checkpoint .wrap")||document.querySelector(".gradio-dropdown.model_selection .wrap"),o=document.querySelector("#txt2img_checkpoints_main_footer .model-selected");document.querySelector("#txt2img_checkpoints_main_footer .model-preloader").append(e);let s;const i=r=>{if(s!==r){console.log("Checkpoint:",r);const c=document.querySelector("#txt2img_checkpoints_cards .card.selected");c==null||c.classList.remove("selected");const d=document.querySelector(`#txt2img_checkpoints_cards .card[data-apply*="${r}"]`)||document.querySelector(`#txt2img_checkpoints_cards .card[onclick*="${r}"]`);d==null||d.classList.add("selected"),o.textContent=r,console.log("Checkpoint:",r),s=r}};i(t.value);const a=new MutationObserver(function(r){r.forEach(function(c){setTimeout(()=>i(t.value),1e3)})});a.observe(t,{attributes:!0}),a.observe(e,{childList:!0,subtree:!0})}function je(t){let e=t.startsWith("#")?t.slice(1):t,o=1;if(e.length===8?(o=parseInt(e.slice(6,8),16)/255,e=e.slice(0,6)):e.length===3&&(e=e.split("").map(s=>s+s).join("")),e.length!==6)throw new Error("Invalid HEX color.");const n=e.match(/.{2}/g).map(s=>parseInt(s,16));return n.push(o),n}function de(t){const e=t[0]/255,o=t[1]/255,n=t[2]/255,s=Math.max(e,o,n),i=Math.min(e,o,n),a=s-i,r=s+i,c=i===s?0:e===s?(60*(o-n)/a+360)%360:o===s?60*(n-e)/a+120:60*(e-o)/a+240,d=.5*r,p=d===0?0:d===1?1:d<=.5?a/r:a/(2-r),y=t.length===4?t[3]:1;return[Math.round(c),Math.round(p*100),Math.round(d*100),y]}function Le(t,e,o,n=1){o/=100;const s=(n*255|256).toString(16).slice(1),i=a=>{const r=(a+t/30)%12,c=o-e*Math.min(o,1-o)/100*Math.max(Math.min(r-3,9-r,1),-1);return Math.round(255*Math.max(0,Math.min(c,1))).toString(16).padStart(2,"0")};return`#${i(0)}${i(8)}${i(4)}${s}`}function He(t){t.startsWith("#")&&(t=t.slice(1));let e=1;if(t.length===8&&(e=parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)),t.length===3&&(t=t.split("").map(i=>i+i).join("")),t.length!==6)throw new Error("Invalid HEX color.");const o=(255-parseInt(t.slice(0,2),16)).toString(16),n=(255-parseInt(t.slice(2,4),16)).toString(16),s=(255-parseInt(t.slice(4,6),16)).toString(16);return`#${le(o)}${le(n)}${le(s)}${le(Math.round(e*255).toString(16))}`}function le(t,e=2){return(new Array(e).join("0")+t).slice(-e)}const z={};let Q,X=[0,0,0,0];const pe=t=>t.match(/[\d.]+/g).map(Number);function on(t,e,o,n){let s;if(o.includes("#")){let p=o.replace(/\s+/g,"");Q&&(p=He(p),z[e]=p),s=de(je(p))}else if((o.includes("hsl")||o.includes("rgb"))&&(s=o.includes("rgb")?de(pe(o)):pe(o),Q)){const p=Le(s[0],s[1],s[2],s[3]);z[e]=He(p),s=de(je(z[e]))}const i=((Number(s[0])||0)+(Number(n[0])||0))%360,a=Math.min(Math.max((Number(s[1])||0)+(Number(n[1])||0),0),100),r=Math.min(Math.max((Number(s[2])||0)+(Number(n[2])||0),0),100),c=Math.min(Math.max((Number(s[3])||1)+(Number(n[3])||0),0),1),d=Le(i,a,r,c).slice(0,-2);return t.value=d,`hsla(${i}, ${a}%, ${r}%, ${c})`}function xe(t){let e="";for(const s in z){const i=z[s];if(s!=""&&i&&i.length>0){const a=document.body.querySelector(`#${s} input`)||document.body.querySelector(`#${s} textarea`);if(a)if((a.type||"text")==="color"){const c=on(a,s,i,t);e+=`${s}:${c};`}else e+=`${s}:${z[s]};`}}Q=!1;const o=document.body.querySelector("#preview-styles");o.innerHTML=`:root {${e}}`,o.innerHTML+="@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }";const n=document.body.querySelector("#theme_vars textarea");n.value=e,window.updateInput(n)}function we(t){let e="";for(let i=0;ip.trim()),c=a.replace(/\s+/g,"");z[c]=r,e+=`${c}:${r};`,document.body.querySelectorAll(`#${c} input, #${c} textarea`).forEach(p=>{const y=p.type||"text";if(y==="color")if(r.includes("hsl")||r.includes("rgb")){let h;r.includes("rgb")?h=de(pe(r)):h=pe(r),p.value=Le(h[0],h[1],h[2],h[3]).slice(0,-2)}else p.value=r;else y==="number"||y==="range"?p.value=parseFloat(r)||0:(y==="textarea"||y==="text")&&(p.value=r)})}const o=document.body.querySelector("#preview-styles");if(o)o.innerHTML=`:root {${e}}`,o.innerHTML+="@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }";else{const i=document.createElement("style");i.id="preview-styles",i.innerHTML=`:root {${e}}`,i.innerHTML+="@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }",document.body.appendChild(i)}const n=document.body.querySelector("#theme_vars textarea"),s=document.body.querySelector("#theme_css textarea");n.value=e,window.updateInput(n),window.updateInput(s)}function sn(t){const e=t.split("/*BREAKPOINT_CSS_CONTENT*/");let o=e[0].split("}")[0].split("{")[1].replace(/\n|\r/g,"");o=o.replace(/;+/,";").trim();const n=o.split(";"),s=document.body.querySelector("#theme_vars textarea"),i=document.body.querySelector("#theme_css textarea");s.value=o,window.updateInput(s);const a=e[1]!==void 0?e[1]:"";i.value=`/*BREAKPOINT_CSS_CONTENT*/${a}/*BREAKPOINT_CSS_CONTENT*/`,we(n);const r=document.body.querySelector("#preview-styles");if(!r){const b=document.createElement("style");b.id="preview-styles",b.innerHTML=t,document.body.appendChild(b)}let c;function d(b){let A=b.value,f=b.parentElement,_=b.type||"text";_==="range"||_==="number"?(f=b.closest(".gradio-slider")||b.closest(".gradio-number"),A+=f.id.indexOf("angle")!==-1?"deg":f.id.indexOf("slider-height")===-1?"px":"",z[f.id]=A):_==="color"?(f=b.closest(".gradio-colorpicker"),z[f.id]=A):_==="textarea"?(f=b.closest(".gradio-textbox"),A.length>0?z[f.id]=A:delete z[f.id]):_==="text"&&(f=b.closest(".gradio-dropdown"),f&&(z[f.id]=A)),c!=null&&clearInterval(c),c=setTimeout(()=>{let x=Object.entries(z).map(([w,k])=>`${w}:${k};`).join("");s.value=x,r.innerHTML=`:root {${x}}@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }`,window.updateInput(s),xe(X)},1e3)}document.body.querySelectorAll("#ui_theme_settings input, #ui_theme_settings textarea").forEach(b=>{b.addEventListener("input",A=>{d(A.currentTarget)})});const p=new MutationObserver(b=>{b.forEach(A=>{A.removedNodes.forEach(f=>{f.nodeType===1&&f.matches("ul")&&d(A.target.querySelector(".secondary-wrap input"))})})});document.body.querySelectorAll("#ui_theme_settings .gradio-dropdown").forEach(b=>{p.observe(b,{childList:!0,subtree:!0})}),document.getElementById("theme_reset_btn").addEventListener("click",b=>{b.preventDefault(),document.body.querySelectorAll("#ui_theme_hsv input").forEach(A=>{A.value=0}),X=[0,0,0],we(n)});let h;function v(){if(o!==s.value){clearInterval(h),o=s.value.replace(/\n|\r/g,""),o=o.split(":root{")[0],s.value=o;const b=o.split(";");we(b)}}document.body.querySelector("#themes_drop_down input").addEventListener("click",b=>{h!==null&&clearInterval(h),s.value=o,h=setInterval(v,500)}),document.body.querySelectorAll("#theme_hue input, #theme_sat input, #theme_brt input").forEach((b,A)=>{b.addEventListener("change",f=>{f.preventDefault(),X[Math.floor(A/2)]=f.currentTarget.value,xe(X)})}),document.getElementById("theme_invert_btn").addEventListener("click",b=>{b.preventDefault(),Q=!Q,xe(X)})}function Fe(t){var n;const o=(n=Array.from(t.sheet.cssRules).filter(s=>s instanceof CSSStyleRule&&s.selectorText===":root")[0])==null?void 0:n.cssText;o&&sn(o)}function rn(){const t=document.querySelector('[rel="stylesheet"][href*="user"]');if(j().querySelector('[id^="tab_ui_theme"]')&&t){Fe(t);return}const o=new MutationObserver(()=>{const n=document.querySelector('[rel="stylesheet"][href*="user"]');if(j().querySelector('[id^="tab_ui_theme"]'))if(n)o.disconnect(),setTimeout(()=>{Fe(n)},500);else{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.href="./file=user.css",document.head.appendChild(i)}});o.observe(j(),{childList:!0,subtree:!0})}function cn(t){const e=document.querySelector("#logger_screen");e&&(document.querySelector("#container-console-log").append(getLoggerUiUx()),e.remove()),t.querySelectorAll(".extra-network-cards, .extra-network-tree").forEach(n=>{Qe(n)}),console.log("Finishing optimizations for Extra Networks"),Vt(),tn(),en(),Yt(),Qt(),nn(),document.querySelectorAll("#txt2img_styles_edit_button, #img2img_styles_edit_button").forEach(n=>{n.addEventListener("click",function(s){window.popup_trigger.click()})});function o(n){Pe.FOCUS_PROMPT=n.includes("txt2img")?"txt2img":"img2img"}document.querySelectorAll("#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea").forEach(n=>{n.addEventListener("focus",s=>{const i=s.target.closest(".gradio-textbox").id;o(i)})}),document.querySelectorAll("#about_tabitem img").forEach(n=>{const s=n.getAttribute("data-src");s&&(n.src=s.replace("file=extensions/sd-webui-ux/assets/",`${fe}`))}),window.UIUX=Pe,me.setItem("UiUxComplete","true"),window.opts.uiux_enable_theme_editor&&rn(),setTimeout(()=>{var n;(n=document.querySelector("#btn_checkpoints"))==null||n.click()},500)}async function an(){const t=G(),e=j();await pt(),e.insertAdjacentElement("afterbegin",t);const o=Rt((n,s)=>{n==="UiUxReady"&&s==="true"&&(cn(t),o())},"UiUxReady");(async()=>await et(t))(),Tt(),setTimeout(()=>{ft("#infinite_image_browsing_container_wrapper iframe",["user.css","uiux-iibrowser.css"])},3e3)}async function ln(){try{At(),console.log("Starting DOM Optimizations"),Xt(),Wt(),console.log("Finishing DOM Optimizations"),gt(xt),D.gradio_major>3&&ht("style.css","style-gradio-4.css",document.body),(async()=>(await qt(),await an()))()}catch(t){console.error("Error in run sequence:",t)}}function un(){if(localStorage.setItem("UiUxReady","false"),localStorage.setItem("UiUxComplete","false"),!document.getElementById("logger_screen")){const o=document.createElement("div");o.id="logger_screen",o.style="position: fixed; inset: 0; background-color: black; z-index: 99999; display: flex; flex-direction: column; overflow:auto;";const n=document.createElement("div");n.id="loggerUiUx",o.append(n),document.body.append(o)}const t=new MutationObserver(async()=>{if(Ve()&&window.opts&&Object.keys(window.opts).length){t.disconnect();try{await ln()}catch(n){console.error("Error running the function:",n)}}}),e=j();e?t.observe(e,{childList:!0,subtree:!0}):console.error("getGradioApp() did not return a valid target for observation")}un(); + `}n.append(a)}))})}async function os(e,t){try{const n=await fetch(e);if(!n.ok)throw new Error(`HTTP error! Status: ${n.status}`);const s=await n.json();t(s)}catch(n){console.error("Failed to fetch metadata:",n)}}async function qe(e,t,n){try{const s=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok)throw new Error(`HTTP error! Status: ${s.status}`);const i=await s.json();n(i)}catch(s){console.error("Failed to fetch data:",s)}}async function li(e=1){return await(await fetch(`https://app.buymeacoffee.com/api/creators/slug/dayanbayah/coffees?per_page=20&page=${e}`,{method:"GET",headers:{"Content-Type":"application/json"}})).json()}async function as(e=1,t=[]){const n=await li(e);return t=t.concat(n.data),n.data.length>0?as(e+1,t):t}function ci(e){const n=Date.now()-2592e6,s=new Map,i=(r,u)=>{const d=new Date(r),m=new Date(u);let g=(m.getFullYear()-d.getFullYear())*12;g+=m.getMonth()-d.getMonth();const L=d.getDate();return m.getDate(){const u=r.fk_user_id,d=new Date(r.support_created_on),m=new Date(r.support_updated_on);if(!s.has(u))s.set(u,{...r,periods:[{startDate:d,endDate:m}],firstCreated:d,lastUpdated:m});else{const g=s.get(u);g.periods.push({startDate:d,endDate:m}),dg.lastUpdated&&(g.lastUpdated=m)}});for(const r of s.values()){r.periods.sort((d,m)=>d.startDate-m.startDate);const u=[r.periods[0]];for(let d=1;dm.endDate?g.endDate:m.endDate:u.push(g)}r.num_months_support=u.reduce((d,m)=>d+i(m.startDate,m.endDate),0),r.support_created_on=r.firstCreated,r.support_updated_on=r.lastUpdated}const o=[],a=[];for(const r of s.values()){const u={...r,support_created_on:r.support_created_on.toISOString(),support_updated_on:r.support_updated_on.toISOString(),num_months_support:r.num_months_support};r.lastUpdated.getTime()>=n?o.push(u):a.push(u)}o.sort((r,u)=>u.num_months_support-r.num_months_support),a.sort((r,u)=>u.num_months_support-r.num_months_support);const l=({periods:r,firstCreated:u,lastUpdated:d,...m})=>m;return{currentMembers:o.map(l),pastMembers:a.map(l)}}function $n(e){const t=e.supporter_name,n=e.profile_picture_url;return` + +
+
+ ${t} +
+ + ${e.num_months_support} + +
`}function di(){const e=document.querySelector("#sponsors"),t=document.querySelector("#sponsors_tabitem"),n=document.createElement("div");n.className="flexbox col padding lrp-32",n.innerHTML="Kindly allow us a moment to retrieve our sponsors.",t.append(n),e.addEventListener("click",s=>{e.getAttribute("data-visited")||(e.setAttribute("data-visited","true"),as().then(o=>{n.innerHTML="";const a=document.createElement("div");a.innerHTML=` +

Current Supporters

+

We're deeply grateful to the individuals currently supporting this project through their sponsorships.

+ `,n.append(a);const l=document.createElement("div");l.className="sponsors_grid current";const r=ci(o),u=r.currentMembers;for(let L=0;L

+

Former Supporters

+

We extend our sincere appreciation to all who have generously sponsored this initiative in the past.

+ `,n.append(d);const m=r.pastMembers,g=document.createElement("div");g.className="sponsors_grid",g.innerHTML="";for(let L=0;Lwindow.innerWidth<=768,Nt=e=>{var n;const t=at();t.querySelectorAll("[mobile]").forEach(s=>{if(e){if(s.childElementCount===0){const i=s.getAttribute("mobile");if(i){const o=t.querySelector(i);o&&(s.setAttribute("mobile-restore",`#${o.parentElement.id}`),s.append(o))}}}else if(s.childElementCount>0){const i=s.getAttribute("mobile-restore");if(i){const o=t.querySelector(i);o&&o.append(s.firstElementChild)}}}),e?((n=t.querySelector(".accordion-vertical.expand #mask-icon-acc-arrow"))==null||n.click(),t.classList.add("default-mobile")):t.classList.remove("default-mobile")},ui=()=>{const e=at(),t=window.opts.uiux_default_layout;e.classList.add(`default-${t.toLowerCase()}`),t==="Auto"?(window.addEventListener("resize",n=>{Nt(Rn())}),Nt(Rn())):Nt(t==="Mobile")};function mi(){const e=at(),t=Ye();if(!e||!t){console.warn(`Required elements not found: ${e?"":"anapnoeApp"} ${t?"":"gradioApp"}`);return}t.querySelector("#setting_uiux_mobile_scale input[type=range]").classList.add("hidden");const s=t.querySelector("#setting_uiux_mobile_scale input[type=number]");function i(f){document.head.querySelector('meta[name="viewport"]').setAttribute("content",`width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=${f}`)}s.addEventListener("change",f=>{s.value=f.target.value,He(s),i(f.target.value)}),i(window.opts.uiux_mobile_scale);function o(f){t.querySelectorAll('[id$="2img_width"] input,[id$="2img_height"] input').forEach(y=>{y.max=f})}t.querySelector("#setting_uiux_max_resolution_output").addEventListener("input",f=>{let y=parseInt(f.target.value);y=Math.min(Math.max(y,512),16384),o(y)}),o(window.opts.uiux_max_resolution_output);function a(f){f.forEach(y=>{const h=y.step/(y.max-y.min)*100,v=`max(3px, calc(${h}% - 1px))`,O=`max(4px, calc(${h}% + 0px))`;y.style.setProperty("--ae-slider-bg-overlay",`repeating-linear-gradient(90deg, transparent, transparent ${v}, var(--ae-input-border-color) ${v}, var(--ae-input-border-color) ${O})`)})}function l(f,y){const v=t.querySelectorAll("input[type='range']");f?a(v):y&&v.forEach(O=>{O.style.setProperty("--ae-slider-bg-overlay","transparent")})}t.querySelector("#setting_uiux_show_input_range_ticks input").addEventListener("click",f=>{l(f.target.checked,!0)}),l(window.opts.uiux_show_input_range_ticks);function u(){const f=Array.from(t.querySelectorAll("#setting_uiux_ignore_overrides input:checked")).map(h=>h.nextElementSibling.innerHTML);t.querySelectorAll("[id$='2img_override_settings'] .token").forEach(h=>{var W;const[v,O]=h.querySelector("span").textContent.split(":").map(ne=>ne.trim());f.includes(v)&&(t.querySelector("[id$='2img_override_settings']").classList.add("show"),(W=h.querySelector(".token-remove"))==null||W.click())})}t.querySelector("#setting_uiux_ignore_overrides").addEventListener("click",()=>{setTimeout(u,100)});const d=new MutationObserver(f=>{f.forEach(y=>{y.type==="attributes"&&y.attributeName==="class"&&setTimeout(u,1e3)})}),m=new MutationObserver(f=>{f.forEach(y=>{y.addedNodes.length&&setTimeout(u,1e3)})});document.querySelectorAll("#txt2img_override_settings .wrap-inner, #img2img_override_settings .wrap_inner").forEach(f=>m.observe(f,{childList:!0})),document.querySelectorAll("#txt2img_nav, #img2img_nav").forEach(f=>d.observe(f,{attributes:!0}));function x(f,y){const h=t.querySelector(`${f} input`);if(h){const v=f.split("#setting_")[1],O=window.opts[v];e.classList.toggle(y,O),localStorage.setItem(v,O),h.addEventListener("click",W=>{localStorage.setItem(v,W.target.checked),e.classList.toggle(y,W.target.checked),v==="uiux_enable_console_log"&&Ms(W.target.checked)})}}const j=[{key:"#setting_uiux_no_slider_layout",className:"no-slider-layout"},{key:"#setting_uiux_show_labels_aside",className:"aside-labels"},{key:"#setting_uiux_show_labels_main",className:"main-labels"},{key:"#setting_uiux_show_labels_tabs",className:"tab-labels"},{key:"#setting_uiux_hide_extra_info",className:"no-extra-info"},{key:"#setting_uiux_disable_transitions",className:"notransition"},{key:"#setting_uiux_enable_console_log",className:"debug-log"}];for(const{key:f,className:y}of j)x(f,y);function I(f,y){e.style.setProperty(f,y)}const M=["#setting_uiux_exnet_fit_size","#setting_uiux_exnet_aspect_ratio_x","#setting_uiux_exnet_aspect_ratio_y","#setting_uiux_exnet_header_size","#setting_uiux_min_wrap_size","#setting_uiux_exnet_image_tint"];for(const f of M){const y=document.querySelector(`${f} input[type=number]`),h=document.querySelector(`${f} input[type=range]`);if(h&&h.classList.add("hidden"),y){const v=f.split("#setting_")[1],O=`--ae-${v}`,W=window.opts[v];I(O,W),y.addEventListener("change",ne=>{He(y),I(O,ne.target.value)})}}}function pi(){["#txt2img","#img2img","#deforum"].forEach(t=>{var s;const n=document.querySelector(`${t}_generate`);if(n){(s=document.querySelector(`${t}_nav`))==null||s.classList.remove("hidden");const i=document.querySelector(`${t}_interrupt`),o=i.closest(".portal"),a=n.closest(".ae-button"),l=document.querySelector(`${t}_skip`).closest(".portal"),r=document.querySelector(`${t}_loop`);i.addEventListener("click",()=>{r==null||r.classList.add("stop")}),new MutationObserver(d=>{d.forEach(m=>{i.style.display==="none"?(document.querySelector(".progressDiv .progress")&&(o.classList.remove("disable"),setTimeout(()=>i.click(),500)),r?r.className.indexOf("stop")!==-1||r.className.indexOf("active")===-1?(r.classList.remove("stop"),o.classList.add("disable"),l==null||l.classList.add("disable"),a.classList.remove("active")):r.className.indexOf("active")!==-1&&n.click():(o.classList.add("disable"),a.classList.remove("active"))):(o.classList.remove("disable"),l==null||l.classList.remove("disable"),a.classList.add("active"))})}).observe(i,{attributes:!0,attributeFilter:["style"]})}})}function fi(e){const t=document.querySelector("#setting_sd_model_checkpoint .wrap .secondary-wrap input")||document.querySelector(".gradio-dropdown.model_selection .wrap .secondary-wrap input"),n=document.querySelector("#setting_sd_model_checkpoint .wrap")||document.querySelector(".gradio-dropdown.model_selection .wrap"),s=document.querySelector("#checkpoints_main_footer_db .model-selected");document.querySelector("#checkpoints_main_footer_db .model-preloader").append(n);let o="",a=null,l=null;const r=d=>{if(o!==d){const m=d.split(".").slice(0,-1).join(".");e.selected=new Set([m]),e.forceRenderItems(),typeof l=="function"&&l(e.selected),s.textContent=d,console.log("Checkpoint:",d,m),o=d}};return r(t.value),(()=>{a||(a=new MutationObserver(()=>{setTimeout(()=>r(t.value),1e3)}),a.observe(t,{attributes:!0}),a.observe(n,{childList:!0,subtree:!0}))})(),{setTreeViewCallback(d){l=d,r(o)},destroy(){a&&a.disconnect()}}}function vt(e,t,n,s=null){return Object.keys(e).forEach(i=>{const o=document.querySelector(`${i}`);if(o){const a=e[i],l=o.tagName==="SELECT"&&o.multiple||o.tagName==="SELECT"||o.type==="checkbox"||o.type==="radio"||o.type!=="range"&&o.type!=="color"&&o.type!=="text"?"change":"input",r=()=>{let u;o.tagName==="SELECT"&&o.multiple?(u=Array.from(o.selectedOptions).map(m=>m.value),t[a]=u):o.type==="checkbox"||o.type==="radio"?u=o.checked:u=o.value;const d=s?s({[a]:u}):{[a]:u};n.updateParamsAndFetch(d,1e3)};o.addEventListener(l,r)}else console.warn(`Input element with id ${i} not found.`)}),t}function Dn(e){let t=e.startsWith("#")?e.slice(1):e,n=1;if(t.length===8?(n=parseInt(t.slice(6,8),16)/255,t=t.slice(0,6)):t.length===3&&(t=t.split("").map(i=>i+i).join("")),t.length!==6)throw new Error("Invalid HEX color.");const s=t.match(/.{2}/g).map(i=>parseInt(i,16));return s.push(n),s}function Mt(e){const t=e[0]/255,n=e[1]/255,s=e[2]/255,i=Math.max(t,n,s),o=Math.min(t,n,s),a=i-o,l=i+o,r=o===i?0:t===i?(60*(n-s)/a+360)%360:n===i?60*(s-t)/a+120:60*(t-n)/a+240,u=.5*l,d=u===0?0:u===1?1:u<=.5?a/l:a/(2-l),m=e.length===4?e[3]:1;return[Math.round(r),Math.round(d*100),Math.round(u*100),m]}function cn(e,t,n,s=1){n/=100;const i=(s*255|256).toString(16).slice(1),o=a=>{const l=(a+e/30)%12,r=n-t*Math.min(n,1-n)/100*Math.max(Math.min(l-3,9-l,1),-1);return Math.round(255*Math.max(0,Math.min(r,1))).toString(16).padStart(2,"0")};return`#${o(0)}${o(8)}${o(4)}${i}`}function zn(e){e.startsWith("#")&&(e=e.slice(1));let t=1;if(e.length===8&&(t=parseInt(e.slice(6,8),16)/255,e=e.slice(0,6)),e.length===3&&(e=e.split("").map(o=>o+o).join("")),e.length!==6)throw new Error("Invalid HEX color.");const n=(255-parseInt(e.slice(0,2),16)).toString(16),s=(255-parseInt(e.slice(2,4),16)).toString(16),i=(255-parseInt(e.slice(4,6),16)).toString(16);return`#${Pt(n)}${Pt(s)}${Pt(i)}${Pt(Math.round(t*255).toString(16))}`}function Pt(e,t=2){return(new Array(t).join("0")+e).slice(-t)}const Ae={};let yt,dt=[0,0,0,0];const Dt=e=>e.match(/[\d.]+/g).map(Number);function hi(e,t,n,s){let i;if(n.includes("#")){let d=n.replace(/\s+/g,"");yt&&(d=zn(d),Ae[t]=d),i=Mt(Dn(d))}else if((n.includes("hsl")||n.includes("rgb"))&&(i=n.includes("rgb")?Mt(Dt(n)):Dt(n),yt)){const d=cn(i[0],i[1],i[2],i[3]);Ae[t]=zn(d),i=Mt(Dn(Ae[t]))}const o=((Number(i[0])||0)+(Number(s[0])||0))%360,a=Math.min(Math.max((Number(i[1])||0)+(Number(s[1])||0),0),100),l=Math.min(Math.max((Number(i[2])||0)+(Number(s[2])||0),0),100),r=Math.min(Math.max((Number(i[3])||1)+(Number(s[3])||0),0),1),u=cn(o,a,l,r).slice(0,-2);return e.value=u,`hsla(${o}, ${a}%, ${l}%, ${r})`}function Jt(e){let t="";for(const i in Ae){const o=Ae[i];if(i!=""&&o&&o.length>0){const a=document.body.querySelector(`#${i} input`)||document.body.querySelector(`#${i} textarea`);if(a)if((a.type||"text")==="color"){const r=hi(a,i,o,e);t+=`${i}:${r};`}else t+=`${i}:${Ae[i]};`}}yt=!1;const n=document.body.querySelector("#preview-styles");n.innerHTML=`:root {${t}}`,n.innerHTML+="@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }";const s=document.body.querySelector("#theme_vars textarea");s.value=t,window.updateInput(s)}function Qt(e){let t="";for(let o=0;od.trim()),r=a.replace(/\s+/g,"");Ae[r]=l,t+=`${r}:${l};`,document.body.querySelectorAll(`#${r} input, #${r} textarea`).forEach(d=>{const m=d.type||"text";if(m==="color")if(l.includes("hsl")||l.includes("rgb")){let g;l.includes("rgb")?g=Mt(Dt(l)):g=Dt(l),d.value=cn(g[0],g[1],g[2],g[3]).slice(0,-2)}else d.value=l;else m==="number"||m==="range"?d.value=parseFloat(l)||0:(m==="textarea"||m==="text")&&(d.value=l)})}const n=document.body.querySelector("#preview-styles");if(n)n.innerHTML=`:root {${t}}`,n.innerHTML+="@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }";else{const o=document.createElement("style");o.id="preview-styles",o.innerHTML=`:root {${t}}`,o.innerHTML+="@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }",document.body.appendChild(o)}const s=document.body.querySelector("#theme_vars textarea"),i=document.body.querySelector("#theme_css textarea");s.value=t,window.updateInput(s),window.updateInput(i)}function gi(e){const t=e.split("/*BREAKPOINT_CSS_CONTENT*/");let n=t[0].split("}")[0].split("{")[1].replace(/\n|\r/g,"");n=n.replace(/;+/,";").trim();const s=n.split(";"),i=document.body.querySelector("#theme_vars textarea"),o=document.body.querySelector("#theme_css textarea");i.value=n,window.updateInput(i);const a=t[1]!==void 0?t[1]:"";o.value=`/*BREAKPOINT_CSS_CONTENT*/${a}/*BREAKPOINT_CSS_CONTENT*/`,Qt(s);const l=document.body.querySelector("#preview-styles");if(!l){const I=document.createElement("style");I.id="preview-styles",I.innerHTML=e,document.body.appendChild(I)}let r;function u(I){let M=I.value,f=I.parentElement,y=I.type||"text";y==="range"||y==="number"?(f=I.closest(".gradio-slider")||I.closest(".gradio-number"),M+=f.id.indexOf("angle")!==-1?"deg":f.id.indexOf("slider-height")===-1?"px":"",Ae[f.id]=M):y==="color"?(f=I.closest(".gradio-colorpicker"),Ae[f.id]=M):y==="textarea"?(f=I.closest(".gradio-textbox"),M.length>0?Ae[f.id]=M:delete Ae[f.id]):y==="text"&&(f=I.closest(".gradio-dropdown"),f&&(Ae[f.id]=M)),r!=null&&clearInterval(r),r=setTimeout(()=>{let h=Object.entries(Ae).map(([v,O])=>`${v}:${O};`).join("");i.value=h,l.innerHTML=`:root {${h}}@media only screen and (max-width: 860px) { :root { --ae-outside-gap-size: var(--ae-mobile-outside-gap-size); --ae-inside-padding-size: var(--ae-mobile-inside-padding-size); } }`,window.updateInput(i),Jt(dt)},1e3)}document.body.querySelectorAll("#ui_theme_settings input, #ui_theme_settings textarea").forEach(I=>{I.addEventListener("input",M=>{u(M.currentTarget)})});const d=new MutationObserver(I=>{I.forEach(M=>{M.removedNodes.forEach(f=>{f.nodeType===1&&f.matches("ul")&&u(M.target.querySelector(".secondary-wrap input"))})})});document.body.querySelectorAll("#ui_theme_settings .gradio-dropdown").forEach(I=>{d.observe(I,{childList:!0,subtree:!0})}),document.getElementById("theme_reset_btn").addEventListener("click",I=>{I.preventDefault(),document.body.querySelectorAll("#ui_theme_hsv input").forEach(M=>{M.value=0}),dt=[0,0,0],Qt(s)});let g;function L(){if(n!==i.value){clearInterval(g),n=i.value.replace(/\n|\r/g,""),n=n.split(":root{")[0],i.value=n;const I=n.split(";");Qt(I)}}document.body.querySelector("#themes_drop_down input").addEventListener("click",I=>{g!==null&&clearInterval(g),i.value=n,g=setInterval(L,500)}),document.body.querySelectorAll("#theme_hue input, #theme_sat input, #theme_brt input").forEach((I,M)=>{I.addEventListener("change",f=>{f.preventDefault(),dt[Math.floor(M/2)]=f.currentTarget.value,Jt(dt)})}),document.getElementById("theme_invert_btn").addEventListener("click",I=>{I.preventDefault(),yt=!yt,Jt(dt)})}function Fn(e){var s;const n=(s=Array.from(e.sheet.cssRules).filter(i=>i instanceof CSSStyleRule&&i.selectorText===":root")[0])==null?void 0:s.cssText;n&&gi(n)}function _i(){const e=document.querySelector('[rel="stylesheet"][href*="user"]');if(Ye().querySelector('[id^="tab_ui_theme"]')&&e){Fn(e);return}const n=new MutationObserver(()=>{const s=document.querySelector('[rel="stylesheet"][href*="user"]');if(Ye().querySelector('[id^="tab_ui_theme"]'))if(s)n.disconnect(),setTimeout(()=>{Fn(s)},500);else{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.href="./file=user.css",document.head.appendChild(o)}});n.observe(Ye(),{childList:!0,subtree:!0})}function Je(e,t,n=10,s={title:"username",url:"url"},i="",o={},a="POST"){this.container=e,this.originalData=t,this.data=t,this.itemsPerPage=n,this.optItemsPerPage=n,this.apiUrl=i,this.method=a,this.params=o,this.limit=o.limit,this.keys=s,this.startIndex=0,this.renderedItems={},this.lastScrollPos=0,this.isFetching=!1,this.useDataFetching=!0,this.isInit=!1,this.resolvedRenderMethod=this.renderItems,this.selected,this.smoothScrolling=!0,this.activePointers={},this.zoom_scale=1,this.scrollDelta=0,this.x=this.y=0,this.renderedRange={start:-1,end:-1},this.pendingRender=null,this.scrollEndTimer=null,this.lastScrollEventTime=0,this.createContainer(),this.createSentinels(),this.createDetail(),this.setLayout("vertical"),this.initialize()}Object.assign(Je.prototype,{initialize(){(!this.apiUrl||this.apiUrl.includes(".json"))&&(this.useDataFetching=!1),this.isInit?this.data.length>0?(this.itemsWrapper.classList.remove("hidden"),this.updateDimensions(!0)):this.itemsWrapper.classList.add("hidden"):this.data.length>0&&(this.isInit=!0,this.resolvedRenderMethod(),this.setupEventListeners(),this.setupResizeObserver(),this.updateDimensions())},setFullSize(e){this.isFullSize=e,e?this.container.classList.add("full"):this.container.classList.remove("full")},setTileable(e){this.isTileable=e,e?this.container.classList.add("tileable"):this.container.classList.remove("tileable")},setInfo(e){this.isInfo=e,e?this.container.classList.add("info"):this.container.classList.remove("info")},setFullScreen(e){this.isFullScreen=e,e?this.container.requestFullscreen&&(this.container.parentElement.requestFullscreen(),this.container.classList.add("fullscreen")):document.exitFullscreen&&(document.exitFullscreen(),this.container.classList.remove("fullscreen"))},setLayout(e){e==="horizontal"?(this.direction="horizontal",this.translateProp="translateX",this.scrollProp="scrollLeft",this.client="clientX",this.scrollSize="scrollWidth",this.container.classList.remove("vertical"),this.container.classList.add("horizontal")):(this.direction="vertical",this.translateProp="translateY",this.scrollProp="scrollTop",this.client="clientY",this.scrollSize="scrollHeight",this.container.classList.remove("horizontal"),this.container.classList.add("vertical"))},createContainer(){this.container.classList.add("ae-virtual","visible",this.direction||"vertical"),this.itemsWrapper=document.createElement("div"),this.itemsWrapper.classList.add("ae-virtual-wrapper"),this.container.appendChild(this.itemsWrapper)},createSentinel(){const e=document.createElement("div");return e.classList.add("sentinel"),e},createSentinels(){this.maxSentinel=this.createSentinel(),this.totalSizeSentinel=this.createSentinel(),this.container.append(this.maxSentinel,this.totalSizeSentinel)},createDetail(){this.detail=document.createElement("div"),this.detail.className="ae-virtual-detail";const e=document.createElement("button");e.className="ae-button close";const t=document.createElement("div");t.className="mask-icon icon-cancel",e.appendChild(t),this.detail.appendChild(e);const n=document.createElement("div");n.className="ae-virtual-detail-content",this.detail.appendChild(n),this.container.parentElement.appendChild(this.detail),e.addEventListener("click",this.hideDetail.bind(this)),this.hideDetail()},createItemElement(e,t){const n=document.createElement("div");n.className="item card";const s=e[this.keys.url];s&&(n.style.backgroundImage=`url(${s})`);const i=document.createElement("span");return i.textContent=e[this.keys.title],i.className="title",n.appendChild(i),n},getItemsToRender(){const e=Math.max(0,this.startIndex),t=Math.min(this.data.length,e+this.itemsPerPage);return{start:e,end:t}},renderItems(e="increase"){this.pendingRender&&(cancelAnimationFrame(this.pendingRender),this.pendingRender=null);const{start:t,end:n}=this.getItemsToRender();this.renderedRange.start===t&&this.renderedRange.end===n||(this.pendingRender=requestAnimationFrame(()=>{const s=performance.now();this._executeRender(t,n,e);const i=performance.now()-s;i>2&&console.warn(`Render time: ${i.toFixed(2)}ms`),this.renderedRange={start:t,end:n},this.pendingRender=null}))},_executeRender(e,t,n){const s=new Set,i=document.createDocumentFragment();for(let o=e;o0&&(n==="increase"?this.itemsWrapper.appendChild(i):this.itemsWrapper.insertBefore(i,this.itemsWrapper.firstChild));for(const o in this.renderedItems)s.has(Number(o))||(this.renderedItems[o].remove(),delete this.renderedItems[o]);this.renderedRange={start:e,end:t},this.updateSentinels()},forceRenderItems(){try{this.itemsWrapper.innerHTML="",this.renderedItems={},this.renderedRange={start:-1,end:-1},this.renderItems()}catch(e){console.error("Force render error:",e)}},updateSentinels(){const e=Math.max(0,this.startIndex),t=Math.min(this.data.length,this.startIndex+this.itemsPerPage),n=e/this.itemsPerRow*this.itemSize;let s=t/this.itemsPerRow*this.itemSize;s=Math.min(s,this.totalSize),s=Math.round(s/this.itemSize)*this.itemSize,this.maxSentinel.style.transform=`${this.translateProp}(${s}px)`,this.itemsWrapper.style.transform=`${this.translateProp}(${n}px)`},updateDimensions(e=!1){const t=this.itemsWrapper.querySelector(".item");if(!t||(this.itemHeight=t.offsetHeight,this.itemWidth=t.offsetWidth,this.containerWidth=this.container.parentElement.offsetWidth,this.containerHeight=this.container.parentElement.offsetHeight,console.log("this.updateDimensions",this.containerWidth,this.containerHeight),!this.containerWidth)||!this.containerHeight||!this.data.length)return;const n=this.total||this.data.length;this.direction==="horizontal"?(this.itemSize=this.itemWidth,this.containerSize=this.containerWidth,this.itemsPerRow=Math.floor(this.containerHeight/this.itemHeight),this.rowsInView=Math.ceil(this.containerWidth/this.itemWidth)):(this.itemSize=this.itemHeight,this.containerSize=this.containerHeight,this.itemsPerRow=Math.floor(this.containerWidth/this.itemWidth),this.rowsInView=Math.ceil(this.containerHeight/this.itemHeight)),this.totalRows=Math.ceil(n/this.itemsPerRow),this.itemsPerPage=Math.max(this.optItemsPerPage,this.rowsInView*this.itemsPerRow),this.totalSize=this.totalRows*this.itemSize,this.totalSizeSentinel.style.transform=`${this.translateProp}(${this.totalSize}px)`,this.maxStartIndex=Math.max(this.data.length-this.itemsPerPage,0),this.half_w=this.containerWidth/2,this.half_h=this.containerHeight/2,this.boundingClientRect=this.container.getBoundingClientRect(),this.invalidateScrollIndex?(console.log("this.invalidateScrollIndex ",this.invalidateScrollIndex,this.itemsPerRow,this.containerSize),this.isFullSize||(this.invalidateScrollIndex=Math.round(this.invalidateScrollIndex/this.itemsPerRow)),this.container[this.scrollProp]=this.invalidateScrollIndex*this.itemSize,this.startIndex=Math.floor(this.container[this.scrollProp]/this.itemSize)*this.itemsPerRow,this.invalidateScrollIndex=0,this.updateDimensions(!0)):e?this.forceRenderItems():this.scrollHandler()},scrollHandler(){this.scrollAnimationFrame&&cancelAnimationFrame(this.scrollAnimationFrame),this.scrollAnimationFrame=requestAnimationFrame(()=>this.updateScroll()),this.scrollTimeout=setTimeout(()=>{this.updateScroll()},100)},updateScroll(){const e=this.container[this.scrollProp],t=e>this.lastScrollPos?"increase":"decrease";this.lastScrollPos=e;const n=Math.floor(e/this.itemSize)*this.itemsPerRow;if(t==="increase"&&this.useDataFetching&&!this.isFetching&&this.params.cursor&&n>=this.maxStartIndex){this.isFetching=!0,this.fetchUpdateData();return}this.startIndex!==n&&(this.startIndex=n,this.renderItems(t))},clickHandler(e){const{target:t,currentTarget:n}=e,s=t.closest(".item.card").dataset.index,i=this.data[s];console.log(i)},changeHandler(e){},wheelHandler(e){if(!e.target.closest(".full .item-info"))if(!this.isFullSize||!this.isZoomMode){e.preventDefault();const t=Math.sign(e.deltaY);this.scrollDelta+=t,this.useSmoothScrolling(300)}else{const t=-Math.sign(e.deltaY)*.5,n=e.clientX-this.boundingClientRect.left,s=e.clientY-this.boundingClientRect.top;t<0?this.zoomOut(e,n,s):this.zoomIn(e,n,s)}},setupEventListeners(){this.container.addEventListener("scroll",this.throttle(this.scrollHandler.bind(this),100),{passive:!0}),this.container.addEventListener("click",this.clickHandler.bind(this)),this.container.addEventListener("change",this.changeHandler.bind(this)),this.container.addEventListener("wheel",this.wheelHandler.bind(this),{passive:!1}),this.container.tabIndex=-1,this.container.addEventListener("keydown",this.keyPressHandler.bind(this)),this.container.addEventListener("click",()=>this.container.focus()),this.panel=this.itemsWrapper,this.panel.addEventListener("pointerdown",this.pointerDown.bind(this),{passive:!1}),this.panel.addEventListener("pointermove",this.throttle(this.pointerMove.bind(this),16),{passive:!1}),this.panel.addEventListener("pointerup",this.pointerUp.bind(this),{passive:!1}),this.panel.addEventListener("pointercancel",this.pointerUp.bind(this),{passive:!1}),this.panel.addEventListener("pointerleave",this.pointerUp.bind(this),{passive:!1}),this.isMouseDevice=!1,window.addEventListener("mousemove",()=>{this.isMouseDevice=!0},{once:!0})},useSmoothScrolling(e=200){if(this.smoothScrolling){const t=this.container[this.scrollProp]+this.scrollDelta*this.itemSize,n=Math.round(t/this.itemSize)*this.itemSize;this.smoothScroll(n,e)}else this.container[this.scrollProp]+=this.scrollDelta*this.itemSize,this.scrollDelta=0},smoothScroll(e,t){const n=this.container[this.scrollProp],s=e-n;let i=null,o;const a=l=>{i===null&&(i=l);const r=l-i,u=Math.min(r/t,1),d=1-Math.pow(1-u,3);this.container[this.scrollProp]=n+s*d,u<1?o=requestAnimationFrame(a):(this.scrollDelta=0,this.container[this.scrollProp]=e,o=null)};o&&cancelAnimationFrame(o),o=requestAnimationFrame(a)},setupResizeObserver(){new ResizeObserver(()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.invalidateScrollIndex||(this.invalidateScrollIndex=this.startIndex),this.resizeTimer=setTimeout(()=>{this.updateDimensions(!0)},100)}).observe(this.container)},keyPressHandler(e){switch(e.key){case"ArrowDown":this.scrollBy(1);break;case"ArrowUp":this.scrollBy(-1);break;case"Home":this.scrollToStart();break;case"End":this.scrollToEnd();break}},scrollBy(e){this.scrollDelta+=e,this.useSmoothScrolling(0)},scrollToStart(){this.startIndex=0,this.container[this.scrollProp]=0},scrollToEnd(){this.startIndex=Math.max(0,this.data.length-this.itemsPerPage),this.container[this.scrollProp]=this.startIndex*this.itemSize},scrollToId(e){const t=this.originalData.findIndex(n=>n.id===e);console.warn(`Item with Index ${t} clicked.`),t!==-1?(this.container.classList.remove("visible"),this.container[this.scrollProp]=0,this.invalidateScrollIndex=t,setTimeout(()=>{this.updateDimensions(),this.container.classList.add("visible")},200)):console.warn(`Item with ID ${e} not found in loaded data object.`)},scrollToIndex(e){this.container.classList.remove("visible"),this.container[this.scrollProp]=0,this.invalidateScrollIndex=e||0,setTimeout(()=>{this.updateDimensions(),this.container.classList.add("visible")},200)},debounce(e,t=1e3){return(function(...n){const s=this,i=typeof n[n.length-1]=="number"?n.pop():t,o=()=>{this.timeout=null,e.apply(s,n)};clearTimeout(this.timeout),this.timeout=setTimeout(o,i)}).bind(this)},throttle(e,t){let n,s,i;return function(){const o=this;i=arguments;const a=Date.now();s?(clearTimeout(n),n=setTimeout(function(){a-s>=t&&(e.apply(o,i),s=a)},t-(a-s))):(e.apply(o,i),s=a)}},setNextCursor(e){e&&this.data.length>0?(this.params.cursor=e,this.params.page=Math.floor(this.data.length/this.params.limit)+1||1):this.params.cursor&&delete this.params.cursor,this.params.limit&&this.data.length>0?this.params.page=Math.floor(this.data.length/this.params.limit)+1:delete this.params.page},getValueByPath(e,t){return t?t.split(".").reduce((s,i)=>{if(s!=null)return s[i]},e):e},setData(e){this.startIndex=0,this.container[this.scrollProp]=0,this.originalData=e,this.data=this.originalData,this.initialize()},appendData(e){this.originalData.push(...e),this.data=this.originalData,this.isFetching=!1,this.updateDimensions(!0)},updateDataByIndex(e,t){const n=this.originalData[t];for(const[s,i]of Object.entries(e))n[s]=i;this.originalData[t]=n,this.data=this.originalData,this.forceRenderItems()},updateDataById(e,t){const n=this.originalData.find(s=>s.id===t);if(n){for(const[s,i]of Object.entries(e))n[s]=i;this.data=this.originalData,this.forceRenderItems()}else console.warn(`Item with ID ${t} not found in loaded data object.`)},removeDataById(e){const t=this.originalData.findIndex(n=>n.id===e);t!==-1?(this.originalData.splice(t,1),this.data=this.originalData,this.total-=1,this.updateDimensions(!0)):console.warn(`Item with ID ${e} not found in loaded data object.`)},setSelectedItems(e){this.selected=e,this.forceRenderItems()},fetchData(e){return new Promise((t,n)=>{const s=new XMLHttpRequest;let i=this.apiUrl;if(this.method.toUpperCase()==="GET"&&this.params){const o=new URLSearchParams;Object.keys(this.params).forEach(a=>{const l=this.params[a];Array.isArray(l)?l.forEach(r=>o.append(a,r)):o.append(a,l)}),i+="?"+o.toString()}s.open(this.method,i,!0),s.setRequestHeader("Accept","application/json"),s.onprogress=function(o){if(o.lengthComputable){const a=parseInt(o.loaded/o.total*100);e(a)}},s.onload=function(){if(s.status===200){const o=JSON.parse(s.responseText);t(o)}else n(s.status)},s.onerror=function(){n(s.status)},this.method.toUpperCase()==="POST"?(s.setRequestHeader("Content-Type","application/json"),s.send(JSON.stringify(this.params))):s.send()})},async fetchUpdateData(e=!1){var n;this.showLoadingIndicator();const t=await this.fetchData(s=>this.updateLoadingIndicator(s));if(t){this.total=t.total;const s=this.getValueByPath(t,this.keys.dataPath)||t;e?this.setData(s):this.appendData(s),this.setNextCursor(((n=t.metadata)==null?void 0:n.nextCursor)||t.nextCursor)}else console.error(`Error fetching data: ${error}`);this.hideLoadingIndicator()},async updateParamsAndFetch(e,t=1e3){Object.assign(this.params,e),Object.keys(this.params).forEach(s=>{this.params[s]||delete this.params[s]}),this.startIndex=0,delete this.params.cursor,this.originalData=[],this.data=this.originalData,this.debounce(this.fetchUpdateData.bind(this,!0),t)()},showLoadingIndicator(){this.loadingIndicator||(this.loadingIndicator=document.createElement("div"),this.loadingIndicator.className="loading-indicator",this.container.parentElement.appendChild(this.loadingIndicator),this.hideLoadingIndicator(),this.isFetching=!1),this.loadingIndicator.innerHTML="Loading... 0%",this.loadingIndicator.style.display="flex"},updateLoadingIndicator(e){this.loadingIndicator&&(this.loadingIndicator.innerHTML=`Loading... ${e}%`)},hideLoadingIndicator(){this.loadingIndicator&&(this.loadingIndicator.style.display="none")},showDetail(){this.detail.classList.remove("hidden")},hideDetail(){this.detail&&this.detail.classList.add("hidden")},filterItems(e,t={}){this.startIndex=0,this.data=this.originalData.filter(n=>{let s=!0;e&&(s=s&&n[this.keys.title].toLowerCase().includes(e.toLowerCase()));for(const[i,o]of Object.entries(t))if(n[i]!==void 0&&o!==void 0)if(Array.isArray(n[i])){const a=n[i];s=s&&a.some(l=>typeof l=="string"&&l.toLowerCase().includes(o.toLowerCase()))}else typeof n[i]=="string"&&(s=s&&n[i].toLowerCase().includes(o.toLowerCase()));return s}),this.updateDimensions()},sortItems(e,t=!1){this.startIndex=0;const n=this,s=[...this.data];function i(o,a){const l=n.getValueByPath(o,e),r=n.getValueByPath(a,e);return!isNaN(l)&&!isNaN(r)?t?r-l:l-r:t?rl?1:0:lr?1:0}s.sort(i),this.data=s,this.updateDimensions()},resetZoom(){this.zoom_scale=1,this.x=this.y=0,this.updateZoom()},zoomIn(e,t,n){this.centeredZoom(1/.65,t,n)},zoomOut(e,t,n){this.centeredZoom(.65,t,n)},getRelativePointers(e){const{boundingClientRect:t}=this,[n,s]=e;return{x1:n.x-t.left,y1:n.y-t.top,x2:s.x-t.left,y2:s.y-t.top}},centerOfPointers(e){const{x1:t,y1:n,x2:s,y2:i}=this.getRelativePointers(e),o=(t+s)/2,a=(n+i)/2;return[o,a]},distance(e){if(e.length<2)return 0;const t=e[0].x-e[1].x,n=e[0].y-e[1].y;return Math.sqrt(t*t+n*n)},scalePointers(e){if(e.length<2)return 0;const t=this.distance(e),n=this.previousDistance||0;if(n>0){const s=t/n,i=this.centerOfPointers(e);this.centeredZoom(s,i[0],i[1])}this.previousDistance=t},centeredZoom(e,t,n){const{zoom_scale:s,x:i,y:o,half_w:a,half_h:l}=this;let r=s*e;if(r<=1){this.resetZoom();return}else if(r>50)return;n?(this.x=t-(t-i-a)*e-a,this.y=n-(n-o-l)*e-l):(this.x*=e,this.y*=e),this.zoom_scale=r,this.updateZoom()},updateZoom(){this.zoomTarget&&(this.zoomTarget.style.transform=`translate(${this.x}px, ${this.y}px) scale(${this.zoom_scale})`)},debounceDoubleTap(e){const t=Date.now();this.lastTapTime&&t-this.lastTapTime<300&&(this.isZoomMode=!this.isZoomMode,this.isZoomMode?(this.zoomTarget=e.target.closest(".item-img"),this.zoom_scale=1.2,this.updateZoom()):(this.activePointers={},this.resetZoom())),this.lastTapTime=t},pointerDown(e){e.target.tagName.toLowerCase()!=="select"&&e.preventDefault(),this.dragged=!1,this.startX=e.pageX,this.startY=e.pageY;const{isFullSize:t,isMouseDevice:n,activePointers:s}=this;s[e.pointerId]={x:e.pageX,y:e.pageY};const i=Object.keys(s).length;if(i>2)return;t||(this.isZoomMode=!1),t&&i===1&&this.debounceDoubleTap(e);const o=this.isZoomMode;console.log(`isZoomMode: ${o}`),(!o&&t||!o&&n)&&i===1&&(this.isDragging=!0,this.start=e[this.client],this.scrollStart=this.container[this.scrollProp],this.container.style.cursor="grabbing")},pointerMove(e){e.preventDefault(),this.dragged=!0;const{isZoomMode:t,isFullSize:n,isMouseDevice:s,activePointers:i,startX:o,startY:a,start:l,scrollProp:r,scrollStart:u}=this;if(i[e.pointerId]){i[e.pointerId]={x:e.pageX,y:e.pageY};const d=Object.keys(i).length;if(t){if(d>2)return;if(d===2)this.scalePointers(Object.values(i));else if(d===1){const m=e.pageX-o,g=e.pageY-a;this.startX=e.pageX,this.startY=e.pageY,this.x+=m,this.y+=g,requestAnimationFrame(()=>{this.updateZoom()})}}else if(!t&&n||!t&&s){if(!this.isDragging||d>1)return;const m=l-e[this.client],g=Math.sign(m);g!==0&&(this.scrollDelta=g),requestAnimationFrame(()=>{this.container[r]=u+m})}}},pointerUp(e){e.preventDefault(),this.dragged=!1;const{isZoomMode:t,isFullSize:n,isMouseDevice:s,activePointers:i}=this;if(delete i[e.pointerId],Object.keys(i).length<2&&(this.previousDistance=0),!t&&n||!t&&s){if(this.isDragging=!1,this.scrollDelta==0)return;this.container.style.cursor="grab",this.useSmoothScrolling(300)}}});/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */const{entries:rs,setPrototypeOf:Un,isFrozen:bi,getPrototypeOf:yi,getOwnPropertyDescriptor:vi}=Object;let{freeze:Te,seal:Pe,create:ls}=Object,{apply:dn,construct:un}=typeof Reflect<"u"&&Reflect;Te||(Te=function(t){return t});Pe||(Pe=function(t){return t});dn||(dn=function(t,n,s){return t.apply(n,s)});un||(un=function(t,n){return new t(...n)});const Ot=Ie(Array.prototype.forEach),qn=Ie(Array.prototype.pop),ut=Ie(Array.prototype.push),$t=Ie(String.prototype.toLowerCase),en=Ie(String.prototype.toString),Hn=Ie(String.prototype.match),mt=Ie(String.prototype.replace),Si=Ie(String.prototype.indexOf),wi=Ie(String.prototype.trim),Re=Ie(Object.prototype.hasOwnProperty),xe=Ie(RegExp.prototype.test),pt=Ei(TypeError);function Ie(e){return function(t){for(var n=arguments.length,s=new Array(n>1?n-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:$t;Un&&Un(e,null);let s=t.length;for(;s--;){let i=t[s];if(typeof i=="string"){const o=n(i);o!==i&&(bi(t)||(t[s]=o),i=o)}e[i]=!0}return e}function xi(e){for(let t=0;t/gm),Ii=Pe(/\$\{[\w\W]*}/gm),Ni=Pe(/^data-[\-\w.\u00B7-\uFFFF]+$/),Pi=Pe(/^aria-[\-\w]+$/),cs=Pe(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Oi=Pe(/^(?:\w+script|data):/i),ki=Pe(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ds=Pe(/^html$/i),Mi=Pe(/^[a-z][.\w]*(-[.\w]+)+$/i);var Vn=Object.freeze({__proto__:null,ARIA_ATTR:Pi,ATTR_WHITESPACE:ki,CUSTOM_ELEMENT:Mi,DATA_ATTR:Ni,DOCTYPE_NAME:ds,ERB_EXPR:Ai,IS_ALLOWED_URI:cs,IS_SCRIPT_OR_DATA:Oi,MUSTACHE_EXPR:Ci,TMPLIT_EXPR:Ii});const ht={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},$i=function(){return typeof window>"u"?null:window},Ri=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let s=null;const i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(s=n.getAttribute(i));const o="dompurify"+(s?"#"+s:"");try{return t.createPolicy(o,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Xn=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function us(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$i();const t=D=>us(D);if(t.version="3.2.3",t.removed=[],!e||!e.document||e.document.nodeType!==ht.document)return t.isSupported=!1,t;let{document:n}=e;const s=n,i=s.currentScript,{DocumentFragment:o,HTMLTemplateElement:a,Node:l,Element:r,NodeFilter:u,NamedNodeMap:d=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:m,DOMParser:g,trustedTypes:L}=e,x=r.prototype,j=ft(x,"cloneNode"),I=ft(x,"remove"),M=ft(x,"nextSibling"),f=ft(x,"childNodes"),y=ft(x,"parentNode");if(typeof a=="function"){const D=n.createElement("template");D.content&&D.content.ownerDocument&&(n=D.content.ownerDocument)}let h,v="";const{implementation:O,createNodeIterator:W,createDocumentFragment:ne,getElementsByTagName:q}=n,{importNode:A}=s;let p=Xn();t.isSupported=typeof rs=="function"&&typeof y=="function"&&O&&O.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:C,ERB_EXPR:$,TMPLIT_EXPR:R,DATA_ATTR:b,ARIA_ATTR:S,IS_SCRIPT_OR_DATA:z,ATTR_WHITESPACE:V,CUSTOM_ELEMENT:J}=Vn;let{IS_ALLOWED_URI:se}=Vn,F=null;const ie=X({},[...Bn,...tn,...nn,...sn,...jn]);let U=null;const K=X({},[...Wn,...on,...Gn,...kt]);let B=Object.seal(ls(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ce=null,me=null,w=!0,_=!0,E=!1,P=!0,Z=!1,oe=!0,Q=!1,le=!1,he=!1,pe=!1,Ce=!1,be=!1,Ze=!0,ee=!1;const N="user-content-";let H=!0,te=!1,ae={},ye=null;const De=X({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Qe=null;const bn=X({},["audio","video","img","source","image","track"]);let qt=null;const yn=X({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),St="http://www.w3.org/1998/Math/MathML",wt="http://www.w3.org/2000/svg",Be="http://www.w3.org/1999/xhtml";let et=Be,Ht=!1,Bt=null;const fs=X({},[St,wt,Be],en);let Et=X({},["mi","mo","mn","ms","mtext"]),xt=X({},["annotation-xml"]);const hs=X({},["title","style","font","a","script"]);let rt=null;const gs=["application/xhtml+xml","text/html"],_s="text/html";let fe=null,tt=null;const bs=n.createElement("form"),vn=function(c){return c instanceof RegExp||c instanceof Function},jt=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(tt&&tt===c)){if((!c||typeof c!="object")&&(c={}),c=Ke(c),rt=gs.indexOf(c.PARSER_MEDIA_TYPE)===-1?_s:c.PARSER_MEDIA_TYPE,fe=rt==="application/xhtml+xml"?en:$t,F=Re(c,"ALLOWED_TAGS")?X({},c.ALLOWED_TAGS,fe):ie,U=Re(c,"ALLOWED_ATTR")?X({},c.ALLOWED_ATTR,fe):K,Bt=Re(c,"ALLOWED_NAMESPACES")?X({},c.ALLOWED_NAMESPACES,en):fs,qt=Re(c,"ADD_URI_SAFE_ATTR")?X(Ke(yn),c.ADD_URI_SAFE_ATTR,fe):yn,Qe=Re(c,"ADD_DATA_URI_TAGS")?X(Ke(bn),c.ADD_DATA_URI_TAGS,fe):bn,ye=Re(c,"FORBID_CONTENTS")?X({},c.FORBID_CONTENTS,fe):De,ce=Re(c,"FORBID_TAGS")?X({},c.FORBID_TAGS,fe):{},me=Re(c,"FORBID_ATTR")?X({},c.FORBID_ATTR,fe):{},ae=Re(c,"USE_PROFILES")?c.USE_PROFILES:!1,w=c.ALLOW_ARIA_ATTR!==!1,_=c.ALLOW_DATA_ATTR!==!1,E=c.ALLOW_UNKNOWN_PROTOCOLS||!1,P=c.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Z=c.SAFE_FOR_TEMPLATES||!1,oe=c.SAFE_FOR_XML!==!1,Q=c.WHOLE_DOCUMENT||!1,pe=c.RETURN_DOM||!1,Ce=c.RETURN_DOM_FRAGMENT||!1,be=c.RETURN_TRUSTED_TYPE||!1,he=c.FORCE_BODY||!1,Ze=c.SANITIZE_DOM!==!1,ee=c.SANITIZE_NAMED_PROPS||!1,H=c.KEEP_CONTENT!==!1,te=c.IN_PLACE||!1,se=c.ALLOWED_URI_REGEXP||cs,et=c.NAMESPACE||Be,Et=c.MATHML_TEXT_INTEGRATION_POINTS||Et,xt=c.HTML_INTEGRATION_POINTS||xt,B=c.CUSTOM_ELEMENT_HANDLING||{},c.CUSTOM_ELEMENT_HANDLING&&vn(c.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(B.tagNameCheck=c.CUSTOM_ELEMENT_HANDLING.tagNameCheck),c.CUSTOM_ELEMENT_HANDLING&&vn(c.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(B.attributeNameCheck=c.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),c.CUSTOM_ELEMENT_HANDLING&&typeof c.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(B.allowCustomizedBuiltInElements=c.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Z&&(_=!1),Ce&&(pe=!0),ae&&(F=X({},jn),U=[],ae.html===!0&&(X(F,Bn),X(U,Wn)),ae.svg===!0&&(X(F,tn),X(U,on),X(U,kt)),ae.svgFilters===!0&&(X(F,nn),X(U,on),X(U,kt)),ae.mathMl===!0&&(X(F,sn),X(U,Gn),X(U,kt))),c.ADD_TAGS&&(F===ie&&(F=Ke(F)),X(F,c.ADD_TAGS,fe)),c.ADD_ATTR&&(U===K&&(U=Ke(U)),X(U,c.ADD_ATTR,fe)),c.ADD_URI_SAFE_ATTR&&X(qt,c.ADD_URI_SAFE_ATTR,fe),c.FORBID_CONTENTS&&(ye===De&&(ye=Ke(ye)),X(ye,c.FORBID_CONTENTS,fe)),H&&(F["#text"]=!0),Q&&X(F,["html","head","body"]),F.table&&(X(F,["tbody"]),delete ce.tbody),c.TRUSTED_TYPES_POLICY){if(typeof c.TRUSTED_TYPES_POLICY.createHTML!="function")throw pt('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof c.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw pt('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');h=c.TRUSTED_TYPES_POLICY,v=h.createHTML("")}else h===void 0&&(h=Ri(L,i)),h!==null&&typeof v=="string"&&(v=h.createHTML(""));Te&&Te(c),tt=c}},Sn=X({},[...tn,...nn,...Ti]),wn=X({},[...sn,...Li]),ys=function(c){let T=y(c);(!T||!T.tagName)&&(T={namespaceURI:et,tagName:"template"});const k=$t(c.tagName),re=$t(T.tagName);return Bt[c.namespaceURI]?c.namespaceURI===wt?T.namespaceURI===Be?k==="svg":T.namespaceURI===St?k==="svg"&&(re==="annotation-xml"||Et[re]):!!Sn[k]:c.namespaceURI===St?T.namespaceURI===Be?k==="math":T.namespaceURI===wt?k==="math"&&xt[re]:!!wn[k]:c.namespaceURI===Be?T.namespaceURI===wt&&!xt[re]||T.namespaceURI===St&&!Et[re]?!1:!wn[k]&&(hs[k]||!Sn[k]):!!(rt==="application/xhtml+xml"&&Bt[c.namespaceURI]):!1},ze=function(c){ut(t.removed,{element:c});try{y(c).removeChild(c)}catch{I(c)}},Tt=function(c,T){try{ut(t.removed,{attribute:T.getAttributeNode(c),from:T})}catch{ut(t.removed,{attribute:null,from:T})}if(T.removeAttribute(c),c==="is")if(pe||Ce)try{ze(T)}catch{}else try{T.setAttribute(c,"")}catch{}},En=function(c){let T=null,k=null;if(he)c=""+c;else{const ge=Hn(c,/^[\r\n\t ]+/);k=ge&&ge[0]}rt==="application/xhtml+xml"&&et===Be&&(c=''+c+"");const re=h?h.createHTML(c):c;if(et===Be)try{T=new g().parseFromString(re,rt)}catch{}if(!T||!T.documentElement){T=O.createDocument(et,"template",null);try{T.documentElement.innerHTML=Ht?v:re}catch{}}const ve=T.body||T.documentElement;return c&&k&&ve.insertBefore(n.createTextNode(k),ve.childNodes[0]||null),et===Be?q.call(T,Q?"html":"body")[0]:Q?T.documentElement:ve},xn=function(c){return W.call(c.ownerDocument||c,c,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Wt=function(c){return c instanceof m&&(typeof c.nodeName!="string"||typeof c.textContent!="string"||typeof c.removeChild!="function"||!(c.attributes instanceof d)||typeof c.removeAttribute!="function"||typeof c.setAttribute!="function"||typeof c.namespaceURI!="string"||typeof c.insertBefore!="function"||typeof c.hasChildNodes!="function")},Tn=function(c){return typeof l=="function"&&c instanceof l};function je(D,c,T){Ot(D,k=>{k.call(t,c,T,tt)})}const Ln=function(c){let T=null;if(je(p.beforeSanitizeElements,c,null),Wt(c))return ze(c),!0;const k=fe(c.nodeName);if(je(p.uponSanitizeElement,c,{tagName:k,allowedTags:F}),c.hasChildNodes()&&!Tn(c.firstElementChild)&&xe(/<[/\w]/g,c.innerHTML)&&xe(/<[/\w]/g,c.textContent)||c.nodeType===ht.progressingInstruction||oe&&c.nodeType===ht.comment&&xe(/<[/\w]/g,c.data))return ze(c),!0;if(!F[k]||ce[k]){if(!ce[k]&&An(k)&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,k)||B.tagNameCheck instanceof Function&&B.tagNameCheck(k)))return!1;if(H&&!ye[k]){const re=y(c)||c.parentNode,ve=f(c)||c.childNodes;if(ve&&re){const ge=ve.length;for(let Le=ge-1;Le>=0;--Le){const Fe=j(ve[Le],!0);Fe.__removalCount=(c.__removalCount||0)+1,re.insertBefore(Fe,M(c))}}}return ze(c),!0}return c instanceof r&&!ys(c)||(k==="noscript"||k==="noembed"||k==="noframes")&&xe(/<\/no(script|embed|frames)/i,c.innerHTML)?(ze(c),!0):(Z&&c.nodeType===ht.text&&(T=c.textContent,Ot([C,$,R],re=>{T=mt(T,re," ")}),c.textContent!==T&&(ut(t.removed,{element:c.cloneNode()}),c.textContent=T)),je(p.afterSanitizeElements,c,null),!1)},Cn=function(c,T,k){if(Ze&&(T==="id"||T==="name")&&(k in n||k in bs))return!1;if(!(_&&!me[T]&&xe(b,T))){if(!(w&&xe(S,T))){if(!U[T]||me[T]){if(!(An(c)&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,c)||B.tagNameCheck instanceof Function&&B.tagNameCheck(c))&&(B.attributeNameCheck instanceof RegExp&&xe(B.attributeNameCheck,T)||B.attributeNameCheck instanceof Function&&B.attributeNameCheck(T))||T==="is"&&B.allowCustomizedBuiltInElements&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,k)||B.tagNameCheck instanceof Function&&B.tagNameCheck(k))))return!1}else if(!qt[T]){if(!xe(se,mt(k,V,""))){if(!((T==="src"||T==="xlink:href"||T==="href")&&c!=="script"&&Si(k,"data:")===0&&Qe[c])){if(!(E&&!xe(z,mt(k,V,"")))){if(k)return!1}}}}}}return!0},An=function(c){return c!=="annotation-xml"&&Hn(c,J)},In=function(c){je(p.beforeSanitizeAttributes,c,null);const{attributes:T}=c;if(!T||Wt(c))return;const k={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:U,forceKeepAttr:void 0};let re=T.length;for(;re--;){const ve=T[re],{name:ge,namespaceURI:Le,value:Fe}=ve,lt=fe(ge);let Ee=ge==="value"?Fe:wi(Fe);if(k.attrName=lt,k.attrValue=Ee,k.keepAttr=!0,k.forceKeepAttr=void 0,je(p.uponSanitizeAttribute,c,k),Ee=k.attrValue,ee&&(lt==="id"||lt==="name")&&(Tt(ge,c),Ee=N+Ee),oe&&xe(/((--!?|])>)|<\/(style|title)/i,Ee)){Tt(ge,c);continue}if(k.forceKeepAttr||(Tt(ge,c),!k.keepAttr))continue;if(!P&&xe(/\/>/i,Ee)){Tt(ge,c);continue}Z&&Ot([C,$,R],Pn=>{Ee=mt(Ee,Pn," ")});const Nn=fe(c.nodeName);if(Cn(Nn,lt,Ee)){if(h&&typeof L=="object"&&typeof L.getAttributeType=="function"&&!Le)switch(L.getAttributeType(Nn,lt)){case"TrustedHTML":{Ee=h.createHTML(Ee);break}case"TrustedScriptURL":{Ee=h.createScriptURL(Ee);break}}try{Le?c.setAttributeNS(Le,ge,Ee):c.setAttribute(ge,Ee),Wt(c)?ze(c):qn(t.removed)}catch{}}}je(p.afterSanitizeAttributes,c,null)},vs=function D(c){let T=null;const k=xn(c);for(je(p.beforeSanitizeShadowDOM,c,null);T=k.nextNode();)je(p.uponSanitizeShadowNode,T,null),Ln(T),In(T),T.content instanceof o&&D(T.content);je(p.afterSanitizeShadowDOM,c,null)};return t.sanitize=function(D){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=null,k=null,re=null,ve=null;if(Ht=!D,Ht&&(D=""),typeof D!="string"&&!Tn(D))if(typeof D.toString=="function"){if(D=D.toString(),typeof D!="string")throw pt("dirty is not a string, aborting")}else throw pt("toString is not a function");if(!t.isSupported)return D;if(le||jt(c),t.removed=[],typeof D=="string"&&(te=!1),te){if(D.nodeName){const Fe=fe(D.nodeName);if(!F[Fe]||ce[Fe])throw pt("root node is forbidden and cannot be sanitized in-place")}}else if(D instanceof l)T=En(""),k=T.ownerDocument.importNode(D,!0),k.nodeType===ht.element&&k.nodeName==="BODY"||k.nodeName==="HTML"?T=k:T.appendChild(k);else{if(!pe&&!Z&&!Q&&D.indexOf("<")===-1)return h&&be?h.createHTML(D):D;if(T=En(D),!T)return pe?null:be?v:""}T&&he&&ze(T.firstChild);const ge=xn(te?D:T);for(;re=ge.nextNode();)Ln(re),In(re),re.content instanceof o&&vs(re.content);if(te)return D;if(pe){if(Ce)for(ve=ne.call(T.ownerDocument);T.firstChild;)ve.appendChild(T.firstChild);else ve=T;return(U.shadowroot||U.shadowrootmode)&&(ve=A.call(s,ve,!0)),ve}let Le=Q?T.outerHTML:T.innerHTML;return Q&&F["!doctype"]&&T.ownerDocument&&T.ownerDocument.doctype&&T.ownerDocument.doctype.name&&xe(ds,T.ownerDocument.doctype.name)&&(Le=" +`+Le),Z&&Ot([C,$,R],Fe=>{Le=mt(Le,Fe," ")}),h&&be?h.createHTML(Le):Le},t.setConfig=function(){let D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};jt(D),le=!0},t.clearConfig=function(){tt=null,le=!1},t.isValidAttribute=function(D,c,T){tt||jt({});const k=fe(D),re=fe(c);return Cn(k,re,T)},t.addHook=function(D,c){typeof c=="function"&&ut(p[D],c)},t.removeHook=function(D){return qn(p[D])},t.removeHooks=function(D){p[D]=[]},t.removeAllHooks=function(){p=Xn()},t}var ms=us();function ps(e,t,n,s){const i=document.createElement("div");i.className="item card",n!=null&&n.has(e.name)?i.classList.add("active"):i.classList.remove("active");const o=document.createElement("button");o.className="icon-grid-size fullsize-button card-button";const a=document.createElement("button");a.className="icon-full-screen fullScreen-button card-button";const l=document.createElement("button");l.className="icon-tile tile-button card-button";const r=document.createElement("button");r.className="icon-info info-button card-button";const u=document.createElement("button");u.className="edit-meta edit-button card-button";const d=document.createElement("button");d.className="copy-path copy-path-button card-button";const m=document.createElement("button");m.className="icon-delete delete-button card-button";const g=document.createElement("button");g.className="icon-send-params send-params-button card-button";const L=document.createElement("div");L.className="item-info";const x=document.createElement("span");x.className="item-info-title",x.textContent=e.name;const j=document.createElement("div");j.className="item-info-description";const I=document.createElement("p");I.textContent=e.prompt;const M=document.createElement("p");M.textContent=e.negative;const f=document.createElement("p");f.textContent=e.tags;const y=document.createElement("p");y.textContent=e.extra,j.appendChild(I),j.appendChild(M),j.appendChild(f),j.appendChild(y),L.appendChild(x),L.appendChild(j);const h=document.createElement("div");h.className="item-actions-row";const v=document.createElement("div");v.className="item-actions";const O=document.createElement("div");O.className="item-actions-top";const W=document.createElement("div");W.className="item-spacer",O.appendChild(g),O.appendChild(W),O.appendChild(o),O.appendChild(a),v.appendChild(l),v.appendChild(r),v.appendChild(d),v.appendChild(u),v.appendChild(m),h.appendChild(O),h.appendChild(v),i.appendChild(h);const ne=e[t],q=e.timestamp||"";if(ne){const A=document.createElement("div");A.style.backgroundImage=`url('${s}${encodeURIComponent(ne)}${q}')`,A.className="item-img",i.appendChild(A)}return i.appendChild(L),i}function Di(e,t,n,s){const i=document.createElement("div");i.className="item card",n!=null&&n.has(e.name)?i.classList.add("active"):i.classList.remove("active");const o=document.createElement("button");o.className="icon-grid-size fullsize-button card-button";const a=document.createElement("button");a.className="icon-full-screen fullScreen-button card-button";const l=document.createElement("button");l.className="icon-tile tile-button card-button";const r=document.createElement("button");r.className="icon-info info-button card-button";const u=document.createElement("button");u.className="edit-meta edit-button card-button";const d=document.createElement("button");d.className="copy-path copy-path-button card-button";const m=document.createElement("button");m.className="icon-send-params send-params-button card-button";const g=document.createElement("div");g.className="item-info";const L=document.createElement("span");L.className="item-info-title",L.textContent=e.name;const x=document.createElement("div");if(x.className="item-info-description",e.activation_text){const O=document.createElement("p");O.textContent=e.activation_text;const W=document.createElement("p");W.textContent=e.negative_prompt,x.appendChild(O),x.appendChild(W)}const j=document.createElement("p");j.textContent=e.tags,x.appendChild(j),g.appendChild(L),g.appendChild(x);const I=document.createElement("div");I.className="item-actions-row";const M=document.createElement("div");M.className="item-actions";const f=document.createElement("div");f.className="item-actions-top";const y=document.createElement("div");if(y.className="item-spacer",f.appendChild(m),f.appendChild(y),f.appendChild(o),f.appendChild(a),M.appendChild(r),M.appendChild(d),M.appendChild(u),e.metadata_exists){const O=document.createElement("button");O.className="show-meta metadata-button card-button",M.appendChild(O)}I.appendChild(f),I.appendChild(M),i.appendChild(I);const h=e[t],v=e.timestamp||"";if(h){const O=document.createElement("div");O.style.backgroundImage=`url('${s}${encodeURIComponent(h)}${v}')`,O.className="item-img",i.appendChild(O)}return i.appendChild(g),i}const zi=["clipSkip","cfgScale","sampler","steps","seed","Size"];function Fi(e,t){const n=document.createElement("div");n.className="item card";const s=document.createElement("button");s.className="icon-grid-size fullsize-button card-button";const i=document.createElement("button");i.className="icon-full-screen fullScreen-button card-button";const o=document.createElement("button");o.className="icon-tile tile-button card-button";const a=document.createElement("button");a.className="icon-info info-button card-button";const l=document.createElement("button");l.className="icon-stylez civit-add2styles-button card-button";const r=document.createElement("button");r.className="icon-link civit-link-button card-button";const u=document.createElement("button");u.className="icon-send-params send-params-button card-button";const d=document.createElement("div");d.className="item-info";const m=document.createElement("button");m.className="item-info-title",m.textContent=e.username;const g=document.createElement("div");g.className="item-info-description";const L=[];e.baseModel&&L.push(`baseModel: ${e.baseModel}`);const x=e.meta;if(x){if(x.prompt){const v=document.createElement("p");v.textContent="Prompt: "+x.prompt,g.appendChild(v)}if(x.negativePrompt){const v=document.createElement("p");v.textContent="Negative prompt: "+x.negativePrompt,g.appendChild(v)}zi.forEach(v=>{x[v]!==void 0&&L.push(`${v}: ${x[v]}`)});const h=document.createElement("p");h.textContent=L.join(", "),g.appendChild(h),x.civitaiResources&&x.civitaiResources.forEach(v=>{const O=v.type?v.type:"Unknown Type",W=v.weight?v.weight:"",ne=v.name?v.name:"",q=v.modelVersionId?v.modelVersionId:null,A=v.modelVersionName;if(q){const p=document.createElement("p");p.textContent=`${O}: ${W} ${ne}`;const C=document.createElement("a");C.textContent=`${A||"Model Id: "+q}`,C.href=`https://civitai.com/api/v1/models/${q}`,C.target="_blank",p.appendChild(C),g.appendChild(p)}})}d.appendChild(m),d.appendChild(g);const j=document.createElement("div");j.className="item-actions-row";const I=document.createElement("div");I.className="item-actions";const M=document.createElement("div");M.className="item-actions-top";const f=document.createElement("div");f.className="item-spacer",M.appendChild(u),M.appendChild(f),M.appendChild(s),M.appendChild(i),I.appendChild(a),I.appendChild(r),I.appendChild(l),j.appendChild(M),j.appendChild(I),n.appendChild(j);let y=e.url;if(y){if(t=="thumbnail"){const v=y.split("width="),O=v[1].split("/")[1];y=v[0]+"width=320/"+O}const h=document.createElement("div");h.style.backgroundImage=`url('${y}')`,h.className="item-img",n.appendChild(h)}return n.appendChild(d),n}function Ui(e,t){var M,f;const n=document.createElement("div");n.className="item card";const s=document.createElement("button");s.className="icon-grid-size fullsize-button card-button";const i=document.createElement("button");i.className="icon-full-screen fullScreen-button card-button";const o=document.createElement("button");o.className="icon-tile tile-button card-button";const a=document.createElement("button");a.className="icon-info info-button card-button";const l=document.createElement("button");l.className="icon-link civit-link-button card-button";const r=document.createElement("button");r.className="icon-send-params send-params-button card-button";const u=document.createElement("div");u.className="item-info";const d=document.createElement("span");d.className="item-info-title",d.textContent=e.name;const m=document.createElement("span");m.textContent=e.type,m.className=`extra-type ${e.type}`;const g=document.createElement("div");g.innerHTML=ms.sanitize(e.description),g.className="item-info-description",u.appendChild(d),u.appendChild(g);const L=document.createElement("div");L.className="item-actions-row";const x=document.createElement("div");x.className="item-actions";const j=document.createElement("div");j.className="item-spacer",x.appendChild(r),x.appendChild(j),x.appendChild(s),x.appendChild(i),x.appendChild(a),x.appendChild(l),L.appendChild(x),n.appendChild(m),n.appendChild(L);let I=(f=(M=e.modelVersions[0])==null?void 0:M.images[0])==null?void 0:f.url;if(I){{const h=I.split("width="),v=h[1].split("/")[1];I=h[0]+"width=320/"+v}const y=document.createElement("div");y.style.backgroundImage=`url(${encodeURI(I)})`,y.className="item-img",n.appendChild(y)}return n.appendChild(u),n}function qi(e){const t=e/1024;return t>=1024?`${(t/1024).toFixed(2)} GB`:`${t.toFixed(2)} MB`}function Hi(e,t,n){const s=document.createElement("div");s.className="item card";const i=document.createElement("button");i.className="icon-grid-size fullsize-button card-button";const o=document.createElement("button");o.className="icon-full-screen fullScreen-button card-button";const a=document.createElement("button");a.className="icon-tile tile-button card-button";const l=document.createElement("button");l.className="icon-info info-button card-button";const r=document.createElement("button");r.className="icon-link civit-link-button card-button";const u=document.createElement("button");u.className="icon-send-params send-params-button card-button";const d=document.createElement("div");d.className="item-info";const m=document.createElement("span");m.className="item-info-title",m.textContent=t.name;const g=document.createElement("span");g.textContent=t.type,g.className=`extra-type ${t.type}`;const L=document.createElement("select");L.className="baseModel-select";const x=t.modelVersions;x.forEach((q,A)=>{const p=document.createElement("option");p.value=A,p.textContent=`${q.baseModel} | ${q.name} | ${q.baseModelType}`,A===n&&(p.selected=!0),L.appendChild(p)});const j=x[n].files[0].downloadUrl,I=x[n].files[0].name,M=x[n].files[0].sizeKB,f=document.createElement("a");f.target="_blank",f.setAttribute("data-url",j),f.className="model-sdownload",f.textContent=`${I} - ${qi(M)}`;let y=x[n].description;n===0&&(y=(t.description||"")+(x[n].description||""));const h=document.createElement("div");h.innerHTML=ms.sanitize(y),h.className="item-info-description",d.appendChild(m),d.appendChild(L),d.appendChild(f);const v=e.url;if(v){const q=document.createElement("a");q.className="download-image-button";const A=v.split(".").pop().split("?")[0],p=`${I.split(".")[0]}.${A}`;q.textContent=`${p}`,q.setAttribute("data-url",v),q.setAttribute("data-filename",p),d.appendChild(q)}d.appendChild(h);const O=document.createElement("div");O.className="item-actions-row";const W=document.createElement("div");W.className="item-actions";const ne=document.createElement("div");if(ne.className="item-spacer",W.appendChild(u),W.appendChild(ne),W.appendChild(i),W.appendChild(o),W.appendChild(l),W.appendChild(r),O.appendChild(W),s.appendChild(g),s.appendChild(O),v){const q=document.createElement("div");q.style.backgroundImage=`url(${v})`,q.className="item-img",s.appendChild(q)}return s.appendChild(d),s}async function Bi(){const e=document.querySelector("#civitai_cardholder_images"),t=document.querySelector("#civit_search_images"),n=document.querySelector("#civit_search_images_clear"),s=100,i="/sd_webui_ux/civitai_proxy/images",o={"#civit_nsfw_images":"nsfw","#civit_sort_images":"sort","#civit_period_images":"period","#civit_search_images":"username"},a={limit:s,page:1},l={title:"username",url:"url",dataPath:"items"};let r="thumbnail";const u=new Je(e,[],18,l,i,a),d=vt(o,a,u);u.createItemElement=L=>Fi(L,r);function m(L,x,j){const I=window.UIUX.FOCUS_PROMPT;if(L.classList.contains("copy-path"))navigator.clipboard.writeText(x.filename);else if(L.classList.contains("fullsize-button"))u.scrollToId(x.id),u.isFullSize?(r="thumbnail",u.setFullSize(!1),u.setLayout("vertical"),L.classList.remove("active")):(r="original",u.setFullSize(!0),u.setLayout("vertical"),L.classList.add("active"));else if(L.classList.contains("info-button"))u.setInfo(!u.isInfo);else if(L.classList.contains("fullScreen-button"))u.scrollToId(x.id),u.setFullScreen(!u.isFullScreen);else if(L.classList.contains("send-params-button")){const M=`${x.url}`;ot(M,`#pnginfo_send_${I} button`)}else L.classList.contains("item-info-title")?(t.value=L.textContent,He(t)):L.classList.contains("civit-link-button")?window.open(`https://civitai.com/images/${x.id}`,"_blank"):L.classList.contains("civit-add2styles-button")}u.clickHandler=function(L){if(u.dragged||u.scrollDelta)return;const x=L.target.closest(".item.card"),j=x==null?void 0:x.dataset.id;if(j){const I=this.data.find(M=>M.id.toString()===j);console.log(j,L.target,I),I&&m(L.target,I)}L.preventDefault(),L.stopPropagation()};function g(L){t.value="",He(t)}n.addEventListener("click",g),u.updateParamsAndFetch(d,0)}async function ji(){const e=document.querySelector("#civitai_cardholder_models"),t=document.querySelector("#civit_search_models"),n=document.querySelector("#civit_search_models_clear"),s=100,i="/sd_webui_ux/civitai_proxy/models",o={"#civit_nsfw_models":"nsfw","#civit_type_models":"types","#civit_sort_models":"sort","#civit_period_models":"period","#civit_search_models":"query"},a={limit:s,page:1},l={title:"username",url:"url",dataPath:"items"};let r,u=0;const d=new Je(e,[],18,l,i,a),m=vt(o,a,d);function g(f,y,h){const v=window.UIUX.FOCUS_PROMPT;if(f.classList.contains("civit-link-button"))window.open(`https://civitai.com/models/${y.id}`,"_blank");else if(f.classList.contains("fullsize-button"))d.showDetail(),r=y,u=0,x.setData(y.modelVersions[u].images),x.setFullSize(!0),x.setLayout("vertical"),x.scrollToStart();else if(f.classList.contains("info-button"))d.setInfo(!d.isInfo);else if(f.classList.contains("fullScreen-button"))d.scrollToId(y.id),d.setFullScreen(!d.isFullScreen);else if(f.classList.contains("send-params-button")){const O=`${y.modelVersions[0].images[0].url}`;ot(O,`#pnginfo_send_${v} button`)}else f.classList.contains("item-info-title")&&(t.value=f.textContent,He(t))}d.createItemElement=f=>Ui(f),d.clickHandler=function(f){if(d.dragged||d.scrollDelta)return;const y=f.target.closest(".item.card"),h=y==null?void 0:y.dataset.id;if(h){const v=this.data.find(O=>O.id.toString()===h);console.log(h,f.target,v),v&&g(f.target,v)}f.preventDefault(),f.stopPropagation()};const L=e.parentElement.querySelector(".ae-virtual-detail-content"),x=new Je(L,[],8);x.createItemElement=f=>Hi(f,r,u),x.clickHandler=function(f){if(x.dragged||x.scrollDelta)return;const y=f.target.closest(".item.card"),h=y==null?void 0:y.dataset.id;if(h){const v=this.data.find(O=>O.id.toString()===h);v&&j(f.target,v)}f.preventDefault(),f.stopPropagation()},x.changeHandler=function(f){const y=f.target;y.classList.contains("baseModel-select")&&(u=parseInt(y.value),this.setData(r.modelVersions[u].images))};function j(f,y,h){const v=window.UIUX.FOCUS_PROMPT;if(f.classList.contains("civit-link-button"))window.open(`https://civitai.com/models/${r.id}?modelVersionId=${r.modelVersions[u].id}`,"_blank");else if(f.classList.contains("fullsize-button"))d.hideDetail();else if(f.classList.contains("info-button"))x.setInfo(!x.isInfo);else if(f.classList.contains("fullScreen-button"))x.scrollToId(y.id),x.setFullScreen(!x.isFullScreen);else if(f.classList.contains("send-params-button")){const O=`${y.url}`;ot(O,`#pnginfo_send_${v} button`)}else f.classList.contains("item-info-title")||(f.classList.contains("download-image-button")?I(f.dataset.url,f.dataset.filename):f.classList.contains("model-sdownload")&&I(f.dataset.url))}function I(f,y){const h=document.createElement("a");h.target="_blank",h.href=f,y&&(h.download=y),document.body.appendChild(h),h.click(),document.body.removeChild(h)}function M(f){t.value="",He(t)}n.addEventListener("click",M),d.updateParamsAndFetch(m,0)}function we(e,t,n,s=""){this.container=document.querySelector(e),this.fetchUrl=t,this.tableName=n,this.rootPath=s.replace(/\\/g,"/").toLowerCase(),this.selected}we.prototype.initialize=async function(){this.container.innerHTML="";const e=await this.fetchData(this.rootPath),t=this.buildTree(e),n=this.createTreeView(t);this.container.appendChild(n),this.attachEventListeners(),this.itemMap=e.reduce((s,i)=>(s[i.id]=i,s),{})};we.prototype.updateSelectedItems=function(){var e;this.container.querySelectorAll(".li-file.active").forEach(t=>{t.classList.remove("active")}),(e=this.selected)==null||e.forEach(t=>{const n=this.container.querySelector(`.li-file[data-name="${t}"]`);n&&n.classList.add("active")})};we.prototype.fetchData=async function(e){const n=await(await fetch(`${this.fetchUrl}?table_name=${this.tableName}&path=${encodeURIComponent(e)}`)).json();return this.data=n.data,this.subpaths=n.unique_subpaths,this.subpaths=this.subpaths.map(s=>{const i=s.split(e);return{path:s,relativePath:i[1],basePath:`${i[0]}${e}`}}),console.log(this.subpaths),console.log("tree data length:",this.data.length),n.data};we.prototype.buildTree=function(e){const t={},n=this.rootPath;t[n]={};const s=t[n];return e.forEach(i=>{const o=i.filename.replace(/\\/g,"/").toLowerCase(),a=o.indexOf(n);if(a===-1)return;const r=o.slice(a+n.length).replace(/^\//,"").split("/").filter(Boolean);let u=s;for(let d=0;d${e[t].name}`,n.classList.add("li-file"),n};we.prototype.createFolderItem=function(e,t,n){n+="/"+t,n=n.replace(/\/{2,}/g,"/");const s=document.createElement("li");s.innerHTML=`${t}`;const i=this.createTreeView(e[t],n);return i.classList.add("nested"),s.appendChild(i),s};we.prototype.createTreeView=function(e,t=""){const n=document.createElement("ul");n.classList.add("tree-view");for(const s in e){let i;typeof e[s]=="object"&&!Array.isArray(e[s])?s.includes(".safetensors")||s.includes(".pt")||s.includes(".png")||s.includes(".jpg")||s.includes(".webp")?i=this.createFileItem(e,s):i=this.createFolderItem(e,s,t):i=this.createFileItem(e,s),n.appendChild(i)}return n};we.prototype.attachEventListeners=function(){this.eventListenerAdded||(this.container.addEventListener("click",async e=>{const t=e.target,n=t.closest("li[data-id]");if(t.tagName==="BUTTON"){const i=n.dataset.id,o=this.getItemProperties(i);this.onFileClicked(t,o)}else if(n){const i=n.dataset.id,o=this.getItemProperties(i);this.onFileClicked(n,o)}else if(t.classList.contains("caret")){t.classList.toggle("caret-down");const i=t.nextElementSibling;i.classList.contains("nested")&&i.classList.toggle("active"),this.onFolderClicked(t,t.getAttribute("data-path"),i.classList.contains("active"))}e.stopPropagation()}),this.eventListenerAdded=!0)};we.prototype.getItemProperties=function(e){return this.itemMap[e]};we.prototype.update=async function(){const e=[];this.container.querySelectorAll(".tree-folder.caret-down").forEach(n=>{e.push(n.dataset.path)});const t=this.container.parentElement.scrollTop;await this.initialize(),e.forEach(n=>{const s=this.container.querySelector(`.tree-folder[data-path="${n}"]`);s&&s.click()}),this.container.parentElement.scrollTop=t,this.attachEventListeners()};we.prototype.updateDataById=function(e,t){const n=this.itemMap[t];if(n)for(const[s,i]of Object.entries(e))n[s]=i;else console.error(`Item with ID ${t} not found.`)};we.prototype.onFolderClicked=function(e,t,n){};we.prototype.onFileClicked=function(e,t){};function _e(e,t,n,s,i="Submit"){this.url=e,this.table_name=t,this.itemData=n,this.container=s,this.submit_label=i,this.form=document.createElement("form"),this.form.setAttribute("id","userMetadataForm"),this.form.classList.add("flexbox","padding","col","shrink")}_e.prototype.formatFileSize=function(e){return typeof e!="number"?"0 bytes":e>=1073741824?(e/1073741824).toFixed(2)+" GB":e>=1048576?(e/1048576).toFixed(2)+" MB":e>=1024?(e/1024).toFixed(2)+" KB":e+" bytes"};_e.prototype.formatDate=function(e){return typeof e!="number"?"":new Date(e*1e3).toLocaleDateString()};_e.prototype.formatFilename=function(e){return typeof e!="string"?"":e.replace(/\\/g,"/").split("/").pop()};_e.prototype.createElement=function(e,t,n,s={}){const i={textarea:{tag:"textarea",attributes:{...s,rows:s.rows||1,textContent:n||""}},select:{tag:"select",attributes:{id:s.id,class:s.class,name:s.name},children:Array.isArray(s.options)?s.options.map(r=>({option:{type:"option",value:r.value,textContent:r.textContent,selected:r.value===s.value}})):[]},option:{tag:"option",attributes:{...s}},input:{tag:"input",attributes:{...s,type:"text",value:n||""}},file:{tag:"input",attributes:{type:"file"}},number:{tag:"input",attributes:{type:"number",value:n}},checkbox:{tag:"input",attributes:{type:"checkbox",checked:n}},radio:{tag:"input",attributes:{type:"radio",checked:n}},slider:{tag:"input",attributes:{type:"range",value:n}},img:{tag:"img",attributes:{src:s.req+n,alt:t,class:"thumbnail-image"}},button:{tag:"button",textContent:n,attributes:{type:"button",id:s.id,class:"ae-button",name:t}},placeholder:{tag:"div",attributes:s},row:{tag:"div",attributes:{id:s.id,class:`flexbox row ${s.class||""}`},children:s.children},col:{tag:"div",attributes:{id:s.id,class:`flexbox col ${s.class||""}`},children:s.children},panel:{tag:"div",attributes:{id:s.id,class:`panel padding ${s.class||""}`},children:s.children},default:{tag:"input",attributes:{type:"text",value:n||""}}},o=i[e]||i.default,a=document.createElement(o.tag);return((r,u)=>{Object.entries(u).forEach(([d,m])=>{typeof d=="string"&&d.trim()!==""?d==="textContent"?r.textContent=m:d==="checked"?r.checked=!!m:d==="selected"?r.selected=!!m:(typeof m=="string"||typeof m=="number")&&r.setAttribute(d,m):console.warn(`Invalid attribute name: ${d}`)})})(a,o.attributes),o.children&&o.children.forEach(r=>{const u=Object.keys(r)[0],d=r[u],m=d.value!==void 0?d.value:this.itemData[u]||"",g=this.createElement(d.type,u,m,d);a.appendChild(g)}),a};_e.prototype.addElementToForm=function(e,t){const n=document.createElement("div");n.classList.add("panel","col","padding"),t.id&&(n.id=t.id);const s=document.createElement("label");s.setAttribute("for",e),s.classList.add("flexbox"),s.textContent=t.label||e.replace("_"," ").toUpperCase();const i=this.createElement(t.type,e,this.itemData[e],t);n.appendChild(s),n.appendChild(i),this.form.appendChild(n)};_e.prototype.createForm=function(e){Object.entries(e).forEach(([i,o])=>{(this.itemData.hasOwnProperty(i)||o.draw==="true")&&this.addElementToForm(i,o)});const t=document.createElement("div");t.classList.add("panel","row","flex-end");const n=document.createElement("button");n.setAttribute("type","submit"),n.textContent=this.submit_label,n.classList.add("ae-submit-button"),t.appendChild(n);const s=document.createElement("button");if(s.setAttribute("type","button"),s.textContent="Cancel",s.classList.add("ae-submit-button","cancel"),t.appendChild(s),this.itemData.id){const i=document.createElement("button");i.setAttribute("type","button"),i.textContent="Delete",i.classList.add("ae-submit-button","delete"),t.appendChild(i)}return this.form.appendChild(t),this.form.addEventListener("submit",i=>this.handleSubmit(i)),this.form};_e.prototype.createValueElement=function(e,t,n,s,i){let o=`?t=${new Date().getTime()}`;i&&i.indexOf("filename=")!==-1&&(o=`&t=${new Date().getTime()}`);const a={filename:{textContent:this.formatFilename(n)},filesize:{textContent:this.formatFileSize(n)},"date-format":{textContent:this.formatDate(n)},img:{tag:"img",attributes:{src:i+n+o,alt:t,class:"thumbnail-image"}},button:{tag:"button",textContent:s||"button",attributes:{class:`ae-button ${t}`,name:t}},default:{textContent:n||""}},l=a[e]||a.default;let r;return l.tag?(r=document.createElement(l.tag),Object.entries(l.attributes).forEach(([u,d])=>{r.setAttribute(u,d)}),l.textContent&&(r.textContent=l.textContent)):(r=document.createElement("span"),r.textContent=l.textContent),r};_e.prototype.createTable=function(e){const t=document.createElement("table");return t.classList.add("non-editable-table","panel"),Object.entries(e).forEach(([n,s])=>{const i=document.createElement("tr"),o=document.createElement("td");o.textContent=n.replace("_"," ").toUpperCase(),i.appendChild(o);const a=document.createElement("td"),l=this.createValueElement(s.type,n,this.itemData[n]);a.appendChild(l),i.appendChild(a),t.appendChild(i)}),t};_e.prototype.createHtmlElement=function(e){const t=document.createElement("div");return t.classList.add("non-editable-div","flexbox","col","shrink"),Object.entries(e).forEach(([n,s])=>{const i=document.createElement("div");if(i.classList.add("panel",n),s.showLabel!==!1){const a=document.createElement("label");a.textContent=n.replace("_"," ").toUpperCase(),i.appendChild(a)}const o=this.createValueElement(s.type,n,this.itemData[n],s.label||"",s.api);i.appendChild(o),t.appendChild(i)}),t};_e.prototype.buildTags=function(e){const t=/[-_\w']+/g;function n(o){return Object.keys(o).reduce((l,r)=>l+r.length,0)/Object.keys(o).length>=16}const s={},i=e.ss_tag_frequency||{};for(const o of Object.values(i))for(const[a,l]of Object.entries(o)){const r=a.trim();s[r]=(s[r]||0)+parseInt(l,10)}if(Object.keys(s).length>0&&n(s)){const o={};for(const[a,l]of Object.entries(s)){const r=a.match(t)||[];for(const u of r)u.length>=3&&(o[u]=(o[u]||0)+l)}return Object.entries(o).sort(([,a],[,l])=>l-a).map(([a,l])=>[a,l])}return Object.entries(s).sort(([,o],[,a])=>a-o).map(([o,a])=>[o,a])};_e.prototype.createTagsElement=function(e,t){const n=this.buildTags(e);if(n.length>0){const s=document.createElement("div");s.classList.add("non-editable-tags","flexbox","shrink");const i=document.createElement("div");if(i.classList.add("panel","flexbox","row","padding"),t){const o=document.createElement("label");o.textContent=t.toUpperCase(),i.appendChild(o)}return Object.entries(n).forEach(o=>{const a=document.createElement("button");a.type="button",a.textContent=o[1][0];const l=document.createElement("span");l.classList.add("tag-num"),l.textContent=o[1][1],a.appendChild(l),i.appendChild(a)}),s.appendChild(i),s}return!1};_e.prototype.afterFormSubmit=function(e,t,n){};_e.prototype.beforeFormSubmit=function(e){return e};_e.prototype.handleSubmit=async function(e){e.preventDefault();const t=new FormData(this.form),n=Object.fromEntries(t.entries());let s=n;s.table_name=this.table_name,s.name=this.itemData.name,s=this.beforeFormSubmit(n);let i;s.file&&(i=s.file,delete s.file);const o=new FormData;o.append("payload",JSON.stringify(s)),i&&o.append("file",i);try{const a=await fetch(this.url,{method:"POST",body:o});if(!a.ok)throw new Error(`HTTP error! Status: ${a.status}`);const l=await a.json();await this.afterFormSubmit(n,l.data,l.message)}catch(a){console.error("Failed to fetch data:",a)}};async function _n(e,t){try{const n=await fetch("/sd_webui_ux/delete_invalid_items",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({table_name:e.table_name})});if(!n.ok)throw new Error(`DELETE failed! Status: ${n.status}`);const s=await fetch("/sd_webui_ux/import_update_table",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({table_name:e.table_name})});if(!s.ok)throw new Error(`IMPORT failed! Status: ${s.status}`);t.showLoadingIndicator();const i=s.body.getReader(),o=new TextDecoder;for(;;){const{done:a,value:l}=await i.read();if(a)break;const u=o.decode(l,{stream:!0}).split(` +`).filter(d=>d.trim());for(const d of u)try{const m=JSON.parse(d);t.updateLoadingIndicator(Math.round(m.progress)),console.log(`Processed ${m.processed}/${m.total} (${m.progress}%)`)}catch(m){console.error("JSON parse error:",m,"Raw:",d)}}return t.hideLoadingIndicator(),e.skip=0,await t.updateParamsAndFetch(e,0),{success:!0,message:"Table resynced successfully"}}catch(n){return console.error("Operation failed:",n),t.hideLoadingIndicator(),{success:!1,error:n.message}}}async function Wi(){Ut("checkpoints","checkpoint","stable-diffusion/")}async function Gi(){Ut("textual_inversion","textualinversion","embeddings/")}async function Vi(){Ut("lora","lora","lora/")}async function Xi(){Ut("hypernetworks","hypernetwork","hypernetworks/")}function Yi(e,t){const n=e.parentElement.querySelector(".ae-virtual-detail-content");n.innerHTML="",n.appendChild(t)}async function Zi(e,t,n,s){const i=`/sd_webui_ux/get_internal_metadata?type=${encodeURIComponent(e)}&name=${encodeURIComponent(t)}`;os(i,function(o){console.log(o),n.showDetail();const a=window.extraNetworksFlattenMetadata(o),l=window.createVisualizationTable(a,0);Yi(s,l)})}const Xe={};async function Ut(e,t,n){const s=document.querySelector(`#${e}_cardholder`),i=document.querySelector(`#${e}_search`);document.querySelector(`#${e}_sort`);const o=document.querySelector(`#${e}_order`);document.querySelector(`#${e}_sd_version`);const a=document.querySelector(`#${e}_refresh`),l=document.querySelector(`#${e}_rebuild`),r=document.querySelector(`#${e}_clear`),u=document.querySelector(`#${e}_show-dirs`),d=document.querySelector(`#${e}_search_row`),m=document.querySelector(`#layout_db_${e} > div`);new ResizeObserver(()=>{if(!m||!u)return;const b=m.offsetHeight,S=u.offsetHeight+10;b>S?d.style.order="100":d.style.order=""}).observe(m),Xe[`txt2img_${t}`]=[],Xe[`img2img_${t}`]=[];const L=100,x="/sd_webui_ux/get_items_from_db",j="GET",I={table_name:t,skip:0,limit:L,sort_by:"name",order:"asc",search_term:""},M={title:"name",url:"preview",dataPath:"items"},f={[`#${e}_search`]:"search_term",[`#${e}_sort`]:"sort_by",[`#${e}_search_in`]:"search_columns",[`#${e}_sd_version`]:"sd_version"},y=b=>(b.skip=0,b),h=new Je(s,[],18,M,x,I,j),v=vt(f,I,h,y);h.setNextCursor=function(b){b&&this.data.length>0?this.params.skip=this.params.cursor=b:delete this.params.cursor};let O="thumbnail";h.createItemElement=b=>Di(b,O,h.selected,"/sd_extra_networks/thumb?filename=");function W(b,S,z){var F;const V=window.UIUX.FOCUS_PROMPT;let J=((F=S.prompt)==null?void 0:F.replace("opts.extra_networks_default_multiplier",S.preferred_weight>0?S.preferred_weight:opts.extra_networks_default_multiplier))||"";J+=S.activation_text||"";const se=S.negative_prompt||"";if(b.classList.contains("copy-path"))navigator.clipboard.writeText(S.filename);else if(b.classList.contains("fullsize-button"))h.scrollToId(S.id),h.isFullSize?(O="thumbnail",h.setFullSize(!1),h.setLayout("vertical"),b.classList.remove("active")):(O="local_preview",h.setFullSize(!0),h.setLayout("vertical"),b.classList.add("active"));else if(b.classList.contains("info-button"))h.setInfo(!h.isInfo);else if(b.classList.contains("fullScreen-button"))h.scrollToId(S.id),h.setFullScreen(!h.isFullScreen);else if(b.classList.contains("show-meta"))Zi(S.type,S.name,h,s);else if(b.classList.contains("edit-meta"))R(S,S.id);else if(b.classList.contains("send-params-button")){const ie=`/sd_extra_networks/thumb?filename=${encodeURIComponent(S.preview||S.local_preview)}`;ot(ie,`#pnginfo_send_${V} button`)}else if(S.type==="Checkpoint"){if(h.isFullSize)return;window.selectCheckpoint(S.name)}else if(S.type==="TextualInversion"){if(h.isFullSize)return;window.cardClicked(V,J,se,!0),Xe[`${V}_textualinversion`].push({id:S.id,name:S.name,value:J})}else if(S.type==="LORA"){if(h.isFullSize)return;window.cardClicked(V,J,se,!1),Xe[`${V}_lora`].push({id:S.id,name:S.name,value:`J.id.toString()===z);V&&W(b.target,V)}b.stopPropagation()},l.addEventListener("click",b=>{qe("/sd_webui_ux/generate-thumbnails",{table_name:t},function(S){console.log(S),setTimeout(()=>{v.skip=0,h.updateParamsAndFetch(v,0)},1e3)})}),o.addEventListener("click",b=>{const S=o.classList.contains("active");v.skip=0,v.order=S?"desc":"asc",h.updateParamsAndFetch(v,0)}),r.addEventListener("click",b=>{i.value="",He(i)}),h.updateParamsAndFetch(v,0);let ne;t!=="checkpoint"?document.querySelectorAll("#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea").forEach(b=>{b.addEventListener("input",C),b.addEventListener("focus",$)}):ne=fi(h);let q;function A(){q=new we(`#${e}_tree_view`,"/sd_webui_ux/get_items_by_path",t,n),q.initialize(),ne==null||ne.setTreeViewCallback(b=>{q.selected=b,q.updateSelectedItems()}),q.createFileItem=function(b,S){var F;const z=document.createElement("li");z.dataset.name=b[S].name,z.dataset.id=b[S].id,(F=this.selected)!=null&&F.has(b[S].name)&&z.classList.add("active"),z.innerHTML=`${b[S].name}`,z.classList.add("li-file");const V=document.createElement("button");V.className="edit-meta edit-button card-button";const J=document.createElement("button");J.className="copy-path copy-path-button card-button";const se=document.createElement("div");if(se.className="item-actions",se.appendChild(J),b[S].metadata_exists){const ie=document.createElement("button");ie.className="show-meta metadata-button card-button",se.appendChild(ie)}return se.appendChild(V),z.appendChild(se),z},q.onFolderClicked=function(b,S,z){},q.onFileClicked=function(b,S){W(b,S,S.id)}}u.addEventListener("click",()=>{A()},{once:!0}),a.addEventListener("click",async()=>{const b=await _n(v,h);q&&await q.initialize(),b.success||console.warn(`Resync failed: ${b.error}`)});function p(){q&&(q.selected=h.selected,q.updateSelectedItems())}function C(b){const S=window.UIUX.FOCUS_PROMPT,z=Xe[`${S}_${t}`];setTimeout(()=>{let V="";document.querySelectorAll(`#${S}_prompt textarea, #${S}_neg_prompt textarea`).forEach(F=>{V+=F.value});const J=z.filter(F=>F&&F.value&&V.includes(F.value));Xe[`${S}_${t}`]=J;const se=new Set(J.map(F=>F.name));h.selected=se,h.forceRenderItems(),p()},100)}function $(b){const S=window.UIUX.FOCUS_PROMPT;let z="";if(document.querySelectorAll(`#${S}_prompt textarea, #${S}_neg_prompt textarea`).forEach(se=>{z+=` ${se.value}`}),z.length>2){let se=function(U){return U.replace(/[()]+|:[0-9]+(.[0-9]+)?/g,"").trim()};var V=se;let ie=z.trim().split(/[\s,.]+/).map(se).filter(Boolean);if(t==="lora"||t==="hypernetwork"){let K=function(ce){if(ce.includes(`${U}:`)){const me=ce.split(`${U}:`)[1].split(":")[0];return`<${U}:${me}:opts.extra_networks_default_multiplier>`}return""};var J=K;const U=t==="lora"?"lora":"hypernet";ie=z.trim().split("<").map(K).filter(Boolean)}ie.length>0&&qe("/sd_webui_ux/search_words_in_tables_columns",{tables:t,columns:"prompt",words:ie},function(B){const me=B[t].map(w=>{let _=w.prompt;return(t==="lora"||t==="hypernetwork")&&(_=`<${t==="lora"?"lora":"hypernet"}:${w.prompt.split(":")[1]}`),{id:w.id,name:w.name,value:_}});Xe[`${S}_${t}`]=me,h.selected=new Set(me.map(w=>w.name)),h.forceRenderItems(),p()})}else h.selected=new Set,h.forceRenderItems(),p()}function R(b,S){const z={local_preview:{type:"input",name:"local_preview"},sd_version:{type:"select",name:"sd_version",label:"SD Version",value:b.sd_version,options:pn},preferred_weight:{type:"number",name:"preferred_weight",label:"Preferred Weight"},activation_text:{type:"textarea",name:"activation_text",label:"Activation Text",rows:4},negative_prompt:{type:"textarea",name:"negative_prompt",label:"Negative Prompt",rows:2},description:{type:"textarea",name:"description",label:"Description",rows:2},tags:{type:"textarea",name:"tags",label:"Tags"},notes:{type:"textarea",name:"notes",label:"Notes",rows:2}},V={filename:{type:"filename"},filesize:{type:"filesize"},type:{type:"text"},hash:{type:"text"},date_created:{type:"date-format"},date_modified:{type:"date-format"}},J={thumbnail:{type:"img",api:"/sd_extra_networks/thumb?filename=",showLabel:!1},replace_preview:{type:"button",label:"Replace Preview",showLabel:!1},browse_preview:{type:"button",label:"Browse Preview",showLabel:!1}},se=`/sd_webui_ux/get_internal_metadata?type=${encodeURIComponent(b.type)}&name=${encodeURIComponent(b.name)}`;os(se,function(F){var ee;const ie=F,U="/sd_webui_ux/update_user_metadata",K=document.getElementById("formContainer"),B=new _e(U,t,b,K),ce=B.createForm(z),me=B.createTable(V),w=B.createHtmlElement(J),_=B.createTagsElement(ie,"Train Tags");if(_){(ee=ce.children[2])==null||ee.insertAdjacentElement("afterend",_);let N=ce.querySelector("#activation_text");ce.addEventListener("click",H=>{const te=H.target.closest("textarea");te&&(N=te);const ae=H.target.closest("button[type=button]");if(ae){const ye=ae.childNodes[0].textContent.trim(),De=N.value;De.includes(ye)?N.value=De.split(",").map(Qe=>Qe.trim()).filter(Qe=>Qe!==ye).join(", "):N.value+=(De?", ":"")+ye}})}const E=document.createElement("div");E.classList.add("non-editable-info","flexbox","padding","shrink"),E.appendChild(w),E.appendChild(me),h.showDetail();const P=s.parentElement.querySelector(".ae-virtual-detail-content");P.innerHTML="",P.appendChild(E),P.appendChild(ce);function Z(N){const H=N.lastIndexOf(".");return H===-1?N:N.substring(0,H)}function oe(N){const H=N.lastIndexOf("/"),te=N.substring(0,H),ae=N.substring(H+1),ye=ae.lastIndexOf("."),De=ae.substring(0,ye);return{path:te,filename:ae,filename_no_ext:De}}let Q,le;B.beforeFormSubmit=function(N){return N.id=b.id,N.type=b.type,N.name=b.name,N.prompt=b.prompt,N.filename=b.filename,Q&&(N.source_file=Q),le&&(N.file=le),console.log(N),N};let he=b.local_preview;B.afterFormSubmit=function(N){h.hideDetail();const H=oe(he),te=new Date().getTime();N.thumbnail=`${H.path}/thumbnails/${H.filename_no_ext}.thumb.webp`,N.timestamp=`&t=${te}`,h.updateDataById(N,S),q==null||q.update()};const pe=w.querySelector("button.replace_preview"),Ce=w.querySelector(".thumbnail-image");pe.addEventListener("click",N=>{const H=window.UIUX.FOCUS_PROMPT,te=document.querySelector(`#${H}_gallery [data-testid="detailed-image"]`);te&&(Q=te.src.split("file=")[1].split("?")[0],Ce.style.filter="grayscale(1)")});const be=document.createElement("input");be.type="file",be.accept="image/jpeg, image/png, image/webp, image/gif",be.addEventListener("change",N=>{const H=N.target.files[0];H&&(le=H,Ce.style.filter="grayscale(1)")}),w.querySelector("button.browse_preview").addEventListener("click",N=>{be.click()})})}}async function Ki(){Ji("styles","styles","styles_data/")}const nt={};let G,de,Ue,an;async function Ji(e,t,n){an=document.querySelector(`#${e}_cardholder`);const s=document.querySelector(`#${e}_search`);document.querySelector(`#${e}_sort`);const i=document.querySelector(`#${e}_order`);document.querySelector(`#${e}_sd_version`);const o=document.querySelector(`#${e}_refresh`),a=document.querySelector(`#${e}_rebuild`),l=document.querySelector(`#${e}_clear`),r=document.querySelector(`#${e}_show-dirs`);nt[`txt2img_${t}`]=[],nt[`img2img_${t}`]=[];const u=100,d="/sd_webui_ux/get_items_from_db",m="GET",g={table_name:t,skip:0,limit:u,sort_by:"name",order:"asc",search_term:""},L={title:"name",url:"preview",dataPath:"items"},x={[`#${e}_search`]:"search_term",[`#${e}_sort`]:"sort_by",[`#${e}_search_in`]:"search_columns",[`#${e}_sd_version`]:"sd_version"},j=A=>(A.skip=0,A);G=new Je(an,[],18,L,d,g,m),Ue=vt(x,g,G,j),G.setNextCursor=function(A){A&&this.data.length>0?this.params.skip=this.params.cursor=A:delete this.params.cursor};let I="thumbnail";G.createItemElement=A=>ps(A,I,G.selected,"/sd_styles/thumb/"),G.clickHandler=function(A){if(G.dragged||G.scrollDelta)return;const p=A.target.closest(".item.card"),C=p==null?void 0:p.dataset.id;if(C){const $=this.data.find(R=>R.id.toString()===C);$&&v(A.target,$)}A.preventDefault(),A.stopPropagation()},a.addEventListener("click",A=>{qe("/sd_webui_ux/generate-thumbnails",{table_name:t},function(p){setTimeout(()=>{Ue.skip=0,G.updateParamsAndFetch(Ue,0)},1e3)})}),i.addEventListener("click",A=>{const p=i.classList.contains("active");Ue.skip=0,Ue.order=p?"desc":"asc",G.updateParamsAndFetch(Ue,0)}),l.addEventListener("click",A=>{s.value="",He(s)}),G.updateParamsAndFetch(Ue,0);function M(){de||(de=new we(`#${e}_tree_view`,"/sd_webui_ux/get_items_by_path",t,n),de.initialize(),de.createFileItem=function(A,p){var S;const C=document.createElement("li");C.dataset.name=A[p].name,C.dataset.id=A[p].id,(S=this.selected)!=null&&S.has(A[p].name)&&C.classList.add("active"),C.innerHTML=`${A[p].name}`,C.classList.add("li-file");const $=document.createElement("button");$.className="edit-meta edit-button card-button";const R=document.createElement("button");R.className="copy-path copy-path-button card-button";const b=document.createElement("div");return b.className="item-actions",b.appendChild(R),b.appendChild($),C.appendChild(b),C},de.onFolderClicked=function(A,p,C){},de.onFileClicked=function(A,p){v(A,p,p.id)})}r.addEventListener("click",()=>{M()});function f(){de&&(de.selected=G.selected,de.updateSelectedItems())}o.addEventListener("click",async()=>{const A=await _n(Ue,G);de&&await de.initialize(),A.success||console.warn(`Resync failed: ${A.error}`)});function y(A){const p=window.UIUX.FOCUS_PROMPT,C=nt[`${p}_${t}`];setTimeout(()=>{let $="";document.querySelectorAll(`#${p}_prompt textarea, #${p}_neg_prompt textarea`).forEach(S=>{$+=S.value});const R=C.filter(S=>S&&S.value&&$.includes(S.value));nt[`${p}_${t}`]=R;const b=new Set(R.map(S=>S.name));G.selected=b,G.forceRenderItems(),f()},100)}function h(A){const p=window.UIUX.FOCUS_PROMPT;let C="";if(document.querySelectorAll(`#${p}_prompt textarea`).forEach(R=>{C+=`${R.value}`}),C.length>2){let R=function(V){return V.replace(/[()]+|:[0-9]+(.[0-9]+)?/g,"").trim()};var $=R;const z=C.trim().split(". ").map(R).filter(Boolean).map(V=>". "+V);z.length>0&&qe("/sd_webui_ux/search_words_in_tables_columns",{words:z,tables:t,columns:"prompt",threshold:1},function(se){const F=se[t];console.log(F);const ie=F.map(U=>({id:U.id,name:U.name,value:U.prompt}));nt[`${p}_${t}`]=ie,G.selected=new Set(ie.map(U=>U.name)),f()})}else G.selected=new Set,f();G.forceRenderItems(),f()}document.querySelectorAll("#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea").forEach(A=>{A.addEventListener("input",y),A.addEventListener("focus",h)});function v(A,p,C){const $=window.UIUX.FOCUS_PROMPT,R=p.prompt||"",b=p.negative||"";if(A.classList.contains("copy-path"))navigator.clipboard.writeText(p.filename);else if(A.classList.contains("fullsize-button"))G.scrollToId(p.id),G.isFullSize?(I="thumbnail",G.setFullSize(!1),G.setLayout("vertical"),A.classList.remove("active")):(I="local_preview",G.setFullSize(!0),G.setLayout("vertical"),A.classList.add("active"));else if(A.classList.contains("tile-button"))G.setTileable(!G.isTileable);else if(A.classList.contains("info-button"))G.setInfo(!G.isInfo);else if(A.classList.contains("fullScreen-button"))G.scrollToId(p.id),G.setFullScreen(!G.isFullScreen);else if(A.classList.contains("edit-meta"))W(p,p.id);else if(A.classList.contains("delete-button"))O(p,p.id);else if(A.classList.contains("send-params-button")){const S=`/sd_styles/thumb/${encodeURIComponent(p.local_preview)}`;ot(S,`#pnginfo_send_${$} button`)}else if(p.type==="Style"){if(G.isFullSize)return;window.cardClicked($,R,b,!0),nt[`${$}_styles`].push({id:p.id,name:p.name,value:R})}}function O(A,p){const C="/sd_webui_ux/delete_item",$={table_name:t,item_id:A.id};qe(C,$,function(R){G.removeDataById(A.id),de==null||de.update()})}function W(A,p){if(M(),!de.subpaths){setTimeout(()=>{W(A)},1e3);return}const C="styles",$=de.subpaths,R=new Set($.map(ee=>ee.relativePath)),b=Array.from(R);let S=[{value:"None",textContent:"None"}],z;b.forEach(ee=>{var N;(N=A.filename)!=null&&N.includes(`${ee}/`)&&(z=ee),S.push({value:ee,textContent:ee})});const V={local_preview:{type:"input",id:"local_preview_path",name:"local_preview",label:"Local Preview"},row:{type:"row",draw:"true",id:"parent_folder_select_row",label:"Parent Category / Filename",children:[{parent_folder:{type:"select",id:"parent_folder_select",class:"grow",value:z,options:S}},{save_path:{type:"input",id:"parent_folder_save",class:"grow",value:A.name,label:"Style Name"}}]},sd_version:{type:"select",name:"sd_version",label:"SD Version",value:A.sd_version,options:pn},prompt:{type:"textarea",name:"prompt",label:"Prompt",rows:4},negative:{type:"textarea",name:"negative",label:"Negative Prompt",rows:2},tags:{type:"textarea",name:"tags",label:"Tags"},description:{type:"textarea",name:"description",label:"Description",rows:2}},J={filename:{type:"filename",label:"Filename"},filesize:{type:"filesize",label:"Filesize"},type:{type:"text",label:"Type"},hash:{type:"text",label:"Hash"},date_created:{type:"date-format",label:"Date Created"},date_modified:{type:"date-format",label:"Date Modified"}},se={thumbnail:{type:"img",api:"/sd_styles/thumb/",showLabel:!1},replace_preview:{type:"button",label:"Replace Preview",showLabel:!1}},F="/sd_webui_ux/update_user_metadata",ie=document.getElementById("formContainer"),U=new _e(F,C,A,ie),K=U.createForm(V),B=U.createTable(J),ce=U.createHtmlElement(se),me=document.createElement("div");me.classList.add("non-editable-info","flexbox","padding","shrink"),me.appendChild(ce),me.appendChild(B),G.showDetail();const w=an.parentElement.querySelector(".ae-virtual-detail-content");w.innerHTML="",w.appendChild(me),w.appendChild(K);const _=K.querySelector("#parent_folder_select"),E=K.querySelector("#parent_folder_select_row label"),P=K.querySelector("#parent_folder_save"),Z=K.querySelector("#local_preview_path input"),oe=K.querySelector("button.delete");let Q;const le=ee=>ee.replace(/\/{2,}/g,"/"),he=ee=>{const N=_.value!=="None"?_.value:"",H=P.value,te=`${N}/${H}`;E.textContent=`Style will be saved: ${le(te)}.png`,Q=le(`${$[0].basePath}/${te}.png`),Z.value=Q};_.addEventListener("change",he),P.addEventListener("input",he),he();function pe(ee){const N=ee.lastIndexOf("/"),H=ee.substring(0,N),te=ee.substring(N+1),ae=te.lastIndexOf("."),ye=te.substring(0,ae);return{path:H,filename:te,filename_no_ext:ye}}let Ce;U.beforeFormSubmit=function(ee){return ee.name=pe(Q).filename_no_ext,ee.filename=Q,ee.type="Style",A.id&&(ee.id=A.id),Ce&&(ee.source_file=Ce),ee},U.afterFormSubmit=function(ee,N){G.hideDetail(),G.updateDataById(N,N.id),de==null||de.update()};function be(){const ee=window.UIUX.FOCUS_PROMPT,N=document.querySelector(`#${ee}_gallery [data-testid="detailed-image"]`);if(N){const H=ce.querySelector(".thumbnail-image");Ce=N.src.split("file=")[1].split("?")[0],H.style.filter="grayscale(1)"}}ce.querySelector("button.replace_preview").addEventListener("click",ee=>{be()}),A.id||be(),A.id&&oe.addEventListener("click",ee=>{const N="/sd_webui_ux/delete_item",H={table_name:C,item_id:A.id};qe(N,H,function(te){console.log(te),G.hideDetail(),Ue.skip=0,G.updateParamsAndFetch(Ue,0),de==null||de.update()})})}function ne(){const A=window.UIUX.FOCUS_PROMPT,p=document.querySelector(`#${A}_prompt textarea`),C=document.querySelector(`#${A}_neg_prompt textarea`),$=b=>b.replace(/\s{2,}/g," ").replace(/(\. )\1+/g,". "),R={};R.prompt=$(". "+p.value),R.negative=$(". "+C.value),R.name="Untitled",R.description="",R.tags="",R.local_preview="",W(R)}document.querySelector("#layout_db_styles button.create-style").addEventListener("click",A=>{ne()})}async function Qi(){eo("output_images","images","outputs/")}const st={};let Y,ue,Ge,rn;async function eo(e,t,n){rn=document.querySelector(`#${e}_cardholder`);const s=document.querySelector(`#${e}_search`),i=document.querySelector(`#${e}_sort`);i.value="date_created";const o=document.querySelector(`#${e}_order`);document.querySelector(`#${e}_sd_version`);const a=document.querySelector(`#${e}_refresh`),l=document.querySelector(`#${e}_rebuild`),r=document.querySelector(`#${e}_clear`),u=document.querySelector(`#${e}_show-dirs`);document.querySelector("#refresh_output_images_database"),st[`txt2img_${t}`]=[],st[`img2img_${t}`]=[];const d=100,m="/sd_webui_ux/get_items_from_db",g="GET",L={table_name:t,skip:0,limit:d,sort_by:"date_created",order:"desc",search_term:""},x={title:"name",url:"preview",dataPath:"items"},j={[`#${e}_search`]:"search_term",[`#${e}_sort`]:"sort_by",[`#${e}_search_in`]:"search_columns",[`#${e}_sd_version`]:"sd_version"},I=p=>(p.skip=0,p);Y=new Je(rn,[],18,x,m,L,g),Ge=vt(j,L,Y,I),Y.setNextCursor=function(p){p&&this.data.length>0?this.params.skip=this.params.cursor=p:delete this.params.cursor};let M="thumbnail";Y.createItemElement=p=>ps(p,M,Y.selected,"/sd_image/thumb/"),Y.clickHandler=function(p){if(Y.dragged||Y.scrollDelta)return;const C=p.target.closest(".item.card"),$=C==null?void 0:C.dataset.id;if($){const R=this.data.find(b=>b.id.toString()===$);R&&O(p.target,R)}p.preventDefault(),p.stopPropagation()},l.addEventListener("click",p=>{qe("/sd_webui_ux/generate-thumbnails",{table_name:t},function(C){setTimeout(()=>{Ge.skip=0,Y.updateParamsAndFetch(Ge,0)},1e3)})}),o.addEventListener("click",p=>{const C=o.classList.contains("active");Ge.skip=0,Ge.order=C?"desc":"asc",Y.updateParamsAndFetch(Ge,0)}),r.addEventListener("click",p=>{s.value="",He(s)}),o.click();function f(){ue||(ue=new we(`#${e}_tree_view`,"/sd_webui_ux/get_items_by_path",t,n),ue.initialize(),ue.createFileItem=function(p,C){var z;const $=document.createElement("li");$.dataset.name=p[C].name,$.dataset.id=p[C].id,(z=this.selected)!=null&&z.has(p[C].name)&&$.classList.add("active"),$.innerHTML=`${p[C].name}`,$.classList.add("li-file");const R=document.createElement("button");R.className="edit-meta edit-button card-button";const b=document.createElement("button");b.className="copy-path copy-path-button card-button";const S=document.createElement("div");return S.className="item-actions",S.appendChild(b),S.appendChild(R),$.appendChild(S),$},ue.onFolderClicked=function(p,C,$){},ue.onFileClicked=function(p,C){O(p,C,C.id)})}u.addEventListener("click",()=>{f()});function y(){ue&&(ue.selected=Y.selected,ue.updateSelectedItems())}a.addEventListener("click",async()=>{const p=await _n(Ge,Y);ue&&await ue.initialize(),p.success||console.warn(`Resync failed: ${p.error}`)});function h(p){const C=window.UIUX.FOCUS_PROMPT,$=st[`${C}_${t}`];setTimeout(()=>{let R="";document.querySelectorAll(`#${C}_prompt textarea, #${C}_neg_prompt textarea`).forEach(z=>{R+=z.value});const b=$.filter(z=>z&&z.value&&R.includes(z.value));st[`${C}_${t}`]=b;const S=new Set(b.map(z=>z.name));Y.selected=S,Y.forceRenderItems(),y()},100)}function v(p){const C=window.UIUX.FOCUS_PROMPT;let $="";if(document.querySelectorAll(`#${C}_prompt textarea`).forEach(b=>{$+=`${b.value}`}),$.length>2){let b=function(J){return J.replace(/[()]+|:[0-9]+(.[0-9]+)?/g,"").trim()};var R=b;const V=$.trim().split(". ").map(b).filter(Boolean).map(J=>". "+J);V.length>0&&qe("/sd_webui_ux/search_words_in_tables_columns",{words:V,tables:t,columns:"prompt",threshold:1},function(F){const ie=F[t];console.log(ie);const U=ie.map(K=>({id:K.id,name:K.name,value:K.prompt}));st[`${C}_${t}`]=U,Y.selected=new Set(U.map(K=>K.name))})}else Y.selected=new Set;Y.forceRenderItems(),y()}document.querySelectorAll("#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea").forEach(p=>{p.addEventListener("input",h),p.addEventListener("focus",v)});function O(p,C,$){const R=window.UIUX.FOCUS_PROMPT,b=C.prompt||"",S=C.negative||"";if(p.classList.contains("copy-path"))navigator.clipboard.writeText(C.filename);else if(p.classList.contains("fullsize-button"))Y.scrollToId(C.id),Y.isFullSize?(M="thumbnail",Y.setFullSize(!1),Y.setLayout("vertical"),p.classList.remove("active")):(M="local_preview",Y.setFullSize(!0),Y.setLayout("vertical"),p.classList.add("active"));else if(p.classList.contains("tile-button"))Y.setTileable(!Y.isTileable);else if(p.classList.contains("info-button"))Y.setInfo(!Y.isInfo);else if(p.classList.contains("fullScreen-button"))Y.scrollToId(C.id),Y.setFullScreen(!Y.isFullScreen);else if(p.classList.contains("edit-meta"))ne(C,C.id);else if(p.classList.contains("delete-button"))W(C,C.id);else if(p.classList.contains("send-params-button")){const z=`/sd_image/thumb/${encodeURIComponent(C.local_preview)}`;ot(z,`#pnginfo_send_${R} button`)}else if(C.type==="Image"){if(Y.isFullSize)return;window.cardClicked(R,b,S,!0),st[`${R}_${t}`].push({id:C.id,name:C.name,value:b})}}function W(p,C){qe("/sd_webui_ux/delete_item",{table_name:t,item_id:C},function(b){Y.removeDataById(C),ue==null||ue.update()})}function ne(p,C){if(f(),!ue.subpaths){setTimeout(()=>{ne(p)},1e3);return}const $="images",R=ue.subpaths,b=new Set(R.map(N=>N.relativePath)),S=Array.from(b);let z=[{value:"None",textContent:"None"}],V;S.forEach(N=>{var H;(H=p.filename)!=null&&H.includes(`${N}/`)&&(V=N),z.push({value:N,textContent:N})});const J={local_preview:{type:"input",id:"local_preview_path",name:"local_preview",label:"Local Preview"},row:{type:"row",draw:"true",id:"parent_folder_select_row",label:"Parent Category / Filename",children:[{parent_folder:{type:"select",id:"parent_folder_select",class:"grow",value:V,options:z}},{save_path:{type:"input",id:"parent_folder_save",class:"grow",value:p.name,label:"Image Name"}}]},sd_version:{type:"select",name:"sd_version",label:"SD Version",value:p.sd_version,options:pn},prompt:{type:"textarea",name:"prompt",label:"Prompt",rows:4},negative:{type:"textarea",name:"negative",label:"Negative Prompt",rows:2},tags:{type:"textarea",name:"tags",label:"Tags"},description:{type:"textarea",name:"description",label:"Description",rows:2}},se={filename:{type:"filename",label:"Filename"},filesize:{type:"filesize",label:"Filesize"},type:{type:"text",label:"Type"},hash:{type:"text",label:"Hash"},date_created:{type:"date-format",label:"Date Created"},date_modified:{type:"date-format",label:"Date Modified"}},F={thumbnail:{type:"img",api:"/sd_image/thumb/",showLabel:!1},replace_preview:{type:"button",label:"Replace Preview",showLabel:!1}},ie="/sd_webui_ux/update_user_metadata",U=document.getElementById("formContainer"),K=new _e(ie,$,p,U),B=K.createForm(J),ce=K.createTable(se),me=K.createHtmlElement(F),w=document.createElement("div");w.classList.add("non-editable-info","flexbox","padding","shrink"),w.appendChild(me),w.appendChild(ce),Y.showDetail();const _=rn.parentElement.querySelector(".ae-virtual-detail-content");_.innerHTML="",_.appendChild(w),_.appendChild(B);const E=B.querySelector("#parent_folder_select"),P=B.querySelector("#parent_folder_select_row label"),Z=B.querySelector("#parent_folder_save"),oe=B.querySelector("#local_preview_path input"),Q=B.querySelector("button.delete");let le;const he=N=>N.replace(/\/{2,}/g,"/"),pe=N=>{const H=E.value!=="None"?E.value:"",te=Z.value,ae=`${H}/${te}`;P.textContent=`Image will be saved: ${he(ae)}.png`,le=he(`${R[0].basePath}/${ae}.png`),oe.value=le};E.addEventListener("change",pe),Z.addEventListener("input",pe),pe();function Ce(N){const H=N.lastIndexOf("/"),te=N.substring(0,H),ae=N.substring(H+1),ye=ae.lastIndexOf("."),De=ae.substring(0,ye);return{path:te,filename:ae,filename_no_ext:De}}let be;K.beforeFormSubmit=function(N){return N.name=Ce(le).filename_no_ext,N.filename=le,N.type="Image",p.id&&(N.id=p.id),be&&(N.source_file=be),N},K.afterFormSubmit=function(N,H){Y.hideDetail(),Y.updateDataById(H,H.id),ue==null||ue.update()};function Ze(){const N=window.UIUX.FOCUS_PROMPT,H=document.querySelector(`#${N}_gallery [data-testid="detailed-image"]`);if(H){const te=me.querySelector(".thumbnail-image");be=H.src.split("file=")[1].split("?")[0],te.style.filter="grayscale(1)"}}me.querySelector("button.replace_preview").addEventListener("click",N=>{Ze()}),p.id||Ze(),p.id&&Q.addEventListener("click",N=>{const H="/sd_webui_ux/delete_item",te={table_name:$,item_id:p.id};qe(H,te,function(ae){console.log(ae),Y.hideDetail(),Ge.skip=0,Y.updateParamsAndFetch(Ge,0),ue==null||ue.update()})})}function q(){const p=window.UIUX.FOCUS_PROMPT,C=document.querySelector(`#${p}_prompt textarea`),$=document.querySelector(`#${p}_neg_prompt textarea`),R=S=>S.replace(/\s{2,}/g," ").replace(/(\. )\1+/g,". "),b={};b.prompt=R(". "+C.value),b.negative=R(". "+$.value),b.name="Untitled",b.description="",b.tags="",b.local_preview="",ne(b)}document.querySelector("#layout_db_output_images button.create-style").addEventListener("click",p=>{q()})}function to(e){const t=document.querySelector("#logger_screen");t&&(document.querySelector("#container-console-log").append(getLoggerUiUx()),t.remove()),console.log("Finishing optimizations for Extra Networks"),pi(),mi(),ri(),di(),ui(),document.querySelectorAll("#txt2img_styles_edit_button, #img2img_styles_edit_button").forEach(a=>{a.addEventListener("click",function(l){window.popup_trigger.click()})});function n(a){Mn.FOCUS_PROMPT=a.includes("txt2img")?"txt2img":"img2img"}if(document.querySelectorAll("#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea").forEach(a=>{a.addEventListener("focus",l=>{const r=l.target.closest(".gradio-textbox").id;n(r)})}),document.querySelectorAll("#about_tabitem img").forEach(a=>{const l=a.getAttribute("data-src");l&&(a.src=l.replace("file=extensions/sd-webui-ux/assets/",`${Ft}`))}),window.UIUX=Mn,Rt.setItem("UiUxComplete","true"),window.opts.uiux_enable_theme_editor&&_i(),window.opts.uiux_enable_civitai_explorer){document.querySelector("#civitai_explorer_nav").classList.remove("hidden");const l=document.querySelector("#civitai_nav_images"),r=document.querySelector("#civitai_nav_models");l.addEventListener("click",()=>{Bi()},{once:!0}),r.addEventListener("click",()=>{ji()},{once:!0})}const s=document.querySelector("#textual_inversion_nav"),i=document.querySelector("#lora_nav"),o=document.querySelector("#hypernetwork_nav");if(setTimeout(()=>{Wi()},500),s.addEventListener("click",()=>{Gi()},{once:!0}),i.addEventListener("click",()=>{Vi()},{once:!0}),o.addEventListener("click",()=>{Xi()},{once:!0}),window.opts.uiux_enable_sd_styles){const a=document.querySelector("#sd_styles_nav");a.classList.remove("hidden"),a.addEventListener("click",()=>{Ki()},{once:!0})}if(window.opts.uiux_enable_sd_output_images){const a=document.querySelector("#sd_output_images_nav");a.classList.remove("hidden"),a.addEventListener("click",()=>{Qi()},{once:!0})}qs(".layout-extra-networks"),zt||(document.querySelector("#github-project-link").href="https://github.com/anapnoe/sd-webui-ux")}async function no(){const e=at(),t=Ye();await Es(),t.insertAdjacentElement("afterbegin",e);const n=Zs((s,i)=>{s==="UiUxReady"&&i==="true"&&(to(),n())},"UiUxReady");(async()=>await ss(e))(),Fs(),setTimeout(()=>{xs("#infinite_image_browsing_container_wrapper iframe",["user.css","uiux-iibrowser.css"])},3e3)}async function so(){try{ks(),console.log("Starting DOM Optimizations"),oi(),ii(),console.log("Finishing DOM Optimizations"),Ts(Ps),Ve.gradio_major>3&&Ls("style.css","style-gradio-4.css",document.body),(async()=>(await Ds(),await no()))()}catch(e){console.error("Error in run sequence:",e)}}function io(){if(localStorage.setItem("UiUxReady","false"),localStorage.setItem("UiUxComplete","false"),!document.getElementById("logger_screen")){const n=document.createElement("div");n.id="logger_screen",n.style="position: fixed; inset: 0; background-color: black; z-index: 99999; display: flex; flex-direction: column; overflow:auto;";const s=document.createElement("div");s.id="loggerUiUx",n.append(s),document.body.append(n)}const e=new MutationObserver(async()=>{if(Qn()&&window.opts&&Object.keys(window.opts).length){e.disconnect();try{await so()}catch(s){console.error("Error running the function:",s)}}}),t=Ye();t?e.observe(t,{childList:!0,subtree:!0}):console.error("getGradioApp() did not return a valid target for observation")}io(); diff --git a/extensions-builtin/sd-webui-ux/javascript/libs/purify.es.mjs b/extensions-builtin/sd-webui-ux/javascript/libs/purify.es.mjs new file mode 100644 index 00000000..2d085551 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/libs/purify.es.mjs @@ -0,0 +1,1332 @@ +/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */ + +const { + entries, + setPrototypeOf, + isFrozen, + getPrototypeOf, + getOwnPropertyDescriptor +} = Object; +let { + freeze, + seal, + create +} = Object; // eslint-disable-line import/no-mutable-exports +let { + apply, + construct +} = typeof Reflect !== 'undefined' && Reflect; +if (!freeze) { + freeze = function freeze(x) { + return x; + }; +} +if (!seal) { + seal = function seal(x) { + return x; + }; +} +if (!apply) { + apply = function apply(fun, thisValue, args) { + return fun.apply(thisValue, args); + }; +} +if (!construct) { + construct = function construct(Func, args) { + return new Func(...args); + }; +} +const arrayForEach = unapply(Array.prototype.forEach); +const arrayPop = unapply(Array.prototype.pop); +const arrayPush = unapply(Array.prototype.push); +const stringToLowerCase = unapply(String.prototype.toLowerCase); +const stringToString = unapply(String.prototype.toString); +const stringMatch = unapply(String.prototype.match); +const stringReplace = unapply(String.prototype.replace); +const stringIndexOf = unapply(String.prototype.indexOf); +const stringTrim = unapply(String.prototype.trim); +const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty); +const regExpTest = unapply(RegExp.prototype.test); +const typeErrorCreate = unconstruct(TypeError); +/** + * Creates a new function that calls the given function with a specified thisArg and arguments. + * + * @param func - The function to be wrapped and called. + * @returns A new function that calls the given function with a specified thisArg and arguments. + */ +function unapply(func) { + return function (thisArg) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return apply(func, thisArg, args); + }; +} +/** + * Creates a new function that constructs an instance of the given constructor function with the provided arguments. + * + * @param func - The constructor function to be wrapped and called. + * @returns A new function that constructs an instance of the given constructor function with the provided arguments. + */ +function unconstruct(func) { + return function () { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + return construct(func, args); + }; +} +/** + * Add properties to a lookup table + * + * @param set - The set to which elements will be added. + * @param array - The array containing elements to be added to the set. + * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set. + * @returns The modified set with added elements. + */ +function addToSet(set, array) { + let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase; + if (setPrototypeOf) { + // Make 'in' and truthy checks like Boolean(set.constructor) + // independent of any properties defined on Object.prototype. + // Prevent prototype setters from intercepting set as a this value. + setPrototypeOf(set, null); + } + let l = array.length; + while (l--) { + let element = array[l]; + if (typeof element === 'string') { + const lcElement = transformCaseFunc(element); + if (lcElement !== element) { + // Config presets (e.g. tags.js, attrs.js) are immutable. + if (!isFrozen(array)) { + array[l] = lcElement; + } + element = lcElement; + } + } + set[element] = true; + } + return set; +} +/** + * Clean up an array to harden against CSPP + * + * @param array - The array to be cleaned. + * @returns The cleaned version of the array + */ +function cleanArray(array) { + for (let index = 0; index < array.length; index++) { + const isPropertyExist = objectHasOwnProperty(array, index); + if (!isPropertyExist) { + array[index] = null; + } + } + return array; +} +/** + * Shallow clone an object + * + * @param object - The object to be cloned. + * @returns A new object that copies the original. + */ +function clone(object) { + const newObject = create(null); + for (const [property, value] of entries(object)) { + const isPropertyExist = objectHasOwnProperty(object, property); + if (isPropertyExist) { + if (Array.isArray(value)) { + newObject[property] = cleanArray(value); + } else if (value && typeof value === 'object' && value.constructor === Object) { + newObject[property] = clone(value); + } else { + newObject[property] = value; + } + } + } + return newObject; +} +/** + * This method automatically checks if the prop is function or getter and behaves accordingly. + * + * @param object - The object to look up the getter function in its prototype chain. + * @param prop - The property name for which to find the getter function. + * @returns The getter function found in the prototype chain or a fallback function. + */ +function lookupGetter(object, prop) { + while (object !== null) { + const desc = getOwnPropertyDescriptor(object, prop); + if (desc) { + if (desc.get) { + return unapply(desc.get); + } + if (typeof desc.value === 'function') { + return unapply(desc.value); + } + } + object = getPrototypeOf(object); + } + function fallbackValue() { + return null; + } + return fallbackValue; +} + +const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); +const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']); +const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); +// List of SVG elements that are disallowed by default. +// We still need to know them so that we can do namespace +// checks properly in case one wants to add them to +// allow-list. +const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']); +const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']); +// Similarly to SVG, we want to know all MathML elements, +// even those that we disallow by default. +const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']); +const text = freeze(['#text']); + +const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']); +const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']); +const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']); +const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']); + +// eslint-disable-next-line unicorn/better-regex +const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode +const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm); +const TMPLIT_EXPR = seal(/\$\{[\w\W]*}/gm); // eslint-disable-line unicorn/better-regex +const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape +const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape +const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape +); +const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i); +const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex +); +const DOCTYPE_NAME = seal(/^html$/i); +const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i); + +var EXPRESSIONS = /*#__PURE__*/Object.freeze({ + __proto__: null, + ARIA_ATTR: ARIA_ATTR, + ATTR_WHITESPACE: ATTR_WHITESPACE, + CUSTOM_ELEMENT: CUSTOM_ELEMENT, + DATA_ATTR: DATA_ATTR, + DOCTYPE_NAME: DOCTYPE_NAME, + ERB_EXPR: ERB_EXPR, + IS_ALLOWED_URI: IS_ALLOWED_URI, + IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA, + MUSTACHE_EXPR: MUSTACHE_EXPR, + TMPLIT_EXPR: TMPLIT_EXPR +}); + +/* eslint-disable @typescript-eslint/indent */ +// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType +const NODE_TYPE = { + element: 1, + attribute: 2, + text: 3, + cdataSection: 4, + entityReference: 5, + // Deprecated + entityNode: 6, + // Deprecated + progressingInstruction: 7, + comment: 8, + document: 9, + documentType: 10, + documentFragment: 11, + notation: 12 // Deprecated +}; +const getGlobal = function getGlobal() { + return typeof window === 'undefined' ? null : window; +}; +/** + * Creates a no-op policy for internal use only. + * Don't export this function outside this module! + * @param trustedTypes The policy factory. + * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix). + * @return The policy created (or null, if Trusted Types + * are not supported or creating the policy failed). + */ +const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) { + if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') { + return null; + } + // Allow the callers to control the unique policy name + // by adding a data-tt-policy-suffix to the script element with the DOMPurify. + // Policy creation with duplicate names throws in Trusted Types. + let suffix = null; + const ATTR_NAME = 'data-tt-policy-suffix'; + if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) { + suffix = purifyHostElement.getAttribute(ATTR_NAME); + } + const policyName = 'dompurify' + (suffix ? '#' + suffix : ''); + try { + return trustedTypes.createPolicy(policyName, { + createHTML(html) { + return html; + }, + createScriptURL(scriptUrl) { + return scriptUrl; + } + }); + } catch (_) { + // Policy creation failed (most likely another DOMPurify script has + // already run). Skip creating the policy, as this will only cause errors + // if TT are enforced. + console.warn('TrustedTypes policy ' + policyName + ' could not be created.'); + return null; + } +}; +const _createHooksMap = function _createHooksMap() { + return { + afterSanitizeAttributes: [], + afterSanitizeElements: [], + afterSanitizeShadowDOM: [], + beforeSanitizeAttributes: [], + beforeSanitizeElements: [], + beforeSanitizeShadowDOM: [], + uponSanitizeAttribute: [], + uponSanitizeElement: [], + uponSanitizeShadowNode: [] + }; +}; +function createDOMPurify() { + let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal(); + const DOMPurify = root => createDOMPurify(root); + DOMPurify.version = '3.2.3'; + DOMPurify.removed = []; + if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) { + // Not running in a browser, provide a factory function + // so that you can pass your own Window + DOMPurify.isSupported = false; + return DOMPurify; + } + let { + document + } = window; + const originalDocument = document; + const currentScript = originalDocument.currentScript; + const { + DocumentFragment, + HTMLTemplateElement, + Node, + Element, + NodeFilter, + NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap, + HTMLFormElement, + DOMParser, + trustedTypes + } = window; + const ElementPrototype = Element.prototype; + const cloneNode = lookupGetter(ElementPrototype, 'cloneNode'); + const remove = lookupGetter(ElementPrototype, 'remove'); + const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling'); + const getChildNodes = lookupGetter(ElementPrototype, 'childNodes'); + const getParentNode = lookupGetter(ElementPrototype, 'parentNode'); + // As per issue #47, the web-components registry is inherited by a + // new document created via createHTMLDocument. As per the spec + // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries) + // a new empty registry is used when creating a template contents owner + // document, so we use that as our parent document to ensure nothing + // is inherited. + if (typeof HTMLTemplateElement === 'function') { + const template = document.createElement('template'); + if (template.content && template.content.ownerDocument) { + document = template.content.ownerDocument; + } + } + let trustedTypesPolicy; + let emptyHTML = ''; + const { + implementation, + createNodeIterator, + createDocumentFragment, + getElementsByTagName + } = document; + const { + importNode + } = originalDocument; + let hooks = _createHooksMap(); + /** + * Expose whether this browser supports running the full DOMPurify. + */ + DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined; + const { + MUSTACHE_EXPR, + ERB_EXPR, + TMPLIT_EXPR, + DATA_ATTR, + ARIA_ATTR, + IS_SCRIPT_OR_DATA, + ATTR_WHITESPACE, + CUSTOM_ELEMENT + } = EXPRESSIONS; + let { + IS_ALLOWED_URI: IS_ALLOWED_URI$1 + } = EXPRESSIONS; + /** + * We consider the elements and attributes below to be safe. Ideally + * don't add any new ones but feel free to remove unwanted ones. + */ + /* allowed element names */ + let ALLOWED_TAGS = null; + const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]); + /* Allowed attribute names */ + let ALLOWED_ATTR = null; + const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]); + /* + * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements. + * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements) + * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list) + * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`. + */ + let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, { + tagNameCheck: { + writable: true, + configurable: false, + enumerable: true, + value: null + }, + attributeNameCheck: { + writable: true, + configurable: false, + enumerable: true, + value: null + }, + allowCustomizedBuiltInElements: { + writable: true, + configurable: false, + enumerable: true, + value: false + } + })); + /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */ + let FORBID_TAGS = null; + /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */ + let FORBID_ATTR = null; + /* Decide if ARIA attributes are okay */ + let ALLOW_ARIA_ATTR = true; + /* Decide if custom data attributes are okay */ + let ALLOW_DATA_ATTR = true; + /* Decide if unknown protocols are okay */ + let ALLOW_UNKNOWN_PROTOCOLS = false; + /* Decide if self-closing tags in attributes are allowed. + * Usually removed due to a mXSS issue in jQuery 3.0 */ + let ALLOW_SELF_CLOSE_IN_ATTR = true; + /* Output should be safe for common template engines. + * This means, DOMPurify removes data attributes, mustaches and ERB + */ + let SAFE_FOR_TEMPLATES = false; + /* Output should be safe even for XML used within HTML and alike. + * This means, DOMPurify removes comments when containing risky content. + */ + let SAFE_FOR_XML = true; + /* Decide if document with ... should be returned */ + let WHOLE_DOCUMENT = false; + /* Track whether config is already set on this instance of DOMPurify. */ + let SET_CONFIG = false; + /* Decide if all elements (e.g. style, script) must be children of + * document.body. By default, browsers might move them to document.head */ + let FORCE_BODY = false; + /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html + * string (or a TrustedHTML object if Trusted Types are supported). + * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead + */ + let RETURN_DOM = false; + /* Decide if a DOM `DocumentFragment` should be returned, instead of a html + * string (or a TrustedHTML object if Trusted Types are supported) */ + let RETURN_DOM_FRAGMENT = false; + /* Try to return a Trusted Type object instead of a string, return a string in + * case Trusted Types are not supported */ + let RETURN_TRUSTED_TYPE = false; + /* Output should be free from DOM clobbering attacks? + * This sanitizes markups named with colliding, clobberable built-in DOM APIs. + */ + let SANITIZE_DOM = true; + /* Achieve full DOM Clobbering protection by isolating the namespace of named + * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules. + * + * HTML/DOM spec rules that enable DOM Clobbering: + * - Named Access on Window (§7.3.3) + * - DOM Tree Accessors (§3.1.5) + * - Form Element Parent-Child Relations (§4.10.3) + * - Iframe srcdoc / Nested WindowProxies (§4.8.5) + * - HTMLCollection (§4.2.10.2) + * + * Namespace isolation is implemented by prefixing `id` and `name` attributes + * with a constant string, i.e., `user-content-` + */ + let SANITIZE_NAMED_PROPS = false; + const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-'; + /* Keep element content when removing element? */ + let KEEP_CONTENT = true; + /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead + * of importing it into a new Document and returning a sanitized copy */ + let IN_PLACE = false; + /* Allow usage of profiles like html, svg and mathMl */ + let USE_PROFILES = {}; + /* Tags to ignore content of when KEEP_CONTENT is true */ + let FORBID_CONTENTS = null; + const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']); + /* Tags that are safe for data: URIs */ + let DATA_URI_TAGS = null; + const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']); + /* Attributes safe for values like "javascript:" */ + let URI_SAFE_ATTRIBUTES = null; + const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']); + const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML'; + const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; + const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml'; + /* Document namespace */ + let NAMESPACE = HTML_NAMESPACE; + let IS_EMPTY_INPUT = false; + /* Allowed XHTML+XML namespaces */ + let ALLOWED_NAMESPACES = null; + const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString); + let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); + let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']); + // Certain elements are allowed in both SVG and HTML + // namespace. We need to specify them explicitly + // so that they don't get erroneously deleted from + // HTML namespace. + const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']); + /* Parsing of strict XHTML documents */ + let PARSER_MEDIA_TYPE = null; + const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html']; + const DEFAULT_PARSER_MEDIA_TYPE = 'text/html'; + let transformCaseFunc = null; + /* Keep a reference to config to pass to hooks */ + let CONFIG = null; + /* Ideally, do not touch anything below this line */ + /* ______________________________________________ */ + const formElement = document.createElement('form'); + const isRegexOrFunction = function isRegexOrFunction(testValue) { + return testValue instanceof RegExp || testValue instanceof Function; + }; + /** + * _parseConfig + * + * @param cfg optional config literal + */ + // eslint-disable-next-line complexity + const _parseConfig = function _parseConfig() { + let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (CONFIG && CONFIG === cfg) { + return; + } + /* Shield configuration object from tampering */ + if (!cfg || typeof cfg !== 'object') { + cfg = {}; + } + /* Shield configuration object from prototype pollution */ + cfg = clone(cfg); + PARSER_MEDIA_TYPE = + // eslint-disable-next-line unicorn/prefer-includes + SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE; + // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is. + transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase; + /* Set configuration parameters */ + ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS; + ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR; + ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES; + URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES; + DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS; + FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS; + FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {}; + FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {}; + USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false; + ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true + ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true + ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false + ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true + SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false + SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true + WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false + RETURN_DOM = cfg.RETURN_DOM || false; // Default false + RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false + RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false + FORCE_BODY = cfg.FORCE_BODY || false; // Default false + SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true + SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false + KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true + IN_PLACE = cfg.IN_PLACE || false; // Default false + IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI; + NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE; + MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS; + HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS; + CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {}; + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) { + CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck; + } + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) { + CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck; + } + if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') { + CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements; + } + if (SAFE_FOR_TEMPLATES) { + ALLOW_DATA_ATTR = false; + } + if (RETURN_DOM_FRAGMENT) { + RETURN_DOM = true; + } + /* Parse profile info */ + if (USE_PROFILES) { + ALLOWED_TAGS = addToSet({}, text); + ALLOWED_ATTR = []; + if (USE_PROFILES.html === true) { + addToSet(ALLOWED_TAGS, html$1); + addToSet(ALLOWED_ATTR, html); + } + if (USE_PROFILES.svg === true) { + addToSet(ALLOWED_TAGS, svg$1); + addToSet(ALLOWED_ATTR, svg); + addToSet(ALLOWED_ATTR, xml); + } + if (USE_PROFILES.svgFilters === true) { + addToSet(ALLOWED_TAGS, svgFilters); + addToSet(ALLOWED_ATTR, svg); + addToSet(ALLOWED_ATTR, xml); + } + if (USE_PROFILES.mathMl === true) { + addToSet(ALLOWED_TAGS, mathMl$1); + addToSet(ALLOWED_ATTR, mathMl); + addToSet(ALLOWED_ATTR, xml); + } + } + /* Merge configuration parameters */ + if (cfg.ADD_TAGS) { + if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) { + ALLOWED_TAGS = clone(ALLOWED_TAGS); + } + addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc); + } + if (cfg.ADD_ATTR) { + if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) { + ALLOWED_ATTR = clone(ALLOWED_ATTR); + } + addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc); + } + if (cfg.ADD_URI_SAFE_ATTR) { + addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc); + } + if (cfg.FORBID_CONTENTS) { + if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) { + FORBID_CONTENTS = clone(FORBID_CONTENTS); + } + addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc); + } + /* Add #text in case KEEP_CONTENT is set to true */ + if (KEEP_CONTENT) { + ALLOWED_TAGS['#text'] = true; + } + /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */ + if (WHOLE_DOCUMENT) { + addToSet(ALLOWED_TAGS, ['html', 'head', 'body']); + } + /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */ + if (ALLOWED_TAGS.table) { + addToSet(ALLOWED_TAGS, ['tbody']); + delete FORBID_TAGS.tbody; + } + if (cfg.TRUSTED_TYPES_POLICY) { + if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') { + throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); + } + if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') { + throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); + } + // Overwrite existing TrustedTypes policy. + trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY; + // Sign local variables required by `sanitize`. + emptyHTML = trustedTypesPolicy.createHTML(''); + } else { + // Uninitialized policy, attempt to initialize the internal dompurify policy. + if (trustedTypesPolicy === undefined) { + trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript); + } + // If creating the internal policy succeeded sign internal variables. + if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') { + emptyHTML = trustedTypesPolicy.createHTML(''); + } + } + // Prevent further manipulation of configuration. + // Not available in IE8, Safari 5, etc. + if (freeze) { + freeze(cfg); + } + CONFIG = cfg; + }; + /* Keep track of all possible SVG and MathML tags + * so that we can perform the namespace checks + * correctly. */ + const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]); + const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]); + /** + * @param element a DOM element whose namespace is being checked + * @returns Return false if the element has a + * namespace that a spec-compliant parser would never + * return. Return true otherwise. + */ + const _checkValidNamespace = function _checkValidNamespace(element) { + let parent = getParentNode(element); + // In JSDOM, if we're inside shadow DOM, then parentNode + // can be null. We just simulate parent in this case. + if (!parent || !parent.tagName) { + parent = { + namespaceURI: NAMESPACE, + tagName: 'template' + }; + } + const tagName = stringToLowerCase(element.tagName); + const parentTagName = stringToLowerCase(parent.tagName); + if (!ALLOWED_NAMESPACES[element.namespaceURI]) { + return false; + } + if (element.namespaceURI === SVG_NAMESPACE) { + // The only way to switch from HTML namespace to SVG + // is via . If it happens via any other tag, then + // it should be killed. + if (parent.namespaceURI === HTML_NAMESPACE) { + return tagName === 'svg'; + } + // The only way to switch from MathML to SVG is via` + // svg if parent is either or MathML + // text integration points. + if (parent.namespaceURI === MATHML_NAMESPACE) { + return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]); + } + // We only allow elements that are defined in SVG + // spec. All others are disallowed in SVG namespace. + return Boolean(ALL_SVG_TAGS[tagName]); + } + if (element.namespaceURI === MATHML_NAMESPACE) { + // The only way to switch from HTML namespace to MathML + // is via . If it happens via any other tag, then + // it should be killed. + if (parent.namespaceURI === HTML_NAMESPACE) { + return tagName === 'math'; + } + // The only way to switch from SVG to MathML is via + // and HTML integration points + if (parent.namespaceURI === SVG_NAMESPACE) { + return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName]; + } + // We only allow elements that are defined in MathML + // spec. All others are disallowed in MathML namespace. + return Boolean(ALL_MATHML_TAGS[tagName]); + } + if (element.namespaceURI === HTML_NAMESPACE) { + // The only way to switch from SVG to HTML is via + // HTML integration points, and from MathML to HTML + // is via MathML text integration points + if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) { + return false; + } + if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) { + return false; + } + // We disallow tags that are specific for MathML + // or SVG and should never appear in HTML namespace + return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]); + } + // For XHTML and XML documents that support custom namespaces + if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) { + return true; + } + // The code should never reach this place (this means + // that the element somehow got namespace that is not + // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES). + // Return false just in case. + return false; + }; + /** + * _forceRemove + * + * @param node a DOM node + */ + const _forceRemove = function _forceRemove(node) { + arrayPush(DOMPurify.removed, { + element: node + }); + try { + // eslint-disable-next-line unicorn/prefer-dom-node-remove + getParentNode(node).removeChild(node); + } catch (_) { + remove(node); + } + }; + /** + * _removeAttribute + * + * @param name an Attribute name + * @param element a DOM node + */ + const _removeAttribute = function _removeAttribute(name, element) { + try { + arrayPush(DOMPurify.removed, { + attribute: element.getAttributeNode(name), + from: element + }); + } catch (_) { + arrayPush(DOMPurify.removed, { + attribute: null, + from: element + }); + } + element.removeAttribute(name); + // We void attribute values for unremovable "is" attributes + if (name === 'is') { + if (RETURN_DOM || RETURN_DOM_FRAGMENT) { + try { + _forceRemove(element); + } catch (_) {} + } else { + try { + element.setAttribute(name, ''); + } catch (_) {} + } + } + }; + /** + * _initDocument + * + * @param dirty - a string of dirty markup + * @return a DOM, filled with the dirty markup + */ + const _initDocument = function _initDocument(dirty) { + /* Create a HTML document */ + let doc = null; + let leadingWhitespace = null; + if (FORCE_BODY) { + dirty = '' + dirty; + } else { + /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */ + const matches = stringMatch(dirty, /^[\r\n\t ]+/); + leadingWhitespace = matches && matches[0]; + } + if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) { + // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict) + dirty = '' + dirty + ''; + } + const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty; + /* + * Use the DOMParser API by default, fallback later if needs be + * DOMParser not work for svg when has multiple root element. + */ + if (NAMESPACE === HTML_NAMESPACE) { + try { + doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE); + } catch (_) {} + } + /* Use createHTMLDocument in case DOMParser is not available */ + if (!doc || !doc.documentElement) { + doc = implementation.createDocument(NAMESPACE, 'template', null); + try { + doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload; + } catch (_) { + // Syntax error if dirtyPayload is invalid xml + } + } + const body = doc.body || doc.documentElement; + if (dirty && leadingWhitespace) { + body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null); + } + /* Work on whole document or just its body */ + if (NAMESPACE === HTML_NAMESPACE) { + return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0]; + } + return WHOLE_DOCUMENT ? doc.documentElement : body; + }; + /** + * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document. + * + * @param root The root element or node to start traversing on. + * @return The created NodeIterator + */ + const _createNodeIterator = function _createNodeIterator(root) { + return createNodeIterator.call(root.ownerDocument || root, root, + // eslint-disable-next-line no-bitwise + NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null); + }; + /** + * _isClobbered + * + * @param element element to check for clobbering attacks + * @return true if clobbered, false if safe + */ + const _isClobbered = function _isClobbered(element) { + return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function'); + }; + /** + * Checks whether the given object is a DOM node. + * + * @param value object to check whether it's a DOM node + * @return true is object is a DOM node + */ + const _isNode = function _isNode(value) { + return typeof Node === 'function' && value instanceof Node; + }; + function _executeHooks(hooks, currentNode, data) { + arrayForEach(hooks, hook => { + hook.call(DOMPurify, currentNode, data, CONFIG); + }); + } + /** + * _sanitizeElements + * + * @protect nodeName + * @protect textContent + * @protect removeChild + * @param currentNode to check for permission to exist + * @return true if node was killed, false if left alive + */ + const _sanitizeElements = function _sanitizeElements(currentNode) { + let content = null; + /* Execute a hook if present */ + _executeHooks(hooks.beforeSanitizeElements, currentNode, null); + /* Check if element is clobbered or can clobber */ + if (_isClobbered(currentNode)) { + _forceRemove(currentNode); + return true; + } + /* Now let's check the element's type and name */ + const tagName = transformCaseFunc(currentNode.nodeName); + /* Execute a hook if present */ + _executeHooks(hooks.uponSanitizeElement, currentNode, { + tagName, + allowedTags: ALLOWED_TAGS + }); + /* Detect mXSS attempts abusing namespace confusion */ + if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) { + _forceRemove(currentNode); + return true; + } + /* Remove any occurrence of processing instructions */ + if (currentNode.nodeType === NODE_TYPE.progressingInstruction) { + _forceRemove(currentNode); + return true; + } + /* Remove any kind of possibly harmful comments */ + if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) { + _forceRemove(currentNode); + return true; + } + /* Remove element if anything forbids its presence */ + if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) { + /* Check if we have a custom element to handle */ + if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) { + if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) { + return false; + } + if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) { + return false; + } + } + /* Keep content except for bad-listed elements */ + if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) { + const parentNode = getParentNode(currentNode) || currentNode.parentNode; + const childNodes = getChildNodes(currentNode) || currentNode.childNodes; + if (childNodes && parentNode) { + const childCount = childNodes.length; + for (let i = childCount - 1; i >= 0; --i) { + const childClone = cloneNode(childNodes[i], true); + childClone.__removalCount = (currentNode.__removalCount || 0) + 1; + parentNode.insertBefore(childClone, getNextSibling(currentNode)); + } + } + } + _forceRemove(currentNode); + return true; + } + /* Check whether element has a valid namespace */ + if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) { + _forceRemove(currentNode); + return true; + } + /* Make sure that older browsers don't get fallback-tag mXSS */ + if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) { + _forceRemove(currentNode); + return true; + } + /* Sanitize element content to be template-safe */ + if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) { + /* Get the element's text content */ + content = currentNode.textContent; + arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => { + content = stringReplace(content, expr, ' '); + }); + if (currentNode.textContent !== content) { + arrayPush(DOMPurify.removed, { + element: currentNode.cloneNode() + }); + currentNode.textContent = content; + } + } + /* Execute a hook if present */ + _executeHooks(hooks.afterSanitizeElements, currentNode, null); + return false; + }; + /** + * _isValidAttribute + * + * @param lcTag Lowercase tag name of containing element. + * @param lcName Lowercase attribute name. + * @param value Attribute value. + * @return Returns true if `value` is valid, otherwise false. + */ + // eslint-disable-next-line complexity + const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) { + /* Make sure attribute cannot clobber */ + if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) { + return false; + } + /* Allow valid data-* attributes: At least one character after "-" + (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes) + XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804) + We don't need to check the value; it's always URI safe. */ + if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) { + if ( + // First condition does a very basic check if a) it's basically a valid custom element tagname AND + // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck + // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck + _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || + // Alternative, second condition checks if it's an `is`-attribute, AND + // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck + lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else { + return false; + } + /* Check value is safe. First, is attr inert? If so, is safe */ + } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) { + return false; + } else ; + return true; + }; + /** + * _isBasicCustomElement + * checks if at least one dash is included in tagName, and it's not the first char + * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name + * + * @param tagName name of the tag of the node to sanitize + * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false. + */ + const _isBasicCustomElement = function _isBasicCustomElement(tagName) { + return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT); + }; + /** + * _sanitizeAttributes + * + * @protect attributes + * @protect nodeName + * @protect removeAttribute + * @protect setAttribute + * + * @param currentNode to sanitize + */ + const _sanitizeAttributes = function _sanitizeAttributes(currentNode) { + /* Execute a hook if present */ + _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null); + const { + attributes + } = currentNode; + /* Check if we have attributes; if not we might have a text node */ + if (!attributes || _isClobbered(currentNode)) { + return; + } + const hookEvent = { + attrName: '', + attrValue: '', + keepAttr: true, + allowedAttributes: ALLOWED_ATTR, + forceKeepAttr: undefined + }; + let l = attributes.length; + /* Go backwards over all attributes; safely remove bad ones */ + while (l--) { + const attr = attributes[l]; + const { + name, + namespaceURI, + value: attrValue + } = attr; + const lcName = transformCaseFunc(name); + let value = name === 'value' ? attrValue : stringTrim(attrValue); + /* Execute a hook if present */ + hookEvent.attrName = lcName; + hookEvent.attrValue = value; + hookEvent.keepAttr = true; + hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set + _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent); + value = hookEvent.attrValue; + /* Full DOM Clobbering protection via namespace isolation, + * Prefix id and name attributes with `user-content-` + */ + if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) { + // Remove the attribute with this value + _removeAttribute(name, currentNode); + // Prefix the value and later re-create the attribute with the sanitized value + value = SANITIZE_NAMED_PROPS_PREFIX + value; + } + /* Work around a security issue with comments inside attributes */ + if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) { + _removeAttribute(name, currentNode); + continue; + } + /* Did the hooks approve of the attribute? */ + if (hookEvent.forceKeepAttr) { + continue; + } + /* Remove attribute */ + _removeAttribute(name, currentNode); + /* Did the hooks approve of the attribute? */ + if (!hookEvent.keepAttr) { + continue; + } + /* Work around a security issue in jQuery 3.0 */ + if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) { + _removeAttribute(name, currentNode); + continue; + } + /* Sanitize attribute content to be template-safe */ + if (SAFE_FOR_TEMPLATES) { + arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => { + value = stringReplace(value, expr, ' '); + }); + } + /* Is `value` valid for this attribute? */ + const lcTag = transformCaseFunc(currentNode.nodeName); + if (!_isValidAttribute(lcTag, lcName, value)) { + continue; + } + /* Handle attributes that require Trusted Types */ + if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') { + if (namespaceURI) ; else { + switch (trustedTypes.getAttributeType(lcTag, lcName)) { + case 'TrustedHTML': + { + value = trustedTypesPolicy.createHTML(value); + break; + } + case 'TrustedScriptURL': + { + value = trustedTypesPolicy.createScriptURL(value); + break; + } + } + } + } + /* Handle invalid data-* attribute set by try-catching it */ + try { + if (namespaceURI) { + currentNode.setAttributeNS(namespaceURI, name, value); + } else { + /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */ + currentNode.setAttribute(name, value); + } + if (_isClobbered(currentNode)) { + _forceRemove(currentNode); + } else { + arrayPop(DOMPurify.removed); + } + } catch (_) {} + } + /* Execute a hook if present */ + _executeHooks(hooks.afterSanitizeAttributes, currentNode, null); + }; + /** + * _sanitizeShadowDOM + * + * @param fragment to iterate over recursively + */ + const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) { + let shadowNode = null; + const shadowIterator = _createNodeIterator(fragment); + /* Execute a hook if present */ + _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null); + while (shadowNode = shadowIterator.nextNode()) { + /* Execute a hook if present */ + _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null); + /* Sanitize tags and elements */ + _sanitizeElements(shadowNode); + /* Check attributes next */ + _sanitizeAttributes(shadowNode); + /* Deep shadow DOM detected */ + if (shadowNode.content instanceof DocumentFragment) { + _sanitizeShadowDOM(shadowNode.content); + } + } + /* Execute a hook if present */ + _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null); + }; + // eslint-disable-next-line complexity + DOMPurify.sanitize = function (dirty) { + let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + let body = null; + let importedNode = null; + let currentNode = null; + let returnNode = null; + /* Make sure we have a string to sanitize. + DO NOT return early, as this will return the wrong type if + the user has requested a DOM object rather than a string */ + IS_EMPTY_INPUT = !dirty; + if (IS_EMPTY_INPUT) { + dirty = ''; + } + /* Stringify, in case dirty is an object */ + if (typeof dirty !== 'string' && !_isNode(dirty)) { + if (typeof dirty.toString === 'function') { + dirty = dirty.toString(); + if (typeof dirty !== 'string') { + throw typeErrorCreate('dirty is not a string, aborting'); + } + } else { + throw typeErrorCreate('toString is not a function'); + } + } + /* Return dirty HTML if DOMPurify cannot run */ + if (!DOMPurify.isSupported) { + return dirty; + } + /* Assign config vars */ + if (!SET_CONFIG) { + _parseConfig(cfg); + } + /* Clean up removed elements */ + DOMPurify.removed = []; + /* Check if dirty is correctly typed for IN_PLACE */ + if (typeof dirty === 'string') { + IN_PLACE = false; + } + if (IN_PLACE) { + /* Do some early pre-sanitization to avoid unsafe root nodes */ + if (dirty.nodeName) { + const tagName = transformCaseFunc(dirty.nodeName); + if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) { + throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place'); + } + } + } else if (dirty instanceof Node) { + /* If dirty is a DOM element, append to an empty document to avoid + elements being stripped by the parser */ + body = _initDocument(''); + importedNode = body.ownerDocument.importNode(dirty, true); + if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') { + /* Node is already a body, use as is */ + body = importedNode; + } else if (importedNode.nodeName === 'HTML') { + body = importedNode; + } else { + // eslint-disable-next-line unicorn/prefer-dom-node-append + body.appendChild(importedNode); + } + } else { + /* Exit directly if we have nothing to do */ + if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && + // eslint-disable-next-line unicorn/prefer-includes + dirty.indexOf('<') === -1) { + return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty; + } + /* Initialize the document to work on */ + body = _initDocument(dirty); + /* Check we have a DOM node from the data */ + if (!body) { + return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : ''; + } + } + /* Remove first element node (ours) if FORCE_BODY is set */ + if (body && FORCE_BODY) { + _forceRemove(body.firstChild); + } + /* Get node iterator */ + const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body); + /* Now start iterating over the created document */ + while (currentNode = nodeIterator.nextNode()) { + /* Sanitize tags and elements */ + _sanitizeElements(currentNode); + /* Check attributes next */ + _sanitizeAttributes(currentNode); + /* Shadow DOM detected, sanitize it */ + if (currentNode.content instanceof DocumentFragment) { + _sanitizeShadowDOM(currentNode.content); + } + } + /* If we sanitized `dirty` in-place, return it. */ + if (IN_PLACE) { + return dirty; + } + /* Return sanitized string or DOM */ + if (RETURN_DOM) { + if (RETURN_DOM_FRAGMENT) { + returnNode = createDocumentFragment.call(body.ownerDocument); + while (body.firstChild) { + // eslint-disable-next-line unicorn/prefer-dom-node-append + returnNode.appendChild(body.firstChild); + } + } else { + returnNode = body; + } + if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) { + /* + AdoptNode() is not used because internal state is not reset + (e.g. the past names map of a HTMLFormElement), this is safe + in theory but we would rather not risk another attack vector. + The state that is cloned by importNode() is explicitly defined + by the specs. + */ + returnNode = importNode.call(originalDocument, returnNode, true); + } + return returnNode; + } + let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML; + /* Serialize doctype if allowed */ + if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) { + serializedHTML = '\n' + serializedHTML; + } + /* Sanitize final string template-safe */ + if (SAFE_FOR_TEMPLATES) { + arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => { + serializedHTML = stringReplace(serializedHTML, expr, ' '); + }); + } + return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML; + }; + DOMPurify.setConfig = function () { + let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _parseConfig(cfg); + SET_CONFIG = true; + }; + DOMPurify.clearConfig = function () { + CONFIG = null; + SET_CONFIG = false; + }; + DOMPurify.isValidAttribute = function (tag, attr, value) { + /* Initialize shared config vars if necessary. */ + if (!CONFIG) { + _parseConfig({}); + } + const lcTag = transformCaseFunc(tag); + const lcName = transformCaseFunc(attr); + return _isValidAttribute(lcTag, lcName, value); + }; + DOMPurify.addHook = function (entryPoint, hookFunction) { + if (typeof hookFunction !== 'function') { + return; + } + arrayPush(hooks[entryPoint], hookFunction); + }; + DOMPurify.removeHook = function (entryPoint) { + return arrayPop(hooks[entryPoint]); + }; + DOMPurify.removeHooks = function (entryPoint) { + hooks[entryPoint] = []; + }; + DOMPurify.removeAllHooks = function () { + hooks = _createHooksMap(); + }; + return DOMPurify; +} +var purify = createDOMPurify(); + +export { purify as default }; +//# sourceMappingURL=purify.es.mjs.map diff --git a/extensions-builtin/sd-webui-ux/javascript/overrides.js b/extensions-builtin/sd-webui-ux/javascript/overrides.js index 93b78e07..6091e826 100644 --- a/extensions-builtin/sd-webui-ux/javascript/overrides.js +++ b/extensions-builtin/sd-webui-ux/javascript/overrides.js @@ -5,7 +5,7 @@ window.onAfterUiUpdate(() => { const visibleGalleryButtons = []; if (tabitem) { - // console.log(tabitem, allGalleryButtons); + //console.log(tabitem, allGalleryButtons); const allGalleryButtons = gradioApp().querySelectorAll(`${tabitem} .gradio-gallery .thumbnails > .thumbnail-small`); allGalleryButtons?.forEach((elem) => { @@ -85,22 +85,40 @@ window.onAfterUiUpdate(() => { let active_main_tab = gradioApp().getElementById('tab_txt2img'); window.get_uiCurrentTabContent = function() { - // console.log(active_main_tab); - if (active_main_tab.id === 'tab_txt2img') { + //console.log(active_main_tab); + if (active_main_tab?.id === 'tab_txt2img') { return document.getElementById('txt2img_tabitem'); - } if (active_main_tab.id === 'tab_img2img') { + } if (active_main_tab?.id === 'tab_img2img') { return document.getElementById('img2img_tabitem'); } }; window.mainTabs = function(element, tab) { + //console.warn(element, tab); + const root_dock = document.querySelector(`#root-dock-components`); + const tab_active = document.querySelector(`#main-nav .active`); + const wtb = document.querySelector(`#workspaces_tabitem`); + if(root_dock){wtb.classList.add("no-redraw");} + if (active_main_tab) { - active_main_tab.style.display = 'none'; + active_main_tab.click(); } + const ntab = document.querySelector(tab); if (ntab) { ntab.style.display = 'block'; active_main_tab = ntab; } + + if(root_dock && tab != "#tab_anapnoe_dock"){ + setTimeout(() => { + tab_active?.click(); + wtb.classList.remove("no-redraw"); + }, 500); + } + }; + + + }); diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/civitai_explorer.js b/extensions-builtin/sd-webui-ux/javascript/src/components/civitai_explorer.js new file mode 100644 index 00000000..21a250f5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/civitai_explorer.js @@ -0,0 +1,262 @@ +import {VirtualScroll} from './uiux/virtual.js'; +import {DEFAULT_PATH} from '../constants.js'; +import {updateInput, sendImageParamsTo} from "../utils/helpers.js"; +import {setupInputObservers} from '../utils/observers.js'; +import {createVirtualItemCivitImages, createVirtualItemCivitModels, createVirtualItemCivitModelsDetail} from '../utils/renderers.js'; + + +export async function setupCivitaiExplorer() { + setupCivitaiExplorerImages(); + setupCivitaiExplorerModels(); +} + + +export async function setupCivitaiExplorerImages() { + + const container = document.querySelector('#civitai_cardholder_images'); + const searchInput = document.querySelector('#civit_search_images'); + const searchClear = document.querySelector('#civit_search_images_clear'); + + + const limit = 100; + const apiUrl = `/sd_webui_ux/civitai_proxy/images`; + + const paramsMapping = { + "#civit_nsfw_images": 'nsfw', + "#civit_sort_images": 'sort', + "#civit_period_images": 'period', + "#civit_search_images": 'username' + }; + + const initApiParams = { + limit: limit, + page: 1, + }; + + const itemKeys = { + title: 'username', + url: 'url', + dataPath: 'items' + }; + + let imgRes = 'thumbnail'; + + const vScroll = new VirtualScroll(container, [], 18, itemKeys, apiUrl, initApiParams); + const apiParams = setupInputObservers(paramsMapping, initApiParams, vScroll); + + vScroll.createItemElement = item => createVirtualItemCivitImages(item, imgRes); + + function handleCivitImages(target, itemData, item_id) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + if (target.classList.contains("copy-path")) { + navigator.clipboard.writeText(itemData.filename); + } else if (target.classList.contains("fullsize-button")) { + vScroll.scrollToId(itemData.id); + if (vScroll.isFullSize) { + imgRes = 'thumbnail'; + vScroll.setFullSize(false); + vScroll.setLayout('vertical'); + target.classList.remove('active'); + } else { + imgRes = 'original'; + vScroll.setFullSize(true); + vScroll.setLayout('vertical'); + target.classList.add('active'); + } + } else if (target.classList.contains("info-button")) { + vScroll.setInfo(!vScroll.isInfo); + } else if (target.classList.contains("fullScreen-button")) { + vScroll.scrollToId(itemData.id); + vScroll.setFullScreen(!vScroll.isFullScreen); + } else if (target.classList.contains("send-params-button")) { + const imgUrl = `${itemData.url}`; + sendImageParamsTo(imgUrl, `#pnginfo_send_${prompt_focused} button`); + } else if (target.classList.contains("item-info-title")) { + searchInput.value = target.textContent; + updateInput(searchInput); + } else if (target.classList.contains("civit-link-button")) { + window.open(`https://civitai.com/images/${itemData.id}`, '_blank'); + } else if (target.classList.contains("civit-add2styles-button")) { + + } + } + + vScroll.clickHandler = function(e) { + if (vScroll.dragged || vScroll.scrollDelta) return; + const itemCard = e.target.closest('.item.card'); + const itemId = itemCard?.dataset.id; + if (itemId) { + const itemData = this.data.find(item => item.id.toString() === itemId); + console.log(itemId, e.target, itemData); + if (itemData) { + handleCivitImages(e.target, itemData, itemId); + } + } + e.preventDefault(); + e.stopPropagation(); + }; + + function handleSearchClear(e) { + searchInput.value = ""; + updateInput(searchInput); + } + searchClear.addEventListener('click', handleSearchClear); + + vScroll.updateParamsAndFetch(apiParams, 0); + +} + +export async function setupCivitaiExplorerModels() { + const container = document.querySelector('#civitai_cardholder_models'); + const searchInput = document.querySelector('#civit_search_models'); + const searchClear = document.querySelector('#civit_search_models_clear'); + + const limit = 100; + const apiUrl = `/sd_webui_ux/civitai_proxy/models`; + + const paramsMapping = { + "#civit_nsfw_models": 'nsfw', + "#civit_type_models": 'types', + "#civit_sort_models": 'sort', + "#civit_period_models": 'period', + "#civit_search_models": 'query' + }; + + const initApiParams = { + limit: limit, + page: 1, + }; + + const itemKeys = { + title: 'username', + url: 'url', + dataPath: 'items' + }; + + let parentItem; + let modelIndex = 0; + + let imgRes = 'thumbnail'; + + const vScroll = new VirtualScroll(container, [], 18, itemKeys, apiUrl, initApiParams); + const apiParams = setupInputObservers(paramsMapping, initApiParams, vScroll); + + function handleCivitModels(target, itemData, item_id) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + if (target.classList.contains("civit-link-button")) { + window.open(`https://civitai.com/models/${itemData.id}`, '_blank'); + } else if (target.classList.contains("fullsize-button")) { + vScroll.showDetail(); + parentItem = itemData; + modelIndex = 0; + dScroll.setData(itemData.modelVersions[modelIndex].images); + dScroll.setFullSize(true); + dScroll.setLayout('vertical'); + dScroll.scrollToStart(); + + } else if (target.classList.contains("info-button")) { + vScroll.setInfo(!vScroll.isInfo); + } else if (target.classList.contains("fullScreen-button")) { + vScroll.scrollToId(itemData.id); + vScroll.setFullScreen(!vScroll.isFullScreen); + } else if (target.classList.contains("send-params-button")) { + const imgUrl = `${itemData.modelVersions[0].images[0].url}`; + sendImageParamsTo(imgUrl, `#pnginfo_send_${prompt_focused} button`); + } else if (target.classList.contains("item-info-title")) { + searchInput.value = target.textContent; + updateInput(searchInput); + } + } + + //Render: Item Node Renderer Overwite + vScroll.createItemElement = item => createVirtualItemCivitModels(item, imgRes); + + vScroll.clickHandler = function(e) { + if (vScroll.dragged || vScroll.scrollDelta) return; + const itemCard = e.target.closest('.item.card'); + const itemId = itemCard?.dataset.id; + if (itemId) { + const itemData = this.data.find(item => item.id.toString() === itemId); + console.log(itemId, e.target, itemData); + if (itemData) { + handleCivitModels(e.target, itemData, itemId); + } + } + e.preventDefault(); + e.stopPropagation(); + }; + + + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + const dScroll = new VirtualScroll(dcontainer, [], 8); + + dScroll.createItemElement = item => createVirtualItemCivitModelsDetail(item, parentItem, modelIndex); + + dScroll.clickHandler = function(e) { + if (dScroll.dragged || dScroll.scrollDelta) return; + const itemCard = e.target.closest('.item.card'); + const itemId = itemCard?.dataset.id; + if (itemId) { + const itemData = this.data.find(item => item.id.toString() === itemId); + //console.log(itemId, e.target, itemData); + if (itemData) { + handleCivitModelsDetail(e.target, itemData, itemId); + } + } + e.preventDefault(); + e.stopPropagation(); + }; + + dScroll.changeHandler = function(e) { + const target = e.target; + if (target.classList.contains("baseModel-select")) { + modelIndex = parseInt(target.value); + this.setData(parentItem.modelVersions[modelIndex].images); + } + }; + + function handleCivitModelsDetail(target, itemData, item_id) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + if (target.classList.contains("civit-link-button")) { + window.open(`https://civitai.com/models/${parentItem.id}?modelVersionId=${parentItem.modelVersions[modelIndex].id}`, '_blank'); + } else if (target.classList.contains("fullsize-button")) { + vScroll.hideDetail(); + } else if (target.classList.contains("info-button")) { + dScroll.setInfo(!dScroll.isInfo); + } else if (target.classList.contains("fullScreen-button")) { + dScroll.scrollToId(itemData.id); + dScroll.setFullScreen(!dScroll.isFullScreen); + } else if (target.classList.contains("send-params-button")) { + const imgUrl = `${itemData.url}`; + sendImageParamsTo(imgUrl, `#pnginfo_send_${prompt_focused} button`); + } else if (target.classList.contains("item-info-title")) { + //searchInput.value = target.textContent; + //updateInput(searchInput); + } else if (target.classList.contains("download-image-button")) { + downloadFile(target.dataset.url, target.dataset.filename); + } else if (target.classList.contains("model-sdownload")) { + downloadFile(target.dataset.url); + } + } + + function downloadFile(url, filename) { + const link = document.createElement('a'); + link.target = "_blank"; + link.href = url; + if (filename) link.download = filename; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + + + function handleSearchClear(e) { + searchInput.value = ""; + updateInput(searchInput); + } + searchClear.addEventListener('click', handleSearchClear); + + vScroll.updateParamsAndFetch(apiParams, 0); + + +} diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/dynamic_forms.js b/extensions-builtin/sd-webui-ux/javascript/src/components/dynamic_forms.js new file mode 100644 index 00000000..334cdf0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/dynamic_forms.js @@ -0,0 +1,392 @@ +export function DynamicForm(url, table_name, itemData, container, submit_label = 'Submit') { + this.url = url; + this.table_name = table_name; + this.itemData = itemData; + this.container = container; + this.submit_label = submit_label; + this.form = document.createElement('form'); + this.form.setAttribute('id', 'userMetadataForm'); + this.form.classList.add('flexbox', 'padding', 'col', 'shrink'); +} + +DynamicForm.prototype.formatFileSize = function(size) { + if (typeof size !== 'number') { + return '0 bytes'; + } + if (size >= 1073741824) { + return (size / 1073741824).toFixed(2) + ' GB'; + } else if (size >= 1048576) { + return (size / 1048576).toFixed(2) + ' MB'; + } else if (size >= 1024) { + return (size / 1024).toFixed(2) + ' KB'; + } else { + return size + ' bytes'; + } +}; + +DynamicForm.prototype.formatDate = function(timestamp) { + if (typeof timestamp !== 'number') { + return ''; // Or handle the non-number case + } + const date = new Date(timestamp * 1000); + return date.toLocaleDateString(); +}; + +DynamicForm.prototype.formatFilename = function(path) { + if (typeof path !== 'string') { + return ''; // Or handle the non-string case as needed + } + return path.replace(/\\/g, '/').split('/').pop(); +}; + + +DynamicForm.prototype.createElement = function(type, field, value, attributes = {}) { + + //value = attributes.value !== undefined ? attributes.value : this.itemData[field] || ''; + //attributes.value = value; + + const elementConfig = { + textarea: {tag: 'textarea', attributes: {...attributes, rows: attributes.rows || 1, textContent: value || ''}}, + select: { + tag: 'select', + attributes: {id: attributes.id, class: attributes.class, name: attributes.name}, + children: Array.isArray(attributes.options) ? attributes.options.map(option => { + //console.log('option=', option, option.value === attributes.value); + return { + option: { + type: 'option', + //attributes: { + value: option.value, + textContent: option.textContent, + selected: option.value === attributes.value + //} + } + }; + }) : [] + }, + option: {tag: 'option', attributes: {...attributes}}, + input: {tag: 'input', attributes: {...attributes, type: 'text', value: value || ''}}, + file: {tag: 'input', attributes: {type: 'file'}}, + number: {tag: 'input', attributes: {type: 'number', value: value}}, + checkbox: {tag: 'input', attributes: {type: 'checkbox', checked: value}}, + radio: {tag: 'input', attributes: {type: 'radio', checked: value}}, + slider: {tag: 'input', attributes: {type: 'range', value: value}}, + img: {tag: 'img', attributes: {src: attributes.req + value, alt: field, class: 'thumbnail-image'}}, + button: {tag: 'button', textContent: value, attributes: {type: 'button', id: attributes.id, class: 'ae-button', name: field}}, + placeholder: {tag: 'div', attributes: attributes}, + row: {tag: 'div', attributes: {id: attributes.id, class: `flexbox row ${attributes.class || ''}`}, children: attributes.children}, + col: {tag: 'div', attributes: {id: attributes.id, class: `flexbox col ${attributes.class || ''}`}, children: attributes.children}, + panel: {tag: 'div', attributes: {id: attributes.id, class: `panel padding ${attributes.class || ''}`}, children: attributes.children}, + default: {tag: 'input', attributes: {type: 'text', value: value || ''}} + }; + + const config = elementConfig[type] || elementConfig.default; + const element = document.createElement(config.tag); + + // Function to set attributes + const setAttributes = (element, attrs) => { + Object.entries(attrs).forEach(([attr, val]) => { + if (typeof attr === 'string' && attr.trim() !== '') { + if (attr === 'textContent') { + element.textContent = val; + } else if (attr === 'checked') { + element.checked = !!val; + } else if (attr === 'selected') { + element.selected = !!val; + } else if (typeof val === 'string' || typeof val === 'number') { + element.setAttribute(attr, val); + } + } else { + console.warn(`Invalid attribute name: ${attr}`); + } + }); + }; + + // Apply attributes + setAttributes(element, config.attributes); + /* + if (attributes.label) { + const { label, ...panelAttributes } = attributes; + setAttributes(element, panelAttributes); + + const labelEl = document.createElement('label'); + labelEl.textContent = attributes.label; + + element.appendChild(labelEl); + } +*/ + // Add child elements if they exist + if (config.children) { + config.children.forEach(childConfig => { + const childKey = Object.keys(childConfig)[0]; + const childAttributes = childConfig[childKey]; + const childValue = childAttributes.value !== undefined ? childAttributes.value : this.itemData[childKey] || ''; // Get the value for the child + const childElement = this.createElement(childAttributes.type, childKey, childValue, childAttributes); + element.appendChild(childElement); + }); + } + + return element; +}; + + +DynamicForm.prototype.addElementToForm = function(field, config) { + const fieldContainer = document.createElement('div'); + fieldContainer.classList.add('panel', 'col', 'padding'); + if (config.id) fieldContainer.id = config.id; + + const label = document.createElement('label'); + label.setAttribute('for', field); + label.classList.add('flexbox'); + label.textContent = config.label || field.replace('_', ' ').toUpperCase(); + + const input = this.createElement(config.type, field, this.itemData[field], config); + + fieldContainer.appendChild(label); + fieldContainer.appendChild(input); + this.form.appendChild(fieldContainer); +}; + + +DynamicForm.prototype.createForm = function(fields) { + Object.entries(fields).forEach(([field, config]) => { + if (this.itemData.hasOwnProperty(field) || config.draw === 'true') { + this.addElementToForm(field, config); + } + }); + + const savePanel = document.createElement('div'); + savePanel.classList.add('panel', 'row', 'flex-end'); + const submitButton = document.createElement('button'); + submitButton.setAttribute('type', 'submit'); + submitButton.textContent = this.submit_label; + submitButton.classList.add('ae-submit-button'); + savePanel.appendChild(submitButton); + + const cancelButton = document.createElement('button'); + cancelButton.setAttribute('type', 'button'); + cancelButton.textContent = "Cancel"; + cancelButton.classList.add('ae-submit-button', 'cancel'); + savePanel.appendChild(cancelButton); + + if (this.itemData.id) { + const deleteButton = document.createElement('button'); + deleteButton.setAttribute('type', 'button'); + deleteButton.textContent = "Delete"; + deleteButton.classList.add('ae-submit-button', 'delete'); + savePanel.appendChild(deleteButton); + } + + this.form.appendChild(savePanel); + + this.form.addEventListener('submit', (event) => this.handleSubmit(event)); + + return this.form; +}; + + + +DynamicForm.prototype.createValueElement = function(type, field, value, label, api) { + let timestamp = `?t=${new Date().getTime()}`; + if (api && api.indexOf('filename=') !== -1) { + timestamp = `&t=${new Date().getTime()}`; + } + + const elementConfig = { + "filename": {textContent: this.formatFilename(value)}, + "filesize": {textContent: this.formatFileSize(value)}, + 'date-format': {textContent: this.formatDate(value)}, + "img": {tag: 'img', attributes: {src: api + value + timestamp, alt: field, class: 'thumbnail-image'}}, + "button": {tag: 'button', textContent: label || 'button', attributes: {class: `ae-button ${field}`, name: field}}, + "default": {textContent: value || ''} + }; + + const config = elementConfig[type] || elementConfig.default; + let element; + + if (config.tag) { + element = document.createElement(config.tag); + Object.entries(config.attributes).forEach(([attr, val]) => { + element.setAttribute(attr, val); + }); + if (config.textContent) { + element.textContent = config.textContent; + } + } else { + element = document.createElement('span'); + element.textContent = config.textContent; + } + + return element; +}; + +DynamicForm.prototype.createTable = function(table_data) { + + const table = document.createElement('table'); + table.classList.add('non-editable-table', 'panel'); + + Object.entries(table_data).forEach(([field, config]) => { + const row = document.createElement('tr'); + + const labelCell = document.createElement('td'); + labelCell.textContent = field.replace('_', ' ').toUpperCase(); + row.appendChild(labelCell); + + const valueCell = document.createElement('td'); + const valueContent = this.createValueElement(config.type, field, this.itemData[field]); + valueCell.appendChild(valueContent); + row.appendChild(valueCell); + + table.appendChild(row); + }); + + return table; +}; + +DynamicForm.prototype.createHtmlElement = function(div_data) { + const div = document.createElement('div'); + div.classList.add('non-editable-div', 'flexbox', 'col', 'shrink'); + + Object.entries(div_data).forEach(([field, config]) => { + const row = document.createElement('div'); + row.classList.add('panel', field); + + if (config.showLabel !== false) { + const labelCell = document.createElement('label'); + labelCell.textContent = field.replace('_', ' ').toUpperCase(); + row.appendChild(labelCell); + } + //console.log(field,config); + const valueContent = this.createValueElement(config.type, field, this.itemData[field], config.label || '', config.api); + row.appendChild(valueContent); + + div.appendChild(row); + }); + + return div; +}; + + +DynamicForm.prototype.buildTags = function(metadata) { + + const reWord = /[-_\w']+/g; + const reComma = / *, */; + + function isNonCommaTagset(tags) { + const averageTagLength = Object.keys(tags).reduce((sum, tag) => sum + tag.length, 0) / Object.keys(tags).length; + return averageTagLength >= 16; + } + const tags = {}; + + const ssTagFrequency = metadata.ss_tag_frequency || {}; + for (const tagsDict of Object.values(ssTagFrequency)) { + for (const [tag, tagCount] of Object.entries(tagsDict)) { + const trimmedTag = tag.trim(); + tags[trimmedTag] = (tags[trimmedTag] || 0) + parseInt(tagCount, 10); + } + } + + if (Object.keys(tags).length > 0 && isNonCommaTagset(tags)) { + const newTags = {}; + for (const [text, textCount] of Object.entries(tags)) { + const words = text.match(reWord) || []; + for (const word of words) { + if (word.length >= 3) { + newTags[word] = (newTags[word] || 0) + textCount; + } + } + } + return Object.entries(newTags) + .sort(([, countA], [, countB]) => countB - countA) + .map(([tag, count]) => [tag, count]); + } + + return Object.entries(tags) + .sort(([, countA], [, countB]) => countB - countA) + .map(([tag, count]) => [tag, count]); +}; + +DynamicForm.prototype.createTagsElement = function(metadata, label) { + const train_tags = this.buildTags(metadata); + if (train_tags.length > 0) { + + const div = document.createElement('div'); + div.classList.add('non-editable-tags', 'flexbox', 'shrink'); + + const row = document.createElement('div'); + row.classList.add('panel', 'flexbox', 'row', 'padding'); + + if (label) { + const labelCell = document.createElement('label'); + labelCell.textContent = label.toUpperCase(); + row.appendChild(labelCell); + } + + Object.entries(train_tags).forEach((tag) => { + const tagEl = document.createElement('button'); + tagEl.type = 'button'; + + tagEl.textContent = tag[1][0]; + const tagNum = document.createElement('span'); + tagNum.classList.add('tag-num'); + + tagNum.textContent = tag[1][1]; + tagEl.appendChild(tagNum); + + row.appendChild(tagEl); + }); + + div.appendChild(row); + return div; + } + + return false; +}; + +DynamicForm.prototype.afterFormSubmit = function(fdata, newdata, message) { +}; + +DynamicForm.prototype.beforeFormSubmit = function(fdata) { + return fdata; +}; + +DynamicForm.prototype.handleSubmit = async function(event) { + + event.preventDefault(); + const formData = new FormData(this.form); + const fdata = Object.fromEntries(formData.entries()); + + let payload = fdata; + payload.table_name = this.table_name; + payload.name = this.itemData.name; + payload = this.beforeFormSubmit(fdata); + + let upload_file; + if (payload.file) { + upload_file = payload.file; + delete payload.file; + } + + const postData = new FormData(); + postData.append('payload', JSON.stringify(payload)); + if (upload_file) { + postData.append('file', upload_file); + } + + try { + const response = await fetch(this.url, { + method: 'POST', + body: postData + }); + + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + + const updated = await response.json(); + await this.afterFormSubmit(fdata, updated.data, updated.message); + + } catch (error) { + console.error('Failed to fetch data:', error); + } +}; diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/extensions.js b/extensions-builtin/sd-webui-ux/javascript/src/components/extensions.js index 6f948cb7..de54aa54 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/components/extensions.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/extensions.js @@ -45,11 +45,14 @@ async function createTabsForExtensions() { "tab_modelmerger", "tab_settings", "tab_extensions", + "tab_space", "tab_deforum_interface", "tab_infinite-image-browsing", - "tab_anapnoe_dock", "tab_anapnoe_sd_uiux_core", - "tab_space", + "tab_anapnoe_sd_uiux_db", + "tab_anapnoe_sd_uiux_civitai", + "tab_anapnoe_dock", + ]; /* diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/extra_networks.js b/extensions-builtin/sd-webui-ux/javascript/src/components/extra_networks.js new file mode 100644 index 00000000..ce0d5f99 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/extra_networks.js @@ -0,0 +1,604 @@ +import {VirtualScroll} from './uiux/virtual.js'; +import {TreeView} from './uiux/tree_view.js'; +import {DynamicForm} from './dynamic_forms.js'; +import {DEFAULT_PATH, SD_VERSIONS_OPTIONS} from '../constants.js'; +import {updateInput, sendImageParamsTo} from "../utils/helpers.js"; +import {setupInputObservers, setupCheckpointChangeObserver} from '../utils/observers.js'; +import {requestGetData, requestPostData} from '../utils/api_external.js'; +import {resyncTableData} from '../utils/api.js'; +import {createVirtualItemExtraNetworks} from '../utils/renderers.js'; + +export async function refreshDirectory(directory) { + + const apiUrl = `/refresh/`; + const requestData = {directory: directory}; + + try { + const response = await fetch(apiUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(requestData) + }); + + if (response.ok) { + const result = await response.json(); + console.log(result.message); + } else { + const error = await response.json(); + console.error('Error:', error.detail); + } + } catch (error) { + console.error('Network error:', error); + } +} + + +export async function setupExtraNetworkCheckpoints() { + setupExtraNetwork('checkpoints', "checkpoint", "stable-diffusion/"); +} + +export async function setupExtraNetworkTextualinversion() { + setupExtraNetwork('textual_inversion', "textualinversion", "embeddings/"); +} + +export async function setupExtraNetworkLora() { + setupExtraNetwork('lora', "lora", "lora/"); +} + +export async function setupExtraNetworkHypernetworks() { + setupExtraNetwork('hypernetworks', "hypernetwork", "hypernetworks/"); +} + +function detailView(container, elem) { + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + dcontainer.innerHTML = ''; + dcontainer.appendChild(elem); +} + +async function requestGetMetaData(type, name, vScroll, container) { + const url = `/sd_webui_ux/get_internal_metadata?type=${encodeURIComponent(type)}&name=${encodeURIComponent(name)}`; + requestGetData(url, function(metadata) { + console.log(metadata); + vScroll.showDetail(); + const parsed = window.extraNetworksFlattenMetadata(metadata); + const tableEl = window.createVisualizationTable(parsed, 0); + detailView(container, tableEl); + }); +} + + + +const selected_networks = {}; + +export async function setupExtraNetwork(netkey, table, base_path) { + //const gradio_refresh = document.querySelector("#refresh_database"); + const container = document.querySelector(`#${netkey}_cardholder`); + const searchInput = document.querySelector(`#${netkey}_search`); + const sortSelect = document.querySelector(`#${netkey}_sort`); + const orderButton = document.querySelector(`#${netkey}_order`); + const modelVerSelect = document.querySelector(`#${netkey}_sd_version`); + const refresh = document.querySelector(`#${netkey}_refresh`); + const rebuild_thumbs = document.querySelector(`#${netkey}_rebuild`); + const searchClear = document.querySelector(`#${netkey}_clear`); + //const treeViewContainer = document.querySelector(`#${netkey}_tree_view`); + const treeViewButton = document.querySelector(`#${netkey}_show-dirs`); + const search_row = document.querySelector(`#${netkey}_search_row`); + + const search_area = document.querySelector(`#layout_db_${netkey} > div`); + const observer = new ResizeObserver(() => { + if (!search_area || !treeViewButton) return; + const searchAreaHeight = search_area.offsetHeight; + const buttonHeight = treeViewButton.offsetHeight + 10; + if (searchAreaHeight > buttonHeight) { + search_row.style.order = "100"; + } else { + search_row.style.order = ""; + } + }); + observer.observe(search_area); + + + + selected_networks[`txt2img_${table}`] = []; + selected_networks[`img2img_${table}`] = []; + + const limit = 100; + const apiUrl = `/sd_webui_ux/get_items_from_db`; + const method = `GET`; + + const initApiParams = { + table_name: table, + skip: 0, + limit: limit, + sort_by: "name", + order: "asc", + search_term: "", + }; + + const itemKeys = { + title: 'name', + url: 'preview', + dataPath: 'items' + }; + + const paramsMapping = { + [`#${netkey}_search`]: 'search_term', + [`#${netkey}_sort`]: 'sort_by', + [`#${netkey}_search_in`]: 'search_columns', + [`#${netkey}_sd_version`]: 'sd_version' + }; + + const modifyParams = (params) => { + params.skip = 0; + return params; + }; + + const vScroll = new VirtualScroll(container, [], 18, itemKeys, apiUrl, initApiParams, method); + const apiParams = setupInputObservers(paramsMapping, initApiParams, vScroll, modifyParams); + + vScroll.setNextCursor = function(nextCursor) { + if (nextCursor && this.data.length > 0) { + this.params.skip = this.params.cursor = nextCursor; + } else { + delete this.params.cursor; + } + }; + + let imgRes = 'thumbnail'; + // Render: Item Node Renderer Overwrite + vScroll.createItemElement = item => createVirtualItemExtraNetworks(item, imgRes, vScroll.selected, '/sd_extra_networks/thumb?filename='); + + // ExtraNetwork + function applyExtraNetworkPrompts(target, itemData, id) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + let prompt = itemData.prompt?.replace("opts.extra_networks_default_multiplier", itemData.preferred_weight > 0 ? itemData.preferred_weight : opts.extra_networks_default_multiplier) || ""; + prompt += itemData.activation_text || ""; + const neg_prompt = itemData.negative_prompt || ""; + + //console.log(target); + + if (target.classList.contains("copy-path")) { + navigator.clipboard.writeText(itemData.filename); + } else if (target.classList.contains("fullsize-button")) { + vScroll.scrollToId(itemData.id); + if (vScroll.isFullSize) { + imgRes = 'thumbnail'; + vScroll.setFullSize(false); + vScroll.setLayout('vertical'); + target.classList.remove('active'); + } else { + imgRes = 'local_preview' || 'preview'; + vScroll.setFullSize(true); + vScroll.setLayout('vertical'); + target.classList.add('active'); + } + } else if (target.classList.contains("info-button")) { + vScroll.setInfo(!vScroll.isInfo); + } else if (target.classList.contains("fullScreen-button")) { + vScroll.scrollToId(itemData.id); + vScroll.setFullScreen(!vScroll.isFullScreen); + } else if (target.classList.contains("show-meta")) { + requestGetMetaData(itemData.type, itemData.name, vScroll, container); + } else if (target.classList.contains("edit-meta")) { + createUserMetaForm(itemData, itemData.id); + } else if (target.classList.contains("send-params-button")) { + const imgUrl = `/sd_extra_networks/thumb?filename=${encodeURIComponent(itemData.preview || itemData.local_preview)}`; + sendImageParamsTo(imgUrl, `#pnginfo_send_${prompt_focused} button`); + } else if (itemData.type === "Checkpoint") { + if (vScroll.isFullSize) return; + window.selectCheckpoint(itemData.name); + } else if (itemData.type === "TextualInversion") { + if (vScroll.isFullSize) return; + window.cardClicked(prompt_focused, prompt, neg_prompt, true); + selected_networks[`${prompt_focused}_textualinversion`].push({id: itemData.id, name: itemData.name, value: prompt}); + } else if (itemData.type === "LORA") { + if (vScroll.isFullSize) return; + window.cardClicked(prompt_focused, prompt, neg_prompt, false); + selected_networks[`${prompt_focused}_lora`].push({id: itemData.id, name: itemData.name, value: ` item.id.toString() === itemId); + //console.log(itemId, e.target, this.data); + if (itemData) { + applyExtraNetworkPrompts(e.target, itemData, itemId); + } + } + e.stopPropagation(); + }; + + rebuild_thumbs.addEventListener('click', (e) => { + requestPostData('/sd_webui_ux/generate-thumbnails', {table_name: table}, function(data) { + console.log(data); + setTimeout(() => { + apiParams.skip = 0; + vScroll.updateParamsAndFetch(apiParams, 0); + }, 1000); + }); + }); + + orderButton.addEventListener('click', (e) => { + const val = orderButton.classList.contains("active"); + apiParams.skip = 0; + apiParams.order = val ? "desc" : "asc"; + vScroll.updateParamsAndFetch(apiParams, 0); + }); + + searchClear.addEventListener('click', (e) => { + searchInput.value = ""; + updateInput(searchInput); + }); + + vScroll.updateParamsAndFetch(apiParams, 0); + + let checkpointObserver; + if (table !== 'checkpoint') { + document.querySelectorAll('#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea').forEach(textarea => { + textarea.addEventListener('input', selectItems); + textarea.addEventListener('focus', selectItemsFromDB); + }); + } else { + checkpointObserver = setupCheckpointChangeObserver(vScroll); + } + + let treeView; + function createTreeView() { + treeView = new TreeView(`#${netkey}_tree_view`, '/sd_webui_ux/get_items_by_path', table, base_path); + treeView.initialize(); + + checkpointObserver?.setTreeViewCallback((selectedSet) => { + treeView.selected = selectedSet; + treeView.updateSelectedItems(); + }); + + + treeView.createFileItem = function(tree, key) { + const li = document.createElement('li'); + li.dataset.name = tree[key].name; + li.dataset.id = tree[key].id; + if (this.selected?.has(tree[key].name)) { + li.classList.add('active'); + } + li.innerHTML = `${tree[key].name}`; + li.classList.add('li-file'); + + const itemEditMeta = document.createElement('button'); + itemEditMeta.className = `edit-meta edit-button card-button`; + + const copyPath = document.createElement('button'); + copyPath.className = `copy-path copy-path-button card-button`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + + itemActions.appendChild(copyPath); + + if (tree[key].metadata_exists) { + const itemShowMeta = document.createElement('button'); + itemShowMeta.className = `show-meta metadata-button card-button`; + itemActions.appendChild(itemShowMeta); + } + + itemActions.appendChild(itemEditMeta); + + li.appendChild(itemActions); + return li; + }; + + treeView.onFolderClicked = function(target, path, active) { + //console.log(path, active); + //searchInput.value = active ? path : ""; + //updateInput(searchInput); + }; + + treeView.onFileClicked = function(target, itemData) { + applyExtraNetworkPrompts(target, itemData, itemData.id); + }; + } + + treeViewButton.addEventListener('click', () => { + createTreeView(); + }, {once: true}); + + refresh.addEventListener('click', async () => { + const result = await resyncTableData(apiParams, vScroll); + if (treeView) { + await treeView.initialize(); + } + if (!result.success) { + console.warn(`Resync failed: ${result.error}`); + } + }); + + function updateTreeViewSelectedItems() { + if (treeView) { + treeView.selected = vScroll.selected; + treeView.updateSelectedItems(); + } + } + + + // Highlight Selected Items + function selectItems(e) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const currNetwork = selected_networks[`${prompt_focused}_${table}`]; + setTimeout(() => { + let txt_value = ''; + document.querySelectorAll(`#${prompt_focused}_prompt textarea, #${prompt_focused}_neg_prompt textarea`).forEach(textarea => { + txt_value += textarea.value; + }); + + const cleanedNetwork = currNetwork.filter(network => { + return network && network.value && txt_value.includes(network.value); + }); + + selected_networks[`${prompt_focused}_${table}`] = cleanedNetwork; + + const selectedNames = new Set(cleanedNetwork.map(network => network.name)); + vScroll.selected = selectedNames; + vScroll.forceRenderItems(); + updateTreeViewSelectedItems(); + + + }, 100); + } + + function selectItemsFromDB(e) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const currNetwork = selected_networks[`${prompt_focused}_${table}`]; + let txt_value = ''; + + document.querySelectorAll(`#${prompt_focused}_prompt textarea, #${prompt_focused}_neg_prompt textarea`).forEach(textarea => { + txt_value += ` ${textarea.value}`; + }); + + if (txt_value.length > 2) { + + function cleanPhrases(input) { + return input.replace(/[()]+|:[0-9]+(.[0-9]+)?/g, '').trim(); + } + + const words = txt_value.trim().split(/[\s,.]+/); + let cleaned_words = words.map(cleanPhrases).filter(Boolean); + + if (table === 'lora' || table === 'hypernetwork') { + const tagnet = table === 'lora' ? 'lora' : 'hypernet'; + function netTagReset(input) { + if (input.includes(`${tagnet}:`)) { + const name = input.split(`${tagnet}:`)[1].split(':')[0]; + return `<${tagnet}:${name}:opts.extra_networks_default_multiplier>`; + } + return ''; + } + const tag_words = txt_value.trim().split('<'); + cleaned_words = tag_words.map(netTagReset).filter(Boolean); // Filter empty + } + + if (cleaned_words.length > 0) { + //console.log(cleaned_words); + const url = '/sd_webui_ux/search_words_in_tables_columns'; + const params = { + tables: table, + columns: 'prompt', + words: cleaned_words + }; + + requestPostData(url, params, function(result) { + const data = result[table]; + //console.log(data); + const cleanedNetwork = data.map(itemData => { + let data_prompt = itemData.prompt; + if (table === 'lora' || table === 'hypernetwork') { + const tagnet = table === 'lora' ? 'lora' : 'hypernet'; + data_prompt = `<${tagnet}:${itemData.prompt.split(':')[1]}`; + } + + return { + id: itemData.id, + name: itemData.name, + value: data_prompt + }; + }); + + selected_networks[`${prompt_focused}_${table}`] = cleanedNetwork; + + vScroll.selected = new Set(cleanedNetwork.map(network => network.name)); + vScroll.forceRenderItems(); + updateTreeViewSelectedItems(); + }); + } + + } else { + + vScroll.selected = new Set(); + vScroll.forceRenderItems(); + updateTreeViewSelectedItems(); + + } + } + + + + // User Metadata Form + function createUserMetaForm(itemData, id) { + + const fields = { + local_preview: {type: 'input', name: 'local_preview'}, + sd_version: { + type: 'select', name: 'sd_version', label: 'SD Version', value: itemData.sd_version, + options: SD_VERSIONS_OPTIONS + }, + preferred_weight: {type: 'number', name: 'preferred_weight', label: 'Preferred Weight'}, + activation_text: {type: 'textarea', name: 'activation_text', label: "Activation Text", rows: 4}, + negative_prompt: {type: 'textarea', name: 'negative_prompt', label: "Negative Prompt", rows: 2}, + description: {type: 'textarea', name: 'description', label: "Description", rows: 2}, + tags: {type: 'textarea', name: 'tags', label: "Tags"}, + notes: {type: 'textarea', name: 'notes', label: 'Notes', rows: 2} + }; + + const table_data = { + filename: {type: 'filename'}, + filesize: {type: 'filesize'}, + type: {type: 'text'}, + hash: {type: 'text'}, + date_created: {type: 'date-format'}, + date_modified: {type: 'date-format'}, + }; + + const img_data = { + thumbnail: {type: 'img', api: '/sd_extra_networks/thumb?filename=', showLabel: false}, + replace_preview: {type: 'button', label: 'Replace Preview', showLabel: false}, + browse_preview: {type: 'button', label: 'Browse Preview', showLabel: false}, + }; + + const murl = `/sd_webui_ux/get_internal_metadata?type=${encodeURIComponent(itemData.type)}&name=${encodeURIComponent(itemData.name)}`; + requestGetData(murl, function(metadata) { + + const train_tags_metadata = metadata; + + const url = '/sd_webui_ux/update_user_metadata'; + const formContainer = document.getElementById('formContainer'); + const dynamicForm = new DynamicForm(url, table, itemData, formContainer); + const formEl = dynamicForm.createForm(fields); + const tableEl = dynamicForm.createTable(table_data); + const imgEl = dynamicForm.createHtmlElement(img_data); + const train_tags_El = dynamicForm.createTagsElement(train_tags_metadata, "Train Tags"); + + if (train_tags_El) { + formEl.children[2]?.insertAdjacentElement('afterend', train_tags_El); + let areaEl = formEl.querySelector('#activation_text'); + + formEl.addEventListener('click', (e) => { + const textarea = e.target.closest('textarea'); + if (textarea) areaEl = textarea; + const target = e.target.closest('button[type=button]'); + if (target) { + const tagText = target.childNodes[0].textContent.trim(); + const currentValue = areaEl.value; + if (currentValue.includes(tagText)) { + areaEl.value = currentValue + .split(',') + .map(tag => tag.trim()) + .filter(tag => tag !== tagText) + .join(', '); + } else { + areaEl.value += (currentValue ? ', ' : '') + tagText; + } + } + }); + } + + const rowContainer = document.createElement('div'); + rowContainer.classList.add('non-editable-info', 'flexbox', 'padding', 'shrink'); + + rowContainer.appendChild(imgEl); + rowContainer.appendChild(tableEl); + + vScroll.showDetail(); + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + dcontainer.innerHTML = ''; + dcontainer.appendChild(rowContainer); + dcontainer.appendChild(formEl); + + function removeExtension(filename) { + const lastDotIndex = filename.lastIndexOf('.'); + if (lastDotIndex === -1) { + return filename; + } + return filename.substring(0, lastDotIndex); + } + + function getPathAndFilename(filePath) { + const lastSlashIndex = filePath.lastIndexOf('/'); + const path = filePath.substring(0, lastSlashIndex); + const filename = filePath.substring(lastSlashIndex + 1); + const lastDotIndex = filename.lastIndexOf('.'); + const filename_no_ext = filename.substring(0, lastDotIndex); + + return { + path: path, + filename: filename, + filename_no_ext: filename_no_ext + }; + } + + let source_file; + let upload_file; + + dynamicForm.beforeFormSubmit = function(fdata) { + fdata.id = itemData.id; + fdata.type = itemData.type; + fdata.name = itemData.name; + fdata.prompt = itemData.prompt; + fdata.filename = itemData.filename; + if (source_file) fdata.source_file = source_file; + if (upload_file) fdata.file = upload_file; + console.log(fdata); + return fdata; + }; + + + let local_preview_path_value = itemData.local_preview; + + dynamicForm.afterFormSubmit = function(data) { + vScroll.hideDetail(); + //console.log(data); + const lp = getPathAndFilename(local_preview_path_value); + const timestamp = new Date().getTime(); + //data.thumbnail = `${lp.path}/thumbnails/${lp.filename_no_ext}.thumb.webp?t=${timestamp}`; // Append timestamp to the URL + data.thumbnail = `${lp.path}/thumbnails/${lp.filename_no_ext}.thumb.webp`; + data.timestamp = `&t=${timestamp}`; + vScroll.updateDataById(data, id); + //treeView.updateDataById(data, id); + treeView?.update(); + }; + + const replace_local_preview = imgEl.querySelector('button.replace_preview'); + const thumb_preview = imgEl.querySelector('.thumbnail-image'); + replace_local_preview.addEventListener('click', (e) => { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const gallery_img = document.querySelector(`#${prompt_focused}_gallery [data-testid="detailed-image"]`); + if (gallery_img) { + //const local_preview = formEl.querySelector('#local_preview_path input'); + source_file = gallery_img.src.split('file=')[1].split('?')[0]; + thumb_preview.style.filter = 'grayscale(1)'; + } + }); + + const browse_fileInput = document.createElement('input'); + browse_fileInput.type = 'file'; + browse_fileInput.accept = 'image/jpeg, image/png, image/webp, image/gif'; + browse_fileInput.addEventListener('change', (e) => { + const file = e.target.files[0]; + if (file) { + upload_file = file; + thumb_preview.style.filter = 'grayscale(1)'; + } + }); + + const browse_preview = imgEl.querySelector('button.browse_preview'); + browse_preview.addEventListener('click', (e) => { + browse_fileInput.click(); + }); + + }); + + } + + +} + + + + diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/logger.js b/extensions-builtin/sd-webui-ux/javascript/src/components/logger.js index e166ebb8..6bbf56d7 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/components/logger.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/logger.js @@ -65,7 +65,7 @@ async function setupLogger() { '\n', "╔═╗╔═╦╦═╗╔═╦═╦╦═╦═╗", '\n', "║╬╚╣║║║╬╚╣╬║║║║╬║╩╣", '\n', "╚══╩╩═╩══╣╔╩╩═╩═╩═╝", '\n', "─────────╚╝" ); - console.log(`Initialize Anapnoe UI/UX runtime engine version ${ANAPNOE_APP_VER}`); + console.log(`Initialize Anapnoe UI/UX Core version ${ANAPNOE_APP_VER}`); console.log(`UI/UX Backend Optimizations:`, IS_BACKEND_OPTIMIZED); console.log(navigator.userAgent); console.log(fetchAndCacheVersionData()); @@ -74,6 +74,9 @@ async function setupLogger() { console.log("Console log enabled: ", window.opts.uiux_enable_console_log); console.log("Dev Mode enabled: ", window.opts.uiux_enable_dev_mode); console.log("Theme editor enabled: ", window.opts.uiux_enable_theme_editor); + console.log("SD Styles enabled: ", window.opts.uiux_enable_sd_styles); + console.log("Image Browser enabled: ", window.opts.uiux_enable_sd_output_images); + console.log("Civitai Explorer enabled: ", window.opts.uiux_enable_civitai_explorer); console.log("Maximum resolution output: ", window.opts.uiux_max_resolution_output); console.log("Ignore overrides: ", window.opts.uiux_ignore_overrides); console.log("Show ticks for input range slider: ", window.opts.uiux_show_input_range_ticks); diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/optimizations.js b/extensions-builtin/sd-webui-ux/javascript/src/components/optimizations.js index c7498b56..8e146a33 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/components/optimizations.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/optimizations.js @@ -1,4 +1,4 @@ -import {updateInput, countEventListeners, countInlineEventListeners} from '../utils/helpers.js'; +import {updateInput} from '../utils/helpers.js'; import {appendPopupContent} from './uiux/portal.js'; import {getGradioApp, getAnapnoeApp, getLoggerUiUx, IS_BACKEND_OPTIMIZED} from '../constants.js'; import {UIUX} from '../utils/module.js'; @@ -31,149 +31,6 @@ async function removeStyleAssets() { console.log('Remove inline styles from DOM', 'Total Selectors:', count, 'Removed Selectors:', s); } -function removeInlineEventListener(el) { - const onclick_data = el.getAttribute('data-apply'); - const match = onclick_data ? onclick_data.match(/^(\w+)\s*\(.*\)$/) : null; - - if (match && typeof window[match[1]] === 'function') { - el.removeEventListener('click', window[match[1]]); - // console.log("Removed event listener for function: ", match[1]); - const nameOrPath = el.getAttribute('data-name') || el.getAttribute('data-path') || el.closest('.card')?.getAttribute('data-name'); - if (nameOrPath) { - console.log('Remove EventListener', `${nameOrPath} - ${match[1]} - ${el.getAttribute('title') || ''}`); - } - } -} - -function callDataApplyFunction(el, event) { - const data_apply = el.getAttribute('data-apply'); - if (data_apply) { - const match = data_apply.match(/^(\w+)\s*\((.*)\)$/); - if (match && typeof window[match[1]] === 'function') { - const args = match[2].split(',').map((arg) => arg.trim().replace(/['"]/g, '')); // Process arguments - // Insert the event as the first argument - args.unshift(event); - window[match[1]].apply(null, args); // Call the function with arguments - } - } -} - - -function handleExtraNetworksClick(e) { - const {target: ctarget, currentTarget: net} = e; - //console.log(ctarget.classList); - if (ctarget.classList.contains('card') || ctarget.classList.contains('card-button') || ctarget.classList.contains('tree-list-content')) { - - let data_apply = ctarget.getAttribute('data-apply') || ctarget.getAttribute('onClick'); - if (data_apply) { - ctarget.setAttribute('data-apply', data_apply); - ctarget.removeAttribute('onClick'); - } - - - ctarget.setAttribute('onClick', data_apply); - ctarget.click(); - removeInlineEventListener(ctarget); - ctarget.removeAttribute('onClick'); - - if (ctarget.classList.contains('card-button')) { - //window.popup_trigger.click(); - appendPopupContent(); - } - - if (ctarget.classList.contains('tree-list-content-dir')) { - const search_field = net.closest('.layout-extra-networks')?.querySelector('.search_extra_networks'); - if (search_field && ctarget.getAttribute('data-path')) { - search_field.value = ctarget.getAttribute('data-path'); - updateInput(search_field); - } - } - - e.stopImmediatePropagation(); - } -} - -async function optimizeExtraNetworksCards(net) { - - if (window.opts.uiux_enable_event_delegation || IS_BACKEND_OPTIMIZED) { - const ielb = countInlineEventListeners(net); - console.log('Starting Optimizations for', net.id); - if (!IS_BACKEND_OPTIMIZED) { - net.querySelectorAll('.card, .card-button, .tree-list-content').forEach((el) => { - const onclick_data = el.getAttribute('onClick') || el.getAttribute('data-apply'); - if (onclick_data) { - el.setAttribute('data-apply', onclick_data); - el.removeAttribute('onClick'); - removeInlineEventListener(el); - } - }); - } - console.log('Total Inline Event Listeners Before:', ielb, 'After:', 0); - console.log('Attaching Event Listener using Event Delegation', net.id); - net.removeEventListener('click', handleExtraNetworksClick); - net.addEventListener('click', handleExtraNetworksClick); - } - -} - -async function optimizeExtraNetworksSearchSort() { - const gradioApp = getGradioApp(); - - const applyFilter = function(e) { - const search_term = e.target.value.toLowerCase(); - const cards = e.target.getAttribute('data-target'); - // console.log(search_term, cards) - gradioApp.querySelectorAll(cards).forEach((elem) => { - const text = elem.getAttribute('data-sort-path').toLowerCase(); - let visible = text.indexOf(search_term) !== -1; - if (search_term.length < 2) { - visible = true; - } - elem.style.display = visible ? '' : 'none'; - }); - }; - - document.querySelectorAll('.search_extra_networks').forEach((el) => { - el.addEventListener('input', applyFilter); - }); - - function applySort(el, sortKey) { - function comparator(cardA, cardB) { - const a = cardA.getAttribute(sortKey); - const b = cardB.getAttribute(sortKey); - if (!isNaN(a) && !isNaN(b)) { - return parseInt(a) - parseInt(b); - } - return (a < b ? -1 : (a > b ? 1 : 0)); - } - - const cards_selector = el.getAttribute('data-target'); - const cards = gradioApp.querySelectorAll(cards_selector); - const cards_parent = cards[0].parentElement; - const cardsArray = Array.from(cards); - const sorted = cardsArray.sort(comparator); - - const reverse_button = el.nextElementSibling; // closest(".reverse-order"); - const reverse = reverse_button.className.indexOf('active') !== -1; - if (reverse) { - sorted.reverse(); - } - sorted.forEach((e) => cards_parent.appendChild(e)); - } - - document.querySelectorAll('.extra_networks_order_by').forEach((el) => { - el.addEventListener('change', function(e) { - applySort(e.target, this.value); - // console.log('You selected: ', this.value); - }); - - el.nextElementSibling.addEventListener('click', (e) => { - applySort(el, el.value); - console.log('You selected: ', el.value); - }); - }); -} - async function removeRedundantExtraNetworks() { //console.log("Starting optimizations for Extra Networks"); if (!IS_BACKEND_OPTIMIZED) { @@ -184,11 +41,21 @@ async function removeRedundantExtraNetworks() { gradioApp.querySelector("#img2img_hypernetworks_cards_html")?.remove(); gradioApp.querySelector("#img2img_lora_cards_html")?.remove(); + gradioApp.querySelector("#txt2img_textual_inversion_cards_html")?.remove(); + gradioApp.querySelector("#txt2img_checkpoints_cards_html")?.remove(); + gradioApp.querySelector("#txt2img_hypernetworks_cards_html")?.remove(); + gradioApp.querySelector("#txt2img_lora_cards_html")?.remove(); + console.log("Remove element #img2img_textual_inversion_cards_html"); console.log("Remove element #img2img_checkpoints_cards_html"); console.log("Remove element #img2img_hypernetworks_cards_html"); console.log("Remove element #img2img_lora_cards_html"); + + console.log("Remove element #txt2img_textual_inversion_cards_html"); + console.log("Remove element #txt2img_checkpoints_cards_html"); + console.log("Remove element #txt2img_hypernetworks_cards_html"); + console.log("Remove element #txt2img_lora_cards_html"); } } -export {removeStyleAssets, optimizeExtraNetworksCards, optimizeExtraNetworksSearchSort, removeRedundantExtraNetworks}; +export {removeStyleAssets, removeRedundantExtraNetworks}; diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/sd_output_images.js b/extensions-builtin/sd-webui-ux/javascript/src/components/sd_output_images.js new file mode 100644 index 00000000..1dfcd2d3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/sd_output_images.js @@ -0,0 +1,576 @@ +import {VirtualScroll} from './uiux/virtual.js'; +import {TreeView} from './uiux/tree_view.js'; +import {DynamicForm} from './dynamic_forms.js'; +import {DEFAULT_PATH, SD_VERSIONS_OPTIONS} from '../constants.js'; +import {updateInput, sendImageParamsTo} from "../utils/helpers.js"; +import {setupInputObservers, setupCheckpointChangeObserver} from '../utils/observers.js'; +import {requestGetData, requestPostData} from '../utils/api_external.js'; +import {resyncTableData} from '../utils/api.js'; +import {createVirtualItemElement} from '../utils/renderers.js'; + + +export async function setupSdOutputImages() { + setupSdOutputImage('output_images', "images", "outputs/"); +} + + +function detailView(container, elem) { + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + dcontainer.innerHTML = ''; + dcontainer.appendChild(elem); +} + +const selected_sd_output_images = {}; +let vScroll; +let treeView; +let apiParams; +let container; + +export async function setupSdOutputImage(netkey, table, base_path) { + container = document.querySelector(`#${netkey}_cardholder`); + const searchInput = document.querySelector(`#${netkey}_search`); + const sortSelect = document.querySelector(`#${netkey}_sort`); + sortSelect.value = 'date_created'; + const orderButton = document.querySelector(`#${netkey}_order`); + const modelVerSelect = document.querySelector(`#${netkey}_sd_version`); + const refresh = document.querySelector(`#${netkey}_refresh`); + const rebuild_thumbs = document.querySelector(`#${netkey}_rebuild`); + const searchClear = document.querySelector(`#${netkey}_clear`); + + const treeViewButton = document.querySelector(`#${netkey}_show-dirs`); + + const gradio_refresh = document.querySelector("#refresh_output_images_database"); + + selected_sd_output_images[`txt2img_${table}`] = []; + selected_sd_output_images[`img2img_${table}`] = []; + + const limit = 100; + const apiUrl = `/sd_webui_ux/get_items_from_db`; + const method = `GET`; + + const initApiParams = { + table_name: table, + skip: 0, + limit: limit, + sort_by: "date_created", + order: "desc", + search_term: "", + }; + + const itemKeys = { + title: 'name', + url: 'preview', + dataPath: 'items' + }; + + const paramsMapping = { + [`#${netkey}_search`]: 'search_term', + [`#${netkey}_sort`]: 'sort_by', + [`#${netkey}_search_in`]: 'search_columns', + [`#${netkey}_sd_version`]: 'sd_version' + }; + + const modifyParams = (params) => { + params.skip = 0; + return params; + }; + + vScroll = new VirtualScroll(container, [], 18, itemKeys, apiUrl, initApiParams, method); + apiParams = setupInputObservers(paramsMapping, initApiParams, vScroll, modifyParams); + + //vScroll.setLayout('horizontal'); + + vScroll.setNextCursor = function(nextCursor) { + if (nextCursor && this.data.length > 0) { + this.params.skip = this.params.cursor = nextCursor; + } else { + delete this.params.cursor; + } + }; + + let imgRes = 'thumbnail'; + + // Render: Item Node Renderer Overwrite + vScroll.createItemElement = item => createVirtualItemElement(item, imgRes, vScroll.selected, '/sd_image/thumb/'); + + vScroll.clickHandler = function(e) { + if (vScroll.dragged || vScroll.scrollDelta) return; + const itemCard = e.target.closest('.item.card'); + const itemId = itemCard?.dataset.id; + if (itemId) { + const itemData = this.data.find(item => item.id.toString() === itemId); + //console.log(itemId, e.target, this.data); + if (itemData) { + applySdOutputImagesPrompts(e.target, itemData, itemId); + } + } + e.preventDefault(); + e.stopPropagation(); + }; + + rebuild_thumbs.addEventListener('click', (e) => { + requestPostData('/sd_webui_ux/generate-thumbnails', {table_name: table}, function(data) { + //console.log(data); + //gradio_refresh.click(); + setTimeout(() => { + apiParams.skip = 0; + vScroll.updateParamsAndFetch(apiParams, 0); + }, 1000); + }); + }); + + orderButton.addEventListener('click', (e) => { + const val = orderButton.classList.contains("active"); + apiParams.skip = 0; + apiParams.order = val ? "desc" : "asc"; + vScroll.updateParamsAndFetch(apiParams, 0); + }); + + searchClear.addEventListener('click', (e) => { + searchInput.value = ""; + updateInput(searchInput); + }); + + + orderButton.click(); + //vScroll.updateParamsAndFetch(apiParams, 0); + + + // TreeView + function createTreeView() { + if (treeView){return;} + treeView = new TreeView(`#${netkey}_tree_view`, '/sd_webui_ux/get_items_by_path', table, base_path); + treeView.initialize(); + + treeView.createFileItem = function(tree, key) { + const li = document.createElement('li'); + li.dataset.name = tree[key].name; + li.dataset.id = tree[key].id; + if (this.selected?.has(tree[key].name)) { + li.classList.add('active'); + } + li.innerHTML = `${tree[key].name}`; + li.classList.add('li-file'); + + const itemEditMeta = document.createElement('button'); + itemEditMeta.className = `edit-meta edit-button card-button`; + + const copyPath = document.createElement('button'); + copyPath.className = `copy-path copy-path-button card-button`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + + itemActions.appendChild(copyPath); + itemActions.appendChild(itemEditMeta); + + li.appendChild(itemActions); + return li; + }; + + treeView.onFolderClicked = function(target, path, active) { + //console.log(path, active); + //searchInput.value = active ? path : ""; + //updateInput(searchInput); + }; + + treeView.onFileClicked = function(target, itemData) { + applySdOutputImagesPrompts(target, itemData, itemData.id); + }; + } + + treeViewButton.addEventListener('click', () => { + createTreeView(); + }); + + function updateTreeViewSelectedItems() { + if (treeView) { + treeView.selected = vScroll.selected; + treeView.updateSelectedItems(); + } + } + + refresh.addEventListener('click', async () => { + const result = await resyncTableData(apiParams, vScroll); + if (treeView) { + await treeView.initialize(); + } + if (!result.success) { + console.warn(`Resync failed: ${result.error}`); + } + }); + + + + // Highlight Selected Items + function selectItems(e) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const currNetwork = selected_sd_output_images[`${prompt_focused}_${table}`]; + setTimeout(() => { + let txt_value = ''; + document.querySelectorAll(`#${prompt_focused}_prompt textarea, #${prompt_focused}_neg_prompt textarea`).forEach(textarea => { + txt_value += textarea.value; + }); + + const cleanedNetwork = currNetwork.filter(network => { + return network && network.value && txt_value.includes(network.value); + }); + + selected_sd_output_images[`${prompt_focused}_${table}`] = cleanedNetwork; + + const selectedNames = new Set(cleanedNetwork.map(network => network.name)); + vScroll.selected = selectedNames; + + vScroll.forceRenderItems(); + updateTreeViewSelectedItems(); + + }, 100); + } + + + function selectItemsFromDB(e) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const currNetwork = selected_sd_output_images[`${prompt_focused}_${table}`]; + let txt_value = ''; + + //document.querySelectorAll(`#${prompt_focused}_prompt textarea, #${prompt_focused}_neg_prompt textarea`).forEach(textarea => { + // txt_value += ` ${textarea.value}`; + //}); + + document.querySelectorAll(`#${prompt_focused}_prompt textarea`).forEach(textarea => { + txt_value += `${textarea.value}`; + }); + + if (txt_value.length > 2) { + + function cleanPhrases(input) { + return input.replace(/[()]+|:[0-9]+(.[0-9]+)?/g, '').trim(); + } + + const words = txt_value.trim().split('. '); + const cleaned_words = words.map(cleanPhrases).filter(Boolean); // Filter empty strings + const words_dot = cleaned_words.map(word => '. ' + word); + + if (words_dot.length > 0) { + //console.log(words_dot); + const url = '/sd_webui_ux/search_words_in_tables_columns'; + const params = { + words: words_dot, + tables: table, + columns: 'prompt', + threshold: 1 + }; + + requestPostData(url, params, function(result) { + const data = result[table]; + console.log(data); + const cleanedNetwork = data.map(itemData => { + return { + id: itemData.id, + name: itemData.name, + value: itemData.prompt + }; + }); + + selected_sd_output_images[`${prompt_focused}_${table}`] = cleanedNetwork; + vScroll.selected = new Set(cleanedNetwork.map(network => network.name)); + + }); + } + + } else { + vScroll.selected = new Set(); + } + + vScroll.forceRenderItems(); + updateTreeViewSelectedItems(); + + } + + document.querySelectorAll('#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea').forEach(textarea => { + textarea.addEventListener('input', selectItems); + textarea.addEventListener('focus', selectItemsFromDB); + }); + + + // OutputImages + function applySdOutputImagesPrompts(target, itemData, item_id) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const prompt = itemData.prompt || ""; + const neg_prompt = itemData.negative || ""; + + //console.log(target); + + if (target.classList.contains("copy-path")) { + navigator.clipboard.writeText(itemData.filename); + } else if (target.classList.contains("fullsize-button")) { + vScroll.scrollToId(itemData.id); + if (vScroll.isFullSize) { + imgRes = 'thumbnail'; + vScroll.setFullSize(false); + vScroll.setLayout('vertical'); + target.classList.remove('active'); + } else { + imgRes = 'local_preview'; + vScroll.setFullSize(true); + vScroll.setLayout('vertical'); + //vScroll.setLayout('horizontal'); + target.classList.add('active'); + } + } else if (target.classList.contains("tile-button")) { + vScroll.setTileable(!vScroll.isTileable); + } else if (target.classList.contains("info-button")) { + vScroll.setInfo(!vScroll.isInfo); + } else if (target.classList.contains("fullScreen-button")) { + vScroll.scrollToId(itemData.id); + vScroll.setFullScreen(!vScroll.isFullScreen); + } else if (target.classList.contains("edit-meta")) { + createUserMetaForm(itemData, itemData.id); + } else if (target.classList.contains("delete-button")) { + deleteItem(itemData, itemData.id); + } else if (target.classList.contains("send-params-button")) { + const imgUrl = `/sd_image/thumb/${encodeURIComponent(itemData.local_preview)}`; + sendImageParamsTo(imgUrl, `#pnginfo_send_${prompt_focused} button`); + } else if (itemData.type === "Image") { + if (vScroll.isFullSize) return; + //console.warn(prompt_focused, window.UIUX.FOCUS_PROMPT); + window.cardClicked(prompt_focused, prompt, neg_prompt, true); + selected_sd_output_images[`${prompt_focused}_${table}`].push({id: itemData.id, name: itemData.name, value: prompt}); + } + } + + function deleteItem(itemData, itemId) { + const url = '/sd_webui_ux/delete_item'; + const params = { + table_name: table, + item_id: itemId, + }; + + requestPostData(url, params, function(result) { + //console.log(result); + vScroll.removeDataById(itemId); + treeView?.update(); + }); + } + + // User Metadata Form + function createUserMetaForm(itemData, item_id) { + createTreeView(); + if (!treeView.subpaths){ + setTimeout(() => { + createUserMetaForm(itemData, item_id) + }, 1000); + return; + } + const table = "images"; + const output_images_folders = treeView.subpaths; + const output_images_folders_options = new Set(output_images_folders.map(folder => folder.relativePath)); + const output_images_folders_options_array = Array.from(output_images_folders_options); + let output_images_folders_select_options = [{value: 'None', textContent: 'None'}]; + let output_images_folders_selected; + + output_images_folders_options_array.forEach(option => { + if (itemData.filename?.includes(`${option}/`)) { + output_images_folders_selected = option; + } + output_images_folders_select_options.push( + { + value: option, + textContent: option, + } + ); + }); + + const fields = { + local_preview: {type: 'input', id: 'local_preview_path', name: 'local_preview', label: "Local Preview"}, + row: { + type: 'row', + draw: 'true', + id: 'parent_folder_select_row', + label: 'Parent Category / Filename', + children: [ + { + parent_folder: { + type: 'select', + id: 'parent_folder_select', + class: 'grow', + value: output_images_folders_selected, + options: output_images_folders_select_options + } + }, + { + save_path: {type: 'input', id: 'parent_folder_save', class: 'grow', value: itemData.name, label: "Image Name"}, + } + ] + }, + sd_version: { + type: 'select', name: 'sd_version', label: "SD Version", value: itemData.sd_version, + options: SD_VERSIONS_OPTIONS + }, + prompt: {type: 'textarea', name: 'prompt', label: "Prompt", rows: 4}, + negative: {type: 'textarea', name: 'negative', label: "Negative Prompt", rows: 2}, + tags: {type: 'textarea', name: 'tags', label: "Tags"}, + description: {type: 'textarea', name: 'description', label: "Description", rows: 2} + }; + + const table_data = { + filename: {type: 'filename', label: 'Filename'}, + filesize: {type: 'filesize', label: 'Filesize'}, + type: {type: 'text', label: 'Type'}, + hash: {type: 'text', label: 'Hash'}, + date_created: {type: 'date-format', label: 'Date Created'}, + date_modified: {type: 'date-format', label: 'Date Modified'}, + }; + + const img_data = { + thumbnail: {type: 'img', api: '/sd_image/thumb/', showLabel: false}, + replace_preview: {type: 'button', label: 'Replace Preview', showLabel: false}, + }; + + + const url = '/sd_webui_ux/update_user_metadata'; + const formContainer = document.getElementById('formContainer'); + const dynamicForm = new DynamicForm(url, table, itemData, formContainer); + const formEl = dynamicForm.createForm(fields); + const tableEl = dynamicForm.createTable(table_data); + const imgEl = dynamicForm.createHtmlElement(img_data); + + const rowContainer = document.createElement('div'); + rowContainer.classList.add('non-editable-info', 'flexbox', 'padding', 'shrink'); + + rowContainer.appendChild(imgEl); + rowContainer.appendChild(tableEl); + + vScroll.showDetail(); + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + dcontainer.innerHTML = ''; + dcontainer.appendChild(rowContainer); + dcontainer.appendChild(formEl); + + const parent_folder_select = formEl.querySelector('#parent_folder_select'); + const parent_folder_select_label = formEl.querySelector('#parent_folder_select_row label'); + const parent_folder_save = formEl.querySelector('#parent_folder_save'); + const local_preview_path = formEl.querySelector('#local_preview_path input'); + + const delete_button = formEl.querySelector('button.delete'); + + let local_preview_path_value; + + + const clearPath = (path) => path.replace(/\/{2,}/g, '/'); + + const updateParentFolder = (e) => { + const selectedPath = parent_folder_select.value !== 'None' ? parent_folder_select.value : ''; + const fileName = parent_folder_save.value; + const relativePath = `${selectedPath}/${fileName}`; + parent_folder_select_label.textContent = `Image will be saved: ${clearPath(relativePath)}.png`; + local_preview_path_value = clearPath(`${output_images_folders[0].basePath}/${relativePath}.png`); + local_preview_path.value = local_preview_path_value; + }; + + parent_folder_select.addEventListener('change', updateParentFolder); + parent_folder_save.addEventListener('input', updateParentFolder); + updateParentFolder(); + + function getPathAndFilename(filePath) { + const lastSlashIndex = filePath.lastIndexOf('/'); + const path = filePath.substring(0, lastSlashIndex); + const filename = filePath.substring(lastSlashIndex + 1); + const lastDotIndex = filename.lastIndexOf('.'); + const filename_no_ext = filename.substring(0, lastDotIndex); + + return { + path: path, + filename: filename, + filename_no_ext: filename_no_ext + }; + } + + let source_file; + + dynamicForm.beforeFormSubmit = function(fdata) { + fdata.name = getPathAndFilename(local_preview_path_value).filename_no_ext; + fdata.filename = local_preview_path_value; + fdata.type = 'Image'; + if (itemData.id) fdata.id = itemData.id; + if (source_file) fdata.source_file = source_file; + return fdata; + }; + + dynamicForm.afterFormSubmit = function(data, newdata) { + vScroll.hideDetail(); + //console.log(data); + //const lp = getPathAndFilename(local_preview_path_value); + //const timestamp = new Date().getTime(); + //data.thumbnail = `${lp.path}/thumbnails/${lp.filename_no_ext}.thumb.webp`; + //data.timestamp = `?t=${timestamp}`; + //data.local_preview = local_preview_path_value; + vScroll.updateDataById(newdata, newdata.id); + //treeView.updateDataById(data, item_id); + treeView?.update(); + }; + + function replacePreviewImage() { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const gallery_img = document.querySelector(`#${prompt_focused}_gallery [data-testid="detailed-image"]`); + if (gallery_img) { + const thumb_preview = imgEl.querySelector('.thumbnail-image'); + //const local_preview = formEl.querySelector('#local_preview_path input'); + source_file = gallery_img.src.split('file=')[1].split('?')[0]; + thumb_preview.style.filter = 'grayscale(1)'; + } + } + + const replace_local_preview = imgEl.querySelector('button.replace_preview'); + replace_local_preview.addEventListener('click', (e) => { + replacePreviewImage(); + }); + + if (!itemData.id) { + replacePreviewImage(); + } + + if (itemData.id) { + delete_button.addEventListener('click', (e) => { + const url = '/sd_webui_ux/delete_item'; + const params = { + table_name: table, + item_id: itemData.id, + }; + requestPostData(url, params, function(result) { + console.log(result); + vScroll.hideDetail(); + apiParams.skip = 0; + vScroll.updateParamsAndFetch(apiParams, 0); + treeView?.update(); + + }); + }); + } + } + + function createNewOutputImage() { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const prompt_textarea = document.querySelector(`#${prompt_focused}_prompt textarea`); + const neg_prompt_textarea = document.querySelector(`#${prompt_focused}_neg_prompt textarea`); + const clearDots = (txt) => txt.replace(/\s{2,}/g, ' ').replace(/(\. )\1+/g, '. '); + const newItemData = {}; + newItemData.prompt = clearDots('. ' + prompt_textarea.value); + newItemData.negative = clearDots('. ' + neg_prompt_textarea.value); + newItemData.name = 'Untitled'; + newItemData.description = ''; + newItemData.tags = ''; + newItemData.local_preview = ''; + + createUserMetaForm(newItemData, null); + + } + + const styles_create = document.querySelector("#layout_db_output_images button.create-style"); + + styles_create.addEventListener('click', (e) => { + createNewOutputImage(); + }); + + +} diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/sd_styles.js b/extensions-builtin/sd-webui-ux/javascript/src/components/sd_styles.js new file mode 100644 index 00000000..65df474e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/sd_styles.js @@ -0,0 +1,565 @@ +import {VirtualScroll} from './uiux/virtual.js'; +import {TreeView} from './uiux/tree_view.js'; +import {DynamicForm} from './dynamic_forms.js'; +import {DEFAULT_PATH, SD_VERSIONS_OPTIONS} from '../constants.js'; +import {updateInput, sendImageParamsTo} from "../utils/helpers.js"; +import {setupInputObservers, setupCheckpointChangeObserver} from '../utils/observers.js'; +import {requestGetData, requestPostData} from '../utils/api_external.js'; +import {resyncTableData} from '../utils/api.js'; +import {createVirtualItemElement} from '../utils/renderers.js'; + + +export async function setupSdStyles() { + setupSdStyle('styles', "styles", "styles_data/"); +} + +function detailView(container, elem) { + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + dcontainer.innerHTML = ''; + dcontainer.appendChild(elem); +} + +const selected_sd_styles = {}; +let vScroll; +let treeView; +let apiParams; +let container; + +export async function setupSdStyle(netkey, table, base_path) { + container = document.querySelector(`#${netkey}_cardholder`); + const searchInput = document.querySelector(`#${netkey}_search`); + const sortSelect = document.querySelector(`#${netkey}_sort`); + const orderButton = document.querySelector(`#${netkey}_order`); + const modelVerSelect = document.querySelector(`#${netkey}_sd_version`); + const refresh = document.querySelector(`#${netkey}_refresh`); + const rebuild_thumbs = document.querySelector(`#${netkey}_rebuild`); + const searchClear = document.querySelector(`#${netkey}_clear`); + + const treeViewButton = document.querySelector(`#${netkey}_show-dirs`); + + //const gradio_refresh = document.querySelector("#refresh_styles_database"); + + selected_sd_styles[`txt2img_${table}`] = []; + selected_sd_styles[`img2img_${table}`] = []; + + const limit = 100; + const apiUrl = `/sd_webui_ux/get_items_from_db`; + const method = `GET`; + + const initApiParams = { + table_name: table, + skip: 0, + limit: limit, + sort_by: "name", + order: "asc", + search_term: "", + }; + + const itemKeys = { + title: 'name', + url: 'preview', + dataPath: 'items' + }; + + const paramsMapping = { + [`#${netkey}_search`]: 'search_term', + [`#${netkey}_sort`]: 'sort_by', + [`#${netkey}_search_in`]: 'search_columns', + [`#${netkey}_sd_version`]: 'sd_version' + }; + + const modifyParams = (params) => { + params.skip = 0; + return params; + }; + + vScroll = new VirtualScroll(container, [], 18, itemKeys, apiUrl, initApiParams, method); + apiParams = setupInputObservers(paramsMapping, initApiParams, vScroll, modifyParams); + + vScroll.setNextCursor = function(nextCursor) { + if (nextCursor && this.data.length > 0) { + this.params.skip = this.params.cursor = nextCursor; + } else { + delete this.params.cursor; + } + }; + + let imgRes = 'thumbnail'; + + // Render: Item Node Renderer Overwrite + vScroll.createItemElement = item => createVirtualItemElement(item, imgRes, vScroll.selected, '/sd_styles/thumb/'); + + vScroll.clickHandler = function(e) { + if (vScroll.dragged || vScroll.scrollDelta) return; + const itemCard = e.target.closest('.item.card'); + const itemId = itemCard?.dataset.id; + if (itemId) { + const itemData = this.data.find(item => item.id.toString() === itemId); + //console.log(itemId, e.target, this.data); + if (itemData) { + applySdStylesPrompts(e.target, itemData, itemId); + } + } + e.preventDefault(); + e.stopPropagation(); + }; + + rebuild_thumbs.addEventListener('click', (e) => { + requestPostData('/sd_webui_ux/generate-thumbnails', {table_name: table}, function(data) { + //console.log(data); + //gradio_refresh.click(); + setTimeout(() => { + apiParams.skip = 0; + vScroll.updateParamsAndFetch(apiParams, 0); + }, 1000); + }); + }); + + orderButton.addEventListener('click', (e) => { + const val = orderButton.classList.contains("active"); + apiParams.skip = 0; + apiParams.order = val ? "desc" : "asc"; + vScroll.updateParamsAndFetch(apiParams, 0); + }); + + searchClear.addEventListener('click', (e) => { + searchInput.value = ""; + updateInput(searchInput); + }); + + vScroll.updateParamsAndFetch(apiParams, 0); + + + function createTreeView() { + if (treeView){return;} + treeView = new TreeView(`#${netkey}_tree_view`, '/sd_webui_ux/get_items_by_path', table, base_path); + treeView.initialize(); + + treeView.createFileItem = function(tree, key) { + const li = document.createElement('li'); + li.dataset.name = tree[key].name; + li.dataset.id = tree[key].id; + if (this.selected?.has(tree[key].name)) { + li.classList.add('active'); + } + li.innerHTML = `${tree[key].name}`; + li.classList.add('li-file'); + + const itemEditMeta = document.createElement('button'); + itemEditMeta.className = `edit-meta edit-button card-button`; + + const copyPath = document.createElement('button'); + copyPath.className = `copy-path copy-path-button card-button`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + + itemActions.appendChild(copyPath); + itemActions.appendChild(itemEditMeta); + + li.appendChild(itemActions); + return li; + }; + + treeView.onFolderClicked = function(target, path, active) { + //console.log(path, active); + //searchInput.value = active ? path : ""; + //updateInput(searchInput); + }; + + treeView.onFileClicked = function(target, itemData) { + applySdStylesPrompts(target, itemData, itemData.id); + }; + } + + treeViewButton.addEventListener('click', () => { + createTreeView(); + }); + + function updateTreeViewSelectedItems() { + if (treeView) { + treeView.selected = vScroll.selected; + treeView.updateSelectedItems(); + } + } + + refresh.addEventListener('click', async () => { + const result = await resyncTableData(apiParams, vScroll); + if (treeView) { + await treeView.initialize(); + } + if (!result.success) { + console.warn(`Resync failed: ${result.error}`); + } + }); + + // Highlight Selected Items + function selectItems(e) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const currNetwork = selected_sd_styles[`${prompt_focused}_${table}`]; + setTimeout(() => { + let txt_value = ''; + document.querySelectorAll(`#${prompt_focused}_prompt textarea, #${prompt_focused}_neg_prompt textarea`).forEach(textarea => { + txt_value += textarea.value; + }); + + const cleanedNetwork = currNetwork.filter(network => { + return network && network.value && txt_value.includes(network.value); + }); + + selected_sd_styles[`${prompt_focused}_${table}`] = cleanedNetwork; + + const selectedNames = new Set(cleanedNetwork.map(network => network.name)); + vScroll.selected = selectedNames; + + vScroll.forceRenderItems(); + updateTreeViewSelectedItems(); + + }, 100); + } + + + function selectItemsFromDB(e) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const currNetwork = selected_sd_styles[`${prompt_focused}_${table}`]; + let txt_value = ''; + + //document.querySelectorAll(`#${prompt_focused}_prompt textarea, #${prompt_focused}_neg_prompt textarea`).forEach(textarea => { + // txt_value += ` ${textarea.value}`; + //}); + + document.querySelectorAll(`#${prompt_focused}_prompt textarea`).forEach(textarea => { + txt_value += `${textarea.value}`; + }); + + if (txt_value.length > 2) { + + function cleanPhrases(input) { + return input.replace(/[()]+|:[0-9]+(.[0-9]+)?/g, '').trim(); + } + + const words = txt_value.trim().split('. '); + const cleaned_words = words.map(cleanPhrases).filter(Boolean); // Filter empty strings + const words_dot = cleaned_words.map(word => '. ' + word); + + if (words_dot.length > 0) { + //console.log(words_dot); + const url = '/sd_webui_ux/search_words_in_tables_columns'; + const params = { + words: words_dot, + tables: table, + columns: 'prompt', + threshold: 1 + }; + + requestPostData(url, params, function(result) { + const data = result[table]; + console.log(data); + const cleanedNetwork = data.map(itemData => { + return { + id: itemData.id, + name: itemData.name, + value: itemData.prompt + }; + }); + + selected_sd_styles[`${prompt_focused}_${table}`] = cleanedNetwork; + vScroll.selected = new Set(cleanedNetwork.map(network => network.name)); + updateTreeViewSelectedItems(); + + }); + } + + } else { + vScroll.selected = new Set(); + updateTreeViewSelectedItems(); + } + + vScroll.forceRenderItems() + updateTreeViewSelectedItems(); + } + + document.querySelectorAll('#txt2img_prompt textarea, #img2img_prompt textarea, #txt2img_neg_prompt textarea, #img2img_neg_prompt textarea').forEach(textarea => { + textarea.addEventListener('input', selectItems); + textarea.addEventListener('focus', selectItemsFromDB); + }); + + + // Styles + function applySdStylesPrompts(target, itemData, item_id) { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const prompt = itemData.prompt || ""; + const neg_prompt = itemData.negative || ""; + + //console.log(target); + + if (target.classList.contains("copy-path")) { + navigator.clipboard.writeText(itemData.filename); + } else if (target.classList.contains("fullsize-button")) { + vScroll.scrollToId(itemData.id); + if (vScroll.isFullSize) { + imgRes = 'thumbnail'; + vScroll.setFullSize(false); + vScroll.setLayout('vertical'); + target.classList.remove('active'); + } else { + imgRes = 'local_preview'; + vScroll.setFullSize(true); + vScroll.setLayout('vertical'); + target.classList.add('active'); + } + } else if (target.classList.contains("tile-button")) { + vScroll.setTileable(!vScroll.isTileable); + } else if (target.classList.contains("info-button")) { + vScroll.setInfo(!vScroll.isInfo); + } else if (target.classList.contains("fullScreen-button")) { + vScroll.scrollToId(itemData.id); + vScroll.setFullScreen(!vScroll.isFullScreen); + } else if (target.classList.contains("edit-meta")) { + createUserMetaForm(itemData, itemData.id); + } else if (target.classList.contains("delete-button")) { + deleteItem(itemData, itemData.id); + } else if (target.classList.contains("send-params-button")) { + const imgUrl = `/sd_styles/thumb/${encodeURIComponent(itemData.local_preview)}`; + sendImageParamsTo(imgUrl, `#pnginfo_send_${prompt_focused} button`); + } else if (itemData.type === "Style") { + if (vScroll.isFullSize) return; + window.cardClicked(prompt_focused, prompt, neg_prompt, true); + selected_sd_styles[`${prompt_focused}_styles`].push({id: itemData.id, name: itemData.name, value: prompt}); + } + } + + function deleteItem(itemData, item_id) { + const url = '/sd_webui_ux/delete_item'; + const params = { + table_name: table, + item_id: itemData.id, + }; + requestPostData(url, params, function(result) { + //console.log(result); + vScroll.removeDataById(itemData.id); + treeView?.update(); + }); + } + + // User Metadata Form + function createUserMetaForm(itemData, item_id) { + createTreeView(); + if (!treeView.subpaths){ + setTimeout(() => { + createUserMetaForm(itemData, item_id) + }, 1000); + return; + } + const table = "styles"; + const styles_folders = treeView.subpaths; + const styles_folders_options = new Set(styles_folders.map(folder => folder.relativePath)); + const styles_folders_options_array = Array.from(styles_folders_options); + let styles_folders_select_options = [{value: 'None', textContent: 'None'}]; + let styles_folders_selected; + + styles_folders_options_array.forEach(option => { + if (itemData.filename?.includes(`${option}/`)) { + styles_folders_selected = option; + } + styles_folders_select_options.push( + { + value: option, + textContent: option, + } + ); + }); + + const fields = { + local_preview: {type: 'input', id: 'local_preview_path', name: 'local_preview', label: "Local Preview"}, + row: { + type: 'row', + draw: 'true', + id: 'parent_folder_select_row', + label: 'Parent Category / Filename', + children: [ + { + parent_folder: { + type: 'select', + id: 'parent_folder_select', + class: 'grow', + value: styles_folders_selected, + options: styles_folders_select_options + } + }, + { + save_path: {type: 'input', id: 'parent_folder_save', class: 'grow', value: itemData.name, label: "Style Name"}, + } + ] + }, + sd_version: { + type: 'select', name: 'sd_version', label: "SD Version", value: itemData.sd_version, + options: SD_VERSIONS_OPTIONS + }, + prompt: {type: 'textarea', name: 'prompt', label: "Prompt", rows: 4}, + negative: {type: 'textarea', name: 'negative', label: "Negative Prompt", rows: 2}, + tags: {type: 'textarea', name: 'tags', label: "Tags"}, + description: {type: 'textarea', name: 'description', label: "Description", rows: 2} + }; + + const table_data = { + filename: {type: 'filename', label: 'Filename'}, + filesize: {type: 'filesize', label: 'Filesize'}, + type: {type: 'text', label: 'Type'}, + hash: {type: 'text', label: 'Hash'}, + date_created: {type: 'date-format', label: 'Date Created'}, + date_modified: {type: 'date-format', label: 'Date Modified'}, + }; + + const img_data = { + thumbnail: {type: 'img', api: '/sd_styles/thumb/', showLabel: false}, + replace_preview: {type: 'button', label: 'Replace Preview', showLabel: false}, + }; + + + const url = '/sd_webui_ux/update_user_metadata'; + const formContainer = document.getElementById('formContainer'); + const dynamicForm = new DynamicForm(url, table, itemData, formContainer); + const formEl = dynamicForm.createForm(fields); + const tableEl = dynamicForm.createTable(table_data); + const imgEl = dynamicForm.createHtmlElement(img_data); + + const rowContainer = document.createElement('div'); + rowContainer.classList.add('non-editable-info', 'flexbox', 'padding', 'shrink'); + + rowContainer.appendChild(imgEl); + rowContainer.appendChild(tableEl); + + vScroll.showDetail(); + const dcontainer = container.parentElement.querySelector('.ae-virtual-detail-content'); + dcontainer.innerHTML = ''; + dcontainer.appendChild(rowContainer); + dcontainer.appendChild(formEl); + + const parent_folder_select = formEl.querySelector('#parent_folder_select'); + const parent_folder_select_label = formEl.querySelector('#parent_folder_select_row label'); + const parent_folder_save = formEl.querySelector('#parent_folder_save'); + const local_preview_path = formEl.querySelector('#local_preview_path input'); + + const delete_button = formEl.querySelector('button.delete'); + + let local_preview_path_value; + + + const clearPath = (path) => path.replace(/\/{2,}/g, '/'); + + const updateParentFolder = (e) => { + const selectedPath = parent_folder_select.value !== 'None' ? parent_folder_select.value : ''; + const fileName = parent_folder_save.value; + const relativePath = `${selectedPath}/${fileName}`; + parent_folder_select_label.textContent = `Style will be saved: ${clearPath(relativePath)}.png`; + local_preview_path_value = clearPath(`${styles_folders[0].basePath}/${relativePath}.png`); + local_preview_path.value = local_preview_path_value; + }; + + parent_folder_select.addEventListener('change', updateParentFolder); + parent_folder_save.addEventListener('input', updateParentFolder); + updateParentFolder(); + + function getPathAndFilename(filePath) { + const lastSlashIndex = filePath.lastIndexOf('/'); + const path = filePath.substring(0, lastSlashIndex); + const filename = filePath.substring(lastSlashIndex + 1); + const lastDotIndex = filename.lastIndexOf('.'); + const filename_no_ext = filename.substring(0, lastDotIndex); + + return { + path: path, + filename: filename, + filename_no_ext: filename_no_ext + }; + } + + let source_file; + + dynamicForm.beforeFormSubmit = function(fdata) { + fdata.name = getPathAndFilename(local_preview_path_value).filename_no_ext; + fdata.filename = local_preview_path_value; + fdata.type = 'Style'; + if (itemData.id) fdata.id = itemData.id; + if (source_file) fdata.source_file = source_file; + return fdata; + }; + + dynamicForm.afterFormSubmit = function(data, newdata) { + vScroll.hideDetail(); + //console.log(data); + //const lp = getPathAndFilename(local_preview_path_value); + //const timestamp = new Date().getTime(); + //data.thumbnail = `${lp.path}/thumbnails/${lp.filename_no_ext}.thumb.webp`; + //data.timestamp = `?t=${timestamp}`; + //data.local_preview = local_preview_path_value; + vScroll.updateDataById(newdata, newdata.id); + //treeView.updateDataById(data, item_id); + treeView?.update(); + }; + + function replacePreviewImage() { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const gallery_img = document.querySelector(`#${prompt_focused}_gallery [data-testid="detailed-image"]`); + if (gallery_img) { + const thumb_preview = imgEl.querySelector('.thumbnail-image'); + //const local_preview = formEl.querySelector('#local_preview_path input'); + source_file = gallery_img.src.split('file=')[1].split('?')[0]; + thumb_preview.style.filter = 'grayscale(1)'; + } + } + + const replace_local_preview = imgEl.querySelector('button.replace_preview'); + replace_local_preview.addEventListener('click', (e) => { + replacePreviewImage(); + }); + + if (!itemData.id) { + replacePreviewImage(); + } + + if (itemData.id) { + delete_button.addEventListener('click', (e) => { + const url = '/sd_webui_ux/delete_item'; + const params = { + table_name: table, + item_id: itemData.id, + }; + requestPostData(url, params, function(result) { + console.log(result); + vScroll.hideDetail(); + apiParams.skip = 0; + vScroll.updateParamsAndFetch(apiParams, 0); + treeView?.update(); + + }); + }); + } + } + + function createNewStyle() { + const prompt_focused = window.UIUX.FOCUS_PROMPT; + const prompt_textarea = document.querySelector(`#${prompt_focused}_prompt textarea`); + const neg_prompt_textarea = document.querySelector(`#${prompt_focused}_neg_prompt textarea`); + const clearDots = (txt) => txt.replace(/\s{2,}/g, ' ').replace(/(\. )\1+/g, '. '); + const newItemData = {}; + newItemData.prompt = clearDots('. ' + prompt_textarea.value); + newItemData.negative = clearDots('. ' + neg_prompt_textarea.value); + newItemData.name = 'Untitled'; + newItemData.description = ''; + newItemData.tags = ''; + newItemData.local_preview = ''; + + createUserMetaForm(newItemData, null); + + } + + const styles_create = document.querySelector("#layout_db_styles button.create-style"); + + styles_create.addEventListener('click', (e) => { + createNewStyle(); + }); + + +} diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/button.js b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/button.js index 54a5ec70..a636b981 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/button.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/button.js @@ -1,10 +1,8 @@ import {getGradioApp, getAnapnoeApp} from '../../constants.js'; import {appendPortalContent} from './portal.js'; -import {optimizeExtraNetworksCards} from '../optimizations.js'; export async function initButtonComponents(contentDiv) { //const anapnoeApp = getAnapnoeApp(); - function callToAction(el, tids, pid) { const acc_bar = el.closest(".accordion-bar"); if (acc_bar) { @@ -26,8 +24,16 @@ export async function initButtonComponents(contentDiv) { await Promise.all(Array.from(contentDiv.querySelectorAll('.ae-button')).map(async(el) => { const toggle = el.getAttribute("toggle"); const active = el.getAttribute("active"); + const data_click = el.getAttribute("data-click"); const input = el.querySelector('input'); + if (data_click) { + el.addEventListener('click', (e) => { + const target = document.querySelector(data_click); + target?.click(); + }); + } + if (input) { if (input.checked === true && !active) { input.click(); @@ -58,55 +64,6 @@ export async function initButtonComponents(contentDiv) { }); } - //maybe move this alsewhere - const adc = el.getAttribute("data-click"); - if (adc) { - el.addEventListener('click', (e) => { - if (el.classList.contains("refresh-extra-networks")) { - const id = el.closest(".layout")?.id; - const ckey = id.split("layout_")[1]; - const cpane = document.querySelector(`#${ckey}_pane > div`); - const elementsToAppend = [ - document.querySelector(`#${ckey}_dirs`), - document.querySelector(`#${ckey}_tree`), - document.querySelector(`#${ckey}_cards`) - ]; - - elementsToAppend.forEach(element => { - if (element) { - /* - element.querySelectorAll("[data-apply]").forEach((ca) => { - const data_apply = ca.getAttribute("data-apply"); - ca.setAttribute("onClick", data_apply); - ca.removeAttribute("data-apply"); - }); - */ - cpane.append(element); - } - }); - - const btn_refresh_internal = document.querySelector(`#${ckey}_extra_refresh_internal`); - btn_refresh_internal.dispatchEvent(new Event("click")); - - setTimeout(() => { - const asd = document.querySelector(`#${ckey}_aside_split`); - asd.querySelectorAll(`.portal`).forEach((elm, index, array) => { - appendPortalContent(elm, asd, 0, index, array.length); - }); - - // setupExtraNetworksForTab('txt2img'); - optimizeExtraNetworksCards(asd); - }, 1000); - } - - setTimeout(() => { - document.querySelectorAll(adc).forEach((el) => { - el.click(); - }); - }, 500); - - }); - } })); } diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tab.js b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tab.js index 17eeab7a..d9a1228a 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tab.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tab.js @@ -16,7 +16,7 @@ export async function initTabComponents(contentDiv) { tab.classList.remove('active'); const tids = tab.getAttribute("tabItemId"); anapnoeApp.querySelectorAll(tids).forEach((tabItem) => { - tabItem.classList.remove('fade-in'); + tabItem.classList.remove('fade-in', 'init-view'); tabItem.classList.add('fade-out'); }); } @@ -42,7 +42,7 @@ export async function initTabComponents(contentDiv) { const tids = el.getAttribute("tabItemId"); anapnoeApp.querySelectorAll(tids).forEach((tabItem) => { tabItem.classList.remove('fade-out'); - tabItem.classList.add('fade-in'); + tabItem.classList.add('fade-in', 'init-view'); tabItem.querySelectorAll(`.portal.dynamic`).forEach((dpEl, index, array) => { appendPortalContent(dpEl, document, 0, index, array.length); }); @@ -51,6 +51,7 @@ export async function initTabComponents(contentDiv) { el.classList.add('active'); callToAction(el, tids, pid); + } }); @@ -59,7 +60,7 @@ export async function initTabComponents(contentDiv) { if (!active) { const tids = el.getAttribute("tabItemId"); anapnoeApp.querySelectorAll(tids).forEach((tabItem) => { - tabItem.classList.remove('fade-in'); + tabItem.classList.remove('fade-in', 'init-view'); tabItem.classList.add('fade-out'); }); } @@ -73,6 +74,7 @@ export async function initTabComponents(contentDiv) { tabItem.classList.remove('fade-out'); tabItem.classList.add('fade-in'); }); + callToAction(el, tids, pid); // console.log('tab', tids, el); })); diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tree_view.js b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tree_view.js new file mode 100644 index 00000000..3e3a6eb9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/tree_view.js @@ -0,0 +1,228 @@ +export function TreeView(css_selector, fetchUrl, tableName, rootPath = '') { + this.container = document.querySelector(css_selector); + this.fetchUrl = fetchUrl; + this.tableName = tableName; + this.rootPath = rootPath.replace(/\\/g, '/').toLowerCase(); // Normalize rootPath once here + this.selected; +} + +TreeView.prototype.initialize = async function() { + this.container.innerHTML = ""; + const data = await this.fetchData(this.rootPath); + + const tree = this.buildTree(data); + const treeView = this.createTreeView(tree); + this.container.appendChild(treeView); + this.attachEventListeners(); + + this.itemMap = data.reduce((acc, item) => { + acc[item.id] = item; + return acc; + }, {}); +}; + +TreeView.prototype.updateSelectedItems = function() { + this.container.querySelectorAll('.li-file.active').forEach(item => { + item.classList.remove('active'); + }); + + this.selected?.forEach(name => { + const item = this.container.querySelector(`.li-file[data-name="${name}"]`); + if (item) { + item.classList.add('active'); + } + }); +}; + +TreeView.prototype.fetchData = async function(path) { + const response = await fetch(`${this.fetchUrl}?table_name=${this.tableName}&path=${encodeURIComponent(path)}`); + const json = await response.json(); + this.data = json.data; + this.subpaths = json.unique_subpaths; + this.subpaths = this.subpaths.map(subpath => { + const splitPath = subpath.split(path); + return {path: subpath, relativePath: splitPath[1], basePath: `${splitPath[0]}${path}`}; + }); + console.log(this.subpaths); + console.log("tree data length:", this.data.length); + return json.data; +}; + +TreeView.prototype.buildTree = function(items) { + const tree = {}; + const rootPath = this.rootPath; + tree[rootPath] = {}; + const rootLevel = tree[rootPath]; + + items.forEach(item => { + const fullPath = item.filename.replace(/\\/g, '/').toLowerCase(); + const rootIndex = fullPath.indexOf(rootPath); + if (rootIndex === -1) return; + + const relativePath = fullPath.slice(rootIndex + rootPath.length).replace(/^\//, ''); + const parts = relativePath.split('/').filter(Boolean); + + let currentLevel = rootLevel; + for (let i = 0; i < parts.length; i++) { + const part = parts[i]; + if (!currentLevel[part]) { + if (i === parts.length - 1) { + currentLevel[part] = item; + } else { + currentLevel[part] = {}; + } + } + currentLevel = currentLevel[part]; + } + }); + + return tree; +}; + + +TreeView.prototype.createFileItem = function(tree, key) { + const li = document.createElement('li'); + li.dataset.name = tree[key].name; + li.dataset.id = tree[key].id; + li.innerHTML = `${tree[key].name}`; + li.classList.add('li-file'); + return li; +}; + +TreeView.prototype.createFolderItem = function(tree, key, path) { + path += "/" + key; + path = path.replace(/\/{2,}/g, '/'); + const li = document.createElement('li'); + li.innerHTML = `${key}`; + const nestedUl = this.createTreeView(tree[key], path); + nestedUl.classList.add('nested'); + li.appendChild(nestedUl); + return li; +}; + +TreeView.prototype.createTreeView = function(tree, path = '') { + const ul = document.createElement('ul'); + ul.classList.add('tree-view'); + + for (const key in tree) { + let li; + if (typeof tree[key] === 'object' && !Array.isArray(tree[key])) { + if (key.includes(".safetensors") || key.includes(".pt") || key.includes(".png") || key.includes(".jpg") || key.includes(".webp")) { + li = this.createFileItem(tree, key); + } else { + li = this.createFolderItem(tree, key, path); + } + } else { + li = this.createFileItem(tree, key); + } + ul.appendChild(li); + } + + return ul; +}; + +TreeView.prototype.attachEventListeners = function() { + + if (this.eventListenerAdded) { + return; + } + + this.container.addEventListener('click', async(e) => { + //console.log('Clicked element:', e.target); // Log the clicked element + const target = e.target; + const listItem = target.closest('li[data-id]'); + const buttonItem = target.tagName === 'BUTTON'; + if (buttonItem) { + const itemId = listItem.dataset.id; + const itemData = this.getItemProperties(itemId); + this.onFileClicked(target, itemData); + } else if (listItem) { + const itemId = listItem.dataset.id; + const itemData = this.getItemProperties(itemId); + this.onFileClicked(listItem, itemData); + } else if (target.classList.contains('caret')) { + target.classList.toggle('caret-down'); + const nestedList = target.nextElementSibling; + if (nestedList.classList.contains('nested')) { + nestedList.classList.toggle('active'); + } + this.onFolderClicked(target, target.getAttribute('data-path'), nestedList.classList.contains('active')); + } + + e.stopPropagation(); + }); + + this.eventListenerAdded = true; + + + /* + this.container.addEventListener('click', async(event) => { + if (event.target.dataset.id) { + const itemId = event.target.dataset.id; + const itemData = this.getItemProperties(itemId); + this.onFileClicked(event.target, itemData); + } else if (event.target.classList.contains('caret')) { + event.target.classList.toggle('caret-down'); + const nestedList = event.target.nextElementSibling; + if (nestedList.classList.contains('nested')) { + nestedList.classList.toggle('active'); + } else { + //tree lazy loading data not yet implemented + const path = event.target.getAttribute('data-path'); + const data = await this.fetchData(path); + const tree = this.buildTree(data); + const treeView = this.createTreeView(tree, path); + nestedList.appendChild(treeView); + nestedList.classList.add('nested', 'active'); + } + + this.onFolderClicked(event.target, event.target.getAttribute('data-path'), nestedList.classList.contains('active')); + } + }); + */ +}; + +TreeView.prototype.getItemProperties = function(itemId) { + return this.itemMap[itemId]; +}; + +TreeView.prototype.update = async function() { + // Store open folders + const openFolders = []; + this.container.querySelectorAll('.tree-folder.caret-down').forEach(folder => { + openFolders.push(folder.dataset.path); + + }); + + const scrollPosition = this.container.parentElement.scrollTop; + await this.initialize(); + + // Restore open folders + openFolders.forEach(path => { + const folder = this.container.querySelector(`.tree-folder[data-path="${path}"]`); + if (folder) { + folder.click(); + } + }); + + this.container.parentElement.scrollTop = scrollPosition; + this.attachEventListeners(); +}; + + +TreeView.prototype.updateDataById = function(data, id) { + const item = this.itemMap[id]; + if (item) { + for (const [key, value] of Object.entries(data)) { + item[key] = value; + } + } else { + console.error(`Item with ID ${id} not found.`); + } +}; + +TreeView.prototype.onFolderClicked = function(target, path, active) { +}; + +TreeView.prototype.onFileClicked = function(target, data) { +}; diff --git a/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/virtual.js b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/virtual.js new file mode 100644 index 00000000..e143505b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/components/uiux/virtual.js @@ -0,0 +1,1161 @@ +/* final virtual scroll */ +export function VirtualScroll(container, + data, + itemsPerPage = 10, + keys = { title: 'username', url: 'url' }, + apiUrl = '', + params = {}, + method = "POST") { + + this.container = container; + this.originalData = data; + this.data = data; + this.itemsPerPage = itemsPerPage; + this.optItemsPerPage = itemsPerPage; + this.apiUrl = apiUrl; + this.method = method; + this.params = params; + this.limit = params.limit; + this.keys = keys; + this.startIndex = 0; + this.renderedItems = {}; + this.lastScrollPos = 0; + this.isFetching = false; + this.useDataFetching = true; + this.isInit = false; + + this.resolvedRenderMethod = this.renderItems;//ByIndex; + //this.forceRenderItems = this.renderItems;//ByIndex; + this.selected; + + this.smoothScrolling = true; + this.activePointers = {}; + this.zoom_scale = 1; + this.scrollDelta = 0; + this.x = this.y = 0; + + this.renderedRange = { start: -1, end: -1 }; + this.pendingRender = null; + this.scrollEndTimer = null; + this.lastScrollEventTime = 0; + + this.createContainer(); + this.createSentinels(); + this.createDetail(); + this.setLayout('vertical'); + this.initialize(); +} + +Object.assign(VirtualScroll.prototype, { + + initialize() { + if (!this.apiUrl || this.apiUrl.includes(".json")) { + this.useDataFetching = false; + } + + if (!this.isInit) { + if (this.data.length > 0) { + this.isInit = true; + this.resolvedRenderMethod(); + this.setupEventListeners(); + this.setupResizeObserver(); + this.updateDimensions(); + } + } else if (this.data.length > 0) { + this.itemsWrapper.classList.remove("hidden"); + //this.renderItems(); + this.updateDimensions(true); + } else { + this.itemsWrapper.classList.add("hidden"); + } + }, + + setFullSize(fullsize) { + this.isFullSize = fullsize; + fullsize ? this.container.classList.add('full') : this.container.classList.remove('full'); + }, + + setTileable(tileable) { + this.isTileable = tileable; + tileable ? this.container.classList.add('tileable') : this.container.classList.remove('tileable'); + }, + + setInfo(info) { + this.isInfo = info; + info ? this.container.classList.add('info') : this.container.classList.remove('info'); + }, + + setFullScreen(fullscreen) { + this.isFullScreen = fullscreen; + if (fullscreen) { + if (this.container.requestFullscreen) { + this.container.parentElement.requestFullscreen(); + this.container.classList.add('fullscreen'); + } + } else { + if (document.exitFullscreen) { + document.exitFullscreen(); + this.container.classList.remove('fullscreen'); + } + } + }, + + setLayout(layout) { + if (layout === 'horizontal') { + this.direction = 'horizontal'; + this.translateProp = 'translateX'; + this.scrollProp = 'scrollLeft'; + this.client = 'clientX'; + this.scrollSize = 'scrollWidth'; + this.container.classList.remove('vertical'); + this.container.classList.add('horizontal'); + } else { + this.direction = 'vertical'; + this.translateProp = 'translateY'; + this.scrollProp = 'scrollTop'; + this.client = 'clientY'; + this.scrollSize = 'scrollHeight'; + this.container.classList.remove('horizontal'); + this.container.classList.add('vertical'); + } + }, + + + createContainer() { + this.container.classList.add('ae-virtual', 'visible', this.direction || 'vertical'); + this.itemsWrapper = document.createElement('div'); + this.itemsWrapper.classList.add('ae-virtual-wrapper'); + this.container.appendChild(this.itemsWrapper); + }, + + createSentinel() { + const sentinel = document.createElement('div'); + sentinel.classList.add('sentinel'); + return sentinel; + }, + + createSentinels() { + //this.minSentinel = this.createSentinel(); + this.maxSentinel = this.createSentinel(); + this.totalSizeSentinel = this.createSentinel(); + //this.container.append(this.minSentinel, this.maxSentinel, this.totalSizeSentinel); + this.container.append(this.maxSentinel, this.totalSizeSentinel); + }, + + createDetail() { + + this.detail = document.createElement('div'); + this.detail.className = 'ae-virtual-detail'; + const close = document.createElement('button'); + close.className = 'ae-button close'; + const icon = document.createElement('div'); + icon.className = 'mask-icon icon-cancel'; + close.appendChild(icon); + this.detail.appendChild(close); + const content = document.createElement('div'); + content.className = 'ae-virtual-detail-content'; + this.detail.appendChild(content); + this.container.parentElement.appendChild(this.detail); + close.addEventListener('click', this.hideDetail.bind(this)); + this.hideDetail(); + + }, + + + createItemElement(item, actualIndex) { + const itemDiv = document.createElement('div'); + itemDiv.className = 'item card'; + + const imageUrl = item[this.keys.url]; + if (imageUrl) { + itemDiv.style.backgroundImage = `url(${imageUrl})`; + } + + const itemTitle = document.createElement('span'); + itemTitle.textContent = item[this.keys.title]; + itemTitle.className = 'title'; + + itemDiv.appendChild(itemTitle); + + return itemDiv; + }, + + + /* Rendering Methods */ + /* + getItemsToRender() { + const start = Math.max(0, this.startIndex); + const end = Math.min(this.data.length, this.startIndex + this.itemsPerPage); + return this.data.slice(start, end); + }, + + renderItems() { + this.forceRenderItems(); + }, + + getItemsFragment() { + const currentRange = new Set(); + const itemsToRender = this.getItemsToRender(); + const fragment = document.createDocumentFragment(); + + itemsToRender.forEach((item, index) => { + const idx = this.startIndex + index; + currentRange.add(idx); + + if (!this.renderedItems[idx]) { + const node = this.createItemElement(item, idx); + node.dataset.index = idx; + node.dataset.id = item.id; + fragment.appendChild(node); + this.renderedItems[idx] = node; + } + }); + + // Cleanup outside of rendering loop + this.cleanupRenderedItems(currentRange); + return fragment; + }, + + forceRenderItems() { + this.itemsWrapper.innerHTML = ''; + this.renderedItems = {}; + this.itemsWrapper.appendChild(this.getItemsFragment()); + this.updateSentinels(); + }, + + renderItemsByIndex(scrollDirection = 'increase') { + const fragment = this.getItemsFragment(); + scrollDirection === 'increase' + ? this.itemsWrapper.appendChild(fragment) + : this.itemsWrapper.insertBefore(fragment, this.itemsWrapper.firstChild); + + this.updateSentinels(); + }, + + cleanupRenderedItems(currentRange) { + // Fast lookup with Set + for (const idx in this.renderedItems) { + if (!currentRange.has(Number(idx))) { + this.renderedItems[idx].remove(); + delete this.renderedItems[idx]; + } + } + }, + */ + + getItemsToRender() { + const start = Math.max(0, this.startIndex); + const end = Math.min(this.data.length, start + this.itemsPerPage); + return { start, end }; + }, + + renderItems(scrollDirection = 'increase') { + if (this.pendingRender) { + cancelAnimationFrame(this.pendingRender); + this.pendingRender = null; + } + + const { start, end } = this.getItemsToRender(); + + if (this.renderedRange.start === start && this.renderedRange.end === end) { + return; + } + + this.pendingRender = requestAnimationFrame(() => { + const startTime = performance.now(); + this._executeRender(start, end, scrollDirection); + const duration = performance.now() - startTime; + + if (duration > 2) { + console.warn(`Render time: ${duration.toFixed(2)}ms`); + } + + this.renderedRange = { start, end }; + this.pendingRender = null; + }); + }, + + _executeRender(start, end, scrollDirection) { + const currentRange = new Set(); + const fragment = document.createDocumentFragment(); + + for (let idx = start; idx < end; idx++) { + currentRange.add(idx); + + if (!this.renderedItems[idx]) { + const item = this.data[idx]; + if (!item) continue; + + const node = this.createItemElement(item, idx); + node.dataset.index = idx; + node.dataset.id = item.id; + fragment.appendChild(node); + this.renderedItems[idx] = node; + } + } + + if (fragment.childElementCount > 0) { + if (scrollDirection === 'increase') { + this.itemsWrapper.appendChild(fragment); + } else { + this.itemsWrapper.insertBefore(fragment, this.itemsWrapper.firstChild); + } + } + + for (const idx in this.renderedItems) { + if (!currentRange.has(Number(idx))) { + this.renderedItems[idx].remove(); + delete this.renderedItems[idx]; + } + } + + this.renderedRange = { start, end }; + this.updateSentinels(); + + }, + + forceRenderItems() { + try { + this.itemsWrapper.innerHTML = ''; + this.renderedItems = {}; + this.renderedRange = { start: -1, end: -1 }; + this.renderItems(); + } catch (e) { + console.error("Force render error:", e); + } + }, + + /******/ + + /* Updates */ + updateSentinels() { + const start = Math.max(0, this.startIndex); + const end = Math.min(this.data.length, this.startIndex + this.itemsPerPage); + + const minPosition = (start / this.itemsPerRow) * this.itemSize; + let maxPosition = (end / this.itemsPerRow) * this.itemSize; + maxPosition = Math.min(maxPosition, this.totalSize); + maxPosition = Math.round(maxPosition / this.itemSize) * this.itemSize; + + //this.minSentinel.style.transform = `${this.translateProp}(${minPosition}px)`; + this.maxSentinel.style.transform = `${this.translateProp}(${maxPosition}px)`; + this.itemsWrapper.style.transform = `${this.translateProp}(${minPosition}px)`; + }, + + updateDimensions(force = false) { + const sampleItem = this.itemsWrapper.querySelector('.item'); + if (!sampleItem) return; + + //const gridGap = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--ae-gap-size')) || 0; + this.itemHeight = sampleItem.offsetHeight; + this.itemWidth = sampleItem.offsetWidth; + + //this.containerWidth = this.container.offsetWidth; + this.containerWidth = this.container.parentElement.offsetWidth; + this.containerHeight = this.container.parentElement.offsetHeight; + + console.log('this.updateDimensions', this.containerWidth, this.containerHeight); + + if (!this.containerWidth) return; + if (!this.containerHeight) return; + if (!this.data.length) return; + + const totalItems = this.total || this.data.length; + //console.log(this.total || this.data.length); + + if (this.direction === 'horizontal') { + //this.container.style.width = `${this.containerWidth}px`; + this.itemSize = this.itemWidth; + this.containerSize = this.containerWidth; + this.itemsPerRow = Math.floor(this.containerHeight / this.itemHeight); + this.rowsInView = Math.ceil(this.containerWidth / this.itemWidth); + } else { + //this.container.style.height = `${this.containerHeight}px`; + this.itemSize = this.itemHeight; + this.containerSize = this.containerHeight; + this.itemsPerRow = Math.floor(this.containerWidth / this.itemWidth); + this.rowsInView = Math.ceil(this.containerHeight / this.itemHeight); + } + + this.totalRows = Math.ceil(totalItems / this.itemsPerRow); + this.itemsPerPage = Math.max(this.optItemsPerPage, (this.rowsInView) * this.itemsPerRow); + + this.totalSize = this.totalRows * this.itemSize; + this.totalSizeSentinel.style.transform = `${this.translateProp}(${this.totalSize}px)`; + this.maxStartIndex = Math.max(this.data.length - this.itemsPerPage, 0); + //this.startIndex = Math.min(this.startIndex, this.maxStartIndex); + + this.half_w = this.containerWidth / 2; + this.half_h = this.containerHeight / 2; + this.boundingClientRect = this.container.getBoundingClientRect(); + + if (this.invalidateScrollIndex) { + console.log('this.invalidateScrollIndex ', this.invalidateScrollIndex, this.itemsPerRow, this.containerSize); + if (!this.isFullSize) { + this.invalidateScrollIndex = Math.round(this.invalidateScrollIndex / this.itemsPerRow); + } + this.container[this.scrollProp] = this.invalidateScrollIndex * this.itemSize; + this.startIndex = Math.floor(this.container[this.scrollProp] / this.itemSize) * this.itemsPerRow; + this.invalidateScrollIndex = 0; + this.updateDimensions(true); //recalculate important + + } else { + + if (force) { + //this.resolvedRenderMethod(); + this.forceRenderItems(); + } else { + this.scrollHandler(); + //this.updateScroll(); + } + } + }, + + scrollHandler() { + //this.lastScrollEventTime = performance.now(); + //if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer); + //this.scrollEndTimer = setTimeout(() => this.handleScrollEnd(), 100); + if (this.scrollAnimationFrame) cancelAnimationFrame(this.scrollAnimationFrame); + this.scrollAnimationFrame = requestAnimationFrame(() => this.updateScroll()); + this.scrollTimeout = setTimeout(() => { + this.updateScroll(); + }, 100); + }, + + //handleScrollEnd() { + //const timeSinceLastScroll = performance.now() - this.lastScrollEventTime; + //if (timeSinceLastScroll < 100) return; + //this.validateAndFixRender(); + //}, + + updateScroll() { + const scrollPos = this.container[this.scrollProp]; + const scrollDirection = scrollPos > this.lastScrollPos ? 'increase' : 'decrease'; + this.lastScrollPos = scrollPos; + + const sindex = Math.floor(scrollPos / this.itemSize) * this.itemsPerRow; + + if (scrollDirection === 'increase' && + this.useDataFetching && + !this.isFetching && + this.params.cursor && + sindex >= this.maxStartIndex + ) { + this.isFetching = true; + this.fetchUpdateData(); + return; + } + + if (this.startIndex !== sindex) { + this.startIndex = sindex; + this.renderItems(scrollDirection); + } + }, + + clickHandler(e) { + //if (this.isFullSize) return; + const { target: target, currentTarget: ctarget } = e; + const index = target.closest('.item.card').dataset.index; + const itemData = this.data[index]; + console.log(itemData); + }, + + changeHandler(e) { + }, + + wheelHandler(e) { + if (e.target.closest('.full .item-info')) return; + if (!this.isFullSize || !this.isZoomMode) { + // scroll wheel + e.preventDefault(); + const delta = Math.sign(e.deltaY); + this.scrollDelta += delta; + //.warn('this.scrollDelta ', this.scrollDelta, delta); + this.useSmoothScrolling(300); + } else { + // zoom wheel + const delta = -Math.sign(e.deltaY) * 0.5; + const relativeX = e.clientX - this.boundingClientRect.left; + const relativeY = e.clientY - this.boundingClientRect.top; + delta < 0 ? this.zoomOut(e, relativeX, relativeY) : this.zoomIn(e, relativeX, relativeY); + } + }, + + + /* Setup Event Listeners */ + setupEventListeners() { + + this.container.addEventListener('scroll', this.throttle(this.scrollHandler.bind(this), 100), { passive: true }); + this.container.addEventListener('click', this.clickHandler.bind(this)); + this.container.addEventListener('change', this.changeHandler.bind(this)); + this.container.addEventListener("wheel", this.wheelHandler.bind(this), { passive: false }); + + this.container.tabIndex = -1; + this.container.addEventListener('keydown', this.keyPressHandler.bind(this)); + this.container.addEventListener('click', () => this.container.focus()); + + this.panel = this.itemsWrapper; + + this.panel.addEventListener('pointerdown', this.pointerDown.bind(this), { passive: false }); + this.panel.addEventListener('pointermove', this.throttle(this.pointerMove.bind(this), 16), { passive: false }); + this.panel.addEventListener('pointerup', this.pointerUp.bind(this), { passive: false }); + this.panel.addEventListener('pointercancel', this.pointerUp.bind(this), { passive: false }); + this.panel.addEventListener('pointerleave', this.pointerUp.bind(this), { passive: false }); + + this.isMouseDevice = false; + window.addEventListener('mousemove', () => { + this.isMouseDevice = true; + }, { once: true }); + + //this.setupDragScrollListener(); + }, + + + // Smooth Scrolling + useSmoothScrolling(duration = 200) { + if (this.smoothScrolling) { + const targetScrollPos = this.container[this.scrollProp] + (this.scrollDelta * this.itemSize); + const snappedScrollPos = Math.round(targetScrollPos / this.itemSize) * this.itemSize; + //console.trace('Current stack trace', snappedScrollPos); + this.smoothScroll(snappedScrollPos, duration); + } else { + this.container[this.scrollProp] += this.scrollDelta * this.itemSize; + this.scrollDelta = 0; + } + }, + + smoothScroll(targetScrollPos, duration) { + const startScrollPos = this.container[this.scrollProp]; + const distance = targetScrollPos - startScrollPos; + let startTime = null; + let animationFrameId; + + const animation = (currentTime) => { + if (startTime === null) startTime = currentTime; + const timeElapsed = currentTime - startTime; + const progress = Math.min(timeElapsed / duration, 1); // Normalize progress to [0, 1] + + // Easing function (ease-out ^3) + const ease = 1 - Math.pow(1 - progress, 3); + this.container[this.scrollProp] = startScrollPos + distance * ease; + if (progress < 1) { + animationFrameId = requestAnimationFrame(animation); + } else { + this.scrollDelta = 0; + this.container[this.scrollProp] = targetScrollPos; + animationFrameId = null; + } + }; + + if (animationFrameId) { + cancelAnimationFrame(animationFrameId); + } + + animationFrameId = requestAnimationFrame(animation); + }, + + + setupResizeObserver() { + const observer = new ResizeObserver(() => { + if (this.resizeTimer) clearTimeout(this.resizeTimer); + if (!this.invalidateScrollIndex) this.invalidateScrollIndex = this.startIndex; + this.resizeTimer = setTimeout(() => { + //console.warn("ResizeObserver", this.invalidateScrollIndex); + this.updateDimensions(true); + }, 100); + }); + + observer.observe(this.container); + }, + + + + /* Keybord Handlers */ + keyPressHandler(event) { + switch (event.key) { + case 'ArrowDown': + this.scrollBy(1); + break; + case 'ArrowUp': + this.scrollBy(-1); + break; + case 'Home': + this.scrollToStart(); + break; + case 'End': + this.scrollToEnd(); + break; + } + }, + + scrollBy(offset) { + this.scrollDelta += offset; + this.useSmoothScrolling(0); + }, + + scrollToStart() { + this.startIndex = 0; + this.container[this.scrollProp] = 0; + }, + + scrollToEnd() { + this.startIndex = Math.max(0, this.data.length - this.itemsPerPage); + this.container[this.scrollProp] = this.startIndex * this.itemSize; + }, + + scrollToId(id) { + const index = this.originalData.findIndex(item => item.id === id); + console.warn(`Item with Index ${index} clicked.`); + if (index !== -1) { + this.container.classList.remove('visible'); + this.container[this.scrollProp] = 0; // reset scroll important + this.invalidateScrollIndex = index; + setTimeout(() => { + this.updateDimensions(); + this.container.classList.add('visible'); + }, 200); + + } else { + console.warn(`Item with ID ${id} not found in loaded data object.`); + } + }, + + scrollToIndex(index) { + this.container.classList.remove('visible'); + this.container[this.scrollProp] = 0; // reset scroll important + this.invalidateScrollIndex = index || 0; + setTimeout(() => { + this.updateDimensions(); + this.container.classList.add('visible'); + }, 200); + }, + + + + + /* Helper Functions*/ + debounce(func, defaultDelay = 1000) { + return function (...args) { + const context = this; + const delay = typeof args[args.length - 1] === 'number' ? args.pop() : defaultDelay; + const later = () => { + this.timeout = null; + func.apply(context, args); + }; + clearTimeout(this.timeout); + this.timeout = setTimeout(later, delay); + }.bind(this); + }, + + throttle(func, limit) { + let lastFunc; + let lastRan; + let lastCallArgs; + + return function () { + const context = this; + lastCallArgs = arguments; + const now = Date.now(); + + if (!lastRan) { + func.apply(context, lastCallArgs); + lastRan = now; + } else { + clearTimeout(lastFunc); + lastFunc = setTimeout(function () { + if ((now - lastRan) >= limit) { + func.apply(context, lastCallArgs); + lastRan = now; + } + }, limit - (now - lastRan)); + } + }; + }, + + + setNextCursor(nextCursor) { + if (nextCursor && this.data.length > 0) { + this.params.cursor = nextCursor; + this.params.page = Math.floor(this.data.length / this.params.limit) + 1 || 1; + } else if (this.params.cursor) { + delete this.params.cursor; + } + + if (this.params.limit && this.data.length > 0) { + this.params.page = Math.floor(this.data.length / this.params.limit) + 1; + } else { + delete this.params.page; + } + }, + + getValueByPath(obj, path) { + if (!path) return obj; + const keys = path.split('.'); + return keys.reduce((acc, key) => { + if (acc === undefined || acc === null) { + return undefined; + } + return acc[key]; + }, obj); + }, + + + /* Populate Data */ + setData(data) { + this.startIndex = 0; + this.container[this.scrollProp] = 0; + //setTimeout(() => { + this.originalData = data; + this.data = this.originalData; + this.initialize(); + //}, 500); + + }, + + appendData(data) { + this.originalData.push(...data); + this.data = this.originalData; + this.isFetching = false; + //const newScrollPos = this.startIndex * this.itemSize; + //this.container[this.scrollProp] = newScrollPos; + this.updateDimensions(true); + + }, + + updateDataByIndex(data, index) { + const indexData = this.originalData[index]; + for (const [key, value] of Object.entries(data)) { + indexData[key] = value; + } + this.originalData[index] = indexData; + this.data = this.originalData; + //this.renderItems(); + this.forceRenderItems(); + }, + + updateDataById(data, id) { + const item = this.originalData.find(item => item.id === id); + if (item) { + for (const [key, value] of Object.entries(data)) { + item[key] = value; + } + this.data = this.originalData; + //this.renderItems(); + this.forceRenderItems(); + } else { + console.warn(`Item with ID ${id} not found in loaded data object.`); + } + }, + + removeDataById(id) { + const itemIndex = this.originalData.findIndex(item => item.id === id); + //console.log(this.originalData[itemIndex], id); + if (itemIndex !== -1) { + this.originalData.splice(itemIndex, 1); + this.data = this.originalData; + this.total -= 1; + //console.log(this.data.length, id); + this.updateDimensions(true); + } else { + console.warn(`Item with ID ${id} not found in loaded data object.`); + } + + }, + + setSelectedItems(items) { + this.selected = items; + //console.log(items); + //this.renderItems(); + this.forceRenderItems(); + }, + + /* ********** */ + /* Fetch Data */ + /* ********** */ + fetchData(updateIndicator) { + return new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + let url = this.apiUrl; + + if (this.method.toUpperCase() === 'GET' && this.params) { + const queryParams = new URLSearchParams(); + Object.keys(this.params).forEach(key => { + const value = this.params[key]; + if (Array.isArray(value)) { + value.forEach(v => queryParams.append(key, v)); + } else { + queryParams.append(key, value); + } + }); + url += '?' + queryParams.toString(); + } + + xhr.open(this.method, url, true); + + // Set GET headers + xhr.setRequestHeader("Accept", "application/json"); + + xhr.onprogress = function (event) { + if (event.lengthComputable) { + const percentage = parseInt((event.loaded / event.total) * 100); + updateIndicator(percentage); + } + }; + + xhr.onload = function () { + if (xhr.status === 200) { + const response = JSON.parse(xhr.responseText); + resolve(response); + } else { + reject(xhr.status); + } + }; + + xhr.onerror = function () { + reject(xhr.status); + }; + + if (this.method.toUpperCase() === 'POST') { + // Set POST headers + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(this.params)); + } else { + xhr.send(); + } + }); + }, + + async fetchUpdateData(renew = false) { + this.showLoadingIndicator(); + //console.warn("renew data:", renew); + const newData = await this.fetchData(percentage => this.updateLoadingIndicator(percentage)); + if (newData) { + this.total = newData.total; + const idata = this.getValueByPath(newData, this.keys.dataPath) || newData; + renew ? this.setData(idata) : this.appendData(idata); + this.setNextCursor(newData.metadata?.nextCursor || newData.nextCursor); + } else { + console.error(`Error fetching data: ${error}`); + } + this.hideLoadingIndicator(); + }, + + async updateParamsAndFetch(newParams, delay = 1000) { + Object.assign(this.params, newParams); + Object.keys(this.params).forEach((param) => { + if (!this.params[param]) delete this.params[param]; + }); + this.startIndex = 0; + delete this.params.cursor; + //this.params.page = 1; + this.originalData = []; + this.data = this.originalData; + + // Pass the boolean argument to fetchUpdateData + const debouncedFetchUpdateData = this.debounce(this.fetchUpdateData.bind(this, true), delay); + debouncedFetchUpdateData(); + }, + + /* ********* */ + /* Preloader */ + /* ********* */ + showLoadingIndicator() { + if (!this.loadingIndicator) { + this.loadingIndicator = document.createElement('div'); + this.loadingIndicator.className = 'loading-indicator'; + this.container.parentElement.appendChild(this.loadingIndicator); + this.hideLoadingIndicator(); + this.isFetching = false; + } + this.loadingIndicator.innerHTML = 'Loading... 0%'; + this.loadingIndicator.style.display = 'flex'; + }, + + updateLoadingIndicator(percentage) { + if (this.loadingIndicator) { + this.loadingIndicator.innerHTML = `Loading... ${percentage}%`; + } + }, + + hideLoadingIndicator() { + if (this.loadingIndicator) { + this.loadingIndicator.style.display = 'none'; + } + }, + + showDetail() { + //this.detail.style.display = 'flex'; + this.detail.classList.remove("hidden"); + }, + + hideDetail() { + if (this.detail) { + //this.detail.style.display = 'none'; + this.detail.classList.add("hidden"); + } + }, + + /* ***************************** */ + /* Client Filtering Sorting Data */ + /* ***************************** */ + filterItems(searchTerm, additionalCriteria = {}) { + this.startIndex = 0; + this.data = this.originalData.filter(item => { + let matches = true; + + if (searchTerm) { + matches = matches && item[this.keys.title].toLowerCase().includes(searchTerm.toLowerCase()); + } + + for (const [key, value] of Object.entries(additionalCriteria)) { + if (item[key] !== undefined && value !== undefined) { + if (Array.isArray(item[key])) { + const additional_array = item[key]; + matches = matches && additional_array.some( + (v) => typeof v === 'string' && v.toLowerCase().includes(value.toLowerCase()) + ); + } else if (typeof item[key] === 'string') { + matches = matches && item[key].toLowerCase().includes(value.toLowerCase()); + } + } + } + + return matches; + }); + + this.updateDimensions(); + //this.forceRenderItems(); + }, + + sortItems(sortKey, reverse = false) { + this.startIndex = 0; + const vsc = this; + const sortedData = [...this.data]; + function comparator(a, b) { + + const valA = vsc.getValueByPath(a, sortKey); + const valB = vsc.getValueByPath(b, sortKey); + + if (!isNaN(valA) && !isNaN(valB)) { + return reverse ? valB - valA : valA - valB; + } + + return reverse ? + (valB < valA ? -1 : (valB > valA ? 1 : 0)) : + (valA < valB ? -1 : (valA > valB ? 1 : 0)); + } + sortedData.sort(comparator); + this.data = sortedData; + this.updateDimensions(); + //this.forceRenderItems(); + }, + + + + /* ****************** */ + /* Zoom FullSize Item */ + /* ****************** */ + resetZoom() { + this.zoom_scale = 1; + this.x = this.y = 0; + this.updateZoom(); + }, + + zoomIn(e, cx, cy) { + this.centeredZoom(1 / 0.65, cx, cy); + }, + + zoomOut(e, cx, cy) { + this.centeredZoom(0.65, cx, cy); + }, + + getRelativePointers(pointers) { + const { boundingClientRect } = this; + const [pointer1, pointer2] = pointers; + return { + x1: pointer1.x - boundingClientRect.left, + y1: pointer1.y - boundingClientRect.top, + x2: pointer2.x - boundingClientRect.left, + y2: pointer2.y - boundingClientRect.top + }; + }, + + centerOfPointers(pointers) { + const { x1, y1, x2, y2 } = this.getRelativePointers(pointers); + const centerX = (x1 + x2) / 2; + const centerY = (y1 + y2) / 2; + return [centerX, centerY]; + }, + + distance(pointers) { + if (pointers.length < 2) return 0; + const dx = pointers[0].x - pointers[1].x; + const dy = pointers[0].y - pointers[1].y; + return Math.sqrt(dx * dx + dy * dy); + }, + + scalePointers(pointers) { + if (pointers.length < 2) return 0; + const currentDistance = this.distance(pointers); + const previousDistance = this.previousDistance || 0; + if (previousDistance > 0) { + const relative_scale = currentDistance / previousDistance; + const center = this.centerOfPointers(pointers); + this.centeredZoom(relative_scale, center[0], center[1]); + } + this.previousDistance = currentDistance; + }, + + centeredZoom(relative, cx, cy) { + const { zoom_scale, x, y, half_w, half_h } = this; + let value = zoom_scale * relative; + if (value <= 1) { + this.resetZoom(); + return; + } else if (value > 50) { + return; + } + + if (cy) { + this.x = cx - (cx - x - half_w) * relative - half_w; + this.y = cy - (cy - y - half_h) * relative - half_h; + } else { + this.x *= relative; + this.y *= relative; + } + + //console.log(relative, value); + this.zoom_scale = value; + this.updateZoom(); + }, + + updateZoom() { + if (this.zoomTarget) { + this.zoomTarget.style.transform = `translate(${this.x}px, ${this.y}px) scale(${this.zoom_scale})`; + //this.zoomTarget.style.backgroundPosition = `calc(50% + ${this.x}px) calc(50% + ${this.y}px)`; + //this.zoomTarget.style.transform = `scale(${this.zoom_scale})`; + } + }, + + debounceDoubleTap(e) { + const currentTime = Date.now(); + if (this.lastTapTime && (currentTime - this.lastTapTime) < 300) { + this.isZoomMode = !this.isZoomMode; + if (this.isZoomMode) { + this.zoomTarget = e.target.closest('.item-img'); + //this.zoomIndex = e.target.closest('.item-card').dataset.index; + this.zoom_scale = 1.2; + this.updateZoom(); + } else { + this.activePointers = {}; + this.resetZoom(); + } + } + this.lastTapTime = currentTime; + }, + + pointerDown(e) { + if (e.target.tagName.toLowerCase() !== 'select') { + e.preventDefault(); + } + this.dragged = false; + this.startX = e.pageX; + this.startY = e.pageY; + const { isFullSize, isMouseDevice, activePointers } = this; + activePointers[e.pointerId] = { x: e.pageX, y: e.pageY }; + + const pointerCount = Object.keys(activePointers).length; + //console.log(`Pointer Down: ${e.pointerId}, Count: ${pointerCount}, Active Pointers:`, activePointers); + + if (pointerCount > 2) { + return; + } + + if (!isFullSize) { + this.isZoomMode = false; + } + + if (isFullSize && pointerCount === 1) { + this.debounceDoubleTap(e); + } + + const isZoomMode = this.isZoomMode; + + console.log(`isZoomMode: ${isZoomMode}`); + + if ((!isZoomMode && isFullSize) || (!isZoomMode && isMouseDevice)) { + if (pointerCount === 1) { + this.isDragging = true; + this.start = e[this.client]; + this.scrollStart = this.container[this.scrollProp]; + this.container.style.cursor = 'grabbing'; + } + } + + }, + + pointerMove(e) { + e.preventDefault(); + this.dragged = true; + //this.scrollDelta = 0; + + const { isZoomMode, isFullSize, isMouseDevice, activePointers, startX, startY, start, scrollProp, scrollStart } = this; + if (activePointers[e.pointerId]) { + activePointers[e.pointerId] = { x: e.pageX, y: e.pageY }; + const pointerCount = Object.keys(activePointers).length; + if (isZoomMode) { + + if (pointerCount > 2) { + return; + } + //console.log(`Pointer Move: ${e.pointerId}, Count: ${pointerCount}, Active Pointers:`, this.activePointers); + if (pointerCount === 2) { + this.scalePointers(Object.values(activePointers)); + } else if (pointerCount === 1) { + const dx = (e.pageX - startX); + const dy = (e.pageY - startY); + this.startX = e.pageX; + this.startY = e.pageY; + this.x += dx; + this.y += dy; + requestAnimationFrame(() => { + this.updateZoom(); + }); + + } + + } else if ((!isZoomMode && isFullSize) || (!isZoomMode && isMouseDevice)) { + + if (!this.isDragging || pointerCount > 1) return; + const deltaY = start - e[this.client]; + const direction = Math.sign(deltaY);// + Math.floor(deltaY*0.01); + if (direction !== 0) { + this.scrollDelta = direction; + } + requestAnimationFrame(() => { + this.container[scrollProp] = scrollStart + deltaY; + }); + } + } + }, + + pointerUp(e) { + e.preventDefault(); + this.dragged = false; + + const { isZoomMode, isFullSize, isMouseDevice, activePointers } = this; + delete activePointers[e.pointerId]; + if (Object.keys(activePointers).length < 2) { + this.previousDistance = 0; + } + + if ((!isZoomMode && isFullSize) || (!isZoomMode && isMouseDevice)) { + //console.warn('this.scrollDelta', this.scrollDelta); + this.isDragging = false; + if (this.scrollDelta == 0) return; + this.container.style.cursor = 'grab'; + this.useSmoothScrolling(300); + } + } + +}); diff --git a/extensions-builtin/sd-webui-ux/javascript/src/constants.js b/extensions-builtin/sd-webui-ux/javascript/src/constants.js index 643881e6..a1fb7bfb 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/constants.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/constants.js @@ -5,7 +5,7 @@ export const REPO_NAME = "anapnoe/stable-diffusion-webui-ux"; export const REPO_NAME_UPSTREAM = "AUTOMATIC1111/stable-diffusion-webui"; export const ANAPNOE_APP_ID = "#anapnoe_app"; -export const ANAPNOE_APP_VER = "0.1.0"; +export const ANAPNOE_APP_VER = "1.0.0"; export const DEFAULT_PATH = window.basePath; export const DEFAULT_ASSETS_PATH = `${DEFAULT_PATH}assets/`; export const DEFAULT_CSS_PATH = `${DEFAULT_ASSETS_PATH}css/`; @@ -16,8 +16,7 @@ export const DEFAULT_TEMPLATES_FORGE_GRADIO_4 = `${DEFAULT_TEMPLATES_PATH}forge- export const EXTENSION_TEMPLATE_MAP = { 'template-deforum-params.html': 'deforum', - 'template-deforum-results.html': 'deforum', - 'template-stylez.html': 'enable_Stylez' + 'template-deforum-results.html': 'deforum' }; export const CSS_INCLUDES = [ @@ -28,14 +27,17 @@ export const CSS_INCLUDES = [ 'uiux-extra-networks.css', 'uiux-settings.css', 'uiux-range.css', - 'uiux-gradio.css' + 'uiux-gradio.css' 'uiux-stylez.css' */ - /*'style-v2.css',*/ + //'style-v2.css', 'uiux-icons.css', 'uiux-theme-editor.css', 'uiux-deforum.css', 'uiux-iibrowser.css', - 'uiux-physton.css' + 'uiux-physton.css', + 'uiux-virtual.css', + 'uiux-tree.css', + ]; let cachedAnapnoeApp = null; @@ -136,4 +138,12 @@ const getDefaultTemplatesPath = () => { export {getDefaultTemplatesPath}; - +export const SD_VERSIONS_OPTIONS = [ + {value: 'SD1', textContent: 'SD1'}, + {value: 'SD2', textContent: 'SD2'}, + {value: 'SD3', textContent: 'SD3'}, + {value: 'SDXL', textContent: 'SDXL'}, + {value: 'PONY', textContent: 'PONY'}, + {value: 'FLUX', textContent: 'FLUX'}, + {value: 'Unknown', textContent: 'Unknown'} +]; diff --git a/extensions-builtin/sd-webui-ux/javascript/src/index.js b/extensions-builtin/sd-webui-ux/javascript/src/index.js index a170d254..b1815f9e 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/index.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/index.js @@ -1,10 +1,10 @@ -import {getGradioApp, getAnapnoeApp, getAnapnoeTabContent, IS_BACKEND_OPTIMIZED, CSS_INCLUDES, DEFAULT_ASSETS_PATH, VERSION_DATA} from './constants.js'; +import {getGradioApp, getAnapnoeApp, getAnapnoeTabContent, IS_BACKEND_OPTIMIZED, CSS_INCLUDES, DEFAULT_ASSETS_PATH, VERSION_DATA, ANAPNOE_APP_VER,} from './constants.js'; import {setupLogger} from './components/logger.js'; import {loadTemplates} from './components/templates.js'; -import {setupAnimations, countEventListeners} from './utils/helpers.js'; +import {setupAnimations, detectHoverOnElements} from './utils/helpers.js'; import {initUiUxComponents} from './components/components.js'; -import {removeRedundantExtraNetworks, removeStyleAssets, optimizeExtraNetworksCards, optimizeExtraNetworksSearchSort} from './components/optimizations.js'; -import {showContributors} from './utils/api.js'; +import {removeRedundantExtraNetworks, removeStyleAssets} from './components/optimizations.js'; +import {showContributors, showMembers} from './utils/api_external.js'; import {switchMobile} from './utils/mobile.js'; import {uiuxOptionSettings} from './components/settings.js'; import {localStorageWrapper, onLocalStorageChange} from './utils/storage.js'; @@ -12,7 +12,10 @@ import {setupGenerateObservers, setupCheckpointChangeObserver} from './utils/obs import {createTabsForExtensions, injectStylesToIframe, injectStylesAfterUIUX, replaceStylesheet} from './components/extensions.js'; import {setupThemeEditor} from './components/theme_editor.js'; import {UIUX} from './utils/module.js'; - +import {setupCivitaiExplorerImages, setupCivitaiExplorerModels} from './components/civitai_explorer.js'; +import {setupExtraNetworkCheckpoints, setupExtraNetworkTextualinversion, setupExtraNetworkLora, setupExtraNetworkHypernetworks} from './components/extra_networks.js'; +import {setupSdStyles} from './components/sd_styles.js'; +import {setupSdOutputImages} from './components/sd_output_images.js'; function onUiUxReady(content_div) { const logger_screen = document.querySelector("#logger_screen"); @@ -22,22 +25,17 @@ function onUiUxReady(content_div) { logger_screen.remove(); } - content_div.querySelectorAll(".extra-network-cards, .extra-network-tree").forEach((el) => { - optimizeExtraNetworksCards(el); - }); - console.log("Finishing optimizations for Extra Networks"); - optimizeExtraNetworksSearchSort(); setupGenerateObservers(); uiuxOptionSettings(); showContributors(); + showMembers(); switchMobile(); - setupCheckpointChangeObserver(); + //setupCheckpointChangeObserver(); document.querySelectorAll("#txt2img_styles_edit_button, #img2img_styles_edit_button").forEach((elm) => { elm.addEventListener("click", function(e) { - /* eslint-disable no-undef */ window.popup_trigger.click(); //appendPopupContent(); }); @@ -54,6 +52,7 @@ function onUiUxReady(content_div) { setFocusPrompt(closestId); }); }); + /* document.querySelectorAll("#txt2img_nav, #img2img_nav").forEach(button => { button.addEventListener("click", (e) => { @@ -78,10 +77,61 @@ function onUiUxReady(content_div) { setupThemeEditor(); } + if (window.opts.uiux_enable_civitai_explorer) { + const caiexp = document.querySelector("#civitai_explorer_nav"); + caiexp.classList.remove("hidden"); + const civitai_nav_images = document.querySelector("#civitai_nav_images"); + const civitai_nav_models = document.querySelector("#civitai_nav_models"); + civitai_nav_images.addEventListener('click', () => { + setupCivitaiExplorerImages(); + }, {once: true}); + civitai_nav_models.addEventListener('click', () => { + setupCivitaiExplorerModels(); + }, {once: true}); + } + + const textual_inversion_nav = document.querySelector("#textual_inversion_nav"); + const lora_nav = document.querySelector("#lora_nav"); + const hypernetwork_nav = document.querySelector("#hypernetwork_nav"); + setTimeout(() => { - document.querySelector("#btn_checkpoints")?.click(); + setupExtraNetworkCheckpoints(); }, 500); + textual_inversion_nav.addEventListener('click', () => { + setupExtraNetworkTextualinversion(); + }, {once: true}); + lora_nav.addEventListener('click', () => { + setupExtraNetworkLora(); + }, {once: true}); + hypernetwork_nav.addEventListener('click', () => { + setupExtraNetworkHypernetworks(); + }, {once: true}); + + if (window.opts.uiux_enable_sd_styles) { + const sd_styles_nav = document.querySelector("#sd_styles_nav"); + sd_styles_nav.classList.remove("hidden"); + sd_styles_nav.addEventListener('click', () => { + setupSdStyles(); + }, {once: true}); + } + + if (window.opts.uiux_enable_sd_output_images) { + const sd_output_images_nav = document.querySelector("#sd_output_images_nav"); + sd_output_images_nav.classList.remove("hidden"); + sd_output_images_nav.addEventListener('click', () => { + setupSdOutputImages(); + }, {once: true}); + } + + detectHoverOnElements(".layout-extra-networks"); + + if (!IS_BACKEND_OPTIMIZED) { + document.querySelector("#github-project-link").href = "https://github.com/anapnoe/sd-webui-ux" + } + + + //const totalListeners = countEventListeners(document.body); //console.warn(`Total event listeners: ${totalListeners}`); @@ -173,7 +223,4 @@ function observeGradioInit() { } } - observeGradioInit(); - - diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/api.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/api.js index 132cd8c5..52882378 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/utils/api.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/api.js @@ -1,54 +1,64 @@ import {REPO_NAME} from '../constants.js'; -export async function getContributors(repoName = REPO_NAME, page = 1) { - const request = await fetch(`https://api.github.com/repos/${repoName}/contributors?per_page=100&page=${page}`, { - method: 'GET', - headers: {'Content-Type': 'application/json'}, - }); +export async function resyncTableData(apiParams, vScroll) { + try { - return await request.json(); -} - -export async function getAllContributorsRecursive(repoName = REPO_NAME, page = 1, allContributors = []) { - const list = await getContributors(repoName, page); - allContributors = allContributors.concat(list); - - if (list.length === 100) { - return getAllContributorsRecursive(repoName, page + 1, allContributors); - } - - return allContributors; -} - -export function showContributors() { - const contributors_btn = document.querySelector('#contributors'); - const contributors_view = document.querySelector('#contributors_tabitem'); - const temp = document.createElement('div'); - temp.id = 'contributors_grid'; - temp.innerHTML = `Kindly allow us a moment to retrieve the contributors. - We're grateful for the many individuals who have generously put their time and effort to make this possible.`; - - contributors_view.append(temp); - - contributors_btn.addEventListener('click', (e) => { - if (!contributors_btn.getAttribute('data-visited')) { - contributors_btn.setAttribute('data-visited', 'true'); - const promise = getAllContributorsRecursive(); - promise.then((result) => { - temp.innerHTML = ''; - for (let i = 0; i < result.length; i++) { - const login = result[i].login; - const html_url = result[i].html_url; - const avatar_url = result[i].avatar_url; - temp.innerHTML += ` - -
-
- ${login} -
-
`; - } - }); + //alert(`Resync table: ${apiParams.table_name}`); + // Step 1: Delete invalid items + const deleteResponse = await fetch('/sd_webui_ux/delete_invalid_items', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({table_name: apiParams.table_name}) + }); + + if (!deleteResponse.ok) { + throw new Error(`DELETE failed! Status: ${deleteResponse.status}`); } - }); -} + + // Step 2: Import/update table and process stream + const importResponse = await fetch('/sd_webui_ux/import_update_table', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({table_name: apiParams.table_name}) + }); + + if (!importResponse.ok) { + throw new Error(`IMPORT failed! Status: ${importResponse.status}`); + } + + vScroll.showLoadingIndicator(); + const reader = importResponse.body.getReader(); + const decoder = new TextDecoder(); + + // Process stream chunks + while (true) { + const {done, value} = await reader.read(); + if (done) break; + + const chunk = decoder.decode(value, {stream: true}); + const lines = chunk.split('\n').filter(line => line.trim()); + + for (const line of lines) { + try { + const data = JSON.parse(line); + vScroll.updateLoadingIndicator(Math.round(data.progress)); + console.log(`Processed ${data.processed}/${data.total} (${data.progress}%)`); + } catch (e) { + console.error('JSON parse error:', e, 'Raw:', line); + } + } + } + + vScroll.hideLoadingIndicator(); + + // Step 3: Final UI updates + apiParams.skip = 0; + await vScroll.updateParamsAndFetch(apiParams, 0); + return {success: true, message: 'Table resynced successfully'}; + + } catch (error) { + console.error('Operation failed:', error); + vScroll.hideLoadingIndicator(); + return {success: false, error: error.message}; + } +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/api_external.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/api_external.js new file mode 100644 index 00000000..89903a0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/api_external.js @@ -0,0 +1,302 @@ +import {REPO_NAME} from '../constants.js'; + +export async function getContributors(repoName = REPO_NAME, page = 1) { + const request = await fetch(`https://api.github.com/repos/${repoName}/contributors?per_page=100&page=${page}`, { + method: 'GET', + headers: {'Content-Type': 'application/json'}, + }); + + return await request.json(); +} + +export async function getAllContributorsRecursive(repoName = REPO_NAME, page = 1, allContributors = []) { + const list = await getContributors(repoName, page); + allContributors = allContributors.concat(list); + + if (list.length === 100) { + return getAllContributorsRecursive(repoName, page + 1, allContributors); + } + + return allContributors; +} + +export function showContributors() { + + const contributors_btn = document.querySelector('#contributors'); + const contributors_view = document.querySelector('#contributors_tabitem'); + const contributors_parent = document.createElement('div'); + contributors_parent.className = 'flexbox col padding lrp-32'; + contributors_parent.innerHTML = `Kindly allow us a moment to retrieve the contributors. + We're grateful for the many individuals who have generously put their time and effort to make this possible.`; + contributors_view.append(contributors_parent); + + contributors_btn.addEventListener('click', (e) => { + if (!contributors_btn.getAttribute('data-visited')) { + contributors_btn.setAttribute('data-visited', 'true'); + const promise = getAllContributorsRecursive(); + promise.then((result) => { + contributors_parent.innerHTML = ''; + const temp = document.createElement('div'); + temp.id = 'contributors_grid'; + for (let i = 0; i < result.length; i++) { + const login = result[i].login; + const html_url = result[i].html_url; + const avatar_url = result[i].avatar_url; + temp.innerHTML += ` + +
+
+ ${login} +
+
`; + } + contributors_parent.append(temp); + }); + } + }); +} + +export async function requestGetData(url, callback) { + try { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + const data = await response.json(); + callback(data); + } catch (error) { + console.error('Failed to fetch metadata:', error); + } +} + +export async function requestPostData(url, params, callback) { + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(params), + }); + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + const data = await response.json(); + callback(data); + } catch (error) { + console.error('Failed to fetch data:', error); + } +} + +export async function getMembers(page = 1) { + const request = await fetch(`https://app.buymeacoffee.com/api/creators/slug/dayanbayah/coffees?per_page=20&page=${page}`, { + method: 'GET', + headers: {'Content-Type': 'application/json'}, + }); + + return await request.json(); +} + +export async function getAllMembersRecursive(page = 1, allMembers = []) { + const list = await getMembers(page); + allMembers = allMembers.concat(list.data); + + if (list.data.length > 0) { + return getAllMembersRecursive(page + 1, allMembers); + } + return allMembers; +} +/* +function processMemberships(membershipData) { + const THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000; + const currentDate = Date.now() - THIRTY_DAYS; + const currentMembers = []; + const pastMembers = []; + + console.warn(currentDate); + + membershipData.forEach(member => { + const created = new Date(member.support_created_on); + const updated = new Date(member.support_updated_on); + const duration = updated - created; + if (updated >= currentDate) { + currentMembers.push({...member, duration}); + } else { + pastMembers.push({...member, duration}); + } + }); + + currentMembers.sort((a, b) => b.duration - a.duration); + pastMembers.sort((a, b) => b.duration - a.duration); + + const cleanResult = member => { + const {duration, ...clean} = member; + return clean; + }; + + return { + currentMembers: currentMembers.map(cleanResult), + pastMembers: pastMembers.map(cleanResult) + }; +} +*/ + +function processMemberships(membershipData) { + const THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000; + const currentThreshold = Date.now() - THIRTY_DAYS; + const userMap = new Map(); + + const fullMonthsBetween = (start, end) => { + const startDate = new Date(start); + const endDate = new Date(end); + let months = (endDate.getFullYear() - startDate.getFullYear()) * 12; + months += endDate.getMonth() - startDate.getMonth(); + const startDay = startDate.getDate(); + const endDay = endDate.getDate(); + if (endDay < startDay) months--; + return Math.max(1, months); + }; + + membershipData.forEach(record => { + const userId = record.fk_user_id; + const startDate = new Date(record.support_created_on); + const endDate = new Date(record.support_updated_on); + + if (!userMap.has(userId)) { + userMap.set(userId, { + ...record, + periods: [{startDate, endDate}], + firstCreated: startDate, + lastUpdated: endDate + }); + } else { + const userData = userMap.get(userId); + userData.periods.push({startDate, endDate}); + if (startDate < userData.firstCreated) userData.firstCreated = startDate; + if (endDate > userData.lastUpdated) userData.lastUpdated = endDate; + } + }); + + for (const userData of userMap.values()) { + userData.periods.sort((a, b) => a.startDate - b.startDate); + const mergedPeriods = [userData.periods[0]]; + for (let i = 1; i < userData.periods.length; i++) { + const last = mergedPeriods[mergedPeriods.length-1]; + const current = userData.periods[i]; + if (current.startDate <= last.endDate) { + last.endDate = current.endDate > last.endDate ? current.endDate : last.endDate; + } else { + mergedPeriods.push(current); + } + } + + userData.num_months_support = mergedPeriods.reduce((total, period) => { + return total + fullMonthsBetween(period.startDate, period.endDate); + }, 0); + + userData.support_created_on = userData.firstCreated; + userData.support_updated_on = userData.lastUpdated; + } + + const currentMembers = []; + const pastMembers = []; + + for (const userData of userMap.values()) { + const record = { + ...userData, + support_created_on: userData.support_created_on.toISOString(), + support_updated_on: userData.support_updated_on.toISOString(), + num_months_support: userData.num_months_support + }; + + if (userData.lastUpdated.getTime() >= currentThreshold) { + currentMembers.push(record); + } else { + pastMembers.push(record); + } + } + + currentMembers.sort((a, b) => b.num_months_support - a.num_months_support); + pastMembers.sort((a, b) => b.num_months_support - a.num_months_support); + + const cleanResult = ({ periods, firstCreated, lastUpdated, ...clean }) => clean; + + return { + currentMembers: currentMembers.map(cleanResult), + pastMembers: pastMembers.map(cleanResult) + }; +} + +function createMemberItem(currentMember){ + const profile_name = currentMember.supporter_name; + const avatar_url = currentMember.profile_picture_url; + const avatar_img = avatar_url.includes("/default") ? `https://robohash.org/${currentMember.fk_user_id}` : avatar_url; + //const avatar_img = avatar_url.includes("/default") ? `https://api.dicebear.com/9.x/pixel-art/svg?seed=${currentMember.fk_user_id}` : avatar_url; + + return ` + +
+
+ ${profile_name} +
+ + ${currentMember.num_months_support} + +
`; +} + +export function showMembers() { + const sponsors_btn = document.querySelector('#sponsors'); + const sponsors_view = document.querySelector('#sponsors_tabitem'); + const sponsors_parent = document.createElement('div'); + sponsors_parent.className = 'flexbox col padding lrp-32'; + sponsors_parent.innerHTML = `Kindly allow us a moment to retrieve our sponsors.`; + sponsors_view.append(sponsors_parent); + + sponsors_btn.addEventListener('click', (e) => { + if (!sponsors_btn.getAttribute('data-visited')) { + sponsors_btn.setAttribute('data-visited', 'true'); + const promise = getAllMembersRecursive(); + promise.then((result) => { + sponsors_parent.innerHTML = ''; + const asp_el = document.createElement('div'); + asp_el.innerHTML = ` +

Current Supporters

+

We're deeply grateful to the individuals currently supporting this project through their sponsorships.

+ `; + sponsors_parent.append(asp_el); + + const temp = document.createElement('div'); + temp.className = 'sponsors_grid current'; + const procMembers = processMemberships(result); + //console.warn(procMembers); + + const currentMembers = procMembers.currentMembers; + for (let i = 0; i < currentMembers.length; i++) { + temp.innerHTML += createMemberItem(currentMembers[i]); + } + sponsors_parent.append(temp); + + const psp_el = document.createElement('div'); + psp_el.innerHTML = ` +


+

Former Supporters

+

We extend our sincere appreciation to all who have generously sponsored this initiative in the past.

+ `; + sponsors_parent.append(psp_el); + + const pastMembers = procMembers.pastMembers; + const temp2 = document.createElement('div'); + temp2.className = 'sponsors_grid'; + temp2.innerHTML = ''; + for (let i = 0; i < pastMembers.length; i++) { + temp2.innerHTML += createMemberItem(pastMembers[i]); + } + sponsors_parent.append(temp2); + + }); + } + }); +} + + diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/events.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/events.js new file mode 100644 index 00000000..13985249 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/events.js @@ -0,0 +1,25 @@ +export function EventManager() { + this.events = new Map(); +} + +EventManager.prototype.on = function(event, handler) { + if (!this.events.has(event)) { + this.events.set(event, new Set()); + } + this.events.get(event).add(handler); +}; + +EventManager.prototype.off = function(event, handler) { + if (this.events.has(event)) { + this.events.get(event).delete(handler); + if (this.events.get(event).size === 0) { + this.events.delete(event); + } + } +}; + +EventManager.prototype.trigger = function(event, data) { + if (this.events.has(event)) { + this.events.get(event).forEach(handler => handler(data)); + } +}; diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/helpers.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/helpers.js index b7b56ea1..50a56885 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/utils/helpers.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/helpers.js @@ -1,9 +1,15 @@ import {getAnapnoeApp} from '../constants.js'; export function updateInput(inputElement) { - // Implementation of how to update the input if (inputElement) { - const event = new Event('input', {bubbles: true}); + const event = new Event('input', {bubbles: true, cancelable: true}); + inputElement.dispatchEvent(event); + } +} + +export function updateChange(inputElement) { + if (inputElement) { + const event = new Event('change', {bubbles: true, cancelable: true}); inputElement.dispatchEvent(event); } } @@ -29,83 +35,103 @@ export function setupAnimations() { }); } -export function countInlineEventListeners(element) { - let count = 0; - // Function to check event listeners that may have been added via 'addEventListener' - const checkEventListeners = (el) => { - const attrs = Object.getOwnPropertyDescriptors(el); - if (attrs && attrs.onclick) count++; - for (const eventName of ['onblur', 'onchange', 'onclick', 'oncontextmenu', 'ondblclick', - 'onerror', 'onfocus', 'oninput', 'onkeydown', 'onkeypress', - 'onkeyup', 'onload', 'onmousedown', 'onmousemove', - 'onmouseout', 'onmouseover', 'onmouseup', 'onresize', - 'onscroll', 'onselect', 'onsubmit']) { - if (el[eventName]) count++; - } - }; - - // Recursive function to traverse the DOM - const traverseChildren = (el) => { - checkEventListeners(el); - for (let child = el.firstElementChild; child; child = child.nextElementSibling) { - traverseChildren(child); - } - }; - - traverseChildren(element); - return count; -} - -const eventListenersMap = new WeakMap(); -export function countEventListeners(element) { - if (!(element instanceof Element)) { - return 0; - } - let totalListeners = 0; - const elementListeners = eventListenersMap.get(element); - if (elementListeners) { - for (const event in elementListeners) { - totalListeners += elementListeners[event].size; // Count Set size - } - } - - for (const child of element.children) { - totalListeners += countEventListeners(child); - } - - return totalListeners; -} - -(function() { - const originalAddEventListener = EventTarget.prototype.addEventListener; - const originalRemoveEventListener = EventTarget.prototype.removeEventListener; - - EventTarget.prototype.addEventListener = function(type, listener, options) { - if (typeof options === 'undefined') { - options = false; // Assign a default value if necessary - } - - const elementListeners = eventListenersMap.get(this) || {}; - if (!elementListeners[type]) { - elementListeners[type] = new Set(); // Use Set to prevent duplicates - } - elementListeners[type].add(listener); - eventListenersMap.set(this, elementListeners); - - originalAddEventListener.call(this, type, listener, options); - }; - - EventTarget.prototype.removeEventListener = function(type, listener, options) { - const elementListeners = eventListenersMap.get(this); - if (elementListeners && elementListeners[type]) { - elementListeners[type].delete(listener); // Remove the listener from the Set - if (elementListeners[type].size === 0) { - delete elementListeners[type]; // Optionally clean up the empty array +async function waitForPngInfoText(png_info_text, maxRetries = 4) { + return new Promise((resolve) => { + const check = (count) => { + if (png_info_text.value != "" || count >= maxRetries) { + resolve(true); + } else { + setTimeout(() => check(count + 1), 500); } - } - originalRemoveEventListener.call(this, type, listener, options); - }; + }; + check(0); + }); +} - window.countEventListeners = countEventListeners; -}()); + +export async function sendImageParamsTo(src, btnid) { + const root_dock = document.querySelector(`#root-dock-components`); + const fileInput = document.querySelector('#pnginfo_image input[type="file"]'); + const btn = document.querySelector(`#pnginfo_send_buttons ${btnid}`); + const tab_active = document.querySelector(`#main-nav .active`); + const wtb = document.querySelector(`#workspaces_tabitem`); + //console.warn("sendImageParamsTo", btnid, btn); + + const png_info_text = document.querySelector('[data-selector="#tab_pnginfo textarea"] textarea'); + if(png_info_text){ + png_info_text.value = ""; + updateInput(png_info_text); + } + + try { + const response = await fetch(src); + const blob = await response.blob(); + const file = new File([blob], 'image.jpg'); + + const dataTransfer = new DataTransfer(); + dataTransfer.items.add(file); + fileInput.files = dataTransfer.files; + updateChange(fileInput); + + const loaded = await waitForPngInfoText(png_info_text); + if (loaded) { + if(root_dock){ + wtb.classList.add("no-redraw"); + setTimeout(() => { + tab_active?.click(); + wtb.classList.remove("no-redraw"); + }, 1000); + } + + btn?.click(); + + } else { + console.error('PNG info not loaded'); + } + } catch (error) { + console.error('Error:', error); + } +} + +/* +export function sendImageParamsTo(src, btnid) { + const btn = document.querySelector(`#pnginfo_send_buttons ${btnid}`); + const fileInput = document.querySelector('#pnginfo_image input[type="file"]'); + const dataTransfer = new DataTransfer(); + fileInput.files = dataTransfer.files; + + fetch(src) + .then(response => response.blob()) + .then(blob => { + const file = new File([blob], 'image.jpg', {type: blob.type}); + const dataTransfer = new DataTransfer(); + dataTransfer.items.add(file); + fileInput.files = dataTransfer.files; + updateChange(fileInput); + setTimeout(() => { + btn.click(); + }, 1000); + + }) + .catch(error => console.error('Error fetching image:', error)); +} +*/ +export function detectHoverOnElements(selector){ + let timeout; + document.querySelectorAll(selector).forEach((parent) => { + + parent.addEventListener('mouseenter', (e) => { + clearTimeout(timeout); + parent.classList.remove('init-view'); + timeout = setTimeout(() => { + parent.classList.add('mouseenter'); + }, 500); + }); + + parent.addEventListener('mouseleave', (e) => { + clearTimeout(timeout); + parent.classList.remove('mouseenter'); + }); + }); +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/mobile.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/mobile.js index f130af35..73bd3400 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/utils/mobile.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/mobile.js @@ -43,8 +43,7 @@ export const switchMobile = () => { if (optslayout === 'Auto') { window.addEventListener('resize', (event) => { - const isMobile = detectMobile(); - applyDefaultLayout(isMobile); + applyDefaultLayout(detectMobile()); }); applyDefaultLayout(detectMobile()); } else if (optslayout === 'Mobile') { diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/module.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/module.js index d98cc283..9d03382d 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/utils/module.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/module.js @@ -1,8 +1,9 @@ -import {DEFAULT_PATH} from '../constants.js'; +import {DEFAULT_PATH, ANAPNOE_APP_VER} from '../constants.js'; import {loadCurrentTemplate} from '../components/templates.js'; import {initUiUxComponents} from '../components/components.js'; export const UIUX = { + ANAPNOE_APP_VER: ANAPNOE_APP_VER, DEFAULT_PATH, FOCUS_PROMPT: "txt2img", loadCurrentTemplate, diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/observers.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/observers.js index fdb584c2..fc4f1833 100644 --- a/extensions-builtin/sd-webui-ux/javascript/src/utils/observers.js +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/observers.js @@ -53,30 +53,31 @@ export function setupGenerateObservers() { } }); } - -export function setupCheckpointChangeObserver() { +/* +export function setupCheckpointChangeObserver(vScroll, treeView) { const ch_input = document.querySelector("#setting_sd_model_checkpoint .wrap .secondary-wrap input") || document.querySelector(".gradio-dropdown.model_selection .wrap .secondary-wrap input"); const ch_preload = document.querySelector("#setting_sd_model_checkpoint .wrap") || document.querySelector(".gradio-dropdown.model_selection .wrap"); - const ch_footer_selected = document.querySelector("#txt2img_checkpoints_main_footer .model-selected"); - const ch_footer_preload = document.querySelector("#txt2img_checkpoints_main_footer .model-preloader"); + const ch_footer_selected = document.querySelector("#checkpoints_main_footer_db .model-selected"); + const ch_footer_preload = document.querySelector("#checkpoints_main_footer_db .model-preloader"); ch_footer_preload.append(ch_preload); - let hash_value; - // Function to handle checkpoint selection + let hash_value = ""; + const selectCard = (value) => { if (hash_value !== value) { - console.log("Checkpoint:", value); - const oldcard = document.querySelector(`#txt2img_checkpoints_cards .card.selected`); - oldcard?.classList.remove("selected"); - - const new_card = document.querySelector(`#txt2img_checkpoints_cards .card[data-apply*="${value}"]`) || document.querySelector(`#txt2img_checkpoints_cards .card[onclick*="${value}"]`); - new_card?.classList.add("selected"); + const name = value.split('.').slice(0, -1).join(); + vScroll.selected = new Set([name]); + vScroll.renderItems(); + if (treeView) { + treeView.selected = vScroll.selected; + treeView.updateSelectedItems(); + } + ch_footer_selected.textContent = value; - console.log("Checkpoint:", value); - + console.log("Checkpoint:", value, name); hash_value = value; } }; @@ -85,9 +86,6 @@ export function setupCheckpointChangeObserver() { const combinedObserver = new MutationObserver(function(mutations) { mutations.forEach(function(m) { - //if (m.type === "attributes" && m.target === ch_input) { - // selectCard(ch_input.value); - //} setTimeout(() => selectCard(ch_input.value), 1000); }); }); @@ -96,6 +94,62 @@ export function setupCheckpointChangeObserver() { combinedObserver.observe(ch_input, {attributes: true}); combinedObserver.observe(ch_preload, {childList: true, subtree: true}); } +*/ + +export function setupCheckpointChangeObserver(vScroll) { + const ch_input = document.querySelector("#setting_sd_model_checkpoint .wrap .secondary-wrap input") || + document.querySelector(".gradio-dropdown.model_selection .wrap .secondary-wrap input"); + const ch_preload = document.querySelector("#setting_sd_model_checkpoint .wrap") || + document.querySelector(".gradio-dropdown.model_selection .wrap"); + + const ch_footer_selected = document.querySelector("#checkpoints_main_footer_db .model-selected"); + const ch_footer_preload = document.querySelector("#checkpoints_main_footer_db .model-preloader"); + ch_footer_preload.append(ch_preload); + + let hash_value = ""; + let observer = null; + let treeViewCallback = null; + + const selectCard = (value) => { + if (hash_value !== value) { + const name = value.split('.').slice(0, -1).join('.'); + vScroll.selected = new Set([name]); + vScroll.forceRenderItems(); + + if (typeof treeViewCallback === 'function') { + treeViewCallback(vScroll.selected); + } + + ch_footer_selected.textContent = value; + console.log("Checkpoint:", value, name); + hash_value = value; + } + }; + + selectCard(ch_input.value); + + const setupObserver = () => { + if (observer) return; + observer = new MutationObserver(() => { + setTimeout(() => selectCard(ch_input.value), 1000); + }); + + observer.observe(ch_input, { attributes: true }); + observer.observe(ch_preload, { childList: true, subtree: true }); + }; + + setupObserver(); + + return { + setTreeViewCallback(callback) { + treeViewCallback = callback; + selectCard(hash_value); + }, + destroy() { + if (observer) observer.disconnect(); + } + }; +} export function setupExtraNetworksAddToPromptObserver() { @@ -126,3 +180,38 @@ export function setupExtraNetworksAddToPromptObserver() { //console.log(matchingCards); } + +export function setupInputObservers(paramsMapping, apiParams, vScroll, modifyParamsCallback = null) { + Object.keys(paramsMapping).forEach((inputId) => { + const inputElement = document.querySelector(`${inputId}`); + if (inputElement) { + const paramKey = paramsMapping[inputId]; + const eventType = (inputElement.tagName === 'SELECT' && inputElement.multiple) ? 'change' : + (inputElement.tagName === 'SELECT' || + (inputElement.type === 'checkbox' || inputElement.type === 'radio') || + (inputElement.type !== 'range' && inputElement.type !== 'color' && inputElement.type !== 'text')) ? 'change' : 'input'; + + const updateParams = () => { + let paramValue; + if (inputElement.tagName === 'SELECT' && inputElement.multiple) { + paramValue = Array.from(inputElement.selectedOptions).map(option => option.value); + apiParams[paramKey] = paramValue; + } else if (inputElement.type === 'checkbox' || inputElement.type === 'radio') { + paramValue = inputElement.checked; + } else { + paramValue = inputElement.value; + } + // Apply the callback if provided + const modifiedParams = modifyParamsCallback ? modifyParamsCallback({[paramKey]: paramValue}) : {[paramKey]: paramValue}; + vScroll.updateParamsAndFetch(modifiedParams, 1000); + }; + + inputElement.addEventListener(eventType, updateParams); + // Initialize apiParams with the current values of the inputs + //updateParams(); + } else { + console.warn(`Input element with id ${inputId} not found.`); + } + }); + return apiParams; +} diff --git a/extensions-builtin/sd-webui-ux/javascript/src/utils/renderers.js b/extensions-builtin/sd-webui-ux/javascript/src/utils/renderers.js new file mode 100644 index 00000000..02fc12f2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/javascript/src/utils/renderers.js @@ -0,0 +1,586 @@ +import DOMPurify from '../../libs/purify.es.mjs'; +export function createVirtualItemElement(item, imgRes, selected, endpoint) { + const itemDiv = document.createElement('div'); + itemDiv.className = 'item card'; + + if (selected?.has(item.name)) { + itemDiv.classList.add('active'); + } else { + itemDiv.classList.remove('active'); + } + + + + const fullSize = document.createElement('button'); + fullSize.className = `icon-grid-size fullsize-button card-button`; + + const fullScreen = document.createElement('button'); + fullScreen.className = `icon-full-screen fullScreen-button card-button`; + + const tile = document.createElement('button'); + tile.className = `icon-tile tile-button card-button`; + + const info = document.createElement('button'); + info.className = `icon-info info-button card-button`; + + const itemEditMeta = document.createElement('button'); + itemEditMeta.className = `edit-meta edit-button card-button`; + + const copyPath = document.createElement('button'); + copyPath.className = `copy-path copy-path-button card-button`; + + const itemDelete = document.createElement('button'); + itemDelete.className = `icon-delete delete-button card-button`; + + const sendParams = document.createElement('button'); + sendParams.className = `icon-send-params send-params-button card-button`; + + const itemInfo = document.createElement('div'); + itemInfo.className = 'item-info'; + + const itemTitle = document.createElement('span'); + itemTitle.className = 'item-info-title'; + itemTitle.textContent = item.name; // Use textContent for safety + + const itemDescription = document.createElement('div'); + itemDescription.className = 'item-info-description'; + + const promptParagraph = document.createElement('p'); + promptParagraph.textContent = item.prompt; + + const negativeParagraph = document.createElement('p'); + negativeParagraph.textContent = item.negative; + + const tagsParagraph = document.createElement('p'); + tagsParagraph.textContent = item.tags; + + const extraParagraph = document.createElement('p'); + extraParagraph.textContent = item.extra; + + itemDescription.appendChild(promptParagraph); + itemDescription.appendChild(negativeParagraph); + itemDescription.appendChild(tagsParagraph); + itemDescription.appendChild(extraParagraph); + + itemInfo.appendChild(itemTitle); + itemInfo.appendChild(itemDescription); + + const itemActionsRow = document.createElement('div'); + itemActionsRow.className = `item-actions-row`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + const itemActionsTop = document.createElement('div'); + itemActionsTop.className = `item-actions-top`; + + const spacer = document.createElement('div'); + spacer.className = `item-spacer`; + + + itemActionsTop.appendChild(sendParams); + itemActionsTop.appendChild(spacer); + itemActionsTop.appendChild(fullSize); + itemActionsTop.appendChild(fullScreen); + + + itemActions.appendChild(tile); + itemActions.appendChild(info); + + itemActions.appendChild(copyPath); + itemActions.appendChild(itemEditMeta); + itemActions.appendChild(itemDelete); + + itemActionsRow.appendChild(itemActionsTop); + itemActionsRow.appendChild(itemActions); + + + itemDiv.appendChild(itemActionsRow); + //itemDiv.appendChild(itemTitle); + + const imageUrl = item[imgRes]; + const timestamp = item.timestamp || ''; + if (imageUrl) { + const imgDiv = document.createElement('div'); + imgDiv.style.backgroundImage = `url('${endpoint}${encodeURIComponent(imageUrl)}${timestamp}')`; + //imgDiv = document.createElement('img'); + //imgDiv.src = `${endpoint}${encodeURIComponent(imageUrl)}${timestamp}`; // Use data-src for lazy loading + //imgDiv.alt = item.name || 'Image'; // Critical for accessibility + //imgDiv.loading = "lazy"; + + imgDiv.className = 'item-img'; + itemDiv.appendChild(imgDiv); + } + + itemDiv.appendChild(itemInfo); + + return itemDiv; +} + +export function createVirtualItemExtraNetworks(item, imgRes, selected, endpoint) { + const itemDiv = document.createElement('div'); + itemDiv.className = 'item card'; + + if (selected?.has(item.name)) { + itemDiv.classList.add('active'); + } else { + itemDiv.classList.remove('active'); + } + + const fullSize = document.createElement('button'); + fullSize.className = `icon-grid-size fullsize-button card-button`; + + const fullScreen = document.createElement('button'); + fullScreen.className = `icon-full-screen fullScreen-button card-button`; + + const tile = document.createElement('button'); + tile.className = `icon-tile tile-button card-button`; + + const info = document.createElement('button'); + info.className = `icon-info info-button card-button`; + + const itemEditMeta = document.createElement('button'); + itemEditMeta.className = `edit-meta edit-button card-button`; + + const copyPath = document.createElement('button'); + copyPath.className = `copy-path copy-path-button card-button`; + + const sendParams = document.createElement('button'); + sendParams.className = `icon-send-params send-params-button card-button`; + + + const itemInfo = document.createElement('div'); + itemInfo.className = 'item-info'; + + const itemTitle = document.createElement('span'); + itemTitle.className = 'item-info-title'; + itemTitle.textContent = item.name; + + const itemDescription = document.createElement('div'); + itemDescription.className = 'item-info-description'; + + if (item.activation_text) { + const promptParagraph = document.createElement('p'); + promptParagraph.textContent = item.activation_text; + + const negativeParagraph = document.createElement('p'); + negativeParagraph.textContent = item.negative_prompt; + + itemDescription.appendChild(promptParagraph); + itemDescription.appendChild(negativeParagraph); + } + + const tagsParagraph = document.createElement('p'); + tagsParagraph.textContent = item.tags; + + itemDescription.appendChild(tagsParagraph); + + itemInfo.appendChild(itemTitle); + itemInfo.appendChild(itemDescription); + + const itemActionsRow = document.createElement('div'); + itemActionsRow.className = `item-actions-row`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + const itemActionsTop = document.createElement('div'); + itemActionsTop.className = `item-actions-top`; + + const spacer = document.createElement('div'); + spacer.className = `item-spacer`; + + itemActionsTop.appendChild(sendParams); + itemActionsTop.appendChild(spacer); + itemActionsTop.appendChild(fullSize); + itemActionsTop.appendChild(fullScreen); + + itemActions.appendChild(info); + itemActions.appendChild(copyPath); + itemActions.appendChild(itemEditMeta); + + if (item.metadata_exists) { + const itemShowMeta = document.createElement('button'); + itemShowMeta.className = `show-meta metadata-button card-button`; + itemActions.appendChild(itemShowMeta); + } + + itemActionsRow.appendChild(itemActionsTop); + itemActionsRow.appendChild(itemActions); + + + itemDiv.appendChild(itemActionsRow); + //itemDiv.appendChild(itemTitle); + + const imageUrl = item[imgRes]; + const timestamp = item.timestamp || ''; + if (imageUrl) { + const imgDiv = document.createElement('div'); + imgDiv.style.backgroundImage = `url('${endpoint}${encodeURIComponent(imageUrl)}${timestamp}')`; + imgDiv.className = 'item-img'; + itemDiv.appendChild(imgDiv); + } + + itemDiv.appendChild(itemInfo); + + return itemDiv; +} + +const paramKeys = ['clipSkip', 'cfgScale', 'sampler', 'steps', 'seed', 'Size']; +export function createVirtualItemCivitImages(item, imgRes) { + const itemDiv = document.createElement('div'); + itemDiv.className = 'item card'; + + const fullSize = document.createElement('button'); + fullSize.className = `icon-grid-size fullsize-button card-button`; + + const fullScreen = document.createElement('button'); + fullScreen.className = `icon-full-screen fullScreen-button card-button`; + + const tile = document.createElement('button'); + tile.className = `icon-tile tile-button card-button`; + + const info = document.createElement('button'); + info.className = `icon-info info-button card-button`; + + const itemAddToStyles = document.createElement('button'); + itemAddToStyles.className = `icon-stylez civit-add2styles-button card-button`; + + const civitLink = document.createElement('button'); + civitLink.className = `icon-link civit-link-button card-button`; + + const sendParams = document.createElement('button'); + sendParams.className = `icon-send-params send-params-button card-button`; + + + const itemInfo = document.createElement('div'); + itemInfo.className = 'item-info'; + + const itemTitle = document.createElement('button'); + itemTitle.className = 'item-info-title'; + itemTitle.textContent = item.username; + + const itemDescription = document.createElement('div'); + itemDescription.className = 'item-info-description'; + + const paramsParts = []; + if (item.baseModel) { + paramsParts.push(`baseModel: ${item.baseModel}`); + } + + const item_meta = item.meta; + if (item_meta) { + if (item_meta.prompt) { + const promptParagraph = document.createElement('p'); + promptParagraph.textContent = 'Prompt: ' + item_meta.prompt; + itemDescription.appendChild(promptParagraph); + } + + if (item_meta.negativePrompt) { + const negativeParagraph = document.createElement('p'); + negativeParagraph.textContent = 'Negative prompt: ' + item_meta.negativePrompt; + itemDescription.appendChild(negativeParagraph); + } + + paramKeys.forEach((key) => { + if (item_meta[key] !== undefined) { + paramsParts.push(`${key}: ${item_meta[key]}`); + } + }); + + const paramsDescription = document.createElement('p'); + paramsDescription.textContent = paramsParts.join(', '); + itemDescription.appendChild(paramsDescription); + + if (item_meta.civitaiResources) { + item_meta.civitaiResources.forEach((resource) => { + const resourceType = resource.type ? resource.type : 'Unknown Type'; + const resourceWeight = resource.weight ? resource.weight : ''; + const resourceName = resource.name ? resource.name : ''; + const modelVersionId = resource.modelVersionId ? resource.modelVersionId : null; + const modelVersionName = resource.modelVersionName; + + if (modelVersionId) { + + const resourcesDescription = document.createElement('p'); + resourcesDescription.textContent = `${resourceType}: ${resourceWeight} ${resourceName}`; + + const resourceslink = document.createElement('a'); + resourceslink.textContent = `${modelVersionName || 'Model Id: ' + modelVersionId}`; + resourceslink.href = `https://civitai.com/api/v1/models/${modelVersionId}`; + resourceslink.target = "_blank"; + + resourcesDescription.appendChild(resourceslink); + itemDescription.appendChild(resourcesDescription); + + } + }); + } + } + + + itemInfo.appendChild(itemTitle); + itemInfo.appendChild(itemDescription); + + const itemActionsRow = document.createElement('div'); + itemActionsRow.className = `item-actions-row`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + const itemActionsTop = document.createElement('div'); + itemActionsTop.className = `item-actions-top`; + + const spacer = document.createElement('div'); + spacer.className = `item-spacer`; + + itemActionsTop.appendChild(sendParams); + itemActionsTop.appendChild(spacer); + itemActionsTop.appendChild(fullSize); + itemActionsTop.appendChild(fullScreen); + + itemActions.appendChild(info); + itemActions.appendChild(civitLink); + itemActions.appendChild(itemAddToStyles); + + + itemActionsRow.appendChild(itemActionsTop); + itemActionsRow.appendChild(itemActions); + + + itemDiv.appendChild(itemActionsRow); + //itemDiv.appendChild(itemTitle); + + let imageUrl = item.url; + if (imageUrl) { + if(imgRes == 'thumbnail'){ + const img_parts = imageUrl.split('width='); + const img_file = img_parts[1].split('/')[1]; + imageUrl = img_parts[0]+'width=320/'+img_file; + } + const imgDiv = document.createElement('div'); + imgDiv.style.backgroundImage = `url('${imageUrl}')`; + imgDiv.className = 'item-img'; + itemDiv.appendChild(imgDiv); + } + + itemDiv.appendChild(itemInfo); + + return itemDiv; +} + +export function createVirtualItemCivitModels(item, imgRes) { + const itemDiv = document.createElement('div'); + itemDiv.className = 'item card'; + + const fullSize = document.createElement('button'); + fullSize.className = `icon-grid-size fullsize-button card-button`; + + const fullScreen = document.createElement('button'); + fullScreen.className = `icon-full-screen fullScreen-button card-button`; + + const tile = document.createElement('button'); + tile.className = `icon-tile tile-button card-button`; + + const info = document.createElement('button'); + info.className = `icon-info info-button card-button`; + + const civitLink = document.createElement('button'); + civitLink.className = `icon-link civit-link-button card-button`; + + const sendParams = document.createElement('button'); + sendParams.className = `icon-send-params send-params-button card-button`; + + + const itemInfo = document.createElement('div'); + itemInfo.className = 'item-info'; + + const itemTitle = document.createElement('span'); + itemTitle.className = 'item-info-title'; + itemTitle.textContent = item.name; + + const itemType = document.createElement('span'); + itemType.textContent = item.type; + itemType.className = `extra-type ${item.type}`; + + const itemDescription = document.createElement('div'); + itemDescription.innerHTML = DOMPurify.sanitize(item.description); + itemDescription.className = 'item-info-description'; + + itemInfo.appendChild(itemTitle); + itemInfo.appendChild(itemDescription); + + const itemActionsRow = document.createElement('div'); + itemActionsRow.className = `item-actions-row`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + //const itemActionsTop = document.createElement('div'); + //itemActionsTop.className = `item-actions-top`; + + const spacer = document.createElement('div'); + spacer.className = `item-spacer`; + + itemActions.appendChild(sendParams); + itemActions.appendChild(spacer); + itemActions.appendChild(fullSize); + itemActions.appendChild(fullScreen); + + itemActions.appendChild(info); + itemActions.appendChild(civitLink); + //itemActions.appendChild(itemType); + + //itemActionsRow.appendChild(itemActionsTop); + itemActionsRow.appendChild(itemActions); + + itemDiv.appendChild(itemType); + itemDiv.appendChild(itemActionsRow); + + let imageUrl = item.modelVersions[0]?.images[0]?.url; + if (imageUrl) { + if(imgRes == 'thumbnail'){ + const img_parts = imageUrl.split('width='); + const img_file = img_parts[1].split('/')[1]; + imageUrl = img_parts[0]+'width=320/'+img_file; + } + const imgDiv = document.createElement('div'); + //imgDiv.style.backgroundImage = `url('${imageUrl}')`; + imgDiv.style.backgroundImage = `url(${encodeURI(imageUrl)})`; + imgDiv.className = 'item-img'; + itemDiv.appendChild(imgDiv); + } + + itemDiv.appendChild(itemInfo); + + return itemDiv; +} + +function formatSize(sizeKB) { + const sizeMB = sizeKB / 1024; + if (sizeMB >= 1024) { + const sizeGB = sizeMB / 1024; + return `${sizeGB.toFixed(2)} GB`; + } else { + return `${sizeMB.toFixed(2)} MB`; + } +} + +export function createVirtualItemCivitModelsDetail(item, parentItem, modelIndex) { + const itemDiv = document.createElement('div'); + itemDiv.className = 'item card'; + + const fullSize = document.createElement('button'); + fullSize.className = `icon-grid-size fullsize-button card-button`; + + const fullScreen = document.createElement('button'); + fullScreen.className = `icon-full-screen fullScreen-button card-button`; + + const tile = document.createElement('button'); + tile.className = `icon-tile tile-button card-button`; + + const info = document.createElement('button'); + info.className = `icon-info info-button card-button`; + + const civitLink = document.createElement('button'); + civitLink.className = `icon-link civit-link-button card-button`; + + const sendParams = document.createElement('button'); + sendParams.className = `icon-send-params send-params-button card-button`; + + + const itemInfo = document.createElement('div'); + itemInfo.className = 'item-info'; + + const itemTitle = document.createElement('span'); + itemTitle.className = 'item-info-title'; + itemTitle.textContent = parentItem.name; + + const itemType = document.createElement('span'); + itemType.textContent = parentItem.type; + itemType.className = `extra-type ${parentItem.type}`; + + const selectModel = document.createElement('select'); + selectModel.className = 'baseModel-select'; + + const modelVersions = parentItem.modelVersions; + modelVersions.forEach((model, mindex) => { + const optionElement = document.createElement('option'); + optionElement.value = mindex; + optionElement.textContent = `${model.baseModel} | ${model.name} | ${model.baseModelType}`; + if (mindex === modelIndex) optionElement.selected = true; + selectModel.appendChild(optionElement); + }); + + + const downloadUrl = modelVersions[modelIndex].files[0].downloadUrl; + const downloadName = modelVersions[modelIndex].files[0].name; + const downloadSize = modelVersions[modelIndex].files[0].sizeKB; + + const vDownload = document.createElement("a"); + vDownload.target = "_blank"; + //vDownload.href = downloadUrl; + vDownload.setAttribute('data-url', downloadUrl); + vDownload.className = 'model-sdownload'; + vDownload.textContent = `${downloadName} - ${formatSize(downloadSize)}`; + + let description = modelVersions[modelIndex].description; + if (modelIndex === 0) { + description = (parentItem.description || '') + (modelVersions[modelIndex].description || ''); + } + + const itemDescription = document.createElement('div'); + itemDescription.innerHTML = DOMPurify.sanitize(description); + itemDescription.className = 'item-info-description'; + + itemInfo.appendChild(itemTitle); + itemInfo.appendChild(selectModel); + itemInfo.appendChild(vDownload); + + const imageUrl = item.url; + if (imageUrl) { + const imageDownload = document.createElement("a"); + imageDownload.className = 'download-image-button'; + const fileExtension = imageUrl.split('.').pop().split('?')[0]; + const filename = `${downloadName.split('.')[0]}.${fileExtension}`; + imageDownload.textContent = `${filename}`; + imageDownload.setAttribute('data-url', imageUrl); + imageDownload.setAttribute('data-filename', filename); + itemInfo.appendChild(imageDownload); + } + + itemInfo.appendChild(itemDescription); + + const itemActionsRow = document.createElement('div'); + itemActionsRow.className = `item-actions-row`; + + const itemActions = document.createElement('div'); + itemActions.className = `item-actions`; + //const itemActionsTop = document.createElement('div'); + //itemActionsTop.className = `item-actions-top`; + + const spacer = document.createElement('div'); + spacer.className = `item-spacer`; + + itemActions.appendChild(sendParams); + itemActions.appendChild(spacer); + itemActions.appendChild(fullSize); + itemActions.appendChild(fullScreen); + + itemActions.appendChild(info); + itemActions.appendChild(civitLink); + //itemActions.appendChild(itemType); + + //itemActionsRow.appendChild(itemActionsTop); + itemActionsRow.appendChild(itemActions); + + itemDiv.appendChild(itemType); + itemDiv.appendChild(itemActionsRow); + + if (imageUrl) { + const imgDiv = document.createElement('div'); + imgDiv.style.backgroundImage = `url(${imageUrl})`; + imgDiv.className = 'item-img'; + itemDiv.appendChild(imgDiv); + } + + itemDiv.appendChild(itemInfo); + + return itemDiv; +} diff --git a/extensions-builtin/sd-webui-ux/package.json b/extensions-builtin/sd-webui-ux/package.json index 9d930a74..67b6f4f9 100644 --- a/extensions-builtin/sd-webui-ux/package.json +++ b/extensions-builtin/sd-webui-ux/package.json @@ -23,7 +23,6 @@ "build": "vite build" }, "dependencies": { - "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-css": "^0.9.2", "eslint-plugin-html": "^8.1.1", @@ -31,6 +30,9 @@ "eslint-plugin-markdown": "^4.0.1" }, "devDependencies": { + "@eslint/js": "^9.15.0", + "eslint": "^9.17.0", + "globals": "^15.12.0", "vite": "^5.4.8" } -} \ No newline at end of file +} diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/database_manager.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/database_manager.py new file mode 100644 index 00000000..31525e54 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/database_manager.py @@ -0,0 +1,1302 @@ +import logging +logger = logging.getLogger(__name__) + +from fastapi import FastAPI, HTTPException, Query, Body, UploadFile, File +from fastapi.responses import StreamingResponse +#from fastapi import Request, Response + +from typing import Optional, List, Dict, Any, Generator +import sqlite3 +import json +import os +import re +from pathlib import Path +from PIL import Image +import shutil + +import gradio as gr +from modules import script_callbacks +import time +import stat +import hashlib +from tqdm import tqdm + +def validate_name(name, message): + if not re.match(r'^[a-zA-Z_][a-zA-Z0-9_]*$', name): + raise ValueError(f"Invalid {message} name. Must start with a letter or underscore and contain only alphanumeric characters and underscores.") + +''' +class DatabaseManager: + def __init__(self, db_name): + self.db_name = db_name + self.source_file = None + self.connection = None + + def connect(self): + if self.connection is None: + self.connection = sqlite3.connect(self.db_name, check_same_thread=False) + return self.connection + + def close_connection(self): + if self.connection: + self.connection.close() + self.connection = None + +''' + +# Singleton +class DatabaseManager: + _instance = None + _api_registered = False + _registered_table_classes = {} + + def __init__(self, db_name): + self.db_name = db_name + self.source_file = None + self.register_api() + + def register_api(self): + if not self._api_registered: + script_callbacks.on_app_started(lambda _, app: self.api_uiux(app)) + self._api_registered = True + + @classmethod + def set_instance(cls, instance): + cls._instance = instance + + @classmethod + def get_instance(cls): + if cls._instance is None: + raise Exception("DatabaseManager instance is not set.") + return cls._instance + + @classmethod + def register_table_type(cls, table_type: str, page_class): + cls._registered_table_classes[table_type.lower()] = page_class + + @classmethod + def get_table_instance(cls, table_name: str): + return cls._registered_table_classes.get(table_name.lower()) + + + def import_tables_generator(self, table_types: List[str], refresh: bool = False): + pages = {} + for t in table_types: + normalized_type = t.lower() + if normalized_type in self._registered_table_classes: + pages[normalized_type] = self._registered_table_classes[normalized_type] + else: + logger.warning(f"Skipping unregistered table type: {t}") + + if not pages: + yield json.dumps({ + "status": "error", + "message": "No valid table types to process" + }) + "\n" + return + + total_items = sum(len(list(page.list_items()) or []) for page in pages.values()) + + pbar = tqdm(total=total_items, unit='item', + bar_format='{l_bar}{bar}| {n_fmt}/{total_fmt} [{percentage:3.0f}%]') + + try: + yield from self._generate_import_process(pages, refresh, pbar) + finally: + pbar.close() + + def _generate_import_process(self, pages: dict, refresh: bool, pbar: tqdm): + total_items = 0 + for page in pages.values(): + items = list(page.list_items()) or [] + total_items += len(items) + + if total_items == 0: + pbar.write("No items found to import") + yield json.dumps({ + "status": "complete", + "success": True, + "processed": 0, + "total": 0, + "progress": 100.0 + }) + "\n" + return + + processed = 0 + pbar.set_description("Starting import") + + for type_name, page in pages.items(): + table_name = type_name.lower() + items = list(page.list_items()) or [] + + if not items: + continue + + pbar.set_description(f"Processing {table_name}") + + if not self.table_exists(table_name): + try: + first_item = items[0] + if first_item: + columns = {k: v[1] for k, v in first_item.items()} + self.create_table(table_name, columns) + except Exception as e: + logger.error(f"Error creating table {table_name}: {e}") + continue + + page.refresh() + + for item in items: + try: + processed += 1 + progress = min(100.0, (processed / total_items) * 100) + self.import_item(table_name, item) + pbar.update(1) + + yield json.dumps({ + "status": "processing", + "current_table": table_name, + "processed": processed, + "total": total_items, + "progress": progress + }) + "\n" + + except Exception as e: + pbar.write(f"Error importing item: {e}") + logger.error(f"Error importing item {item.get('name', '')}: {e}") + pbar.refresh() + + pbar.set_description("Import complete") + pbar.refresh() + + yield json.dumps({ + "status": "complete", + "success": True, + "processed": processed, + "total": total_items, + "progress": 100.0 + }) + "\n" + + + def connect(self): + return sqlite3.connect(self.db_name, check_same_thread=False) + + + def set_source_file(self, source_file): + self.source_file = source_file + + + def get_source_file(self): + return self.source_file + + + def get_all_default_values(self): + return { + "type": (None, "TEXT"), + "name": (None, "TEXT"), + "filename": ("", "TEXT"), + "hash": ("", "TEXT"), + "thumbnail": ("", "TEXT"), + "description": ("", "TEXT"), + "tags": ("", "TEXT"), + "notes": ("", "TEXT"), + "sd_version": ("Unknown", "TEXT"), + "preview": ('', "TEXT"), + "local_preview": ("", "TEXT"), + "filesize": (0, "INTEGER"), + "date_created": (None, "INTEGER"), + "date_modified": (None, "INTEGER"), + "allow_update": (False, "BOOLEAN"), + "metadata_exists": (False, "BOOLEAN"), + + # checkpoint + "vae": ("None", "TEXT"), + + # styles + "prompt": ("", "TEXT"), + "negative": ("", "TEXT"), + "extra": ("", "TEXT"), + } + + + def calculate_sha256(self, filepath): + sha256_hash = hashlib.sha256() + with open(filepath, "rb") as f: + for byte_block in iter(lambda: f.read(4096), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + + + def create_directory_with_permissions(self, dir_path): + try: + os.makedirs(dir_path, exist_ok=True) + logger.info(f"Directory created: {dir_path}") + # Set permissions to rw-r--r-- (644) + os.chmod(dir_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH) + logger.info(f"Permissions set for {dir_path}: Read and Write for owner, Read for group and others") + + except PermissionError: + logger.info(f"Permission denied when trying to create or modify: {dir_path}") + except Exception as e: + logger.info(f"Error: {e}") + + + def filter_and_normalize_paths(self, item): + item_filtered = {k: v for k, v in item.items() if k != 'thumbnail'} + + # Normalize paths for 'filename' and 'local_preview' + if 'filename' in item_filtered: + item_filtered['filename'] = Path(item_filtered['filename']).as_posix() + if 'local_preview' in item_filtered: + item_filtered['local_preview'] = Path(item_filtered['local_preview']).as_posix() + + return item_filtered + + + def get_table_columns(self, table_name): + validate_name(table_name, "table") + + conn = self.connect() + cursor = conn.cursor() + + cursor.execute(f"PRAGMA table_info({table_name})") + columns_info = cursor.fetchall() + column_names = [column[1] for column in columns_info] + + return column_names + + + def create_table(self, table_name, columns): + validate_name(table_name, "table") + + # Validate column definitions + valid_columns = [] + for column, col_type in columns.items(): + validate_name(column, "column") + valid_columns.append(f"{column} {col_type}") + + columns_definition = ', '.join(valid_columns) + + conn = self.connect() + cursor = conn.cursor() + cursor.execute(f''' + CREATE TABLE IF NOT EXISTS {table_name} ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + {columns_definition} + ) + ''') + + conn.commit() + conn.close() + + + def search_words_in_tables_columns(self, words, tables, columns, threshold, batch_size=500): + conn = self.connect() + cursor = conn.cursor() + + try: + results = {} + + for table, cols in zip(tables, columns): + validate_name(table, "table") # Validate table + results[table] = [] + + # Create conditions + conditions = ' OR '.join([f"{col} = ?" for col in cols for _ in words]) + values = words * len(cols) # Repeat + + # Process in batches + offset = 0 + while True: + # LIMIT and OFFSET + query = f"SELECT * FROM {table} WHERE {conditions} LIMIT ? OFFSET ?" + cursor.execute(query, values + [batch_size, offset]) + rows = cursor.fetchall() + if not rows: + break + + column_names = [description[0] for description in cursor.description] + + for row in rows: + # match the conditions + matches = 0 + for col in cols: + description = row[column_names.index(col)] + if description in words: # exact match + matches += 1 + + #logger.debug(f"Row: {row}, Matches: {matches}") + + if matches >= threshold: + results[table].append(dict(zip(column_names, row))) + + offset += batch_size # next batch + + except Exception as e: + logger.error(f"An error occurred: {e}") + results = {"error": str(e)} + + finally: + conn.close() + + return results + + + def table_exists(self, table_name): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name=?;", (table_name,)) + exists = cursor.fetchone() is not None + return exists + except sqlite3.Error as e: + logger.error(f"Database error in table_exists: {e}") + except Exception as e: + logger.error(f"Unexpected error in table_exists: {e}") + finally: + if conn: + conn.close() + + + def item_exists_by_filename(self, table_name, filename): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + cursor.execute(f"SELECT id FROM {table_name} WHERE filename = ?", (filename,)) + result = cursor.fetchone() + if result: + return result[0] + else: + return None + except sqlite3.Error as e: + logger.error(f"Database error in item_exists_by_filename: {e}") + return None + except Exception as e: + logger.error(f"Unexpected error in item_exists_by_filename: {e}") + return None + finally: + if conn: + conn.close() + + + def item_exists(self, table_name, item_id): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + cursor.execute(f"SELECT 1 FROM {table_name} WHERE id = ?", (item_id,)) + exists = cursor.fetchone() is not None + return exists + except sqlite3.Error as e: + logger.error(f"Database error in item_exists: {e}") + except Exception as e: + logger.error(f"Unexpected error in item_exists: {e}") + finally: + if conn: + conn.close() + + + def item_exists_in_source(self, path): + path = os.path.normpath(path) + return os.path.exists(path) + + + def import_item(self, table_name, item): + conn = None + try: + cleaned_item = {k: v[0] if v is not None else None for k, v in item.items()} + + item_filtered = self.filter_and_normalize_paths(cleaned_item) + item_allow_update = cleaned_item.get('allow_update', False) + item_exists_by_filename = self.item_exists_by_filename(table_name, item_filtered['filename']) + item_exists_in_source = self.item_exists_in_source(item_filtered["filename"]) + + logger.info(f"Inserting item: {item_filtered['name']} {item_filtered.get('hash', 'N/A')} Exists: {item_exists_in_source}") + + if item_exists_by_filename and not item_exists_in_source: + logger.info(f"Item {item_filtered['name']} does not exist. Deleting from database.") + self.delete_item(table_name, item_exists_by_filename) + return + + elif item_exists_by_filename and item_exists_in_source: + logger.info(f"Item {item_filtered['name']} not found in source. Updating paths.") + self.update_item_paths(table_name, item_filtered) + return + + elif item_exists_by_filename: + if item_allow_update: + logger.info(f"Updating item: {item_filtered['name']} {item_filtered.get('hash', 'N/A')} (allow_update=True)") + self.update_item(table_name, item_filtered) + return + else: + logger.info(f"Item {item_filtered['name']} already exists and allow_update is False. Skipping insert.") + return + + + validate_name(table_name, "table") # Validate table + logger.info(f"Inserting item: {item_filtered['name']} {item_filtered.get('hash', 'N/A')}") + + conn = self.connect() + cursor = conn.cursor() + + keys = ', '.join(item_filtered.keys()) + placeholders = ', '.join(['?' for _ in item_filtered]) + values = tuple(json.dumps(val) if isinstance(val, (dict, list)) else val for val in item_filtered.values()) + + cursor.execute(f''' + INSERT INTO {table_name} ({keys}) + VALUES ({placeholders}) + ''', values) + + conn.commit() + + last_inserted_id = cursor.lastrowid + item_filtered['id'] = last_inserted_id + self.generate_thumbnails(table_name, file_id=item_filtered['id']) + + except sqlite3.Error as e: + logger.error(f"Database error: {e}") + except Exception as e: + logger.error(f"Error inserting item: {e}") + finally: + if conn: + conn.close() + + + def update_item_paths(self, table_name, item): + validate_name(table_name, "table") + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + + cursor.execute('BEGIN') + update_fields = ['filename = ?', 'local_preview = ?'] + params = [item.get('filename'), item.get('local_preview')] + + if 'preview' in item: + update_fields.append('preview = ?') + params.append(item['preview']) + + cursor.execute( + f'UPDATE {table_name} SET {", ".join(update_fields)} WHERE id = ?', + params + [item.get('id')] + ) + + conn.commit() + logger.info(f"Paths for item {item['name']} updated successfully.") + except sqlite3.Error as e: + logger.error(f"Database error while updating paths: {e}") + if conn: + conn.rollback() + except Exception as e: + logger.error(f"Error updating paths: {e}") + if conn: + conn.rollback() + finally: + if conn: + conn.close() + + + def check_and_copy_local_preview(self, table_name, item_filtered): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + + cursor.execute(f'SELECT local_preview, filename FROM {table_name} WHERE id = ?', (item_filtered.get('id'),)) + result = cursor.fetchone() + curr_local_preview, curr_filename = result if result else (None, None) + + new_local_preview_path = item_filtered.get('local_preview') + new_filename = item_filtered.get('filename') + + source_file = self.get_source_file() + self.set_source_file(None) + + new_preview_directory = os.path.dirname(new_local_preview_path) + if not os.path.exists(new_preview_directory): + self.create_directory_with_permissions(new_preview_directory) + logger.info(f"Created directory: {new_preview_directory}") + + if source_file: + if os.path.exists(source_file): + if os.path.abspath(source_file) != os.path.abspath(new_local_preview_path): + shutil.copy2(source_file, new_local_preview_path) + logger.info(f"Copied new local_preview from {source_file} to {new_local_preview_path}") + return new_local_preview_path + + if curr_local_preview: + if curr_filename != new_filename and new_filename: + if os.path.exists(curr_local_preview): + shutil.move(curr_local_preview, new_local_preview_path) + logger.info(f"Moved new local_preview from {curr_local_preview} to {new_local_preview_path}") + + return new_local_preview_path # Return new path + + elif curr_local_preview != new_local_preview_path and new_local_preview_path: + # Copy, overwrite if exists + if os.path.exists(new_local_preview_path): + shutil.copy2(new_local_preview_path, curr_local_preview) + logger.info(f"Copied new local_preview from {new_local_preview_path} to {curr_local_preview}") + + return curr_local_preview # Path updated + + return None # No Path update + except Exception as e: + logger.error(f"Error checking and copying local_preview: {e}") + return None + finally: + if conn: + conn.close() + + + def handle_local_preview(self, table_name, item_filtered): + updated_local_preview_path = self.check_and_copy_local_preview(table_name, item_filtered) + if updated_local_preview_path: + item_filtered['local_preview'] = updated_local_preview_path + item_filtered['thumbnail'] = self.create_and_save_thumbnail(updated_local_preview_path) + + return updated_local_preview_path + + + def update_item(self, table_name, item, update_local_preview=False): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + + item_filtered = self.filter_and_normalize_paths(item) + is_updated = None + + has_id = 'id' in item and item['id'] + if has_id: + is_updated = self.update_existing_item(cursor, table_name, item_filtered) + + # If update fails insert new item + if is_updated is None: + self.insert_new_item(cursor, table_name, item_filtered) + logger.info(f"Item {item['name']} inserted as a new entry.") + + if update_local_preview: + local_preview_thumb = self.handle_local_preview(table_name, item_filtered) + if local_preview_thumb: + self.update_local_preview_thumb(cursor, table_name, item_filtered) + + conn.commit() + logger.info(f"Item {item['name']} updated successfully.") + + return item_filtered + + except sqlite3.Error as e: + logger.error(f"Database error while updating item: {e}") + if conn: + conn.rollback() + except Exception as e: + logger.error(f"Error updating item: {e}") + if conn: + conn.rollback() + finally: + if conn: + conn.close() + + + def update_existing_item(self, cursor, table_name, item_filtered): + item_filtered['date_modified'] = int(time.time()) + keys = ', '.join([f"{k} = ?" for k in item_filtered.keys() if k != 'id']) + values = tuple(json.dumps(val) if isinstance(val, (dict, list)) else val for k, val in item_filtered.items() if k != 'id') + (item_filtered['id'],) + + cursor.execute(f''' + UPDATE {table_name} SET {keys} WHERE id = ? + ''', values) + + return cursor.rowcount > 0 + + + def insert_new_item(self, cursor, table_name, item_filtered): + + actual_columns = self.get_table_columns(table_name) + all_default_values = self.get_all_default_values() + all_fields = {} + + for column in actual_columns: + if column in all_default_values: + default_value, _ = all_default_values[column] + if column == "date_created": + all_fields[column] = int(time.time()) + elif column == "date_modified": + all_fields[column] = int(time.time()) + else: + all_fields[column] = item_filtered.get(column, default_value) + + # Filter out any None values + all_fields = {k: v for k, v in all_fields.items() if v is not None} + + columns = ', '.join(all_fields.keys()) + placeholders = ', '.join(['?'] * len(all_fields)) + insert_values = tuple(json.dumps(val) if isinstance(val, (dict, list)) else val for val in all_fields.values()) + + cursor.execute(f''' + INSERT INTO {table_name} ({columns}) VALUES ({placeholders}) + ''', insert_values) + + last_inserted_id = cursor.lastrowid + item_filtered['id'] = last_inserted_id + + + def update_local_preview_thumb(self, cursor, table_name, item_filtered): + # fields to update + update_fields = { + 'local_preview': item_filtered.get('local_preview'), + 'thumbnail': item_filtered.get('thumbnail'), + 'filesize': None, + 'hash': None + } + + filename = item_filtered.get('filename') + if filename and filename.lower().endswith(('.jpg', '.jpeg', '.png', '.webp', '.gif')): + if update_fields['thumbnail'] and os.path.exists(update_fields['thumbnail']): + update_fields['filesize'] = os.stat(update_fields['thumbnail']).st_size + item_filtered['filesize'] = update_fields['filesize'] + + if filename and os.path.exists(item_filtered.get('filename')): + update_fields['hash'] = self.calculate_sha256(item_filtered.get('filename')) + item_filtered['hash'] = update_fields['hash'] + + set_clause = ', '.join(f"{key} = ?" for key in update_fields if update_fields[key] is not None) + values = [value for value in update_fields.values() if value is not None] + [item_filtered.get('id')] + + if set_clause: + cursor.execute(f''' + UPDATE {table_name} + SET {set_clause} + WHERE id = ? + ''', values) + + + def delete_files(self, file_paths): + for path_str in file_paths: + if path_str is None: + continue + path = Path(path_str) + if path.exists(): + path.unlink() # Delete the file + logger.info(f"Deleted file: {path}") + else: + logger.warning(f"File not found: {path}") + + + def delete_item(self, table_name, item_id): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + + cursor.execute(f'SELECT local_preview, thumbnail, filename FROM {table_name} WHERE id = ?', (item_id,)) + paths = cursor.fetchone() + + if paths: + local_preview, thumbnail, filename = paths + self.delete_files([local_preview, thumbnail, filename]) + else: + logger.warning(f"No item found with id {item_id} in {table_name}.") + return {"message": f"No item found with id {item_id}."} + + cursor.execute(f'DELETE FROM {table_name} WHERE id = ?', (item_id,)) + conn.commit() + logger.info(f"Item with id {item_id} deleted from {table_name}.") + return {"message": f"Item with id {item_id} deleted successfully."} + + except sqlite3.Error as e: + logger.error(f"Database error while deleting item: {e}") + if conn: + conn.rollback() + return {"message": "Database error occurred."} + except Exception as e: + logger.error(f"Error deleting item: {e}") + return {"message": "An error occurred."} + finally: + if conn: + conn.close() + + + def delete_invalid_items(self, table_name): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + cursor.execute(f"SELECT id, filename FROM {table_name}") + rows = cursor.fetchall() + ids_to_delete = [] + + for row in rows: + entry_id, filename = row + if not self.item_exists_in_source(filename): + ids_to_delete.append(entry_id) + + if ids_to_delete: + cursor.execute(f"DELETE FROM {table_name} WHERE id IN ({','.join('?' for _ in ids_to_delete)})", tuple(ids_to_delete)) + conn.commit() + logger.info(f"Removed {len(ids_to_delete)} invalid entries from {table_name}.") + return {"message": f"Removed {len(ids_to_delete)} invalid entries from {table_name}.", "deleted_count": len(ids_to_delete)} + else: + logger.info("No invalid entries to remove.") + return {"message": "No invalid entries to remove.", "deleted_count": 0} + + except sqlite3.Error as e: + logger.error(f"Database error in delete_invalid_items: {e}") + return {"Error": str(e)} + except Exception as e: + logger.error(f"Unexpected error in delete_invalid_items: {e}") + return {"Error": str(e)} + finally: + if conn: + conn.close() + + + def get_items( + self, + table_name: str, + skip: int = 0, + limit: int = 10, + sort_by: str = "id", + order: str = "asc", + search_term: str = "", + search_columns: Optional[List[str]] = None, + sd_version: str = "") -> dict: + + validate_name(table_name, "table") # Validate table + + + valid_sort_columns = ["id", "name", "filename", "date_created", "date_modified"] # whitelist + if sort_by not in valid_sort_columns: + raise ValueError(f"Invalid sort column: {sort_by}") + + if search_columns: + for col in search_columns: + validate_name(col, "search column") # Validate search columns + + try: + conn = self.connect() + cursor = conn.cursor() + + where_clauses = [] + + if sd_version: + where_clauses.append("LOWER(sd_version) LIKE ?") + + if search_columns and search_term: + terms = search_term.lower().split('+') # Split by '+' + for col in search_columns: + term_clauses = [f"LOWER({col}) LIKE ?" for _ in terms] + where_clauses.append(f"({' OR '.join(term_clauses)})") + + # where_clauses += [f"LOWER({col}) LIKE ?" for col in search_columns] + where_clause = " AND ".join(where_clauses) if where_clauses else "1=1" + + + # Count total + count_query = f""" + SELECT COUNT(*) FROM {table_name} + WHERE {where_clause} + """ + + count_params = [] + if sd_version: + count_params.append(f"%{sd_version.lower()}%") + + if search_columns and search_term: + for term in terms: + like_search_term = f"%{term}%" + count_params.extend([like_search_term] * len(search_columns)) + + cursor.execute(count_query, tuple(count_params)) + total_rows = cursor.fetchone()[0] # Get the total count + + + # Main query + query = f""" + SELECT * FROM {table_name} + WHERE {where_clause} + ORDER BY LOWER({sort_by}) {order} + LIMIT ? OFFSET ? + """ + + query_params = [] + + if sd_version: + query_params.append(f"%{sd_version.lower()}%") + + if search_columns and search_term: + for term in terms: + like_search_term = f"%{term}%" + query_params.extend([like_search_term] * len(search_columns)) + + #like_search_term = f"%{search_term.lower()}%" + #query_params.extend([like_search_term] * len(search_columns)) + + # Fetch limit + 1 to check if there are more items + query_params.extend([limit + 1, skip]) + + cursor.execute(query, tuple(query_params)) + rows = cursor.fetchall() + column_names = [description[0] for description in cursor.description] + conn.close() + + items = [dict(zip(column_names, row)) for row in rows[:limit]] + next_cursor = skip + limit if len(rows) > limit else None + + return { + "items": items, + "nextCursor": next_cursor, + "total": total_rows + } + + except sqlite3.Error as e: + logger.error(f"Database error: {e}") + return { + "items": [], + "nextCursor": None, + "total": 0 + } + + + def get_items_by_path(self, table_name: str, path: str) -> List[dict]: + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + + # Normalize and remove drive letters + normalized_path = re.sub(r'^[a-zA-Z]:', '', Path(path).as_posix().lower()) + like_path = f"%{normalized_path}%" if normalized_path else "%" + + cursor.execute(f""" + SELECT * FROM {table_name} + WHERE lower(replace(filename, '\\', '/')) LIKE ? COLLATE NOCASE + ORDER BY lower(replace(filename, '\\', '/')) + """, (like_path,)) + + rows = cursor.fetchall() + column_names = [description[0] for description in cursor.description] + + items = [dict(zip(column_names, row)) for row in rows] + + # Extract paths + unique_paths = set() + for item in items: + path = item.get('filename', '') + directory_path = str(Path(path).parent) + '/' + unique_paths.add(Path(directory_path).as_posix()) + + sorted_unique_paths = sorted(unique_paths) + return items, sorted_unique_paths + + except sqlite3.Error as e: + logger.error(f"Database error: {e}") + return [] + finally: + if conn: + conn.close() + + + def get_image_path(self, file_path): + file_path = Path(file_path).as_posix() + base_path = os.path.splitext(file_path)[0] + image_extensions = ['.png', '.jpeg', '.jpg', '.webp'] + + for ext in image_extensions: + image_path = base_path + ext + if os.path.exists(image_path): + return Path(image_path) + + preview_image_path = base_path + ".preview" + ext + if os.path.exists(preview_image_path): + shutil.copy(preview_image_path, image_path) + return Path(preview_image_path) + + return None + + + def create_and_save_thumbnail(self, image_path, save_path=None, size=(512, 512)): + image_path = self.get_image_path(image_path) + if not image_path: + return None + + try: + with Image.open(image_path) as img: + img.thumbnail(size) + thumb_dir = Path(save_path or image_path).parent / 'thumbnails' + thumb_dir.mkdir(parents=True, exist_ok=True) + + #if ".preview" in image_path: + # base_name = Path(image_path).name.replace(".preview", "") + #else: + # base_name = Path(image_path).stem + + base_name = image_path.stem + extension = image_path.suffix + clean_base_name = base_name.split('.')[0] + + thumb_path = thumb_dir / f"{clean_base_name}.thumb.webp" + + exif_data = img.info.get('exif') + if exif_data: + img.save(thumb_path, "WEBP", exif=exif_data) + else: + img.save(thumb_path, "WEBP") + + logger.info(f"Thumbnail saved to {thumb_path}") + return thumb_path.as_posix() + except Exception as e: + logger.error(f"Error generating thumbnail for {image_path}: {e}") + return None + + + def generate_thumbnails(self, table_name, size=(512, 512), file_id=None): + validate_name(table_name, "table") # Validate table + conn = None + try: + conn = self.connect() + cursor = conn.cursor() + + # if file_id execute one + if file_id: + cursor.execute(f'SELECT id, local_preview, filename FROM {table_name} WHERE id = ? AND local_preview IS NOT NULL', (file_id,)) + else: + cursor.execute(f'SELECT id, local_preview, filename FROM {table_name} WHERE local_preview IS NOT NULL') + + rows = cursor.fetchall() + + if not rows: + return {"message": f"No images found for file_id {file_id}" if file_id else "No images found."} + + for row in rows: + file_id, image_path, save_path = row + thumb_path = self.create_and_save_thumbnail(image_path, save_path, size) + if thumb_path: + item_filtered = { + 'local_preview': image_path, + 'thumbnail': thumb_path, + 'id': file_id + } + self.update_local_preview_thumb(cursor, table_name, item_filtered) + + conn.commit() + return {"message": "Thumbnails generated and updated successfully" if not file_id else f"Thumbnail generated and updated for file_id: {file_id}"} + except Exception as e: + return {"message": f"Error generating thumbnails: {e}"} + finally: + if conn: + conn.close() + + + + def api_uiux(_: gr.Blocks, app: FastAPI): + + # Middleware to log requests debug + ''' + @app.middleware("http") + async def log_requests(request: Request, call_next): + # Log request details + print(f"Request URL: {request.url}") + print(f"Request Method: {request.method}") + print(f"Request Headers: {request.headers}") + + # Get response + response: Response = await call_next(request) + + # Log response details + print(f"Response Status Code: {response.status_code}") + print(f"Response Headers: {response.headers}") + + return response + ''' + + @app.get("/sd_webui_ux/get_items_from_db") + async def get_items_from_db_endpoint( + table_name: str, + skip: int = 0, + limit: int = 10, + sort_by: Optional[str] = Query("id"), + order: Optional[str] = Query("asc"), + search_term: Optional[str] = Query(""), + search_columns: Optional[List[str]] = Query(["filename"]), + sd_version: Optional[str] = Query("") + ) -> Dict[str, Any]: + if not table_name: + raise HTTPException(status_code=400, detail="Table name is required.") + + db_manager = DatabaseManager.get_instance() + + try: + result = db_manager.get_items(table_name, skip, limit, sort_by, order, search_term, search_columns, sd_version) + return result + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + + @app.get("/sd_webui_ux/get_internal_metadata") + async def get_internal_metadata_endpoint(type: str, name: str): + try: + page = DatabaseManager.get_table_instance(type) + if not page: + raise HTTPException(status_code=400, detail="Invalid type specified") + + metadata = page.get_internal_metadata(name) + return metadata if metadata is not None else {} + + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + + @app.post("/sd_webui_ux/update_user_metadata") + async def update_user_metadata_endpoint( + payload: str = Body(...), + file: Optional[UploadFile] = File(None) + ): + + payload = json.loads(payload) # not working as a Dict workaround + #print("Received payload:", payload) + + table_name:str = payload.get('table_name') + item_id:str = payload.get('id') + data_type:str = payload.get('type') + name:str = payload.get('name') + filename:str = payload.get('filename') + local_preview:str = payload.get('local_preview') + + description:str = payload.get('description') + notes:str = payload.get('notes') + tags:str = payload.get('tags') + sd_version:str = payload.get('sd_version') + + activation_text:str = payload.get('activation_text') + negative_prompt:str = payload.get('negative_prompt') + preferred_weight: Optional[str] = payload.get('preferred_weight') + + prompt:str = payload.get('prompt') + negative:str = payload.get('negative') + source_file:str = payload.get('source_file') + + if not table_name: + raise HTTPException(status_code=422, detail="DB table_name is required") + + db_manager = DatabaseManager.get_instance() + table_columns = db_manager.get_table_columns(table_name) + + item = { + 'type': data_type, + 'name': name, + } + + if preferred_weight is not None: + try: + preferred_weight = float(preferred_weight) # float + except ValueError: + raise HTTPException(status_code=422, detail="preferred_weight must be a valid number") + + optional_fields = { + 'id': item_id, + 'filename': filename, + 'local_preview': local_preview, + + 'description': description, + 'notes': notes, + 'tags': tags, + 'sd_version': sd_version, + + 'activation_text': activation_text, + 'negative_prompt': negative_prompt, + 'preferred_weight': preferred_weight, + + 'prompt': prompt, + 'negative': negative, + } + + item.update({key: value for key, value in optional_fields.items() if key in table_columns}) + + + if file and filename: + base_path = os.path.splitext(filename)[0] + file_extension = os.path.splitext(file.filename)[1] + source_file = f"{base_path}{file_extension}" + item['local_preview'] = source_file + + try: + with open(source_file, "wb") as f: + f.write(await file.read()) + db_manager.create_and_save_thumbnail(source_file) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error saving file: {str(e)}") + + db_manager.set_source_file(source_file) + + try: + updated_item = db_manager.update_item(table_name, item, update_local_preview=True) + return {"message": "Item updated successfully", "data": updated_item} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + + @app.post("/sd_webui_ux/generate-thumbnails") + async def generate_thumbnails(payload: dict = Body(...)): + table_name:str = payload.get('table_name') + if not table_name: + raise HTTPException(status_code=422, detail="Table name is required") + + db_manager = DatabaseManager.get_instance() + response = db_manager.generate_thumbnails(table_name) + if "Error" in response["message"]: + raise HTTPException(status_code=500, detail=response["message"]) + return response + + @app.post("/sd_webui_ux/generate-thumbnail") + async def generate_thumbnail(payload: dict = Body(...)): + table_name:str = payload.get('table_name') + file_id:str = payload.get('file_id') + + if not table_name: + raise HTTPException(status_code=422, detail="Table name is required") + if not file_id: + raise HTTPException(status_code=422, detail="File ID is required") + + db_manager = DatabaseManager.get_instance() + response = db_manager.generate_thumbnails(table_name, file_id=file_id) + if "Error" in response["message"]: + raise HTTPException(status_code=500, detail=response["message"]) + return response + + + @app.get("/sd_webui_ux/get_items_by_path") + async def get_items_by_path_endpoint( + table_name: str, + path: str = Query("")): + db_manager = DatabaseManager.get_instance() + items, unique_subpaths = db_manager.get_items_by_path(table_name, path) + return {"data": items, "unique_subpaths": unique_subpaths} + + + @app.post("/sd_webui_ux/search_words_in_tables_columns") + async def search_words_in_tables_columns_endpoint(payload: dict = Body(...)): + tables: str = payload.get("tables") + columns: str = payload.get("columns") + words: List[str] = payload.get("words", []) + threshold: Optional[str] = payload.get("threshold") + textarea: Optional[str] = payload.get("textarea") + delimiter: Optional[str] = payload.get("delimiter") # Optional delimiter + + # Validate input + if textarea: + if not textarea.strip(): + raise HTTPException(status_code=400, detail="Invalid input: textarea is empty") + words = textarea.split(delimiter) if delimiter else textarea.split() + + if not words or not tables or not columns: + raise HTTPException(status_code=400, detail="Invalid input: words, tables, and columns are required") + + if threshold is None: + threshold = 1 + else: + try: + threshold = int(threshold) # Convert to int + if threshold <= 0: + raise ValueError("Threshold must be a positive integer") + except ValueError: + raise HTTPException(status_code=422, detail="Threshold must be a positive integer") + + table_list = tables.split(',') + + if ';' in columns: + column_list = [col.split(',') for col in columns.split(';')] # Different columns for each table + else: + column_list = [columns.split(',')] * len(table_list) # Same columns for all tables + + db_manager = DatabaseManager.get_instance() + + try: + results = db_manager.search_words_in_tables_columns(words, table_list, column_list, threshold) + return results + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + + @app.post("/sd_webui_ux/delete_item") + async def delete_item_endpoint(payload: dict = Body(...)): + table_name:str = payload.get('table_name') + item_id:str = payload.get('item_id') + + if not table_name: + raise HTTPException(status_code=422, detail="Table name is required") + if not item_id: + raise HTTPException(status_code=422, detail="Item ID is required") + + db_manager = DatabaseManager.get_instance() + response = db_manager.delete_item(table_name, item_id) + if "Error" in response["message"]: + raise HTTPException(status_code=500, detail=response["message"]) + return response + + + @app.post("/sd_webui_ux/delete_invalid_items") + async def delete_invalid_items_endpoint(payload: dict = Body(...)): + table_name: str = payload.get('table_name') + + if not table_name: + raise HTTPException(status_code=422, detail="Table name is required") + + db_manager = DatabaseManager.get_instance() + response = db_manager.delete_invalid_items(table_name) + + if "Error" in response: + raise HTTPException(status_code=500, detail=response["Error"]) + + return response + + + @app.post("/sd_webui_ux/import_update_table") + async def import_update_db_endpoint(payload: dict = Body(...)): + requested_tables = payload.get('table_name') + if not requested_tables: + raise HTTPException(status_code=422, detail="Table name(s) are required") + + if isinstance(requested_tables, str): + requested_tables = [requested_tables] + + refresh = payload.get('refresh', True) + + db_manager = DatabaseManager.get_instance() + generator = db_manager.import_tables_generator( + table_types=requested_tables, + refresh=refresh + ) + + return StreamingResponse(generator, media_type="application/x-ndjson") + + + ''' + @app.get("/sd_webui_ux/images/{filename:path}") + async def get_image(filename: str): + file_path = filename + + if not os.path.isfile(file_path): + raise HTTPException(status_code=404, detail="File not found") + + return FileResponse(file_path) + ''' + + + + + + diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_checkpoints.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_checkpoints.py new file mode 100644 index 00000000..9f562660 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_checkpoints.py @@ -0,0 +1,72 @@ +import os +from pathlib import Path + +from modules import shared, ui_extra_networks, sd_models, sd_vae, sysinfo + +class ExtraNetworksPageCheckpoints(ui_extra_networks.ExtraNetworksPage): + def __init__(self): + super().__init__('Checkpoints') + self.allow_prompt = False + + def refresh(self): + shared.refresh_checkpoints() + + def find_preview_image(self, path): + potential_files = sum([[f"{path}.{ext}", f"{path}.preview.{ext}"] for ext in ui_extra_networks.allowed_preview_extensions()], []) + + for file in potential_files: + if self.lister.exists(file): + return file + + return None + + def create_item(self, name, index=None, enable_filter=True): + checkpoint: sd_models.CheckpointInfo = sd_models.checkpoint_aliases.get(name) + if checkpoint is None: + return + + path, ext = os.path.splitext(checkpoint.filename) + mtime, ctime = self.lister.mctime(checkpoint.filename) + hash = checkpoint.sha256 if checkpoint.sha256 else None + stats = os.stat(checkpoint.filename) + preview_image = self.find_preview_image(path) + preview_path = Path(preview_image).as_posix() if preview_image else "" + + return { + "name": (checkpoint.name_for_extra, "TEXT"), + "filename": (checkpoint.filename, "TEXT"), + "hash": (hash, "TEXT"), + "preview": (preview_path, "TEXT"), + "thumbnail": ("", "TEXT"), + "description": (self.find_description(path), "TEXT"), + "notes": ("", "TEXT"), + "tags": ("", "TEXT"), + "local_preview": (f"{path}.{shared.opts.samples_format}", "TEXT"), + "metadata_exists": (bool(checkpoint.metadata), "BOOLEAN"), + "sd_version": ("Unknown", "TEXT"), + "vae": ("None", "TEXT"), + "type": ("Checkpoint", "TEXT"), + "filesize": (stats.st_size, "INTEGER"), + "date_created": (int(mtime), "INTEGER"), + "date_modified": (int(ctime), "INTEGER"), + "allow_update": (False, "BOOLEAN") + } + + def list_items(self): + names = list(sd_models.checkpoints_list) + for index, name in enumerate(names): + item = self.create_item(name, index) + if item is not None: + yield item + + def allowed_directories_for_previews(self): + return [v for v in [shared.cmd_opts.ckpt_dir, sd_models.model_path] if v is not None] + + def get_internal_metadata(self, name): + checkpoint: sd_models.CheckpointInfo = sd_models.checkpoint_aliases.get(name) + return checkpoint.metadata if checkpoint else None + + def get_available_VAE_list(self): + choices=["Automatic", "None"] + list(sd_vae.vae_dict) + return choices + diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_hypernets.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_hypernets.py new file mode 100644 index 00000000..2bbc0a3b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_hypernets.py @@ -0,0 +1,68 @@ +import os +from pathlib import Path + +from modules import shared, ui_extra_networks +from modules.ui_extra_networks import quote_js +from modules.hashes import sha256_from_cache + +class ExtraNetworksPageHypernetworks(ui_extra_networks.ExtraNetworksPage): + def __init__(self): + super().__init__('Hypernetworks') + + def refresh(self): + shared.reload_hypernetworks() + + def find_preview_image(self, path): + potential_files = sum([[f"{path}.{ext}", f"{path}.preview.{ext}"] for ext in ui_extra_networks.allowed_preview_extensions()], []) + for file in potential_files: + if self.lister.exists(file): + return file + + return None + + def create_item(self, name, index=None, enable_filter=True): + full_path = shared.hypernetworks.get(name) + if full_path is None: + return + + path, ext = os.path.splitext(full_path) + mtime, ctime = self.lister.mctime(full_path) + sha256 = sha256_from_cache(full_path, f'hypernet/{name}') + #shorthash = sha256[0:10] if sha256 else None + hash = sha256 if sha256 else None + stats = os.stat(full_path) + preview_image = self.find_preview_image(path) + preview_path = Path(preview_image).as_posix() if preview_image else "" + + return { + "name": (name, "TEXT"), + "filename": (full_path, "TEXT"), + "hash": (hash, "TEXT"), + "preview": (preview_path, "TEXT"), + "thumbnail": ("", "TEXT"), + "description": (self.find_description(path), "TEXT"), + "notes": ("", "TEXT"), + "tags": ("", "TEXT"), + "prompt": (f'', "TEXT"), + "local_preview": (f"{path}.{shared.opts.samples_format}", "TEXT"), + "type": ("Hypernetwork", "TEXT"), + "metadata_exists": (False, "BOOLEAN"), + "sd_version": ("Unknown", "TEXT"), + "filesize": (stats.st_size, "INTEGER"), + "date_created": (int(mtime), "INTEGER"), + "date_modified": (int(ctime), "INTEGER"), + "allow_update": (False, "BOOLEAN") + } + + def list_items(self): + names = list(shared.hypernetworks) + for index, name in enumerate(names): + item = self.create_item(name, index) + if item is not None: + yield item + + def allowed_directories_for_previews(self): + return [shared.cmd_opts.hypernetwork_dir] + + def get_internal_metadata(self, name): + return None diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_lora.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_lora.py new file mode 100644 index 00000000..19285228 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_lora.py @@ -0,0 +1,131 @@ +import os +import sys +import importlib +from pathlib import Path + +from modules import shared, ui_extra_networks + +def import_module_from_path(module_name, paths): + for path in paths: + if os.path.isfile(os.path.join(path, f"{module_name}.py")): + sys.path.insert(0, path) + module = importlib.import_module(module_name) + sys.path.pop(0) + return module + raise FileNotFoundError(f"Module file not found in specified paths: {paths}") + + +paths = ["extensions-builtin/LORA"] + +try: + network = import_module_from_path("network", paths) + networks = import_module_from_path("networks", paths) +except FileNotFoundError as e: + print(e) + +class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage): + def __init__(self): + super().__init__('Lora') + + def refresh(self): + networks.list_available_networks() + + def find_preview_image(self, path): + potential_files = sum([[f"{path}.{ext}", f"{path}.preview.{ext}"] for ext in ui_extra_networks.allowed_preview_extensions()], []) + + for file in potential_files: + if self.lister.exists(file): + return file + + return None + + @staticmethod + def add_types_to_item(item): + return { + "name": (item["name"], "TEXT"), + "filename": (item["filename"], "TEXT"), + "hash": (item["hash"], "TEXT"), + "preview": (item["preview"], "TEXT"), + "thumbnail": ("", "TEXT"), + "description": (item["description"], "TEXT"), + "notes": (item["notes"], "TEXT"), + "tags": (item["tags"], "TEXT"), + "local_preview": (item["local_preview"], "TEXT"), + "metadata_exists": (item["metadata_exists"], "BOOLEAN"), + "sd_version": (item["sd_version"], "TEXT"), + "type": (item["type"], "TEXT"), + "filesize": (item["filesize"], "INTEGER"), + "date_created": (item["date_created"], "INTEGER"), + "date_modified": (item["date_modified"], "INTEGER"), + "prompt": (item["prompt"], "TEXT"), + "negative_prompt": (item["negative_prompt"], "TEXT"), + "activation_text": (item["activation_text"], "TEXT"), + "preferred_weight": (item["preferred_weight"], "REAL"), + "allow_update": (False, "BOOLEAN") + } + + def create_item(self, name, index=None, enable_filter=True): + lora_on_disk = networks.available_networks.get(name) + if lora_on_disk is None: + return + + path, ext = os.path.splitext(lora_on_disk.filename) + mtime, ctime = self.lister.mctime(lora_on_disk.filename) + + alias = lora_on_disk.get_alias() + hash = lora_on_disk.hash if lora_on_disk.hash else None + stats = os.stat(lora_on_disk.filename) + default_multiplier = "opts.extra_networks_default_multiplier" + preview_image = self.find_preview_image(path) + preview_path = Path(preview_image).as_posix() if preview_image else None + + item = { + "name": name, + "filename": lora_on_disk.filename, + "hash": hash, + "preview": preview_path or self.find_embedded_preview(path, name, lora_on_disk.metadata), + "description": self.find_description(path), + "notes": "", + "tags": "", + "local_preview": f"{path}.{shared.opts.samples_format}", + "metadata_exists": bool(lora_on_disk.metadata), + "sd_version": lora_on_disk.sd_version.name, + "type": "LORA", + "filesize": stats.st_size, + "date_created": int(mtime), + "date_modified": int(ctime), + "prompt" : f'', + } + + self.read_user_metadata(item) + + item["negative_prompt"] = item["user_metadata"].get("negative text", "") + item["activation_text"] = item["user_metadata"].get("activation text","") + item["preferred_weight"] = item["user_metadata"].get("preferred weight", 0.0) + + sd_version = item["user_metadata"].get("sd version") + if sd_version in network.SdVersion.__members__: + item["sd_version"] = sd_version + sd_version = network.SdVersion[sd_version] + else: + sd_version = lora_on_disk.sd_version + + return self.add_types_to_item(item) + + def list_items(self): + # instantiate a list to protect against concurrent modification + names = list(networks.available_networks) + for index, name in enumerate(names): + item = self.create_item(name, index) + if item is not None: + yield item + + def allowed_directories_for_previews(self): + return [shared.cmd_opts.lora_dir, shared.cmd_opts.lyco_dir_backcompat] + + def get_internal_metadata(self, name): + lora_on_disk = networks.available_networks.get(name) + return lora_on_disk.metadata if lora_on_disk else None + + + diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_lora_forge.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_lora_forge.py new file mode 100644 index 00000000..e9309598 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_lora_forge.py @@ -0,0 +1,135 @@ +import os +import sys +import importlib +from pathlib import Path + +from modules import shared, ui_extra_networks + +def import_module_from_path(module_name, paths): + for path in paths: + if os.path.isfile(os.path.join(path, f"{module_name}.py")): + sys.path.insert(0, path) + module = importlib.import_module(module_name) + sys.path.pop(0) + return module + raise FileNotFoundError(f"Module file not found in specified paths: {paths}") + + +paths = ["extensions-builtin/sd_forge_lora"] + +try: + network = import_module_from_path("network", paths) + networks = import_module_from_path("networks", paths) +except FileNotFoundError as e: + print(e) + + +class ExtraNetworksPageLora(ui_extra_networks.ExtraNetworksPage): + def __init__(self): + super().__init__('Lora') + self.allow_negative_prompt = True + + def refresh(self): + networks.list_available_networks() + + def find_preview_image(self, path): + potential_files = sum([[f"{path}.{ext}", f"{path}.preview.{ext}"] for ext in ui_extra_networks.allowed_preview_extensions()], []) + + for file in potential_files: + if self.lister.exists(file): + return file + + return None + + @staticmethod + def add_types_to_item(item): + return { + "name": (item["name"], "TEXT"), + "filename": (item["filename"], "TEXT"), + "hash": (item["hash"], "TEXT"), + "preview": (item["preview"], "TEXT"), + "thumbnail": ("", "TEXT"), + "description": (item["description"], "TEXT"), + "notes": (item["notes"], "TEXT"), + "tags": (item["tags"], "TEXT"), + "local_preview": (item["local_preview"], "TEXT"), + "metadata_exists": (item["metadata_exists"], "BOOLEAN"), + "sd_version": (item["sd_version"], "TEXT"), + "type": (item["type"], "TEXT"), + "filesize": (item["filesize"], "INTEGER"), + "date_created": (item["date_created"], "INTEGER"), + "date_modified": (item["date_modified"], "INTEGER"), + "prompt": (item["prompt"], "TEXT"), + "negative_prompt": (item["negative_prompt"], "TEXT"), + "activation_text": (item["activation_text"], "TEXT"), + "preferred_weight": (item["preferred_weight"], "REAL"), + "allow_update": (False, "BOOLEAN") + } + + def create_item(self, name, index=None, enable_filter=True): + lora_on_disk = networks.available_networks.get(name) + if lora_on_disk is None: + return + + path, ext = os.path.splitext(lora_on_disk.filename) + + alias = lora_on_disk.get_alias() + + mtime, ctime = self.lister.mctime(lora_on_disk.filename) + hash = lora_on_disk.hash if lora_on_disk.hash else None + stats = os.stat(lora_on_disk.filename) + default_multiplier = "opts.extra_networks_default_multiplier" + preview_image = self.find_preview_image(path) + preview_path = Path(preview_image).as_posix() if preview_image else None + + item = { + "name": name, + "filename": lora_on_disk.filename, + "hash": hash, + "preview": preview_path or self.find_embedded_preview(path, name, lora_on_disk.metadata), + "description": self.find_description(path), + "notes": "", + "tags": "", + "local_preview": f"{path}.{shared.opts.samples_format}", + "metadata_exists": bool(lora_on_disk.metadata), + "sd_version": lora_on_disk.sd_version.name, + "type": "LORA", + "filesize": stats.st_size, + "date_created": int(mtime), + "date_modified": int(ctime), + "prompt" : f'', + "allow_update": (False, "BOOLEAN") + } + + self.read_user_metadata(item) + + item["negative_prompt"] = item["user_metadata"].get("negative text", "") + item["activation_text"] = item["user_metadata"].get("activation text", "") + item["preferred_weight"] = item["user_metadata"].get("preferred weight", 0.0) + + sd_version = item["user_metadata"].get("sd version") + if sd_version in network.SdVersion.__members__: + item["sd_version"] = sd_version + sd_version = network.SdVersion[sd_version] + else: + sd_version = lora_on_disk.sd_version # use heuristics + #sd_version = network.SdVersion.Unknown # avoid heuristics + + #item["sd_version_str"] = str(sd_version) + + return self.add_types_to_item(item) + + def list_items(self): + # instantiate a list to protect against concurrent modification + names = list(networks.available_networks) + for index, name in enumerate(names): + item = self.create_item(name, index) + if item is not None: + yield item + + def allowed_directories_for_previews(self): + return [shared.cmd_opts.lora_dir] + + def get_internal_metadata(self, name): + lora_on_disk = networks.available_networks.get(name) + return lora_on_disk.metadata if lora_on_disk else None \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_output_images.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_output_images.py new file mode 100644 index 00000000..868a1bb2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_output_images.py @@ -0,0 +1,161 @@ +import os +import json +import hashlib +from pathlib import Path +from PIL import Image +import piexif + +import logging +logger = logging.getLogger(__name__) + +from modules import script_callbacks +from fastapi import FastAPI, HTTPException +from fastapi.responses import FileResponse +from starlette.responses import FileResponse + +from modules.images import read_info_from_image + +import gradio as gr + +class OutputImagesFolderProcessor: + _instance = None + _api_registered = False + + allowed_dirs = set() + + def __init__(self, images_folder): + #if OutputImagesFolderProcessor._instance: + # raise RuntimeError("Singleton violation") + self.images_folder = images_folder + self.register_page() + OutputImagesFolderProcessor._instance = self + self.register_api() + + def register_api(self): + if not self._api_registered: + script_callbacks.on_app_started(lambda _, app: self.api_uiux_output_image(app)) + self._api_registered = True + + @classmethod + def get_instance(cls): + if cls._instance is None: + raise Exception("OutputImagesFolderProcessor instance not initialized.") + return cls._instance + + def allowed_directories_for_previews(self): + return [self.images_folder] # Allow the styles folder + + def register_page(self): + self.allowed_dirs.update(self.allowed_directories_for_previews()) + + def calculate_sha256(self, filepath): + sha256_hash = hashlib.sha256() + with open(filepath, "rb") as f: + for byte_block in iter(lambda: f.read(4096), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + + def refresh(self): + pass + + def list_items(self): + items = [] + for root, dirs, files in os.walk(self.images_folder): + if 'thumbnails' in dirs: + dirs.remove('thumbnails') + for file in files: + if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')): + image_path = os.path.join(root, file) + item_data = self.create_item(image_path) + if item_data: + items.append(item_data) + return items + + def create_item(self, image_path): + stats = os.stat(image_path) + mtime = int(stats.st_mtime) + ctime = int(stats.st_ctime) + filesize = stats.st_size + + # SHA256 hash + hash_sha256 = self.calculate_sha256(image_path) + + # Initialize values and types + item = { + "name": (os.path.splitext(os.path.basename(image_path))[0], "TEXT"), + "filename": (image_path, "TEXT"), + "hash": (hash_sha256, "TEXT"), + "thumbnail": ("", "TEXT"), + "description": ("", "TEXT"), + "tags": ("", "TEXT"), + "prompt": ("", "TEXT"), + "negative": ("", "TEXT"), + "extra": ("", "TEXT"), + "local_preview": (image_path, "TEXT"), + "sd_version": ("Unknown", "TEXT"), + "type": ("Image", "TEXT"), + "filesize": (filesize, "INTEGER"), + "date_created": (mtime, "INTEGER"), + "date_modified": (ctime, "INTEGER"), + "allow_update": (False, "BOOLEAN") + } + + # Read image info + try: + image = Image.open(image_path) + geninfo, pnginfo = read_info_from_image(image) + if geninfo: + #print(geninfo) + extra = prompt = negative = '' + prompt_parts = geninfo.split("Negative prompt:") + if len(prompt_parts) > 1: + prompt = prompt_parts[0] + negative = prompt_parts[1] + extra_parts = negative.split("Steps:") + if len(extra_parts) > 1: + extra = "Steps:"+extra_parts[1] + negative = extra_parts[0] + else: + extra_parts = geninfo.split("Steps:") + if len(extra_parts) > 1: + extra = "Steps:"+extra_parts[1] + prompt = extra_parts[0] + + item["prompt"] = (prompt, "TEXT") + item["negative"] = (negative, "TEXT") + item["extra"] = (extra, "TEXT") + + except Exception as e: + logger.error(f"Error reading image info: {e}") + + return item + + + def fetch_file(self, filename: str): + # Normalize resolve path + filename_path = Path(filename).resolve() + + if not filename_path.is_file(): + raise HTTPException(status_code=404, detail="File not found") + + # Normalize allowed_dirs + normalized_allowed_dirs = [Path(allowed_dir).resolve() for allowed_dir in self.allowed_dirs] + + if not any(filename_path.is_relative_to(allowed_dir) for allowed_dir in normalized_allowed_dirs): + raise HTTPException(status_code=403, detail="Access denied to this file.") + + ext = filename_path.suffix.lower()[1:] + if ext not in ['webp', 'png', 'jpg', 'jpeg', 'gif']: + raise HTTPException(status_code=403, detail="File type not allowed.") + + return FileResponse(str(filename_path), headers={"Accept-Ranges": "bytes"}) + + + def api_uiux_output_image(_: gr.Blocks, app: FastAPI): + images_processor = OutputImagesFolderProcessor.get_instance() + + @app.get("/sd_image/thumb/{filename:path}") + async def get_image(filename: str, t: str = None): + return images_processor.fetch_file(filename) + + diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_styles.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_styles.py new file mode 100644 index 00000000..0cd15e8d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_styles.py @@ -0,0 +1,146 @@ +import os +import json +import hashlib +from pathlib import Path + +import logging +logger = logging.getLogger(__name__) + +from modules import script_callbacks +from fastapi import FastAPI, HTTPException +from fastapi.responses import FileResponse +from starlette.responses import FileResponse + +import gradio as gr + +class StylesFolderProcessor: + _instance = None + _api_registered = False + + allowed_dirs = set() + + def __init__(self, styles_folder): + #if StylesFolderProcessor._instance: + # raise RuntimeError("Singleton violation") + self.styles_folder = styles_folder + self.register_page() + StylesFolderProcessor._instance = self + self.register_api() + + def register_api(self): + if not self._api_registered: + script_callbacks.on_app_started(lambda _, app: self.api_uiux_style(app)) + self._api_registered = True + + @classmethod + def get_instance(cls): + if cls._instance is None: + raise Exception("StylesFolderProcessor instance not initialized.") + return cls._instance + + def allowed_directories_for_previews(self): + return [self.styles_folder] + + def register_page(self): + self.allowed_dirs.update(self.allowed_directories_for_previews()) + + def calculate_sha256(self, filepath): + sha256_hash = hashlib.sha256() + with open(filepath, "rb") as f: + for byte_block in iter(lambda: f.read(4096), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + + def refresh(self): + pass + + def list_items(self): + items = [] + for root, dirs, files in os.walk(self.styles_folder): + if 'thumbnails' in dirs: + dirs.remove('thumbnails') + for file in files: + if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')): + image_path = os.path.join(root, file) + json_path = os.path.splitext(image_path)[0] + '.json' + item_data = self.create_item(image_path, json_path) + if item_data: + items.append(item_data) + return items + + def create_item(self, image_path, json_path): + stats = os.stat(image_path) + mtime = int(stats.st_mtime) + ctime = int(stats.st_ctime) + filesize = stats.st_size + + # SHA256 hash + hash_sha256 = self.calculate_sha256(image_path) + + # Initialize values and types + item = { + "name": (os.path.splitext(os.path.basename(image_path))[0], "TEXT"), + "filename": (image_path, "TEXT"), + "hash": (hash_sha256, "TEXT"), + "thumbnail": ("", "TEXT"), + "description": ("", "TEXT"), + "tags": ("", "TEXT"), + "prompt": ("", "TEXT"), + "negative": ("", "TEXT"), + "extra": ("", "TEXT"), + "local_preview": (image_path, "TEXT"), + "sd_version": ("Unknown", "TEXT"), + "type": ("Style", "TEXT"), + "filesize": (filesize, "INTEGER"), + "date_created": (mtime, "INTEGER"), + "date_modified": (ctime, "INTEGER"), + "allow_update": (False, "BOOLEAN") + } + + # Check JSON metadata + if os.path.exists(json_path): + with open(json_path, 'r') as json_file: + try: + json_data = json.load(json_file) + item["description"] = (json_data.get("description", ""), "TEXT") + item["prompt"] = (json_data.get("prompt", ""), "TEXT") + + prompt = json_data.get("prompt", "") + if "{prompt}" in prompt: + prompt = prompt.replace("{prompt}, ", "") + item["prompt"] = (". " + prompt, "TEXT") + + item["negative"] = (json_data.get("negative", ""), "TEXT") + item["extra"] = (json_data.get("extra", ""), "TEXT") + except json.JSONDecodeError: + print(f"Error decoding JSON from {json_path}") + + return item + + + def fetch_file(self, filename: str): + # Normalize resolve path + filename_path = Path(filename).resolve() + + if not filename_path.is_file(): + raise HTTPException(status_code=404, detail="File not found") + + # Normalize allowed_dirs + normalized_allowed_dirs = [Path(allowed_dir).resolve() for allowed_dir in self.allowed_dirs] + + if not any(filename_path.is_relative_to(allowed_dir) for allowed_dir in normalized_allowed_dirs): + raise HTTPException(status_code=403, detail="Access denied to this file.") + + ext = filename_path.suffix.lower()[1:] + if ext not in ['webp', 'png', 'jpg', 'jpeg', 'gif']: + raise HTTPException(status_code=403, detail="File type not allowed.") + + return FileResponse(str(filename_path), headers={"Accept-Ranges": "bytes"}) + + + def api_uiux_style(_: gr.Blocks, app: FastAPI): + styles_processor = StylesFolderProcessor.get_instance() + + @app.get("/sd_styles/thumb/{filename:path}") + async def get_image(filename: str, t: str = None): + return styles_processor.fetch_file(filename) diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_textual_inversion.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_textual_inversion.py new file mode 100644 index 00000000..cc884d34 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_textual_inversion.py @@ -0,0 +1,67 @@ +import os +from pathlib import Path +from modules import ui_extra_networks, sd_hijack, shared + + +class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage): + def __init__(self): + super().__init__('Textual Inversion') + self.allow_negative_prompt = True + + def refresh(self): + sd_hijack.model_hijack.embedding_db.load_textual_inversion_embeddings(force_reload=True) + + def find_preview_image(self, path): + potential_files = sum([[f"{path}.{ext}", f"{path}.preview.{ext}"] for ext in ui_extra_networks.allowed_preview_extensions()], []) + + for file in potential_files: + if self.lister.exists(file): + return file + + return None + + def create_item(self, name, index=None, enable_filter=True): + embedding = sd_hijack.model_hijack.embedding_db.word_embeddings.get(name) + if embedding is None: + return + + path, ext = os.path.splitext(embedding.filename) + mtime, ctime = self.lister.mctime(embedding.filename) + hash = embedding.hash if embedding.hash else None + stats = os.stat(embedding.filename) + preview_image = self.find_preview_image(path) + preview_path = Path(preview_image).as_posix() if preview_image else "" + + return { + "name": (name, "TEXT"), + "filename": (embedding.filename, "TEXT"), + "hash": (hash, "TEXT"), + "preview": (preview_path, "TEXT"), + "thumbnail": ("", "TEXT"), + "description": (self.find_description(path), "TEXT"), + "notes": ("", "TEXT"), + "tags": ("", "TEXT"), + "prompt": (embedding.name, "TEXT"), + "local_preview": (f"{path}.{shared.opts.samples_format}", "TEXT"), + "type": ("TextualInversion", "TEXT"), + "metadata_exists": (False, "BOOLEAN"), + "sd_version": ("Unknown", "TEXT"), + "filesize": (stats.st_size, "INTEGER"), + "date_created": (int(mtime), "INTEGER"), + "date_modified": (int(ctime), "INTEGER"), + "allow_update": (False, "BOOLEAN") + } + + + def list_items(self): + names = list(sd_hijack.model_hijack.embedding_db.word_embeddings) + for index, name in enumerate(names): + item = self.create_item(name, index) + if item is not None: + yield item + + def allowed_directories_for_previews(self): + return list(sd_hijack.model_hijack.embedding_db.embedding_dirs) + + def get_internal_metadata(self, name): + return None diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_textual_inversion_forge.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_textual_inversion_forge.py new file mode 100644 index 00000000..673f0fb9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe/db_textual_inversion_forge.py @@ -0,0 +1,75 @@ +import os +from pathlib import Path +import modules.textual_inversion.textual_inversion + +from modules.shared import cmd_opts +from modules import ui_extra_networks, shared + + +embedding_db = modules.textual_inversion.textual_inversion.EmbeddingDatabase() +embedding_db.add_embedding_dir(cmd_opts.embeddings_dir) +embedding_db.load_textual_inversion_embeddings(force_reload=True, sync_with_sd_model=False) + + +class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage): + def __init__(self): + super().__init__('Textual Inversion') + self.allow_negative_prompt = True + + def refresh(self): + embedding_db.load_textual_inversion_embeddings(force_reload=True, sync_with_sd_model=False) + + def find_preview_image(self, path): + potential_files = sum([[f"{path}.{ext}", f"{path}.preview.{ext}"] for ext in ui_extra_networks.allowed_preview_extensions()], []) + + for file in potential_files: + if self.lister.exists(file): + return file + + return None + + def create_item(self, name, index=None, enable_filter=True): + embedding = embedding_db.word_embeddings.get(name) + if embedding is None: + return + + path, ext = os.path.splitext(embedding.filename) + mtime, ctime = self.lister.mctime(embedding.filename) + hash = embedding.hash if embedding.hash else None + stats = os.stat(embedding.filename) + preview_image = self.find_preview_image(path) + preview_path = Path(preview_image).as_posix() if preview_image else "" + + return { + "name": (name, "TEXT"), + "filename": (embedding.filename, "TEXT"), + "hash": (hash, "TEXT"), + "preview": (preview_path, "TEXT"), + "thumbnail": ("", "TEXT"), + "description": (self.find_description(path), "TEXT"), + "notes": ("", "TEXT"), + "tags": ("", "TEXT"), + "prompt": (embedding.name, "TEXT"), + "local_preview": (f"{path}.{shared.opts.samples_format}", "TEXT"), + "type": ("TextualInversion", "TEXT"), + "metadata_exists": (False, "BOOLEAN"), + "sd_version": ("Unknown", "TEXT"), + "filesize": (stats.st_size, "INTEGER"), + "date_created": (int(mtime), "INTEGER"), + "date_modified": (int(ctime), "INTEGER"), + "allow_update": (False, "BOOLEAN") + } + + def list_items(self): + # instantiate a list to protect against concurrent modification + names = list(embedding_db.word_embeddings) + for index, name in enumerate(names): + item = self.create_item(name, index) + if item is not None: + yield item + + def allowed_directories_for_previews(self): + return list(embedding_db.embedding_dirs) + + def get_internal_metadata(self, name): + return None diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux.py index c6114397..93e3d623 100644 --- a/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux.py +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux.py @@ -112,7 +112,12 @@ shared.options_templates.update( "uiux_enable_dev_mode": shared.OptionInfo(False, "Enable Development Mode (Needs Restart)"), "uiux_nodejs_path": shared.OptionInfo("C:/Program Files/nodejs/npm.cmd", "Dev mode set Nodejs path to compile from src (Needs Restart)"), "uiux_enable_theme_editor": shared.OptionInfo(True, "Enable Theme Editor (Needs Restart)"), - "uiux_enable_event_delegation": shared.OptionInfo(False, "Enable Event Delegation for Extra Networks (Needs Restart)"), + "uiux_enable_civitai_explorer": shared.OptionInfo(True, "Enable CivitAI Explorer (Needs Restart)"), + #"uiux_enable_db_extra_networks": shared.OptionInfo(True, "Enable Database for Extra Networks (Needs Restart)"), + "uiux_enable_sd_styles": shared.OptionInfo(True, "Enable Styles (Needs Restart)"), + "uiux_enable_sd_output_images": shared.OptionInfo(True, "Enable Image Browser (Needs Restart)"), + + #"uiux_enable_event_delegation": shared.OptionInfo(False, "Enable Event Delegation for Extra Networks (Needs Restart)"), "uiux_max_resolution_output": shared.OptionInfo( 2048, "Max resolution output for txt2img and img2img" ), @@ -207,17 +212,17 @@ def on_ui_tabs(): log_messages = [] with gr.Blocks(analytics_enabled=False) as anapnoe_sd_uiux_core: - textbox = gr.Textbox(elm_id="pylogger", lines=10, label="Log Output", interactive=False) + textbox = gr.Textbox(elem_id="pylogger", lines=10, label="Log Output", interactive=False) logger = StreamToLogger(log_messages) - sys.stdout = logger # Redirect stdout to our custom logger + sys.stdout = logger with gr.Row(): run_button = gr.Button("Update Logs") vite_build = gr.Button("Vite build") def capture_logs(): test_function() - return "\n".join(log_messages) # Return the concatenated log messages + return "\n".join(log_messages) def run_vite_build_callback(): run_vite_build() diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_civitai.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_civitai.py new file mode 100644 index 00000000..9c60d3c2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_civitai.py @@ -0,0 +1,106 @@ + +import os +import sys +from pathlib import Path +from typing import List, Optional + +from fastapi import FastAPI, Request, Response, Body +from fastapi.exceptions import HTTPException +from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import JSONResponse + +import gradio as gr +import modules.scripts as scripts +from modules import script_callbacks, shared + +import asyncio +import requests +import json +import httpx + +from modules.api import api +from modules.api.api import Api + +basedir = scripts.basedir() +webui_dir = Path(basedir).parents[1] +scripts_folder = os.path.join(basedir, "scripts") +data_folder = os.path.join(basedir, "data") + +CIVIT_API_URL = "https://civitai.com/api/v1" +MAX_RETRIES = 3 +INITIAL_DELAY = 0.5 + +async def fetch_civitai_data(endpoint: str, params: dict): + delay = INITIAL_DELAY + for attempt in range(MAX_RETRIES + 1): + try: + async with httpx.AsyncClient(timeout=30) as client: + r = await client.get(f"{CIVIT_API_URL}/{endpoint}", params=params) + r.raise_for_status() + return r.json(), len(r.content) + + except (httpx.RequestError, httpx.HTTPStatusError) as e: + if attempt == MAX_RETRIES: + return {"error": str(e)}, None + + await asyncio.sleep(delay) + delay *= 2 # Exponential backoff + +async def handle_request(request: Request, endpoint: str): + try: + request_data = await request.json() + params = {k: v for k, v in request_data.items() if v is not None} + + result, content_length = await fetch_civitai_data(endpoint, params) + headers = {"Content-Length": str(content_length)} if content_length else {} + + return JSONResponse(result, headers=headers) + + except json.JSONDecodeError: + return JSONResponse({"error": "Invalid JSON"}, status_code=400) + except Exception as e: + return JSONResponse({"error": f"Internal error: {str(e)}"}, status_code=500) + + +def api_uiux_civitai(_: gr.Blocks, app: FastAPI): + ''' + @app.middleware("http") + async def prevent_gzip_middleware(request: Request, call_next): + if request.url.path.startswith("/sd_webui_ux/civitai_proxy/"): + request.scope['headers'] = [(k, v) for k, v in request.scope['headers'] if k.lower() != b'accept-encoding'] + response = await call_next(request) + return response + ''' + + @app.post("/sd_webui_ux/civitai_proxy/models") + async def handle_models_request(request: Request): + return await handle_request(request, "models") + + @app.post("/sd_webui_ux/civitai_proxy/images") + async def handle_images_request(request: Request): + return await handle_request(request, "images") + + @app.post("/sd_webui_ux/civitai_proxy/creators") + async def handle_creators_request(request: Request): + return await handle_request(request, "creators") + + @app.post("/sd_webui_ux/civitai_proxy/tags") + async def handle_tags_request(request: Request): + return await handle_request(request, "tags") + +script_callbacks.on_app_started(api_uiux_civitai) + + +def check_and_use_civitai(): + if shared.opts.uiux_enable_civitai_explorer is False: + return + return on_ui_tabs() + +def on_ui_tabs(): + with gr.Blocks(analytics_enabled=False) as anapnoe_sd_uiux_civitai: + pass + + return (anapnoe_sd_uiux_civitai, 'CivitAI Explorer', 'anapnoe_sd_uiux_civitai'), + +script_callbacks.on_ui_tabs(check_and_use_civitai) + diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_db.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_db.py new file mode 100644 index 00000000..03386051 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_db.py @@ -0,0 +1,85 @@ +import os +import sys +import logging +from pathlib import Path +import gradio as gr +import modules.scripts as scripts +from modules import script_callbacks, shared, ui_extra_networks +from fastapi import FastAPI, HTTPException, Query, Body +from typing import Optional, List, Dict, Any + +import launch +commit = launch.commit_hash() +tag = launch.git_tag() + +sys.path.append(os.path.dirname(os.path.abspath(__file__))) + +if tag.startswith('f2.0.'): + from anapnoe.db_textual_inversion_forge import ExtraNetworksPageTextualInversion + from anapnoe.db_lora_forge import ExtraNetworksPageLora +else: + from anapnoe.db_textual_inversion import ExtraNetworksPageTextualInversion + from anapnoe.db_lora import ExtraNetworksPageLora + +from anapnoe.db_checkpoints import ExtraNetworksPageCheckpoints +from anapnoe.db_hypernets import ExtraNetworksPageHypernetworks +from anapnoe.db_output_images import OutputImagesFolderProcessor +from anapnoe.db_styles import StylesFolderProcessor +from anapnoe.database_manager import DatabaseManager + +logger = logging.getLogger(__name__) + +basedir = scripts.basedir() +webuidir = Path(basedir).parents[1] +scriptsdir = os.path.join(basedir, "scripts") + +imagesdir = os.path.join(webuidir, "outputs") +stylesdir = os.path.join(basedir, "styles_data") + +DB_FILE = os.path.join(basedir, 'sd_webui_ux.db') +db_manager = DatabaseManager(DB_FILE) +DatabaseManager.set_instance(db_manager) + +def initialize_tables(): + db_manager = DatabaseManager.get_instance() + + tables_to_register = [ + ("checkpoint", ExtraNetworksPageCheckpoints()), + ("textualinversion", ExtraNetworksPageTextualInversion()), + ("hypernetwork", ExtraNetworksPageHypernetworks()), + ("lora", ExtraNetworksPageLora()) + ] + + if shared.opts.uiux_enable_sd_output_images: + tables_to_register.append(("images", OutputImagesFolderProcessor(imagesdir))) + + if shared.opts.uiux_enable_sd_styles: + tables_to_register.append(("styles", StylesFolderProcessor(stylesdir))) + + for table_name, processor in tables_to_register: + db_manager.register_table_type(table_name, processor) + + missing_tables = [] + + for table_name, _ in tables_to_register: + if not db_manager.table_exists(table_name): + missing_tables.append(table_name) + + if missing_tables: + logger.info(f"Found {len(missing_tables)} missing tables: {', '.join(missing_tables)}") + generator = db_manager.import_tables_generator(missing_tables, refresh=False) + for _ in generator: + pass + else: + logger.debug("All tables already exist in database") + +initialize_tables() + +def on_ui_tabs(): + with gr.Blocks(analytics_enabled=False) as anapnoe_sd_uiux_db: + refresh_button = gr.Button("Refresh Database", elem_id="refresh_database") + refresh_button.click(fn=initialize_tables, inputs=[], outputs=[]) + + return (anapnoe_sd_uiux_db, 'Init DB', 'anapnoe_sd_uiux_db'), + +script_callbacks.on_ui_tabs(on_ui_tabs) diff --git a/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_theme.py b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_theme.py index 78c88090..6844c386 100644 --- a/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_theme.py +++ b/extensions-builtin/sd-webui-ux/scripts/anapnoe_sd_uiux_theme.py @@ -48,7 +48,7 @@ def check_and_use_theme_v2(): ui_theme_v2_path = os.path.join(scripts_folder, 'ui_theme_v2.py') if os.path.exists(ui_theme_v2_path) or shared.opts.uiux_enable_theme_editor is False: return # Do not execute on_ui_tabs if ui_theme_v2.py is present - # If ui_theme_v2.py is not present, call the on_ui_tabs function to create UI + return on_ui_tabs() def on_ui_tabs(): diff --git a/extensions-builtin/sd-webui-ux/style.css b/extensions-builtin/sd-webui-ux/style.css index a2d89ee2..b012732b 100644 --- a/extensions-builtin/sd-webui-ux/style.css +++ b/extensions-builtin/sd-webui-ux/style.css @@ -52,6 +52,7 @@ --ae-uiux_exnet_header_size: 14; --ae-uiux_exnet_image_tint: 0; --ae-uiux_min_wrap_size: 140; + --ae-uiux_exnet_aspect_ratio: calc(var(--ae-uiux_exnet_aspect_ratio_x) / var(--ae-uiux_exnet_aspect_ratio_y)); } body { @@ -336,6 +337,12 @@ body { min-width: unset !important; } */ +* select, +* input:not([type="range"]), +* textarea { + padding-left: calc(var(--ae-input-padding) + (var(--ae-border-radius) * 0.25)) !important; + padding-right: calc(var(--ae-input-padding) + (var(--ae-border-radius) * 0.25)) !important; +} *.gradio-dropdown label { flex-direction: column; @@ -832,6 +839,8 @@ label>span+div, /*height: 100%;*/ white-space: normal; height: auto; + padding-left: calc(var(--ae-border-radius) * 0.5); + padding-right: calc(var(--ae-border-radius) * 0.5); } .gradio-video .controls .inner { @@ -1371,8 +1380,10 @@ li.item span { .mask-icon { display: inline-block; background: var(--ae-input-text-color); + /* border: var(--ae-input-border-size) solid var(--ae-input-border-color); border-radius: var(--ae-border-radius); + */ line-height: var(--ae-input-line-height); font-size: var(--ae-input-font-size); padding: var(--ae-input-padding); @@ -1709,24 +1720,46 @@ div#layout-3 { z-index: 1; } + +.sponsors_grid, #contributors_grid { gap: 5px; align-items: flex-start; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); - white-space: nowrap; - overflow: auto; - margin: var(--ae-panel-padding); + /*white-space: nowrap;*/ padding-right: var(--ae-panel-padding); } - +.sponsors_grid.current { + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); +} +#contributors_grid{ + overflow: auto; +} +.sponsors_grid a, #contributors_grid a { align-items: center; padding: 10px; + position: relative; + flex-flow: wrap !important; + flex-direction: column !important; + height: 100%; } +.sponsors_grid figure, #contributors_grid figure { margin: 0; + width: 60px; + height: 60px; + border-radius: 50%; + background-size: cover; + background-position: center; + background-color: var(--ae-panel-bg-color); +} + +.sponsors_grid.current figure{ + width: 120px; + height: 120px;; } #contributors_grid img { @@ -1734,6 +1767,33 @@ div#layout-3 { border-radius: 50%; } +.sponsors-coffee +{ + position: absolute; + top: 0; + right: 0; + width: 25px; + line-height: 25px; + background-color: var(--ae-panel-bg-color); + display: flex; + justify-content: center; + margin: 5px; + border-radius: 50%; + color: var(--ae-label-color); +} +.sponsors-coffee::before{ +content: 'x'; +} + +#contributors_tabitem_parent .lrp-32, +#sponsors_tabitem_parent .lrp-32 +{ + max-width: unset; +} +.sponsors_grid a { + pointer-events: none; +} + #flexbox-9 { justify-content: flex-end; } @@ -2411,7 +2471,8 @@ td.gridjs-td { .additional, .additional ul { - display: none !important; + display: none; + /* !important;*/ } .additional, @@ -2442,8 +2503,8 @@ td.gridjs-td { } -#template-settings .split-container:first-child, -.layout-extra-networks .split-container:first-child { +#split-settings-left, +.split-container.exnet-left { min-width: 135px; } @@ -2690,11 +2751,10 @@ span.star_count b { } #popup_close { - position: absolute; - right: calc(var(--ae-panel-padding) * 2); - bottom: calc(var(--ae-panel-padding) * 3); - height: 24px; - padding-right: calc(var(--ae-panel-padding) * 3); + width: 120px; + order: -1; + margin: auto; + margin-right: 0; } @@ -2851,6 +2911,7 @@ div[data-testid="image"] canvas { .group-row>* button, .group-row>* { border-radius: 0 !important; + min-width: fit-content; } .group-row>*:last-child button, @@ -3770,29 +3831,7 @@ span.description { line-height: calc(var(--ae-uiux_exnet_header_size) * 0.7 * 1px + 2px); } -*.extra-network-cards .card img { - filter: grayscale(var(--ae-uiux_exnet_image_tint)); - opacity: 0.9; -} -*.extra-network-cards .card:hover img { - filter: grayscale(0); - /*opacity: 1.0;*/ -} - -*.extra-network-cards .card:hover:before { - opacity: 0.0; -} - -*.extra-network-cards .card:before { - content: ""; - position: absolute; - inset: 0; - background: var(--ae-secondary-color); - opacity: var(--ae-uiux_exnet_image_tint); - z-index: 1; - mix-blend-mode: multiply; -} div#txt2img_checkpoints_main_footer { line-break: anywhere; @@ -3824,4 +3863,74 @@ select, .about-image-container:hover .about-image-fade:last-child { opacity: 1; +} + +.flex-width { + width: 0%; + flex-grow: 1; + flex-shrink: 1; + min-width: min(calc(var(--ae-uiux_min_wrap_size)* 1px), 100%); +} + +.no-top-padding { + padding-top: 0; +} + +.no-bottom-padding { + padding-bottom: 0; +} + + +table.non-editable-table { + display: block; + text-align: left; +} + +table.non-editable-table td { + line-break: anywhere; + text-wrap: wrap; + min-width: 100px; + vertical-align: top; +} + +.non-editable-div img.thumbnail-image { + max-height: 180px; + width: 100%; + height: auto; + object-fit: contain; + min-width: 120px; + display: block; +} + +.non-editable-info { + justify-content: space-between !important; +} + +.non-editable-tags label { + width:100%; + text-align: left; +} + +.non-editable-tags button{ + display: flex; + gap: 5px; + align-items: center; +} + +.non-editable-tags span.tag-num { + background: var(--ae-primary-color); + line-height: 18px; + border-radius: var(--ae-border-radius); + padding: 0 4px; +} + +.non-editable-tags > .panel { + max-height: 160px; + overflow-y: auto; +} + +.no-slider-layout .min-width, +.no-slider-layout .flexbox:not(.unset-min-width, .flex-start, .shrink), +.no-slider-layout .block { + min-width: min(100px, 100%) !important; } \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Akihito Tsukushi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Akihito Tsukushi.jpg new file mode 100644 index 00000000..ed2e5866 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Akihito Tsukushi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Akihito Tsukushi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Akihito Tsukushi.json new file mode 100644 index 00000000..5d4f0172 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Akihito Tsukushi.json @@ -0,0 +1,7 @@ +{ + "name": "Akihito Tsukushi", + "description": "art by Akihito Tsukushi", + "preview": "Akihito Tsukushi.jpg", + "prompt": "art by Akihito Tsukushi", + "negative": "" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Al Hirschfeld.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Al Hirschfeld.jpg new file mode 100644 index 00000000..b755fe3a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Al Hirschfeld.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Al Hirschfeld.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Al Hirschfeld.json new file mode 100644 index 00000000..549d811a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Al Hirschfeld.json @@ -0,0 +1,8 @@ +{ + "name": "Al Hirschfeld", + "description": "art by Al Hirschfeld", + "preview": "Al Hirschfeld.jpg", + "prompt": "art by Al Hirschfeld", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alan Lee.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alan Lee.jpg new file mode 100644 index 00000000..3c7b34fb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alan Lee.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alan Lee.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alan Lee.json new file mode 100644 index 00000000..fc1c8e45 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alan Lee.json @@ -0,0 +1,8 @@ +{ + "name": "Alan Lee", + "description": "art by Alan Lee", + "preview": "Alan Lee.jpg", + "prompt": "art by Alan Lee", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Bierstadt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Bierstadt.jpg new file mode 100644 index 00000000..e7af16df Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Bierstadt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Bierstadt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Bierstadt.json new file mode 100644 index 00000000..192e221e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Bierstadt.json @@ -0,0 +1,8 @@ +{ + "name": "Albert Bierstadt", + "description": "art by Albert Bierstadt", + "preview": "Albert Bierstadt.jpg", + "prompt": "art by Albert Bierstadt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Uderzo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Uderzo.jpg new file mode 100644 index 00000000..4134a9b9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Uderzo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Uderzo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Uderzo.json new file mode 100644 index 00000000..9fdee7e3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albert Uderzo.json @@ -0,0 +1,8 @@ +{ + "name": "Albert Uderzo", + "description": "art by Albert Uderzo", + "preview": "Albert Uderzo.jpg", + "prompt": "art by Albert Uderzo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Giacometti.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Giacometti.jpg new file mode 100644 index 00000000..813fe2d3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Giacometti.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Giacometti.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Giacometti.json new file mode 100644 index 00000000..7871ec7e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Giacometti.json @@ -0,0 +1,8 @@ +{ + "name": "Alberto Giacometti", + "description": "art by Alberto Giacometti", + "preview": "Alberto Giacometti.jpg", + "prompt": "art by Alberto Giacometti", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Vargas.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Vargas.jpg new file mode 100644 index 00000000..3dd84d11 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Vargas.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Vargas.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Vargas.json new file mode 100644 index 00000000..a36aff39 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alberto Vargas.json @@ -0,0 +1,8 @@ +{ + "name": "Alberto Vargas", + "description": "art by Alberto Vargas", + "preview": "Alberto Vargas.jpg", + "prompt": "art by Alberto Vargas", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Albrecht Durer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albrecht Durer.jpg new file mode 100644 index 00000000..1d72eba5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albrecht Durer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Albrecht Durer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albrecht Durer.json new file mode 100644 index 00000000..2df51a3b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Albrecht Durer.json @@ -0,0 +1,8 @@ +{ + "name": "Albrecht Durer", + "description": "art by Albrecht Durer", + "preview": "Albrecht Durer.jpg", + "prompt": "art by Albrecht Durer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alejandro Burdisio.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alejandro Burdisio.jpg new file mode 100644 index 00000000..7b831df5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alejandro Burdisio.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alejandro Burdisio.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alejandro Burdisio.json new file mode 100644 index 00000000..ebc07d14 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alejandro Burdisio.json @@ -0,0 +1,8 @@ +{ + "name": "Alejandro Burdisio", + "description": "art by Alejandro Burdisio", + "preview": "Alejandro Burdisio.jpg", + "prompt": "art by Alejandro Burdisio", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Aleksi Briclot.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Aleksi Briclot.jpg new file mode 100644 index 00000000..65c5be6b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Aleksi Briclot.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Aleksi Briclot.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Aleksi Briclot.json new file mode 100644 index 00000000..bfc09ba1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Aleksi Briclot.json @@ -0,0 +1,8 @@ +{ + "name": "Aleksi Briclot", + "description": "art by Aleksi Briclot", + "preview": "Aleksi Briclot.jpg", + "prompt": "art by Aleksi Briclot", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alena Aenami.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alena Aenami.jpg new file mode 100644 index 00000000..b375b15d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alena Aenami.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alena Aenami.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alena Aenami.json new file mode 100644 index 00000000..a61b1b21 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alena Aenami.json @@ -0,0 +1,8 @@ +{ + "name": "Alena Aenami", + "description": "art by Alena Aenami", + "preview": "Alena Aenami.jpg", + "prompt": "art by Alena Aenami", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alessio Albi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alessio Albi.jpg new file mode 100644 index 00000000..20960fba Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alessio Albi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alessio Albi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alessio Albi.json new file mode 100644 index 00000000..14afd6f3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alessio Albi.json @@ -0,0 +1,8 @@ +{ + "name": "Alessio Albi", + "description": "art by Alessio Albi", + "preview": "Alessio Albi.jpg", + "prompt": "art by Alessio Albi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Gard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Gard.jpg new file mode 100644 index 00000000..24af14b3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Gard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Gard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Gard.json new file mode 100644 index 00000000..34b62ea7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Gard.json @@ -0,0 +1,8 @@ +{ + "name": "Alex Gard", + "description": "art by Alex Gard", + "preview": "Alex Gard.jpg", + "prompt": "art by Alex Gard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Grey.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Grey.jpg new file mode 100644 index 00000000..8630212e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Grey.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Grey.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Grey.json new file mode 100644 index 00000000..73282dcd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Grey.json @@ -0,0 +1,7 @@ +{ + "name": "Alex Grey", + "description": "art by Alex Grey", + "preview": "Alex Grey.jpg", + "prompt": "art by Alex Grey", + "negative": "" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Maleev.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Maleev.jpg new file mode 100644 index 00000000..54a4b84d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Maleev.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Maleev.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Maleev.json new file mode 100644 index 00000000..be047cfd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alex Maleev.json @@ -0,0 +1,8 @@ +{ + "name": "Alex Maleev", + "description": "art by Alex Maleev", + "preview": "Alex Maleev.jpg", + "prompt": "art by Alex Maleev", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Jansson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Jansson.jpg new file mode 100644 index 00000000..5d8834e5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Jansson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Jansson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Jansson.json new file mode 100644 index 00000000..3c2e80a3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Jansson.json @@ -0,0 +1,7 @@ +{ + "name": "Alexander Jansson", + "description": "art by Alexander Jansson", + "preview": "Alexander Jansson.jpg", + "prompt": "art by Alexander Jansson", + "negative": "" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Milne Calder.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Milne Calder.jpg new file mode 100644 index 00000000..39f1e476 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Milne Calder.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Milne Calder.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Milne Calder.json new file mode 100644 index 00000000..146309a5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexander Milne Calder.json @@ -0,0 +1,8 @@ +{ + "name": "Alexander Milne Calder", + "description": "art by Alexander Milne Calder", + "preview": "Alexander Milne Calder.jpg", + "prompt": "art by Alexander Milne Calder", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexandre Cabanel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexandre Cabanel.jpg new file mode 100644 index 00000000..7b6d90ac Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexandre Cabanel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexandre Cabanel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexandre Cabanel.json new file mode 100644 index 00000000..132abe21 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexandre Cabanel.json @@ -0,0 +1,8 @@ +{ + "name": "Alexandre Cabanel", + "description": "art by Alexandre Cabanel", + "preview": "Alexandre Cabanel.jpg", + "prompt": "art by Alexandre Cabanel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexei Savrasov.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexei Savrasov.jpg new file mode 100644 index 00000000..20237b74 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexei Savrasov.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexei Savrasov.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexei Savrasov.json new file mode 100644 index 00000000..f4f41aa1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexei Savrasov.json @@ -0,0 +1,8 @@ +{ + "name": "Alexei Savrasov", + "description": "art by Alexei Savrasov", + "preview": "Alexei Savrasov.jpg", + "prompt": "art by Alexei Savrasov", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexej von Jawlensky.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexej von Jawlensky.jpg new file mode 100644 index 00000000..6f179226 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexej von Jawlensky.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexej von Jawlensky.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexej von Jawlensky.json new file mode 100644 index 00000000..e9603c66 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alexej von Jawlensky.json @@ -0,0 +1,8 @@ +{ + "name": "Alexej von Jawlensky", + "description": "art by Alexej von Jawlensky", + "preview": "Alexej von Jawlensky.jpg", + "prompt": "art by Alexej von Jawlensky", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alfred Kubin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alfred Kubin.jpg new file mode 100644 index 00000000..5910aa28 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alfred Kubin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alfred Kubin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alfred Kubin.json new file mode 100644 index 00000000..33492586 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alfred Kubin.json @@ -0,0 +1,8 @@ +{ + "name": "Alfred Kubin", + "description": "art by Alfred Kubin", + "preview": "Alfred Kubin.jpg", + "prompt": "art by Alfred Kubin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Neel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Neel.jpg new file mode 100644 index 00000000..16751fd6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Neel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Neel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Neel.json new file mode 100644 index 00000000..7b35469e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Neel.json @@ -0,0 +1,8 @@ +{ + "name": "Alice Neel", + "description": "art by Alice Neel", + "preview": "Alice Neel.jpg", + "prompt": "art by Alice Neel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Rahon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Rahon.jpg new file mode 100644 index 00000000..e437c52d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Rahon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Rahon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Rahon.json new file mode 100644 index 00000000..f13f476a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alice Rahon.json @@ -0,0 +1,8 @@ +{ + "name": "Alice Rahon", + "description": "art by Alice Rahon", + "preview": "Alice Rahon.jpg", + "prompt": "art by Alice Rahon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alphonse Mucha.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alphonse Mucha.jpg new file mode 100644 index 00000000..520132eb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alphonse Mucha.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Alphonse Mucha.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alphonse Mucha.json new file mode 100644 index 00000000..d45a2fc9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Alphonse Mucha.json @@ -0,0 +1,8 @@ +{ + "name": "Alphonse Mucha", + "description": "art by Alphonse Mucha", + "preview": "Alphonse Mucha.jpg", + "prompt": "art by Alphonse Mucha", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Clark.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Clark.jpg new file mode 100644 index 00000000..3b9ca355 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Clark.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Clark.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Clark.json new file mode 100644 index 00000000..a0ecc70f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Clark.json @@ -0,0 +1,8 @@ +{ + "name": "Amanda Clark", + "description": "art by Amanda Clark", + "preview": "Amanda Clark.jpg", + "prompt": "art by Amanda Clark", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Sage.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Sage.jpg new file mode 100644 index 00000000..3564c20b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Sage.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Sage.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Sage.json new file mode 100644 index 00000000..78146327 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amanda Sage.json @@ -0,0 +1,8 @@ +{ + "name": "Amanda Sage", + "description": "art by Amanda Sage", + "preview": "Amanda Sage.jpg", + "prompt": "art by Amanda Sage", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amedeo Modigliani.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amedeo Modigliani.jpg new file mode 100644 index 00000000..37fe14e5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amedeo Modigliani.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amedeo Modigliani.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amedeo Modigliani.json new file mode 100644 index 00000000..ba1e84f5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amedeo Modigliani.json @@ -0,0 +1,8 @@ +{ + "name": "Amedeo Modigliani", + "description": "art by Amedeo Modigliani", + "preview": "Amedeo Modigliani.jpg", + "prompt": "art by Amedeo Modigliani", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amelie Bernard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amelie Bernard.jpg new file mode 100644 index 00000000..b799216e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amelie Bernard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Amelie Bernard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amelie Bernard.json new file mode 100644 index 00000000..94f6cc82 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Amelie Bernard.json @@ -0,0 +1,8 @@ +{ + "name": "Amelie Bernard", + "description": "art by Amelie Bernard", + "preview": "Amelie Bernard.jpg", + "prompt": "art by Amelie Bernard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anders Zorn.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anders Zorn.jpg new file mode 100644 index 00000000..2413005b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anders Zorn.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anders Zorn.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anders Zorn.json new file mode 100644 index 00000000..a9f920c9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anders Zorn.json @@ -0,0 +1,8 @@ +{ + "name": "Anders Zorn", + "description": "art by Anders Zorn", + "preview": "Anders Zorn.jpg", + "prompt": "art by Anders Zorn", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andreas Achenbach.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andreas Achenbach.jpg new file mode 100644 index 00000000..e8fb265e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andreas Achenbach.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andreas Achenbach.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andreas Achenbach.json new file mode 100644 index 00000000..07d59674 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andreas Achenbach.json @@ -0,0 +1,8 @@ +{ + "name": "Andreas Achenbach", + "description": "art by Andreas Achenbach", + "preview": "Andreas Achenbach.jpg", + "prompt": "art by Andreas Achenbach", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andrew Wyeth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andrew Wyeth.jpg new file mode 100644 index 00000000..183b3c4d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andrew Wyeth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andrew Wyeth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andrew Wyeth.json new file mode 100644 index 00000000..ac93879c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andrew Wyeth.json @@ -0,0 +1,8 @@ +{ + "name": "Andrew Wyeth", + "description": "art by Andrew Wyeth", + "preview": "Andrew Wyeth.jpg", + "prompt": "art by Andrew Wyeth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/André Kertész.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Kertész.jpg new file mode 100644 index 00000000..5fd3fc97 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Kertész.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/André Kertész.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Kertész.json new file mode 100644 index 00000000..e27e7f87 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Kertész.json @@ -0,0 +1,8 @@ +{ + "name": "Andr\u00e9 Kert\u00e9sz", + "description": "art by Andr\u00e9 Kert\u00e9sz", + "preview": "Andr\u00e9 Kert\u00e9sz.jpg", + "prompt": "art by Andr\u00e9 Kert\u00e9sz", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/André Masson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Masson.jpg new file mode 100644 index 00000000..9da45b5b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Masson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/André Masson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Masson.json new file mode 100644 index 00000000..92fd834a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/André Masson.json @@ -0,0 +1,8 @@ +{ + "name": "Andr\u00e9 Masson", + "description": "art by Andr\u00e9 Masson", + "preview": "Andr\u00e9 Masson.jpg", + "prompt": "art by Andr\u00e9 Masson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Fairhurst.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Fairhurst.jpg new file mode 100644 index 00000000..159ff874 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Fairhurst.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Fairhurst.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Fairhurst.json new file mode 100644 index 00000000..0c40f669 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Fairhurst.json @@ -0,0 +1,8 @@ +{ + "name": "Andy Fairhurst", + "description": "art by Andy Fairhurst", + "preview": "Andy Fairhurst.jpg", + "prompt": "art by Andy Fairhurst", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Singer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Singer.jpg new file mode 100644 index 00000000..9681f669 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Singer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Singer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Singer.json new file mode 100644 index 00000000..1817ed66 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Singer.json @@ -0,0 +1,8 @@ +{ + "name": "Andy Singer", + "description": "art by Andy Singer", + "preview": "Andy Singer.jpg", + "prompt": "art by Andy Singer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Warhol.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Warhol.jpg new file mode 100644 index 00000000..234d3d00 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Warhol.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Warhol.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Warhol.json new file mode 100644 index 00000000..11e92234 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Andy Warhol.json @@ -0,0 +1,8 @@ +{ + "name": "Andy Warhol", + "description": "art by Andy Warhol", + "preview": "Andy Warhol.jpg", + "prompt": "art by Andy Warhol", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anita Malfatti.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anita Malfatti.jpg new file mode 100644 index 00000000..e95caa99 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anita Malfatti.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anita Malfatti.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anita Malfatti.json new file mode 100644 index 00000000..a4c483e7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anita Malfatti.json @@ -0,0 +1,8 @@ +{ + "name": "Anita Malfatti", + "description": "art by Anita Malfatti", + "preview": "Anita Malfatti.jpg", + "prompt": "art by Anita Malfatti", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anna Dittmann.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anna Dittmann.jpg new file mode 100644 index 00000000..4ff04119 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anna Dittmann.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anna Dittmann.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anna Dittmann.json new file mode 100644 index 00000000..8866ee11 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anna Dittmann.json @@ -0,0 +1,8 @@ +{ + "name": "Anna Dittmann", + "description": "art by Anna Dittmann", + "preview": "Anna Dittmann.jpg", + "prompt": "art by Anna Dittmann", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Geddes.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Geddes.jpg new file mode 100644 index 00000000..3a864c2d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Geddes.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Geddes.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Geddes.json new file mode 100644 index 00000000..5e31a845 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Geddes.json @@ -0,0 +1,8 @@ +{ + "name": "Anne Geddes", + "description": "art by Anne Geddes", + "preview": "Anne Geddes.jpg", + "prompt": "art by Anne Geddes", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Stokes.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Stokes.jpg new file mode 100644 index 00000000..f1df18db Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Stokes.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Stokes.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Stokes.json new file mode 100644 index 00000000..84a5be66 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne Stokes.json @@ -0,0 +1,8 @@ +{ + "name": "Anne Stokes", + "description": "art by Anne Stokes", + "preview": "Anne Stokes.jpg", + "prompt": "art by Anne Stokes", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne-Louis Girodet.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne-Louis Girodet.jpg new file mode 100644 index 00000000..66ebea30 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne-Louis Girodet.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne-Louis Girodet.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne-Louis Girodet.json new file mode 100644 index 00000000..9f1b0716 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anne-Louis Girodet.json @@ -0,0 +1,8 @@ +{ + "name": "Anne-Louis Girodet", + "description": "art by Anne-Louis Girodet", + "preview": "Anne-Louis Girodet.jpg", + "prompt": "art by Anne-Louis Girodet", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Annibale Carracci.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annibale Carracci.jpg new file mode 100644 index 00000000..0ed06f35 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annibale Carracci.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Annibale Carracci.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annibale Carracci.json new file mode 100644 index 00000000..2b989c47 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annibale Carracci.json @@ -0,0 +1,8 @@ +{ + "name": "Annibale Carracci", + "description": "art by Annibale Carracci", + "preview": "Annibale Carracci.jpg", + "prompt": "art by Annibale Carracci", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Annie Leibovitz.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annie Leibovitz.jpg new file mode 100644 index 00000000..3ca213d8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annie Leibovitz.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Annie Leibovitz.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annie Leibovitz.json new file mode 100644 index 00000000..554e3c6e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Annie Leibovitz.json @@ -0,0 +1,8 @@ +{ + "name": "Annie Leibovitz", + "description": "art by Annie Leibovitz", + "preview": "Annie Leibovitz.jpg", + "prompt": "art by Annie Leibovitz", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ansel Adams.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ansel Adams.jpg new file mode 100644 index 00000000..b1a058d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ansel Adams.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ansel Adams.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ansel Adams.json new file mode 100644 index 00000000..a4ebb2b2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ansel Adams.json @@ -0,0 +1,8 @@ +{ + "name": "Ansel Adams", + "description": "art by Ansel Adams", + "preview": "Ansel Adams.jpg", + "prompt": "art by Ansel Adams", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anthony van Dyck.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anthony van Dyck.jpg new file mode 100644 index 00000000..e606c863 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anthony van Dyck.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anthony van Dyck.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anthony van Dyck.json new file mode 100644 index 00000000..7e2dc117 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anthony van Dyck.json @@ -0,0 +1,8 @@ +{ + "name": "Anthony van Dyck", + "description": "art by Anthony van Dyck", + "preview": "Anthony van Dyck.jpg", + "prompt": "art by Anthony van Dyck", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Fadeev.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Fadeev.jpg new file mode 100644 index 00000000..2e00c22f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Fadeev.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Fadeev.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Fadeev.json new file mode 100644 index 00000000..eea74e0c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Fadeev.json @@ -0,0 +1,8 @@ +{ + "name": "Anton Fadeev", + "description": "art by Anton Fadeev", + "preview": "Anton Fadeev.jpg", + "prompt": "art by Anton Fadeev", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Otto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Otto.jpg new file mode 100644 index 00000000..6a796aa3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Otto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Otto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Otto.json new file mode 100644 index 00000000..ac72ebee --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Anton Otto.json @@ -0,0 +1,8 @@ +{ + "name": "Anton Otto", + "description": "art by Anton Otto", + "preview": "Anton Otto.jpg", + "prompt": "art by Anton Otto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Apollonia Saintclair.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Apollonia Saintclair.jpg new file mode 100644 index 00000000..e682a2e6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Apollonia Saintclair.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Apollonia Saintclair.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Apollonia Saintclair.json new file mode 100644 index 00000000..8354d49c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Apollonia Saintclair.json @@ -0,0 +1,8 @@ +{ + "name": "Apollonia Saintclair", + "description": "art by Apollonia Saintclair", + "preview": "Apollonia Saintclair.jpg", + "prompt": "art by Apollonia Saintclair", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arkhip Kuindzhi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arkhip Kuindzhi.jpg new file mode 100644 index 00000000..d77eb8a0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arkhip Kuindzhi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arkhip Kuindzhi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arkhip Kuindzhi.json new file mode 100644 index 00000000..4f6bbdb9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arkhip Kuindzhi.json @@ -0,0 +1,8 @@ +{ + "name": "Arkhip Kuindzhi", + "description": "art by Arkhip Kuindzhi", + "preview": "Arkhip Kuindzhi.jpg", + "prompt": "art by Arkhip Kuindzhi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arnold Böcklin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arnold Böcklin.jpg new file mode 100644 index 00000000..ba7b6f1e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arnold Böcklin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arnold Böcklin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arnold Böcklin.json new file mode 100644 index 00000000..eb4f6362 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arnold Böcklin.json @@ -0,0 +1,8 @@ +{ + "name": "Arnold B\u00f6cklin", + "description": "art by Arnold B\u00f6cklin", + "preview": "Arnold B\u00f6cklin.jpg", + "prompt": "art by Arnold B\u00f6cklin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arshile Gorky.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arshile Gorky.jpg new file mode 100644 index 00000000..9bfcd855 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arshile Gorky.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arshile Gorky.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arshile Gorky.json new file mode 100644 index 00000000..2280bfff --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arshile Gorky.json @@ -0,0 +1,8 @@ +{ + "name": "Arshile Gorky", + "description": "art by Arshile Gorky", + "preview": "Arshile Gorky.jpg", + "prompt": "art by Arshile Gorky", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Art Spiegelman.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Art Spiegelman.jpg new file mode 100644 index 00000000..aaf9639e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Art Spiegelman.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Art Spiegelman.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Art Spiegelman.json new file mode 100644 index 00000000..caecc10f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Art Spiegelman.json @@ -0,0 +1,8 @@ +{ + "name": "Art Spiegelman", + "description": "art by Art Spiegelman", + "preview": "Art Spiegelman.jpg", + "prompt": "art by Art Spiegelman", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Artemisia Gentileschi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Artemisia Gentileschi.jpg new file mode 100644 index 00000000..b87b599a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Artemisia Gentileschi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Artemisia Gentileschi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Artemisia Gentileschi.json new file mode 100644 index 00000000..aa24f082 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Artemisia Gentileschi.json @@ -0,0 +1,8 @@ +{ + "name": "Artemisia Gentileschi", + "description": "art by Artemisia Gentileschi", + "preview": "Artemisia Gentileschi.jpg", + "prompt": "art by Artemisia Gentileschi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arthur Dove.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arthur Dove.jpg new file mode 100644 index 00000000..04359a1c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arthur Dove.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Arthur Dove.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arthur Dove.json new file mode 100644 index 00000000..9695d338 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Arthur Dove.json @@ -0,0 +1,8 @@ +{ + "name": "Arthur Dove", + "description": "art by Arthur Dove", + "preview": "Arthur Dove.jpg", + "prompt": "art by Arthur Dove", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Asaf Hanuka.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asaf Hanuka.jpg new file mode 100644 index 00000000..060ecac8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asaf Hanuka.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Asaf Hanuka.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asaf Hanuka.json new file mode 100644 index 00000000..e8207c67 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asaf Hanuka.json @@ -0,0 +1,8 @@ +{ + "name": "Asaf Hanuka", + "description": "art by Asaf Hanuka", + "preview": "Asaf Hanuka.jpg", + "prompt": "art by Asaf Hanuka", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Asher Brown Durand.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asher Brown Durand.jpg new file mode 100644 index 00000000..4de17248 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asher Brown Durand.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Asher Brown Durand.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asher Brown Durand.json new file mode 100644 index 00000000..0edf7ce1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Asher Brown Durand.json @@ -0,0 +1,8 @@ +{ + "name": "Asher Brown Durand", + "description": "art by Asher Brown Durand", + "preview": "Asher Brown Durand.jpg", + "prompt": "art by Asher Brown Durand", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ashley Wood.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ashley Wood.jpg new file mode 100644 index 00000000..69504b2f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ashley Wood.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ashley Wood.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ashley Wood.json new file mode 100644 index 00000000..79f5cfda --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ashley Wood.json @@ -0,0 +1,8 @@ +{ + "name": "Ashley Wood", + "description": "art by Ashley Wood", + "preview": "Ashley Wood.jpg", + "prompt": "art by Ashley Wood", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Audrey Kawasaki.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Audrey Kawasaki.jpg new file mode 100644 index 00000000..36259483 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Audrey Kawasaki.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Audrey Kawasaki.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Audrey Kawasaki.json new file mode 100644 index 00000000..17330efe --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Audrey Kawasaki.json @@ -0,0 +1,8 @@ +{ + "name": "Audrey Kawasaki", + "description": "art by Audrey Kawasaki", + "preview": "Audrey Kawasaki.jpg", + "prompt": "art by Audrey Kawasaki", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Austin Briggs.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Austin Briggs.jpg new file mode 100644 index 00000000..90496afa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Austin Briggs.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Austin Briggs.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Austin Briggs.json new file mode 100644 index 00000000..f3f6a857 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Austin Briggs.json @@ -0,0 +1,8 @@ +{ + "name": "Austin Briggs", + "description": "art by Austin Briggs", + "preview": "Austin Briggs.jpg", + "prompt": "art by Austin Briggs", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Balthus.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Balthus.jpg new file mode 100644 index 00000000..636ba362 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Balthus.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Balthus.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Balthus.json new file mode 100644 index 00000000..8779d55e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Balthus.json @@ -0,0 +1,8 @@ +{ + "name": "Balthus", + "description": "art by Balthus", + "preview": "Balthus.jpg", + "prompt": "art by Balthus", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Banksy.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Banksy.jpg new file mode 100644 index 00000000..18e74953 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Banksy.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Banksy.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Banksy.json new file mode 100644 index 00000000..171c9b78 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Banksy.json @@ -0,0 +1,8 @@ +{ + "name": "Banksy", + "description": "art by Banksy", + "preview": "Banksy.jpg", + "prompt": "art by Banksy", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Barclay Shaw.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barclay Shaw.jpg new file mode 100644 index 00000000..9dea6032 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barclay Shaw.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Barclay Shaw.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barclay Shaw.json new file mode 100644 index 00000000..911fd13f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barclay Shaw.json @@ -0,0 +1,8 @@ +{ + "name": "Barclay Shaw", + "description": "art by Barclay Shaw", + "preview": "Barclay Shaw.jpg", + "prompt": "art by Barclay Shaw", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Barry Blitt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barry Blitt.jpg new file mode 100644 index 00000000..8fd7d4c9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barry Blitt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Barry Blitt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barry Blitt.json new file mode 100644 index 00000000..6851c1b9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Barry Blitt.json @@ -0,0 +1,8 @@ +{ + "name": "Barry Blitt", + "description": "art by Barry Blitt", + "preview": "Barry Blitt.jpg", + "prompt": "art by Barry Blitt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bastien Lecouffe Deharme.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bastien Lecouffe Deharme.jpg new file mode 100644 index 00000000..c59f4b1d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bastien Lecouffe Deharme.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bastien Lecouffe Deharme.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bastien Lecouffe Deharme.json new file mode 100644 index 00000000..71e327c7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bastien Lecouffe Deharme.json @@ -0,0 +1,8 @@ +{ + "name": "Bastien Lecouffe Deharme", + "description": "art by Bastien Lecouffe Deharme", + "preview": "Bastien Lecouffe Deharme.jpg", + "prompt": "art by Bastien Lecouffe Deharme", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Beatrix Potter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beatrix Potter.jpg new file mode 100644 index 00000000..cb2043cb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beatrix Potter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Beatrix Potter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beatrix Potter.json new file mode 100644 index 00000000..3df93b5f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beatrix Potter.json @@ -0,0 +1,8 @@ +{ + "name": "Beatrix Potter", + "description": "art by Beatrix Potter", + "preview": "Beatrix Potter.jpg", + "prompt": "art by Beatrix Potter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Beauford Delaney.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beauford Delaney.jpg new file mode 100644 index 00000000..8c7a7894 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beauford Delaney.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Beauford Delaney.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beauford Delaney.json new file mode 100644 index 00000000..e236f5d1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beauford Delaney.json @@ -0,0 +1,8 @@ +{ + "name": "Beauford Delaney", + "description": "art by Beauford Delaney", + "preview": "Beauford Delaney.jpg", + "prompt": "art by Beauford Delaney", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Beeple.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beeple.jpg new file mode 100644 index 00000000..2754ad2f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beeple.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Beeple.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beeple.json new file mode 100644 index 00000000..69753141 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Beeple.json @@ -0,0 +1,8 @@ +{ + "name": "Beeple", + "description": "art by Beeple", + "preview": "Beeple.jpg", + "prompt": "art by Beeple", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ben Shahn.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ben Shahn.jpg new file mode 100644 index 00000000..4aa91a3c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ben Shahn.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ben Shahn.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ben Shahn.json new file mode 100644 index 00000000..dfd45364 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ben Shahn.json @@ -0,0 +1,8 @@ +{ + "name": "Ben Shahn", + "description": "art by Ben Shahn", + "preview": "Ben Shahn.jpg", + "prompt": "art by Ben Shahn", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Benoit B. Mandelbrot.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Benoit B. Mandelbrot.jpg new file mode 100644 index 00000000..4cfda62d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Benoit B. Mandelbrot.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Benoit B. Mandelbrot.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Benoit B. Mandelbrot.json new file mode 100644 index 00000000..e348d43f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Benoit B. Mandelbrot.json @@ -0,0 +1,8 @@ +{ + "name": "Benoit B. Mandelbrot", + "description": "art by Benoit B. Mandelbrot", + "preview": "Benoit B. Mandelbrot.jpg", + "prompt": "art by Benoit B. Mandelbrot", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernard Buffet.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernard Buffet.jpg new file mode 100644 index 00000000..05185a52 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernard Buffet.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernard Buffet.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernard Buffet.json new file mode 100644 index 00000000..bd27f8dc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernard Buffet.json @@ -0,0 +1,8 @@ +{ + "name": "Bernard Buffet", + "description": "art by Bernard Buffet", + "preview": "Bernard Buffet.jpg", + "prompt": "art by Bernard Buffet", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernd and Hilla Becher.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernd and Hilla Becher.jpg new file mode 100644 index 00000000..00d12618 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernd and Hilla Becher.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernd and Hilla Becher.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernd and Hilla Becher.json new file mode 100644 index 00000000..1dc9ce25 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernd and Hilla Becher.json @@ -0,0 +1,8 @@ +{ + "name": "Bernd and Hilla Becher", + "description": "art by Bernd and Hilla Becher", + "preview": "Bernd and Hilla Becher.jpg", + "prompt": "art by Bernd and Hilla Becher", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernie Wrightson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernie Wrightson.jpg new file mode 100644 index 00000000..03be1686 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernie Wrightson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernie Wrightson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernie Wrightson.json new file mode 100644 index 00000000..adce06a2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bernie Wrightson.json @@ -0,0 +1,8 @@ +{ + "name": "Bernie Wrightson", + "description": "art by Bernie Wrightson", + "preview": "Bernie Wrightson.jpg", + "prompt": "art by Bernie Wrightson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Berthe Morisot.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Berthe Morisot.jpg new file mode 100644 index 00000000..7e635a2c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Berthe Morisot.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Berthe Morisot.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Berthe Morisot.json new file mode 100644 index 00000000..1caff2cb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Berthe Morisot.json @@ -0,0 +1,8 @@ +{ + "name": "Berthe Morisot", + "description": "art by Berthe Morisot", + "preview": "Berthe Morisot.jpg", + "prompt": "art by Berthe Morisot", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bill Plympton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bill Plympton.jpg new file mode 100644 index 00000000..2dae7773 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bill Plympton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bill Plympton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bill Plympton.json new file mode 100644 index 00000000..cbb02389 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bill Plympton.json @@ -0,0 +1,8 @@ +{ + "name": "Bill Plympton", + "description": "art by Bill Plympton", + "preview": "Bill Plympton.jpg", + "prompt": "art by Bill Plympton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bjarke Ingels.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bjarke Ingels.jpg new file mode 100644 index 00000000..f58039f8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bjarke Ingels.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bjarke Ingels.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bjarke Ingels.json new file mode 100644 index 00000000..b0ae6dd8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bjarke Ingels.json @@ -0,0 +1,8 @@ +{ + "name": "Bjarke Ingels", + "description": "art by Bjarke Ingels", + "preview": "Bjarke Ingels.jpg", + "prompt": "art by Bjarke Ingels", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Byerley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Byerley.jpg new file mode 100644 index 00000000..81759592 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Byerley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Byerley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Byerley.json new file mode 100644 index 00000000..6b646919 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Byerley.json @@ -0,0 +1,8 @@ +{ + "name": "Bob Byerley", + "description": "art by Bob Byerley", + "preview": "Bob Byerley.jpg", + "prompt": "art by Bob Byerley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Eggleton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Eggleton.jpg new file mode 100644 index 00000000..d9a81475 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Eggleton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Eggleton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Eggleton.json new file mode 100644 index 00000000..771a3b03 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Eggleton.json @@ -0,0 +1,8 @@ +{ + "name": "Bob Eggleton", + "description": "art by Bob Eggleton", + "preview": "Bob Eggleton.jpg", + "prompt": "art by Bob Eggleton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Ross.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Ross.jpg new file mode 100644 index 00000000..05e29fb4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Ross.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Ross.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Ross.json new file mode 100644 index 00000000..c144ec81 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bob Ross.json @@ -0,0 +1,8 @@ +{ + "name": "Bob Ross", + "description": "art by Bob Ross", + "preview": "Bob Ross.jpg", + "prompt": "art by Bob Ross", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Boris Vallejo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Boris Vallejo.jpg new file mode 100644 index 00000000..476a8ba5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Boris Vallejo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Boris Vallejo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Boris Vallejo.json new file mode 100644 index 00000000..b389badc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Boris Vallejo.json @@ -0,0 +1,8 @@ +{ + "name": "Boris Vallejo", + "description": "art by Boris Vallejo", + "preview": "Boris Vallejo.jpg", + "prompt": "art by Boris Vallejo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brandon Woelfel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brandon Woelfel.jpg new file mode 100644 index 00000000..35b5c823 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brandon Woelfel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brandon Woelfel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brandon Woelfel.json new file mode 100644 index 00000000..ae9c2f4d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brandon Woelfel.json @@ -0,0 +1,8 @@ +{ + "name": "Brandon Woelfel", + "description": "art by Brandon Woelfel", + "preview": "Brandon Woelfel.jpg", + "prompt": "art by Brandon Woelfel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Despain.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Despain.jpg new file mode 100644 index 00000000..439aaac2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Despain.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Despain.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Despain.json new file mode 100644 index 00000000..94f06a0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Despain.json @@ -0,0 +1,8 @@ +{ + "name": "Brian Despain", + "description": "art by Brian Despain", + "preview": "Brian Despain.jpg", + "prompt": "art by Brian Despain", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Kesinger.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Kesinger.jpg new file mode 100644 index 00000000..6ef1f3d5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Kesinger.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Kesinger.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Kesinger.json new file mode 100644 index 00000000..ac727e14 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brian Kesinger.json @@ -0,0 +1,8 @@ +{ + "name": "Brian Kesinger", + "description": "art by Brian Kesinger", + "preview": "Brian Kesinger.jpg", + "prompt": "art by Brian Kesinger", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brothers Hildebrandt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brothers Hildebrandt.jpg new file mode 100644 index 00000000..c8fdb10b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brothers Hildebrandt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Brothers Hildebrandt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brothers Hildebrandt.json new file mode 100644 index 00000000..9b0b82a3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Brothers Hildebrandt.json @@ -0,0 +1,8 @@ +{ + "name": "Brothers Hildebrandt", + "description": "art by Brothers Hildebrandt", + "preview": "Brothers Hildebrandt.jpg", + "prompt": "art by Brothers Hildebrandt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Nauman.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Nauman.jpg new file mode 100644 index 00000000..bbf9c6f4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Nauman.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Nauman.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Nauman.json new file mode 100644 index 00000000..a75b52f0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Nauman.json @@ -0,0 +1,8 @@ +{ + "name": "Bruce Nauman", + "description": "art by Bruce Nauman", + "preview": "Bruce Nauman.jpg", + "prompt": "art by Bruce Nauman", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Pennington.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Pennington.jpg new file mode 100644 index 00000000..0a56b8bc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Pennington.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Pennington.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Pennington.json new file mode 100644 index 00000000..2e4336b4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruce Pennington.json @@ -0,0 +1,8 @@ +{ + "name": "Bruce Pennington", + "description": "art by Bruce Pennington", + "preview": "Bruce Pennington.jpg", + "prompt": "art by Bruce Pennington", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruno Taut.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruno Taut.jpg new file mode 100644 index 00000000..bf0c59cc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruno Taut.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruno Taut.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruno Taut.json new file mode 100644 index 00000000..017d3d50 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Bruno Taut.json @@ -0,0 +1,8 @@ +{ + "name": "Bruno Taut", + "description": "art by Bruno Taut", + "preview": "Bruno Taut.jpg", + "prompt": "art by Bruno Taut", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Claudel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Claudel.jpg new file mode 100644 index 00000000..92aa88b6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Claudel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Claudel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Claudel.json new file mode 100644 index 00000000..5f42ad32 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Claudel.json @@ -0,0 +1,8 @@ +{ + "name": "Camille Claudel", + "description": "art by Camille Claudel", + "preview": "Camille Claudel.jpg", + "prompt": "art by Camille Claudel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Corot.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Corot.jpg new file mode 100644 index 00000000..c88114cc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Corot.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Corot.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Corot.json new file mode 100644 index 00000000..19e16908 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Corot.json @@ -0,0 +1,8 @@ +{ + "name": "Camille Corot", + "description": "art by Camille Corot", + "preview": "Camille Corot.jpg", + "prompt": "art by Camille Corot", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Pissarro.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Pissarro.jpg new file mode 100644 index 00000000..d6bf6364 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Pissarro.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Pissarro.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Pissarro.json new file mode 100644 index 00000000..76897f38 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Camille Pissarro.json @@ -0,0 +1,8 @@ +{ + "name": "Camille Pissarro", + "description": "art by Camille Pissarro", + "preview": "Camille Pissarro.jpg", + "prompt": "art by Camille Pissarro", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Canaletto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Canaletto.jpg new file mode 100644 index 00000000..af8b4aeb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Canaletto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Canaletto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Canaletto.json new file mode 100644 index 00000000..c42a1985 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Canaletto.json @@ -0,0 +1,8 @@ +{ + "name": "Canaletto", + "description": "art by Canaletto", + "preview": "Canaletto.jpg", + "prompt": "art by Canaletto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Candido Portinari.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Candido Portinari.jpg new file mode 100644 index 00000000..398058f1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Candido Portinari.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Candido Portinari.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Candido Portinari.json new file mode 100644 index 00000000..c771ec49 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Candido Portinari.json @@ -0,0 +1,8 @@ +{ + "name": "Candido Portinari", + "description": "art by Candido Portinari", + "preview": "Candido Portinari.jpg", + "prompt": "art by Candido Portinari", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Caravaggio.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caravaggio.jpg new file mode 100644 index 00000000..dc91cd4c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caravaggio.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Caravaggio.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caravaggio.json new file mode 100644 index 00000000..267bec57 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caravaggio.json @@ -0,0 +1,8 @@ +{ + "name": "Caravaggio", + "description": "art by Caravaggio", + "preview": "Caravaggio.jpg", + "prompt": "art by Caravaggio", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Holsoe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Holsoe.jpg new file mode 100644 index 00000000..8f9c8784 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Holsoe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Holsoe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Holsoe.json new file mode 100644 index 00000000..d73c9a8f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Holsoe.json @@ -0,0 +1,8 @@ +{ + "name": "Carl Holsoe", + "description": "art by Carl Holsoe", + "preview": "Carl Holsoe.jpg", + "prompt": "art by Carl Holsoe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Larsson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Larsson.jpg new file mode 100644 index 00000000..f8cbb0a3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Larsson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Larsson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Larsson.json new file mode 100644 index 00000000..5afc6673 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carl Larsson.json @@ -0,0 +1,8 @@ +{ + "name": "Carl Larsson", + "description": "art by Carl Larsson", + "preview": "Carl Larsson.jpg", + "prompt": "art by Carl Larsson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Carne Griffiths.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carne Griffiths.jpg new file mode 100644 index 00000000..04ebcf65 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carne Griffiths.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Carne Griffiths.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carne Griffiths.json new file mode 100644 index 00000000..340eeb13 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Carne Griffiths.json @@ -0,0 +1,8 @@ +{ + "name": "Carne Griffiths", + "description": "art by Carne Griffiths", + "preview": "Carne Griffiths.jpg", + "prompt": "art by Carne Griffiths", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Caspar David Friedrich.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caspar David Friedrich.jpg new file mode 100644 index 00000000..8ab3e07a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caspar David Friedrich.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Caspar David Friedrich.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caspar David Friedrich.json new file mode 100644 index 00000000..4963a59b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Caspar David Friedrich.json @@ -0,0 +1,8 @@ +{ + "name": "Caspar David Friedrich", + "description": "art by Caspar David Friedrich", + "preview": "Caspar David Friedrich.jpg", + "prompt": "art by Caspar David Friedrich", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chaim Soutine.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chaim Soutine.jpg new file mode 100644 index 00000000..a74b5d54 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chaim Soutine.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chaim Soutine.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chaim Soutine.json new file mode 100644 index 00000000..78c1b0c4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chaim Soutine.json @@ -0,0 +1,8 @@ +{ + "name": "Chaim Soutine", + "description": "art by Chaim Soutine", + "preview": "Chaim Soutine.jpg", + "prompt": "art by Chaim Soutine", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Blackman.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Blackman.jpg new file mode 100644 index 00000000..5f1d877a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Blackman.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Blackman.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Blackman.json new file mode 100644 index 00000000..e3018bc7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Blackman.json @@ -0,0 +1,8 @@ +{ + "name": "Charles Blackman", + "description": "art by Charles Blackman", + "preview": "Charles Blackman.jpg", + "prompt": "art by Charles Blackman", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Demuth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Demuth.jpg new file mode 100644 index 00000000..1f7d7ef4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Demuth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Demuth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Demuth.json new file mode 100644 index 00000000..506b2c95 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Demuth.json @@ -0,0 +1,8 @@ +{ + "name": "Charles Demuth", + "description": "art by Charles Demuth", + "preview": "Charles Demuth.jpg", + "prompt": "art by Charles Demuth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles E. Burchfield.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles E. Burchfield.jpg new file mode 100644 index 00000000..4f2b27b5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles E. Burchfield.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles E. Burchfield.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles E. Burchfield.json new file mode 100644 index 00000000..fe9a4c20 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles E. Burchfield.json @@ -0,0 +1,8 @@ +{ + "name": "Charles E. Burchfield", + "description": "art by Charles E. Burchfield", + "preview": "Charles E. Burchfield.jpg", + "prompt": "art by Charles E. Burchfield", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Eames.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Eames.jpg new file mode 100644 index 00000000..bd5aff01 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Eames.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Eames.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Eames.json new file mode 100644 index 00000000..83bbf1dd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Eames.json @@ -0,0 +1,8 @@ +{ + "name": "Charles Eames", + "description": "art by Charles Eames", + "preview": "Charles Eames.jpg", + "prompt": "art by Charles Eames", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Rennie Mackintosh.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Rennie Mackintosh.jpg new file mode 100644 index 00000000..8916903d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Rennie Mackintosh.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Rennie Mackintosh.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Rennie Mackintosh.json new file mode 100644 index 00000000..162a36ff --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Charles Rennie Mackintosh.json @@ -0,0 +1,8 @@ +{ + "name": "Charles Rennie Mackintosh", + "description": "art by Charles Rennie Mackintosh", + "preview": "Charles Rennie Mackintosh.jpg", + "prompt": "art by Charles Rennie Mackintosh", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chesley Bonestell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chesley Bonestell.jpg new file mode 100644 index 00000000..92702f11 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chesley Bonestell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chesley Bonestell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chesley Bonestell.json new file mode 100644 index 00000000..dcae68dc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chesley Bonestell.json @@ -0,0 +1,8 @@ +{ + "name": "Chesley Bonestell", + "description": "art by Chesley Bonestell", + "preview": "Chesley Bonestell.jpg", + "prompt": "art by Chesley Bonestell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chiharu Shiota.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chiharu Shiota.jpg new file mode 100644 index 00000000..63c909b3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chiharu Shiota.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chiharu Shiota.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chiharu Shiota.json new file mode 100644 index 00000000..2f2c6b12 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chiharu Shiota.json @@ -0,0 +1,8 @@ +{ + "name": "Chiharu Shiota", + "description": "art by Chiharu Shiota", + "preview": "Chiharu Shiota.jpg", + "prompt": "art by Chiharu Shiota", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Childe Hassam.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Childe Hassam.jpg new file mode 100644 index 00000000..2d68ed31 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Childe Hassam.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Childe Hassam.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Childe Hassam.json new file mode 100644 index 00000000..ba9e3614 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Childe Hassam.json @@ -0,0 +1,8 @@ +{ + "name": "Childe Hassam", + "description": "art by Childe Hassam", + "preview": "Childe Hassam.jpg", + "prompt": "art by Childe Hassam", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Foss.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Foss.jpg new file mode 100644 index 00000000..aaa0ec68 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Foss.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Foss.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Foss.json new file mode 100644 index 00000000..e4bd4c12 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Foss.json @@ -0,0 +1,8 @@ +{ + "name": "Chris Foss", + "description": "art by Chris Foss", + "preview": "Chris Foss.jpg", + "prompt": "art by Chris Foss", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Mars.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Mars.jpg new file mode 100644 index 00000000..4004f711 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Mars.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Mars.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Mars.json new file mode 100644 index 00000000..c4e6b810 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Mars.json @@ -0,0 +1,8 @@ +{ + "name": "Chris Mars", + "description": "art by Chris Mars", + "preview": "Chris Mars.jpg", + "prompt": "art by Chris Mars", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Menges.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Menges.jpg new file mode 100644 index 00000000..64cfbb16 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Menges.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Menges.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Menges.json new file mode 100644 index 00000000..80af35c5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Menges.json @@ -0,0 +1,8 @@ +{ + "name": "Chris Menges", + "description": "art by Chris Menges", + "preview": "Chris Menges.jpg", + "prompt": "art by Chris Menges", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Moore.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Moore.jpg new file mode 100644 index 00000000..58ab9a09 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Moore.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Moore.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Moore.json new file mode 100644 index 00000000..9ad5c929 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Chris Moore.json @@ -0,0 +1,8 @@ +{ + "name": "Chris Moore", + "description": "art by Chris Moore", + "preview": "Chris Moore.jpg", + "prompt": "art by Chris Moore", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Christopher Doyle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Christopher Doyle.jpg new file mode 100644 index 00000000..1c0a1a00 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Christopher Doyle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Christopher Doyle.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Christopher Doyle.json new file mode 100644 index 00000000..72b0e49e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Christopher Doyle.json @@ -0,0 +1,8 @@ +{ + "name": "Christopher Doyle", + "description": "art by Christopher Doyle", + "preview": "Christopher Doyle.jpg", + "prompt": "art by Christopher Doyle", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Cindy Sherman.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cindy Sherman.jpg new file mode 100644 index 00000000..3c8824f4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cindy Sherman.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Cindy Sherman.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cindy Sherman.json new file mode 100644 index 00000000..39b1e919 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cindy Sherman.json @@ -0,0 +1,8 @@ +{ + "name": "Cindy Sherman", + "description": "art by Cindy Sherman", + "preview": "Cindy Sherman.jpg", + "prompt": "art by Cindy Sherman", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clarence Holbrook Carter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clarence Holbrook Carter.jpg new file mode 100644 index 00000000..f582abd9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clarence Holbrook Carter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clarence Holbrook Carter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clarence Holbrook Carter.json new file mode 100644 index 00000000..1791a2b4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clarence Holbrook Carter.json @@ -0,0 +1,8 @@ +{ + "name": "Clarence Holbrook Carter", + "description": "art by Clarence Holbrook Carter", + "preview": "Clarence Holbrook Carter.jpg", + "prompt": "art by Clarence Holbrook Carter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Cahun.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Cahun.jpg new file mode 100644 index 00000000..952ac552 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Cahun.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Cahun.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Cahun.json new file mode 100644 index 00000000..49e38fd0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Cahun.json @@ -0,0 +1,8 @@ +{ + "name": "Claude Cahun", + "description": "art by Claude Cahun", + "preview": "Claude Cahun.jpg", + "prompt": "art by Claude Cahun", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Lorrain.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Lorrain.jpg new file mode 100644 index 00000000..1bd9196c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Lorrain.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Lorrain.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Lorrain.json new file mode 100644 index 00000000..4c1beea5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Lorrain.json @@ -0,0 +1,8 @@ +{ + "name": "Claude Lorrain", + "description": "art by Claude Lorrain", + "preview": "Claude Lorrain.jpg", + "prompt": "art by Claude Lorrain", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Monet.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Monet.jpg new file mode 100644 index 00000000..12b48872 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Monet.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Monet.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Monet.json new file mode 100644 index 00000000..52575ba8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Claude Monet.json @@ -0,0 +1,8 @@ +{ + "name": "Claude Monet", + "description": "art by Claude Monet", + "preview": "Claude Monet.jpg", + "prompt": "art by Claude Monet", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Barker.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Barker.jpg new file mode 100644 index 00000000..2ed14ecb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Barker.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Barker.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Barker.json new file mode 100644 index 00000000..097b3440 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Barker.json @@ -0,0 +1,8 @@ +{ + "name": "Clive Barker", + "description": "art by Clive Barker", + "preview": "Clive Barker.jpg", + "prompt": "art by Clive Barker", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Madgwick.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Madgwick.jpg new file mode 100644 index 00000000..392cbf4d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Madgwick.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Madgwick.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Madgwick.json new file mode 100644 index 00000000..a69579e0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clive Madgwick.json @@ -0,0 +1,8 @@ +{ + "name": "Clive Madgwick", + "description": "art by Clive Madgwick", + "preview": "Clive Madgwick.jpg", + "prompt": "art by Clive Madgwick", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clovis Trouille.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clovis Trouille.jpg new file mode 100644 index 00000000..246391ed Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clovis Trouille.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clovis Trouille.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clovis Trouille.json new file mode 100644 index 00000000..7154bb52 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clovis Trouille.json @@ -0,0 +1,8 @@ +{ + "name": "Clovis Trouille", + "description": "art by Clovis Trouille", + "preview": "Clovis Trouille.jpg", + "prompt": "art by Clovis Trouille", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clyde Caldwell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clyde Caldwell.jpg new file mode 100644 index 00000000..d3eb741c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clyde Caldwell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Clyde Caldwell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clyde Caldwell.json new file mode 100644 index 00000000..4e72aeb3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Clyde Caldwell.json @@ -0,0 +1,8 @@ +{ + "name": "Clyde Caldwell", + "description": "art by Clyde Caldwell", + "preview": "Clyde Caldwell.jpg", + "prompt": "art by Clyde Caldwell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Coby Whitmore.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coby Whitmore.jpg new file mode 100644 index 00000000..1a39f842 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coby Whitmore.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Coby Whitmore.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coby Whitmore.json new file mode 100644 index 00000000..82d269c5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coby Whitmore.json @@ -0,0 +1,8 @@ +{ + "name": "Coby Whitmore", + "description": "art by Coby Whitmore", + "preview": "Coby Whitmore.jpg", + "prompt": "art by Coby Whitmore", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Codex Seraphinianus.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Codex Seraphinianus.jpg new file mode 100644 index 00000000..02e649d9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Codex Seraphinianus.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Codex Seraphinianus.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Codex Seraphinianus.json new file mode 100644 index 00000000..bdba1c43 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Codex Seraphinianus.json @@ -0,0 +1,8 @@ +{ + "name": "Codex Seraphinianus", + "description": "art by Codex Seraphinianus", + "preview": "Codex Seraphinianus.jpg", + "prompt": "art by Codex Seraphinianus", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Coles Phillips.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coles Phillips.jpg new file mode 100644 index 00000000..e0357b83 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coles Phillips.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Coles Phillips.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coles Phillips.json new file mode 100644 index 00000000..05fd275e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Coles Phillips.json @@ -0,0 +1,8 @@ +{ + "name": "Coles Phillips", + "description": "art by Coles Phillips", + "preview": "Coles Phillips.jpg", + "prompt": "art by Coles Phillips", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Conrad Roset.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Conrad Roset.jpg new file mode 100644 index 00000000..fdca26b0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Conrad Roset.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Conrad Roset.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Conrad Roset.json new file mode 100644 index 00000000..33fa4505 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Conrad Roset.json @@ -0,0 +1,8 @@ +{ + "name": "Conrad Roset", + "description": "art by Conrad Roset", + "preview": "Conrad Roset.jpg", + "prompt": "art by Conrad Roset", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Craig Mullins.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Craig Mullins.jpg new file mode 100644 index 00000000..574d38ef Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Craig Mullins.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Craig Mullins.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Craig Mullins.json new file mode 100644 index 00000000..04ffbd8d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Craig Mullins.json @@ -0,0 +1,8 @@ +{ + "name": "Craig Mullins", + "description": "art by Craig Mullins", + "preview": "Craig Mullins.jpg", + "prompt": "art by Craig Mullins", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Cuno Amiet.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cuno Amiet.jpg new file mode 100644 index 00000000..73e2400f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cuno Amiet.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Cuno Amiet.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cuno Amiet.json new file mode 100644 index 00000000..bd9a7eed --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Cuno Amiet.json @@ -0,0 +1,8 @@ +{ + "name": "Cuno Amiet", + "description": "art by Cuno Amiet", + "preview": "Cuno Amiet.jpg", + "prompt": "art by Cuno Amiet", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dale Chihuly.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dale Chihuly.jpg new file mode 100644 index 00000000..6279acf8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dale Chihuly.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dale Chihuly.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dale Chihuly.json new file mode 100644 index 00000000..57bca4bd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dale Chihuly.json @@ -0,0 +1,8 @@ +{ + "name": "Dale Chihuly", + "description": "art by Dale Chihuly", + "preview": "Dale Chihuly.jpg", + "prompt": "art by Dale Chihuly", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Damien Hirst.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Damien Hirst.jpg new file mode 100644 index 00000000..69c21794 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Damien Hirst.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Damien Hirst.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Damien Hirst.json new file mode 100644 index 00000000..5ba16116 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Damien Hirst.json @@ -0,0 +1,8 @@ +{ + "name": "Damien Hirst", + "description": "art by Damien Hirst", + "preview": "Damien Hirst.jpg", + "prompt": "art by Damien Hirst", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Flavin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Flavin.jpg new file mode 100644 index 00000000..a8864234 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Flavin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Flavin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Flavin.json new file mode 100644 index 00000000..796de6ea --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Flavin.json @@ -0,0 +1,8 @@ +{ + "name": "Dan Flavin", + "description": "art by Dan Flavin", + "preview": "Dan Flavin.jpg", + "prompt": "art by Dan Flavin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Mumford.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Mumford.jpg new file mode 100644 index 00000000..957d5d66 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Mumford.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Mumford.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Mumford.json new file mode 100644 index 00000000..ccff628c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dan Mumford.json @@ -0,0 +1,8 @@ +{ + "name": "Dan Mumford", + "description": "art by Dan Mumford", + "preview": "Dan Mumford.jpg", + "prompt": "art by Dan Mumford", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Gerhartz.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Gerhartz.jpg new file mode 100644 index 00000000..1895045b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Gerhartz.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Gerhartz.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Gerhartz.json new file mode 100644 index 00000000..bbad6960 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Gerhartz.json @@ -0,0 +1,8 @@ +{ + "name": "Daniel Gerhartz", + "description": "art by Daniel Gerhartz", + "preview": "Daniel Gerhartz.jpg", + "prompt": "art by Daniel Gerhartz", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Merriam.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Merriam.jpg new file mode 100644 index 00000000..2fa5871f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Merriam.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Merriam.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Merriam.json new file mode 100644 index 00000000..99d6200b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Merriam.json @@ -0,0 +1,8 @@ +{ + "name": "Daniel Merriam", + "description": "art by Daniel Merriam", + "preview": "Daniel Merriam.jpg", + "prompt": "art by Daniel Merriam", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Ridgway Knight.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Ridgway Knight.jpg new file mode 100644 index 00000000..56e06d38 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Ridgway Knight.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Ridgway Knight.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Ridgway Knight.json new file mode 100644 index 00000000..ae103663 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Daniel Ridgway Knight.json @@ -0,0 +1,8 @@ +{ + "name": "Daniel Ridgway Knight", + "description": "art by Daniel Ridgway Knight", + "preview": "Daniel Ridgway Knight.jpg", + "prompt": "art by Daniel Ridgway Knight", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave Gibbons.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave Gibbons.jpg new file mode 100644 index 00000000..fbcdd710 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave Gibbons.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave Gibbons.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave Gibbons.json new file mode 100644 index 00000000..26298d02 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave Gibbons.json @@ -0,0 +1,8 @@ +{ + "name": "Dave Gibbons", + "description": "art by Dave Gibbons", + "preview": "Dave Gibbons.jpg", + "prompt": "art by Dave Gibbons", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave McKean.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave McKean.jpg new file mode 100644 index 00000000..3c659d32 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave McKean.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave McKean.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave McKean.json new file mode 100644 index 00000000..b942ed5a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dave McKean.json @@ -0,0 +1,8 @@ +{ + "name": "Dave McKean", + "description": "art by Dave McKean", + "preview": "Dave McKean.jpg", + "prompt": "art by Dave McKean", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Alfaro Siqueiros.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Alfaro Siqueiros.jpg new file mode 100644 index 00000000..a8cf4dff Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Alfaro Siqueiros.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Alfaro Siqueiros.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Alfaro Siqueiros.json new file mode 100644 index 00000000..d0609ca9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Alfaro Siqueiros.json @@ -0,0 +1,8 @@ +{ + "name": "David Alfaro Siqueiros", + "description": "art by David Alfaro Siqueiros", + "preview": "David Alfaro Siqueiros.jpg", + "prompt": "art by David Alfaro Siqueiros", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David B. Mattingly.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/David B. Mattingly.jpg new file mode 100644 index 00000000..0758a89a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/David B. Mattingly.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David B. Mattingly.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/David B. Mattingly.json new file mode 100644 index 00000000..b9b8fbf5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/David B. Mattingly.json @@ -0,0 +1,8 @@ +{ + "name": "David B. Mattingly", + "description": "art by David B. Mattingly", + "preview": "David B. Mattingly.jpg", + "prompt": "art by David B. Mattingly", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Burliuk.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Burliuk.jpg new file mode 100644 index 00000000..1e5bf3f7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Burliuk.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Burliuk.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Burliuk.json new file mode 100644 index 00000000..7006d21d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Burliuk.json @@ -0,0 +1,8 @@ +{ + "name": "David Burliuk", + "description": "art by David Burliuk", + "preview": "David Burliuk.jpg", + "prompt": "art by David Burliuk", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Hockney.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Hockney.jpg new file mode 100644 index 00000000..bac63d6d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Hockney.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Hockney.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Hockney.json new file mode 100644 index 00000000..a34ea0cb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Hockney.json @@ -0,0 +1,8 @@ +{ + "name": "David Hockney", + "description": "art by David Hockney", + "preview": "David Hockney.jpg", + "prompt": "art by David Hockney", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Park.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Park.jpg new file mode 100644 index 00000000..f959d4a0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Park.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/David Park.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Park.json new file mode 100644 index 00000000..0a32bed3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/David Park.json @@ -0,0 +1,8 @@ +{ + "name": "David Park", + "description": "art by David Park", + "preview": "David Park.jpg", + "prompt": "art by David Park", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dean Ellis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dean Ellis.jpg new file mode 100644 index 00000000..c19d705d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dean Ellis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dean Ellis.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dean Ellis.json new file mode 100644 index 00000000..6538207d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dean Ellis.json @@ -0,0 +1,8 @@ +{ + "name": "Dean Ellis", + "description": "art by Dean Ellis", + "preview": "Dean Ellis.jpg", + "prompt": "art by Dean Ellis", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dennis Stock.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dennis Stock.jpg new file mode 100644 index 00000000..dc62a4db Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dennis Stock.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dennis Stock.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dennis Stock.json new file mode 100644 index 00000000..38c1dd50 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dennis Stock.json @@ -0,0 +1,8 @@ +{ + "name": "Dennis Stock", + "description": "art by Dennis Stock", + "preview": "Dennis Stock.jpg", + "prompt": "art by Dennis Stock", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Di Cavalcanti.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Di Cavalcanti.jpg new file mode 100644 index 00000000..c307911a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Di Cavalcanti.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Di Cavalcanti.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Di Cavalcanti.json new file mode 100644 index 00000000..54b3c12f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Di Cavalcanti.json @@ -0,0 +1,8 @@ +{ + "name": "Di Cavalcanti", + "description": "art by Di Cavalcanti", + "preview": "Di Cavalcanti.jpg", + "prompt": "art by Di Cavalcanti", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Diane Arbus.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diane Arbus.jpg new file mode 100644 index 00000000..1eca6788 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diane Arbus.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Diane Arbus.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diane Arbus.json new file mode 100644 index 00000000..69040165 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diane Arbus.json @@ -0,0 +1,8 @@ +{ + "name": "Diane Arbus", + "description": "art by Diane Arbus", + "preview": "Diane Arbus.jpg", + "prompt": "art by Diane Arbus", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Diego Velazquez.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diego Velazquez.jpg new file mode 100644 index 00000000..561ba9fe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diego Velazquez.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Diego Velazquez.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diego Velazquez.json new file mode 100644 index 00000000..adb651d4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Diego Velazquez.json @@ -0,0 +1,8 @@ +{ + "name": "Diego Velazquez", + "description": "art by Diego Velazquez", + "preview": "Diego Velazquez.jpg", + "prompt": "art by Diego Velazquez", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dion Beebe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dion Beebe.jpg new file mode 100644 index 00000000..1ae2fc77 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dion Beebe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dion Beebe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dion Beebe.json new file mode 100644 index 00000000..c93c8314 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dion Beebe.json @@ -0,0 +1,8 @@ +{ + "name": "Dion Beebe", + "description": "art by Dion Beebe", + "preview": "Dion Beebe.jpg", + "prompt": "art by Dion Beebe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Bluth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Bluth.jpg new file mode 100644 index 00000000..644e5941 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Bluth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Bluth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Bluth.json new file mode 100644 index 00000000..d39d6844 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Bluth.json @@ -0,0 +1,8 @@ +{ + "name": "Don Bluth", + "description": "art by Don Bluth", + "preview": "Don Bluth.jpg", + "prompt": "art by Don Bluth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Maitz.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Maitz.jpg new file mode 100644 index 00000000..4a2de1de Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Maitz.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Maitz.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Maitz.json new file mode 100644 index 00000000..7a836a4d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Don Maitz.json @@ -0,0 +1,8 @@ +{ + "name": "Don Maitz", + "description": "art by Don Maitz", + "preview": "Don Maitz.jpg", + "prompt": "art by Don Maitz", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Donato Giancola.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Donato Giancola.jpg new file mode 100644 index 00000000..ed8a00d4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Donato Giancola.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Donato Giancola.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Donato Giancola.json new file mode 100644 index 00000000..e3e69dba --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Donato Giancola.json @@ -0,0 +1,8 @@ +{ + "name": "Donato Giancola", + "description": "art by Donato Giancola", + "preview": "Donato Giancola.jpg", + "prompt": "art by Donato Giancola", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dora Maar.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dora Maar.jpg new file mode 100644 index 00000000..7cc489dc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dora Maar.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dora Maar.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dora Maar.json new file mode 100644 index 00000000..b334349c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dora Maar.json @@ -0,0 +1,8 @@ +{ + "name": "Dora Maar", + "description": "art by Dora Maar", + "preview": "Dora Maar.jpg", + "prompt": "art by Dora Maar", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Lange.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Lange.jpg new file mode 100644 index 00000000..cff0f06b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Lange.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Lange.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Lange.json new file mode 100644 index 00000000..0386cb76 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Lange.json @@ -0,0 +1,8 @@ +{ + "name": "Dorothea Lange", + "description": "art by Dorothea Lange", + "preview": "Dorothea Lange.jpg", + "prompt": "art by Dorothea Lange", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Tanning.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Tanning.jpg new file mode 100644 index 00000000..655f2a8c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Tanning.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Tanning.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Tanning.json new file mode 100644 index 00000000..10528961 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothea Tanning.json @@ -0,0 +1,8 @@ +{ + "name": "Dorothea Tanning", + "description": "art by Dorothea Tanning", + "preview": "Dorothea Tanning.jpg", + "prompt": "art by Dorothea Tanning", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothy Lathrop.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothy Lathrop.jpg new file mode 100644 index 00000000..1a163476 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothy Lathrop.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothy Lathrop.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothy Lathrop.json new file mode 100644 index 00000000..11e9c3d7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Dorothy Lathrop.json @@ -0,0 +1,8 @@ +{ + "name": "Dorothy Lathrop", + "description": "art by Dorothy Lathrop", + "preview": "Dorothy Lathrop.jpg", + "prompt": "art by Dorothy Lathrop", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Doug Chiang.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Doug Chiang.jpg new file mode 100644 index 00000000..573e94ce Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Doug Chiang.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Doug Chiang.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Doug Chiang.json new file mode 100644 index 00000000..5a6b8734 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Doug Chiang.json @@ -0,0 +1,8 @@ +{ + "name": "Doug Chiang", + "description": "art by Doug Chiang", + "preview": "Doug Chiang.jpg", + "prompt": "art by Doug Chiang", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/E.H. Shepard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/E.H. Shepard.jpg new file mode 100644 index 00000000..c5fa7e57 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/E.H. Shepard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/E.H. Shepard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/E.H. Shepard.json new file mode 100644 index 00000000..9a181c6a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/E.H. Shepard.json @@ -0,0 +1,8 @@ +{ + "name": "E.H. Shepard", + "description": "art by E.H. Shepard", + "preview": "E.H. Shepard.jpg", + "prompt": "art by E.H. Shepard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Earl Norem.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Earl Norem.jpg new file mode 100644 index 00000000..14df2cda Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Earl Norem.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Earl Norem.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Earl Norem.json new file mode 100644 index 00000000..cc32eb78 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Earl Norem.json @@ -0,0 +1,8 @@ +{ + "name": "Earl Norem", + "description": "art by Earl Norem", + "preview": "Earl Norem.jpg", + "prompt": "art by Earl Norem", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Binkley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Binkley.jpg new file mode 100644 index 00000000..3ffbfa90 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Binkley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Binkley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Binkley.json new file mode 100644 index 00000000..08a00ad4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Binkley.json @@ -0,0 +1,8 @@ +{ + "name": "Ed Binkley", + "description": "art by Ed Binkley", + "preview": "Ed Binkley.jpg", + "prompt": "art by Ed Binkley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Emshwiller.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Emshwiller.jpg new file mode 100644 index 00000000..9ebefe31 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Emshwiller.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Emshwiller.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Emshwiller.json new file mode 100644 index 00000000..f74d9c42 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Emshwiller.json @@ -0,0 +1,8 @@ +{ + "name": "Ed Emshwiller", + "description": "art by Ed Emshwiller", + "preview": "Ed Emshwiller.jpg", + "prompt": "art by Ed Emshwiller", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Mell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Mell.jpg new file mode 100644 index 00000000..4b27682f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Mell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Mell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Mell.json new file mode 100644 index 00000000..27b26ccb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ed Mell.json @@ -0,0 +1,8 @@ +{ + "name": "Ed Mell", + "description": "art by Ed Mell", + "preview": "Ed Mell.jpg", + "prompt": "art by Ed Mell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edgar Degas.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edgar Degas.jpg new file mode 100644 index 00000000..394f4524 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edgar Degas.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edgar Degas.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edgar Degas.json new file mode 100644 index 00000000..17b4e25a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edgar Degas.json @@ -0,0 +1,8 @@ +{ + "name": "Edgar Degas", + "description": "art by Edgar Degas", + "preview": "Edgar Degas.jpg", + "prompt": "art by Edgar Degas", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edmund Leighton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edmund Leighton.jpg new file mode 100644 index 00000000..626f454a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edmund Leighton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edmund Leighton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edmund Leighton.json new file mode 100644 index 00000000..b00c6e56 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edmund Leighton.json @@ -0,0 +1,8 @@ +{ + "name": "Edmund Leighton", + "description": "art by Edmund Leighton", + "preview": "Edmund Leighton.jpg", + "prompt": "art by Edmund Leighton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edvard Munch.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edvard Munch.jpg new file mode 100644 index 00000000..486d9cfa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edvard Munch.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edvard Munch.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edvard Munch.json new file mode 100644 index 00000000..5aec5642 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edvard Munch.json @@ -0,0 +1,8 @@ +{ + "name": "Edvard Munch", + "description": "art by Edvard Munch", + "preview": "Edvard Munch.jpg", + "prompt": "art by Edvard Munch", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Hopper.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Hopper.jpg new file mode 100644 index 00000000..0db3d2ab Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Hopper.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Hopper.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Hopper.json new file mode 100644 index 00000000..0d272e06 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Hopper.json @@ -0,0 +1,8 @@ +{ + "name": "Edward Hopper", + "description": "art by Edward Hopper", + "preview": "Edward Hopper.jpg", + "prompt": "art by Edward Hopper", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Weston.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Weston.jpg new file mode 100644 index 00000000..fe36da64 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Weston.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Weston.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Weston.json new file mode 100644 index 00000000..1c23a1d4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edward Weston.json @@ -0,0 +1,8 @@ +{ + "name": "Edward Weston", + "description": "art by Edward Weston", + "preview": "Edward Weston.jpg", + "prompt": "art by Edward Weston", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edwin Austen Abbey.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edwin Austen Abbey.jpg new file mode 100644 index 00000000..99da13ae Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edwin Austen Abbey.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Edwin Austen Abbey.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edwin Austen Abbey.json new file mode 100644 index 00000000..48adacee --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Edwin Austen Abbey.json @@ -0,0 +1,8 @@ +{ + "name": "Edwin Austen Abbey", + "description": "art by Edwin Austen Abbey", + "preview": "Edwin Austen Abbey.jpg", + "prompt": "art by Edwin Austen Abbey", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Egon Schiele.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Egon Schiele.jpg new file mode 100644 index 00000000..6af8a8cd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Egon Schiele.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Egon Schiele.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Egon Schiele.json new file mode 100644 index 00000000..86949b85 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Egon Schiele.json @@ -0,0 +1,8 @@ +{ + "name": "Egon Schiele", + "description": "art by Egon Schiele", + "preview": "Egon Schiele.jpg", + "prompt": "art by Egon Schiele", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eikoh Hosoe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eikoh Hosoe.jpg new file mode 100644 index 00000000..4682659b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eikoh Hosoe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eikoh Hosoe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eikoh Hosoe.json new file mode 100644 index 00000000..a5ab1891 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eikoh Hosoe.json @@ -0,0 +1,8 @@ +{ + "name": "Eikoh Hosoe", + "description": "art by Eikoh Hosoe", + "preview": "Eikoh Hosoe.jpg", + "prompt": "art by Eikoh Hosoe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/El Greco.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/El Greco.jpg new file mode 100644 index 00000000..61873ea0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/El Greco.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/El Greco.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/El Greco.json new file mode 100644 index 00000000..d009b36d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/El Greco.json @@ -0,0 +1,8 @@ +{ + "name": "El Greco", + "description": "art by El Greco", + "preview": "El Greco.jpg", + "prompt": "art by El Greco", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Elaine de Kooning.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elaine de Kooning.jpg new file mode 100644 index 00000000..c14de79f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elaine de Kooning.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Elaine de Kooning.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elaine de Kooning.json new file mode 100644 index 00000000..f4e566f5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elaine de Kooning.json @@ -0,0 +1,8 @@ +{ + "name": "Elaine de Kooning", + "description": "art by Elaine de Kooning", + "preview": "Elaine de Kooning.jpg", + "prompt": "art by Elaine de Kooning", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ellen Jewett.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ellen Jewett.jpg new file mode 100644 index 00000000..b3355327 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ellen Jewett.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ellen Jewett.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ellen Jewett.json new file mode 100644 index 00000000..2a55788b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ellen Jewett.json @@ -0,0 +1,8 @@ +{ + "name": "Ellen Jewett", + "description": "art by Ellen Jewett", + "preview": "Ellen Jewett.jpg", + "prompt": "art by Ellen Jewett", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Elsa Beskow.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elsa Beskow.jpg new file mode 100644 index 00000000..0931b11a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elsa Beskow.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Elsa Beskow.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elsa Beskow.json new file mode 100644 index 00000000..937ffd0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Elsa Beskow.json @@ -0,0 +1,8 @@ +{ + "name": "Elsa Beskow", + "description": "art by Elsa Beskow", + "preview": "Elsa Beskow.jpg", + "prompt": "art by Elsa Beskow", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Melmoth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Melmoth.jpg new file mode 100644 index 00000000..17b0a0f2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Melmoth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Melmoth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Melmoth.json new file mode 100644 index 00000000..167e397d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Melmoth.json @@ -0,0 +1,8 @@ +{ + "name": "Emil Melmoth", + "description": "art by Emil Melmoth", + "preview": "Emil Melmoth.jpg", + "prompt": "art by Emil Melmoth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Nolde.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Nolde.jpg new file mode 100644 index 00000000..abe3e671 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Nolde.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Nolde.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Nolde.json new file mode 100644 index 00000000..49a15260 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emil Nolde.json @@ -0,0 +1,8 @@ +{ + "name": "Emil Nolde", + "description": "art by Emil Nolde", + "preview": "Emil Nolde.jpg", + "prompt": "art by Emil Nolde", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emily Carr.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emily Carr.jpg new file mode 100644 index 00000000..35cc7f11 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emily Carr.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emily Carr.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emily Carr.json new file mode 100644 index 00000000..2835100a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emily Carr.json @@ -0,0 +1,8 @@ +{ + "name": "Emily Carr", + "description": "art by Emily Carr", + "preview": "Emily Carr.jpg", + "prompt": "art by Emily Carr", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emmanuel Lubezki.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emmanuel Lubezki.jpg new file mode 100644 index 00000000..f93c1531 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emmanuel Lubezki.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Emmanuel Lubezki.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emmanuel Lubezki.json new file mode 100644 index 00000000..a01da501 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Emmanuel Lubezki.json @@ -0,0 +1,8 @@ +{ + "name": "Emmanuel Lubezki", + "description": "art by Emmanuel Lubezki", + "preview": "Emmanuel Lubezki.jpg", + "prompt": "art by Emmanuel Lubezki", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Enki Bilal.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Enki Bilal.jpg new file mode 100644 index 00000000..125f7855 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Enki Bilal.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Enki Bilal.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Enki Bilal.json new file mode 100644 index 00000000..07778209 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Enki Bilal.json @@ -0,0 +1,8 @@ +{ + "name": "Enki Bilal", + "description": "art by Enki Bilal", + "preview": "Enki Bilal.jpg", + "prompt": "art by Enki Bilal", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Gill.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Gill.jpg new file mode 100644 index 00000000..9f17ea1a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Gill.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Gill.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Gill.json new file mode 100644 index 00000000..eabf902f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Gill.json @@ -0,0 +1,8 @@ +{ + "name": "Eric Gill", + "description": "art by Eric Gill", + "preview": "Eric Gill.jpg", + "prompt": "art by Eric Gill", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Lacombe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Lacombe.jpg new file mode 100644 index 00000000..bafe9f79 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Lacombe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Lacombe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Lacombe.json new file mode 100644 index 00000000..e410cb68 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eric Lacombe.json @@ -0,0 +1,8 @@ +{ + "name": "Eric Lacombe", + "description": "art by Eric Lacombe", + "preview": "Eric Lacombe.jpg", + "prompt": "art by Eric Lacombe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Heckel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Heckel.jpg new file mode 100644 index 00000000..36610348 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Heckel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Heckel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Heckel.json new file mode 100644 index 00000000..41e6db02 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Heckel.json @@ -0,0 +1,8 @@ +{ + "name": "Erich Heckel", + "description": "art by Erich Heckel", + "preview": "Erich Heckel.jpg", + "prompt": "art by Erich Heckel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Ludwig Kirchner.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Ludwig Kirchner.jpg new file mode 100644 index 00000000..c030853f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Ludwig Kirchner.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Ludwig Kirchner.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Ludwig Kirchner.json new file mode 100644 index 00000000..15d6ce68 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Erich Ludwig Kirchner.json @@ -0,0 +1,8 @@ +{ + "name": "Erich Ludwig Kirchner", + "description": "art by Erich Ludwig Kirchner", + "preview": "Erich Ludwig Kirchner.jpg", + "prompt": "art by Erich Ludwig Kirchner", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Fuchs.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Fuchs.jpg new file mode 100644 index 00000000..ef52e9bb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Fuchs.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Fuchs.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Fuchs.json new file mode 100644 index 00000000..d72aa72e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Fuchs.json @@ -0,0 +1,8 @@ +{ + "name": "Ernst Fuchs", + "description": "art by Ernst Fuchs", + "preview": "Ernst Fuchs.jpg", + "prompt": "art by Ernst Fuchs", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Haeckel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Haeckel.jpg new file mode 100644 index 00000000..dd44e9b8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Haeckel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Haeckel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Haeckel.json new file mode 100644 index 00000000..a5dd49b3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ernst Haeckel.json @@ -0,0 +1,8 @@ +{ + "name": "Ernst Haeckel", + "description": "art by Ernst Haeckel", + "preview": "Ernst Haeckel.jpg", + "prompt": "art by Ernst Haeckel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Esao Andrews.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Esao Andrews.jpg new file mode 100644 index 00000000..d33cbcf8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Esao Andrews.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Esao Andrews.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Esao Andrews.json new file mode 100644 index 00000000..44af3915 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Esao Andrews.json @@ -0,0 +1,8 @@ +{ + "name": "Esao Andrews", + "description": "art by Esao Andrews", + "preview": "Esao Andrews.jpg", + "prompt": "art by Esao Andrews", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eugène Delacroix.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eugène Delacroix.jpg new file mode 100644 index 00000000..969d51e6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eugène Delacroix.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eugène Delacroix.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eugène Delacroix.json new file mode 100644 index 00000000..08b3aa88 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eugène Delacroix.json @@ -0,0 +1,8 @@ +{ + "name": "Eug\u00e8ne Delacroix", + "description": "art by Eug\u00e8ne Delacroix", + "preview": "Eug\u00e8ne Delacroix.jpg", + "prompt": "art by Eug\u00e8ne Delacroix", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eva Hesse.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eva Hesse.jpg new file mode 100644 index 00000000..8f372706 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eva Hesse.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eva Hesse.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eva Hesse.json new file mode 100644 index 00000000..716b8a5b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eva Hesse.json @@ -0,0 +1,8 @@ +{ + "name": "Eva Hesse", + "description": "art by Eva Hesse", + "preview": "Eva Hesse.jpg", + "prompt": "art by Eva Hesse", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Evelyn De Morgan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Evelyn De Morgan.jpg new file mode 100644 index 00000000..3d66ffa9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Evelyn De Morgan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Evelyn De Morgan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Evelyn De Morgan.json new file mode 100644 index 00000000..f831f8be --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Evelyn De Morgan.json @@ -0,0 +1,8 @@ +{ + "name": "Evelyn De Morgan", + "description": "art by Evelyn De Morgan", + "preview": "Evelyn De Morgan.jpg", + "prompt": "art by Evelyn De Morgan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eyvind Earle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eyvind Earle.jpg new file mode 100644 index 00000000..fd7ba63e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eyvind Earle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Eyvind Earle.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eyvind Earle.json new file mode 100644 index 00000000..b1ff3cd2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Eyvind Earle.json @@ -0,0 +1,8 @@ +{ + "name": "Eyvind Earle", + "description": "art by Eyvind Earle", + "preview": "Eyvind Earle.jpg", + "prompt": "art by Eyvind Earle", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fairfield Porter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fairfield Porter.jpg new file mode 100644 index 00000000..b630454e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fairfield Porter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fairfield Porter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fairfield Porter.json new file mode 100644 index 00000000..b8988c5c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fairfield Porter.json @@ -0,0 +1,8 @@ +{ + "name": "Fairfield Porter", + "description": "art by Fairfield Porter", + "preview": "Fairfield Porter.jpg", + "prompt": "art by Fairfield Porter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Farel Dalrymple.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Farel Dalrymple.jpg new file mode 100644 index 00000000..fa77bb71 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Farel Dalrymple.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Farel Dalrymple.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Farel Dalrymple.json new file mode 100644 index 00000000..27ac9834 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Farel Dalrymple.json @@ -0,0 +1,8 @@ +{ + "name": "Farel Dalrymple", + "description": "art by Farel Dalrymple", + "preview": "Farel Dalrymple.jpg", + "prompt": "art by Farel Dalrymple", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernand Léger.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernand Léger.jpg new file mode 100644 index 00000000..4adb0dfd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernand Léger.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernand Léger.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernand Léger.json new file mode 100644 index 00000000..67ca4a16 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernand Léger.json @@ -0,0 +1,8 @@ +{ + "name": "Fernand L\u00e9ger", + "description": "art by Fernand L\u00e9ger", + "preview": "Fernand L\u00e9ger.jpg", + "prompt": "art by Fernand L\u00e9ger", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernando Botero.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernando Botero.jpg new file mode 100644 index 00000000..7a968b3e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernando Botero.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernando Botero.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernando Botero.json new file mode 100644 index 00000000..9004069e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fernando Botero.json @@ -0,0 +1,8 @@ +{ + "name": "Fernando Botero", + "description": "art by Fernando Botero", + "preview": "Fernando Botero.jpg", + "prompt": "art by Fernando Botero", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Filippo Lippi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Filippo Lippi.jpg new file mode 100644 index 00000000..80228ce3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Filippo Lippi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Filippo Lippi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Filippo Lippi.json new file mode 100644 index 00000000..2078202a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Filippo Lippi.json @@ -0,0 +1,8 @@ +{ + "name": "Filippo Lippi", + "description": "art by Filippo Lippi", + "preview": "Filippo Lippi.jpg", + "prompt": "art by Filippo Lippi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Bacon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Bacon.jpg new file mode 100644 index 00000000..1cc93b12 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Bacon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Bacon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Bacon.json new file mode 100644 index 00000000..03e70c8f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Bacon.json @@ -0,0 +1,8 @@ +{ + "name": "Francis Bacon", + "description": "art by Francis Bacon", + "preview": "Francis Bacon.jpg", + "prompt": "art by Francis Bacon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Picabia.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Picabia.jpg new file mode 100644 index 00000000..6ee58d9a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Picabia.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Picabia.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Picabia.json new file mode 100644 index 00000000..c560a9be --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francis Picabia.json @@ -0,0 +1,8 @@ +{ + "name": "Francis Picabia", + "description": "art by Francis Picabia", + "preview": "Francis Picabia.jpg", + "prompt": "art by Francis Picabia", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Francisco Goya.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francisco Goya.jpg new file mode 100644 index 00000000..d5cf46ef Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francisco Goya.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Francisco Goya.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francisco Goya.json new file mode 100644 index 00000000..836e76a5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Francisco Goya.json @@ -0,0 +1,8 @@ +{ + "name": "Francisco Goya", + "description": "art by Francisco Goya", + "preview": "Francisco Goya.jpg", + "prompt": "art by Francisco Goya", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Auerbach.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Auerbach.jpg new file mode 100644 index 00000000..4b460f72 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Auerbach.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Auerbach.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Auerbach.json new file mode 100644 index 00000000..55b373e7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Auerbach.json @@ -0,0 +1,8 @@ +{ + "name": "Frank Auerbach", + "description": "art by Frank Auerbach", + "preview": "Frank Auerbach.jpg", + "prompt": "art by Frank Auerbach", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Frazetta.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Frazetta.jpg new file mode 100644 index 00000000..fe6aa335 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Frazetta.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Frazetta.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Frazetta.json new file mode 100644 index 00000000..18a2e79f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Frazetta.json @@ -0,0 +1,8 @@ +{ + "name": "Frank Frazetta", + "description": "art by Frank Frazetta", + "preview": "Frank Frazetta.jpg", + "prompt": "art by Frank Frazetta", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Lloyd Wright.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Lloyd Wright.jpg new file mode 100644 index 00000000..9b4c8b57 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Lloyd Wright.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Lloyd Wright.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Lloyd Wright.json new file mode 100644 index 00000000..c8506467 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Lloyd Wright.json @@ -0,0 +1,8 @@ +{ + "name": "Frank Lloyd Wright", + "description": "art by Frank Lloyd Wright", + "preview": "Frank Lloyd Wright.jpg", + "prompt": "art by Frank Lloyd Wright", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Miller.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Miller.jpg new file mode 100644 index 00000000..ffa88338 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Miller.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Miller.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Miller.json new file mode 100644 index 00000000..9754d89f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Miller.json @@ -0,0 +1,8 @@ +{ + "name": "Frank Miller", + "description": "art by Frank Miller", + "preview": "Frank Miller.jpg", + "prompt": "art by Frank Miller", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Schoonover.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Schoonover.jpg new file mode 100644 index 00000000..dfc9883d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Schoonover.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Schoonover.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Schoonover.json new file mode 100644 index 00000000..514da0bc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frank Schoonover.json @@ -0,0 +1,8 @@ +{ + "name": "Frank Schoonover", + "description": "art by Frank Schoonover", + "preview": "Frank Schoonover.jpg", + "prompt": "art by Frank Schoonover", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franklin Booth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franklin Booth.jpg new file mode 100644 index 00000000..cc1a5f83 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franklin Booth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franklin Booth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franklin Booth.json new file mode 100644 index 00000000..d9d582fa --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franklin Booth.json @@ -0,0 +1,8 @@ +{ + "name": "Franklin Booth", + "description": "art by Franklin Booth", + "preview": "Franklin Booth.jpg", + "prompt": "art by Franklin Booth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Kline.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Kline.jpg new file mode 100644 index 00000000..99639097 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Kline.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Kline.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Kline.json new file mode 100644 index 00000000..23c184ff --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Kline.json @@ -0,0 +1,8 @@ +{ + "name": "Franz Kline", + "description": "art by Franz Kline", + "preview": "Franz Kline.jpg", + "prompt": "art by Franz Kline", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Marc.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Marc.jpg new file mode 100644 index 00000000..c00815f0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Marc.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Marc.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Marc.json new file mode 100644 index 00000000..9c261558 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Marc.json @@ -0,0 +1,8 @@ +{ + "name": "Franz Marc", + "description": "art by Franz Marc", + "preview": "Franz Marc.jpg", + "prompt": "art by Franz Marc", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Sedlacek.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Sedlacek.jpg new file mode 100644 index 00000000..7628802d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Sedlacek.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Sedlacek.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Sedlacek.json new file mode 100644 index 00000000..ccd0b578 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Sedlacek.json @@ -0,0 +1,8 @@ +{ + "name": "Franz Sedlacek", + "description": "art by Franz Sedlacek", + "preview": "Franz Sedlacek.jpg", + "prompt": "art by Franz Sedlacek", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Xaver Winterhalter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Xaver Winterhalter.jpg new file mode 100644 index 00000000..849683a8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Xaver Winterhalter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Xaver Winterhalter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Xaver Winterhalter.json new file mode 100644 index 00000000..0c647aec --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Franz Xaver Winterhalter.json @@ -0,0 +1,8 @@ +{ + "name": "Franz Xaver Winterhalter", + "description": "art by Franz Xaver Winterhalter", + "preview": "Franz Xaver Winterhalter.jpg", + "prompt": "art by Franz Xaver Winterhalter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fred Tomaselli.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fred Tomaselli.jpg new file mode 100644 index 00000000..41e4297d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fred Tomaselli.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Fred Tomaselli.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fred Tomaselli.json new file mode 100644 index 00000000..f92ccb0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Fred Tomaselli.json @@ -0,0 +1,8 @@ +{ + "name": "Fred Tomaselli", + "description": "art by Fred Tomaselli", + "preview": "Fred Tomaselli.jpg", + "prompt": "art by Fred Tomaselli", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frederick Lord Leighton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frederick Lord Leighton.jpg new file mode 100644 index 00000000..d11a7a4b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frederick Lord Leighton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frederick Lord Leighton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frederick Lord Leighton.json new file mode 100644 index 00000000..b0b80f73 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frederick Lord Leighton.json @@ -0,0 +1,8 @@ +{ + "name": "Frederick Lord Leighton", + "description": "art by Frederick Lord Leighton", + "preview": "Frederick Lord Leighton.jpg", + "prompt": "art by Frederick Lord Leighton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frida Kahlo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frida Kahlo.jpg new file mode 100644 index 00000000..34c05796 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frida Kahlo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frida Kahlo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frida Kahlo.json new file mode 100644 index 00000000..c7a78115 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frida Kahlo.json @@ -0,0 +1,8 @@ +{ + "name": "Frida Kahlo", + "description": "art by Frida Kahlo", + "preview": "Frida Kahlo.jpg", + "prompt": "art by Frida Kahlo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Friedensreich Regentag Dunkelbunt Hundertwasser.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Friedensreich Regentag Dunkelbunt Hundertwasser.jpg new file mode 100644 index 00000000..4eee52c2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Friedensreich Regentag Dunkelbunt Hundertwasser.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Friedensreich Regentag Dunkelbunt Hundertwasser.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Friedensreich Regentag Dunkelbunt Hundertwasser.json new file mode 100644 index 00000000..af9d0526 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Friedensreich Regentag Dunkelbunt Hundertwasser.json @@ -0,0 +1,8 @@ +{ + "name": "Friedensreich Regentag Dunkelbunt Hundertwasser", + "description": "art by Friedensreich Regentag Dunkelbunt Hundertwasser", + "preview": "Friedensreich Regentag Dunkelbunt Hundertwasser.jpg", + "prompt": "art by Friedensreich Regentag Dunkelbunt Hundertwasser", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frits Van den Berghe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frits Van den Berghe.jpg new file mode 100644 index 00000000..73148449 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frits Van den Berghe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Frits Van den Berghe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frits Van den Berghe.json new file mode 100644 index 00000000..9178edcf --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Frits Van den Berghe.json @@ -0,0 +1,8 @@ +{ + "name": "Frits Van den Berghe", + "description": "art by Frits Van den Berghe", + "preview": "Frits Van den Berghe.jpg", + "prompt": "art by Frits Van den Berghe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Félix Vallotton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Félix Vallotton.jpg new file mode 100644 index 00000000..a40c6e32 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Félix Vallotton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Félix Vallotton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Félix Vallotton.json new file mode 100644 index 00000000..6a058aeb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Félix Vallotton.json @@ -0,0 +1,8 @@ +{ + "name": "F\u00e9lix Vallotton", + "description": "art by F\u00e9lix Vallotton", + "preview": "F\u00e9lix Vallotton.jpg", + "prompt": "art by F\u00e9lix Vallotton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gabriel Pacheco.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gabriel Pacheco.jpg new file mode 100644 index 00000000..5557a0e0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gabriel Pacheco.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gabriel Pacheco.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gabriel Pacheco.json new file mode 100644 index 00000000..0fb4e756 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gabriel Pacheco.json @@ -0,0 +1,8 @@ +{ + "name": "Gabriel Pacheco", + "description": "art by Gabriel Pacheco", + "preview": "Gabriel Pacheco.jpg", + "prompt": "art by Gabriel Pacheco", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Garry Trudeau.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Garry Trudeau.jpg new file mode 100644 index 00000000..1f5ba15b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Garry Trudeau.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Garry Trudeau.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Garry Trudeau.json new file mode 100644 index 00000000..e2bc4788 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Garry Trudeau.json @@ -0,0 +1,8 @@ +{ + "name": "Garry Trudeau", + "description": "art by Garry Trudeau", + "preview": "Garry Trudeau.jpg", + "prompt": "art by Garry Trudeau", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gary Larson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gary Larson.jpg new file mode 100644 index 00000000..bc0206d1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gary Larson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gary Larson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gary Larson.json new file mode 100644 index 00000000..4e0d20de --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gary Larson.json @@ -0,0 +1,8 @@ +{ + "name": "Gary Larson", + "description": "art by Gary Larson", + "preview": "Gary Larson.jpg", + "prompt": "art by Gary Larson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/George Inness.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Inness.jpg new file mode 100644 index 00000000..627e0390 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Inness.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/George Inness.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Inness.json new file mode 100644 index 00000000..e03324f6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Inness.json @@ -0,0 +1,8 @@ +{ + "name": "George Inness", + "description": "art by George Inness", + "preview": "George Inness.jpg", + "prompt": "art by George Inness", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/George Luks.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Luks.jpg new file mode 100644 index 00000000..49f9db75 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Luks.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/George Luks.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Luks.json new file mode 100644 index 00000000..869f2361 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/George Luks.json @@ -0,0 +1,8 @@ +{ + "name": "George Luks", + "description": "art by George Luks", + "preview": "George Luks.jpg", + "prompt": "art by George Luks", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Rouault.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Rouault.jpg new file mode 100644 index 00000000..6d0245ee Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Rouault.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Rouault.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Rouault.json new file mode 100644 index 00000000..e4bf99d8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Rouault.json @@ -0,0 +1,8 @@ +{ + "name": "Georges Rouault", + "description": "art by Georges Rouault", + "preview": "Georges Rouault.jpg", + "prompt": "art by Georges Rouault", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Seurat.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Seurat.jpg new file mode 100644 index 00000000..2b3e9fe0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Seurat.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Seurat.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Seurat.json new file mode 100644 index 00000000..23c2c9d8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georges Seurat.json @@ -0,0 +1,8 @@ +{ + "name": "Georges Seurat", + "description": "art by Georges Seurat", + "preview": "Georges Seurat.jpg", + "prompt": "art by Georges Seurat", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Georgia O'Keeffe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georgia O'Keeffe.jpg new file mode 100644 index 00000000..050ae742 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georgia O'Keeffe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Georgia O'Keeffe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georgia O'Keeffe.json new file mode 100644 index 00000000..0eddd0ee --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Georgia O'Keeffe.json @@ -0,0 +1,8 @@ +{ + "name": "Georgia O'Keeffe", + "description": "art by Georgia O'Keeffe", + "preview": "Georgia O'Keeffe.jpg", + "prompt": "art by Georgia O'Keeffe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerald Brom.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerald Brom.jpg new file mode 100644 index 00000000..0508e332 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerald Brom.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerald Brom.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerald Brom.json new file mode 100644 index 00000000..903df853 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerald Brom.json @@ -0,0 +1,8 @@ +{ + "name": "Gerald Brom", + "description": "art by Gerald Brom", + "preview": "Gerald Brom.jpg", + "prompt": "art by Gerald Brom", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Munthe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Munthe.jpg new file mode 100644 index 00000000..b3d88552 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Munthe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Munthe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Munthe.json new file mode 100644 index 00000000..17c5648f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Munthe.json @@ -0,0 +1,8 @@ +{ + "name": "Gerhard Munthe", + "description": "art by Gerhard Munthe", + "preview": "Gerhard Munthe.jpg", + "prompt": "art by Gerhard Munthe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Richter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Richter.jpg new file mode 100644 index 00000000..09dfdf67 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Richter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Richter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Richter.json new file mode 100644 index 00000000..36b12f8c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gerhard Richter.json @@ -0,0 +1,8 @@ +{ + "name": "Gerhard Richter", + "description": "art by Gerhard Richter", + "preview": "Gerhard Richter.jpg", + "prompt": "art by Gerhard Richter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gertrude Abercrombie.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gertrude Abercrombie.jpg new file mode 100644 index 00000000..a8c32a92 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gertrude Abercrombie.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gertrude Abercrombie.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gertrude Abercrombie.json new file mode 100644 index 00000000..e634cc5c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gertrude Abercrombie.json @@ -0,0 +1,8 @@ +{ + "name": "Gertrude Abercrombie", + "description": "art by Gertrude Abercrombie", + "preview": "Gertrude Abercrombie.jpg", + "prompt": "art by Gertrude Abercrombie", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Giacomo Balla.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giacomo Balla.jpg new file mode 100644 index 00000000..486b51b5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giacomo Balla.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Giacomo Balla.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giacomo Balla.json new file mode 100644 index 00000000..1e9326cc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giacomo Balla.json @@ -0,0 +1,8 @@ +{ + "name": "Giacomo Balla", + "description": "art by Giacomo Balla", + "preview": "Giacomo Balla.jpg", + "prompt": "art by Giacomo Balla", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Giorgio de Chirico.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giorgio de Chirico.jpg new file mode 100644 index 00000000..01f84bcd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giorgio de Chirico.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Giorgio de Chirico.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giorgio de Chirico.json new file mode 100644 index 00000000..c9855cc5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giorgio de Chirico.json @@ -0,0 +1,8 @@ +{ + "name": "Giorgio de Chirico", + "description": "art by Giorgio de Chirico", + "preview": "Giorgio de Chirico.jpg", + "prompt": "art by Giorgio de Chirico", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Giuseppe Arcimboldo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giuseppe Arcimboldo.jpg new file mode 100644 index 00000000..746792c8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giuseppe Arcimboldo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Giuseppe Arcimboldo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giuseppe Arcimboldo.json new file mode 100644 index 00000000..bfe4c3c8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Giuseppe Arcimboldo.json @@ -0,0 +1,8 @@ +{ + "name": "Giuseppe Arcimboldo", + "description": "art by Giuseppe Arcimboldo", + "preview": "Giuseppe Arcimboldo.jpg", + "prompt": "art by Giuseppe Arcimboldo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Glenn Fabry.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Glenn Fabry.jpg new file mode 100644 index 00000000..ee0b7621 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Glenn Fabry.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Glenn Fabry.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Glenn Fabry.json new file mode 100644 index 00000000..aa9ae6a7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Glenn Fabry.json @@ -0,0 +1,8 @@ +{ + "name": "Glenn Fabry", + "description": "art by Glenn Fabry", + "preview": "Glenn Fabry.jpg", + "prompt": "art by Glenn Fabry", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Go Nagai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Go Nagai.jpg new file mode 100644 index 00000000..d06d3a96 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Go Nagai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Go Nagai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Go Nagai.json new file mode 100644 index 00000000..08c6e007 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Go Nagai.json @@ -0,0 +1,8 @@ +{ + "name": "Go Nagai", + "description": "art by Go Nagai", + "preview": "Go Nagai.jpg", + "prompt": "art by Go Nagai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gottfried Helnwein.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gottfried Helnwein.jpg new file mode 100644 index 00000000..4e83b234 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gottfried Helnwein.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gottfried Helnwein.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gottfried Helnwein.json new file mode 100644 index 00000000..1febef6e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gottfried Helnwein.json @@ -0,0 +1,8 @@ +{ + "name": "Gottfried Helnwein", + "description": "art by Gottfried Helnwein", + "preview": "Gottfried Helnwein.jpg", + "prompt": "art by Gottfried Helnwein", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Graciela Iturbide.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Graciela Iturbide.jpg new file mode 100644 index 00000000..dd1a13c8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Graciela Iturbide.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Graciela Iturbide.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Graciela Iturbide.json new file mode 100644 index 00000000..c9fe8242 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Graciela Iturbide.json @@ -0,0 +1,8 @@ +{ + "name": "Graciela Iturbide", + "description": "art by Graciela Iturbide", + "preview": "Graciela Iturbide.jpg", + "prompt": "art by Graciela Iturbide", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Grandma Moses.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Grandma Moses.jpg new file mode 100644 index 00000000..ee4455d5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Grandma Moses.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Grandma Moses.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Grandma Moses.json new file mode 100644 index 00000000..635d7be6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Grandma Moses.json @@ -0,0 +1,8 @@ +{ + "name": "Grandma Moses", + "description": "art by Grandma Moses", + "preview": "Grandma Moses.jpg", + "prompt": "art by Grandma Moses", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Hildebrandt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Hildebrandt.jpg new file mode 100644 index 00000000..decbb5cb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Hildebrandt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Hildebrandt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Hildebrandt.json new file mode 100644 index 00000000..3eb25136 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Hildebrandt.json @@ -0,0 +1,8 @@ +{ + "name": "Greg Hildebrandt", + "description": "art by Greg Hildebrandt", + "preview": "Greg Hildebrandt.jpg", + "prompt": "art by Greg Hildebrandt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Rutkowski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Rutkowski.jpg new file mode 100644 index 00000000..0a38913c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Rutkowski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Rutkowski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Rutkowski.json new file mode 100644 index 00000000..ed793d55 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Greg Rutkowski.json @@ -0,0 +1,8 @@ +{ + "name": "Greg Rutkowski", + "description": "art by Greg Rutkowski", + "preview": "Greg Rutkowski.jpg", + "prompt": "art by Greg Rutkowski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gregory Crewdson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gregory Crewdson.jpg new file mode 100644 index 00000000..5952a950 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gregory Crewdson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gregory Crewdson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gregory Crewdson.json new file mode 100644 index 00000000..49ba1abc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gregory Crewdson.json @@ -0,0 +1,8 @@ +{ + "name": "Gregory Crewdson", + "description": "art by Gregory Crewdson", + "preview": "Gregory Crewdson.jpg", + "prompt": "art by Gregory Crewdson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Guido Borelli da Caluso.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guido Borelli da Caluso.jpg new file mode 100644 index 00000000..e007396a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guido Borelli da Caluso.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Guido Borelli da Caluso.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guido Borelli da Caluso.json new file mode 100644 index 00000000..b47092cc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guido Borelli da Caluso.json @@ -0,0 +1,8 @@ +{ + "name": "Guido Borelli da Caluso", + "description": "art by Guido Borelli da Caluso", + "preview": "Guido Borelli da Caluso.jpg", + "prompt": "art by Guido Borelli da Caluso", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Guillermo del Toro.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guillermo del Toro.jpg new file mode 100644 index 00000000..3393a09b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guillermo del Toro.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Guillermo del Toro.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guillermo del Toro.json new file mode 100644 index 00000000..82a39ed1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Guillermo del Toro.json @@ -0,0 +1,8 @@ +{ + "name": "Guillermo del Toro", + "description": "art by Guillermo del Toro", + "preview": "Guillermo del Toro.jpg", + "prompt": "art by Guillermo del Toro", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Klimt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Klimt.jpg new file mode 100644 index 00000000..06f75154 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Klimt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Klimt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Klimt.json new file mode 100644 index 00000000..793fccf4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Klimt.json @@ -0,0 +1,8 @@ +{ + "name": "Gustav Klimt", + "description": "art by Gustav Klimt", + "preview": "Gustav Klimt.jpg", + "prompt": "art by Gustav Klimt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Vigeland.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Vigeland.jpg new file mode 100644 index 00000000..0b5888f3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Vigeland.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Vigeland.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Vigeland.json new file mode 100644 index 00000000..c6bbadde --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustav Vigeland.json @@ -0,0 +1,8 @@ +{ + "name": "Gustav Vigeland", + "description": "art by Gustav Vigeland", + "preview": "Gustav Vigeland.jpg", + "prompt": "art by Gustav Vigeland", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Caillebotte.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Caillebotte.jpg new file mode 100644 index 00000000..a31791af Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Caillebotte.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Caillebotte.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Caillebotte.json new file mode 100644 index 00000000..fec89ac1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Caillebotte.json @@ -0,0 +1,8 @@ +{ + "name": "Gustave Caillebotte", + "description": "art by Gustave Caillebotte", + "preview": "Gustave Caillebotte.jpg", + "prompt": "art by Gustave Caillebotte", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Courbet.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Courbet.jpg new file mode 100644 index 00000000..0abac385 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Courbet.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Courbet.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Courbet.json new file mode 100644 index 00000000..4edd4c7e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Courbet.json @@ -0,0 +1,8 @@ +{ + "name": "Gustave Courbet", + "description": "art by Gustave Courbet", + "preview": "Gustave Courbet.jpg", + "prompt": "art by Gustave Courbet", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Dore.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Dore.jpg new file mode 100644 index 00000000..2a760fba Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Dore.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Dore.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Dore.json new file mode 100644 index 00000000..356b0e21 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Dore.json @@ -0,0 +1,8 @@ +{ + "name": "Gustave Dore", + "description": "art by Gustave Dore", + "preview": "Gustave Dore.jpg", + "prompt": "art by Gustave Dore", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Moreau.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Moreau.jpg new file mode 100644 index 00000000..9fd297b8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Moreau.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Moreau.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Moreau.json new file mode 100644 index 00000000..a75b2ed8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Gustave Moreau.json @@ -0,0 +1,8 @@ +{ + "name": "Gustave Moreau", + "description": "art by Gustave Moreau", + "preview": "Gustave Moreau.jpg", + "prompt": "art by Gustave Moreau", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/H. R. Giger.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/H. R. Giger.jpg new file mode 100644 index 00000000..d3af2016 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/H. R. Giger.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/H. R. Giger.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/H. R. Giger.json new file mode 100644 index 00000000..e991d649 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/H. R. Giger.json @@ -0,0 +1,8 @@ +{ + "name": "H. R. Giger", + "description": "art by H. R. Giger", + "preview": "H. R. Giger.jpg", + "prompt": "art by H. R. Giger", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hal Foster.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hal Foster.jpg new file mode 100644 index 00000000..6a1dfa72 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hal Foster.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hal Foster.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hal Foster.json new file mode 100644 index 00000000..0eedf0e2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hal Foster.json @@ -0,0 +1,8 @@ +{ + "name": "Hal Foster", + "description": "art by Hal Foster", + "preview": "Hal Foster.jpg", + "prompt": "art by Hal Foster", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hannah Höch.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hannah Höch.jpg new file mode 100644 index 00000000..637edfd5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hannah Höch.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hannah Höch.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hannah Höch.json new file mode 100644 index 00000000..bb89b5c8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hannah Höch.json @@ -0,0 +1,8 @@ +{ + "name": "Hannah H\u00f6ch", + "description": "art by Hannah H\u00f6ch", + "preview": "Hannah H\u00f6ch.jpg", + "prompt": "art by Hannah H\u00f6ch", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Baldung.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Baldung.jpg new file mode 100644 index 00000000..822ee3f1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Baldung.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Baldung.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Baldung.json new file mode 100644 index 00000000..049edecb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Baldung.json @@ -0,0 +1,8 @@ +{ + "name": "Hans Baldung", + "description": "art by Hans Baldung", + "preview": "Hans Baldung.jpg", + "prompt": "art by Hans Baldung", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Bellmer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Bellmer.jpg new file mode 100644 index 00000000..c83ce044 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Bellmer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Bellmer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Bellmer.json new file mode 100644 index 00000000..ca972cfb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hans Bellmer.json @@ -0,0 +1,8 @@ +{ + "name": "Hans Bellmer", + "description": "art by Hans Bellmer", + "preview": "Hans Bellmer.jpg", + "prompt": "art by Hans Bellmer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harold Elliott.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harold Elliott.jpg new file mode 100644 index 00000000..e8fe42e0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harold Elliott.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harold Elliott.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harold Elliott.json new file mode 100644 index 00000000..d5dd87f7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harold Elliott.json @@ -0,0 +1,8 @@ +{ + "name": "Harold Elliott", + "description": "art by Harold Elliott", + "preview": "Harold Elliott.jpg", + "prompt": "art by Harold Elliott", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harriet Backer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harriet Backer.jpg new file mode 100644 index 00000000..fb470a38 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harriet Backer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harriet Backer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harriet Backer.json new file mode 100644 index 00000000..3d904bcd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harriet Backer.json @@ -0,0 +1,8 @@ +{ + "name": "Harriet Backer", + "description": "art by Harriet Backer", + "preview": "Harriet Backer.jpg", + "prompt": "art by Harriet Backer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Clarke.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Clarke.jpg new file mode 100644 index 00000000..59488621 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Clarke.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Clarke.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Clarke.json new file mode 100644 index 00000000..0e66e69c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Clarke.json @@ -0,0 +1,8 @@ +{ + "name": "Harry Clarke", + "description": "art by Harry Clarke", + "preview": "Harry Clarke.jpg", + "prompt": "art by Harry Clarke", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Gruyaert.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Gruyaert.jpg new file mode 100644 index 00000000..ebcddcda Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Gruyaert.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Gruyaert.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Gruyaert.json new file mode 100644 index 00000000..203db0c1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Harry Gruyaert.json @@ -0,0 +1,8 @@ +{ + "name": "Harry Gruyaert", + "description": "art by Harry Gruyaert", + "preview": "Harry Gruyaert.jpg", + "prompt": "art by Harry Gruyaert", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Heinrich Kley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Heinrich Kley.jpg new file mode 100644 index 00000000..999ffa39 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Heinrich Kley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Heinrich Kley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Heinrich Kley.json new file mode 100644 index 00000000..cc47ec83 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Heinrich Kley.json @@ -0,0 +1,8 @@ +{ + "name": "Heinrich Kley", + "description": "art by Heinrich Kley", + "preview": "Heinrich Kley.jpg", + "prompt": "art by Heinrich Kley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hendrik Kerstens.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hendrik Kerstens.jpg new file mode 100644 index 00000000..2cc2f453 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hendrik Kerstens.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hendrik Kerstens.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hendrik Kerstens.json new file mode 100644 index 00000000..b012f3b6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hendrik Kerstens.json @@ -0,0 +1,8 @@ +{ + "name": "Hendrik Kerstens", + "description": "art by Hendrik Kerstens", + "preview": "Hendrik Kerstens.jpg", + "prompt": "art by Hendrik Kerstens", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Harpignies.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Harpignies.jpg new file mode 100644 index 00000000..ea69311d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Harpignies.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Harpignies.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Harpignies.json new file mode 100644 index 00000000..0faa3d92 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Harpignies.json @@ -0,0 +1,8 @@ +{ + "name": "Henri Harpignies", + "description": "art by Henri Harpignies", + "preview": "Henri Harpignies.jpg", + "prompt": "art by Henri Harpignies", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Matisse.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Matisse.jpg new file mode 100644 index 00000000..e84d5fcc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Matisse.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Matisse.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Matisse.json new file mode 100644 index 00000000..ea65a4c3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Matisse.json @@ -0,0 +1,8 @@ +{ + "name": "Henri Matisse", + "description": "art by Henri Matisse", + "preview": "Henri Matisse.jpg", + "prompt": "art by Henri Matisse", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Rousseau.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Rousseau.jpg new file mode 100644 index 00000000..f139734d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Rousseau.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Rousseau.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Rousseau.json new file mode 100644 index 00000000..d1f4c67b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri Rousseau.json @@ -0,0 +1,8 @@ +{ + "name": "Henri Rousseau", + "description": "art by Henri Rousseau", + "preview": "Henri Rousseau.jpg", + "prompt": "art by Henri Rousseau", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri de Toulouse-Lautrec.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri de Toulouse-Lautrec.jpg new file mode 100644 index 00000000..718fc8ea Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri de Toulouse-Lautrec.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri de Toulouse-Lautrec.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri de Toulouse-Lautrec.json new file mode 100644 index 00000000..a617d138 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri de Toulouse-Lautrec.json @@ -0,0 +1,8 @@ +{ + "name": "Henri de Toulouse-Lautrec", + "description": "art by Henri de Toulouse-Lautrec", + "preview": "Henri de Toulouse-Lautrec.jpg", + "prompt": "art by Henri de Toulouse-Lautrec", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri-Edmond Cross.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri-Edmond Cross.jpg new file mode 100644 index 00000000..b08f8ea6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri-Edmond Cross.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri-Edmond Cross.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri-Edmond Cross.json new file mode 100644 index 00000000..8ed82801 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henri-Edmond Cross.json @@ -0,0 +1,8 @@ +{ + "name": "Henri-Edmond Cross", + "description": "art by Henri-Edmond Cross", + "preview": "Henri-Edmond Cross.jpg", + "prompt": "art by Henri-Edmond Cross", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henry Ossawa Tanner.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henry Ossawa Tanner.jpg new file mode 100644 index 00000000..ec7beed9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henry Ossawa Tanner.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Henry Ossawa Tanner.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henry Ossawa Tanner.json new file mode 100644 index 00000000..12d621ea --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Henry Ossawa Tanner.json @@ -0,0 +1,8 @@ +{ + "name": "Henry Ossawa Tanner", + "description": "art by Henry Ossawa Tanner", + "preview": "Henry Ossawa Tanner.jpg", + "prompt": "art by Henry Ossawa Tanner", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hergé.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hergé.jpg new file mode 100644 index 00000000..a4566351 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hergé.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hergé.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hergé.json new file mode 100644 index 00000000..35cd5690 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hergé.json @@ -0,0 +1,8 @@ +{ + "name": "Herg\u00e9", + "description": "art by Herg\u00e9", + "preview": "Herg\u00e9.jpg", + "prompt": "art by Herg\u00e9", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hieronymus Bosch.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hieronymus Bosch.jpg new file mode 100644 index 00000000..8385236b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hieronymus Bosch.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hieronymus Bosch.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hieronymus Bosch.json new file mode 100644 index 00000000..1d636648 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hieronymus Bosch.json @@ -0,0 +1,8 @@ +{ + "name": "Hieronymus Bosch", + "description": "art by Hieronymus Bosch", + "preview": "Hieronymus Bosch.jpg", + "prompt": "art by Hieronymus Bosch", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hilma af Klint.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hilma af Klint.jpg new file mode 100644 index 00000000..c1854752 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hilma af Klint.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hilma af Klint.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hilma af Klint.json new file mode 100644 index 00000000..98b2decb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hilma af Klint.json @@ -0,0 +1,8 @@ +{ + "name": "Hilma af Klint", + "description": "art by Hilma af Klint", + "preview": "Hilma af Klint.jpg", + "prompt": "art by Hilma af Klint", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hirohiko Araki.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hirohiko Araki.jpg new file mode 100644 index 00000000..02be9317 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hirohiko Araki.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hirohiko Araki.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hirohiko Araki.json new file mode 100644 index 00000000..ac17dee0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hirohiko Araki.json @@ -0,0 +1,8 @@ +{ + "name": "Hirohiko Araki", + "description": "art by Hirohiko Araki", + "preview": "Hirohiko Araki.jpg", + "prompt": "art by Hirohiko Araki", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiromu Arakawa.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiromu Arakawa.jpg new file mode 100644 index 00000000..2e558b0c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiromu Arakawa.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiromu Arakawa.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiromu Arakawa.json new file mode 100644 index 00000000..2dd189d4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiromu Arakawa.json @@ -0,0 +1,8 @@ +{ + "name": "Hiromu Arakawa", + "description": "art by Hiromu Arakawa", + "preview": "Hiromu Arakawa.jpg", + "prompt": "art by Hiromu Arakawa", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Nagai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Nagai.jpg new file mode 100644 index 00000000..2b9b6c2f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Nagai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Nagai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Nagai.json new file mode 100644 index 00000000..b9f3eb4f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Nagai.json @@ -0,0 +1,8 @@ +{ + "name": "Hiroshi Nagai", + "description": "art by Hiroshi Nagai", + "preview": "Hiroshi Nagai.jpg", + "prompt": "art by Hiroshi Nagai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Yoshida.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Yoshida.jpg new file mode 100644 index 00000000..d5465c50 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Yoshida.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Yoshida.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Yoshida.json new file mode 100644 index 00000000..4d0cd734 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hiroshi Yoshida.json @@ -0,0 +1,8 @@ +{ + "name": "Hiroshi Yoshida", + "description": "art by Hiroshi Yoshida", + "preview": "Hiroshi Yoshida.jpg", + "prompt": "art by Hiroshi Yoshida", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hokusai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hokusai.jpg new file mode 100644 index 00000000..a9fb9c36 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hokusai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hokusai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hokusai.json new file mode 100644 index 00000000..8b55481b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hokusai.json @@ -0,0 +1,8 @@ +{ + "name": "Hokusai", + "description": "art by Hokusai", + "preview": "Hokusai.jpg", + "prompt": "art by Hokusai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Honore Daumier.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Honore Daumier.jpg new file mode 100644 index 00000000..a0239811 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Honore Daumier.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Honore Daumier.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Honore Daumier.json new file mode 100644 index 00000000..871dec19 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Honore Daumier.json @@ -0,0 +1,8 @@ +{ + "name": "Honore Daumier", + "description": "art by Honore Daumier", + "preview": "Honore Daumier.jpg", + "prompt": "art by Honore Daumier", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hope Gangloff.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hope Gangloff.jpg new file mode 100644 index 00000000..8bd1d28a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hope Gangloff.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hope Gangloff.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hope Gangloff.json new file mode 100644 index 00000000..b0797272 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hope Gangloff.json @@ -0,0 +1,8 @@ +{ + "name": "Hope Gangloff", + "description": "art by Hope Gangloff", + "preview": "Hope Gangloff.jpg", + "prompt": "art by Hope Gangloff", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Finster.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Finster.jpg new file mode 100644 index 00000000..10dc474a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Finster.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Finster.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Finster.json new file mode 100644 index 00000000..7c8ca88c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Finster.json @@ -0,0 +1,8 @@ +{ + "name": "Howard Finster", + "description": "art by Howard Finster", + "preview": "Howard Finster.jpg", + "prompt": "art by Howard Finster", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Hodgkin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Hodgkin.jpg new file mode 100644 index 00000000..31ccc19c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Hodgkin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Hodgkin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Hodgkin.json new file mode 100644 index 00000000..af82579f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Howard Hodgkin.json @@ -0,0 +1,8 @@ +{ + "name": "Howard Hodgkin", + "description": "art by Howard Hodgkin", + "preview": "Howard Hodgkin.jpg", + "prompt": "art by Howard Hodgkin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hubert Robert.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hubert Robert.jpg new file mode 100644 index 00000000..bec7757c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hubert Robert.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hubert Robert.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hubert Robert.json new file mode 100644 index 00000000..e6d29fa5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hubert Robert.json @@ -0,0 +1,8 @@ +{ + "name": "Hubert Robert", + "description": "art by Hubert Robert", + "preview": "Hubert Robert.jpg", + "prompt": "art by Hubert Robert", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Ferriss.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Ferriss.jpg new file mode 100644 index 00000000..5b7042c3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Ferriss.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Ferriss.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Ferriss.json new file mode 100644 index 00000000..9e1b1b3a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Ferriss.json @@ -0,0 +1,8 @@ +{ + "name": "Hugh Ferriss", + "description": "art by Hugh Ferriss", + "preview": "Hugh Ferriss.jpg", + "prompt": "art by Hugh Ferriss", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Kretschmer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Kretschmer.jpg new file mode 100644 index 00000000..54c185f1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Kretschmer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Kretschmer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Kretschmer.json new file mode 100644 index 00000000..d0faeafe --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hugh Kretschmer.json @@ -0,0 +1,7 @@ +{ + "name": "Hugh Kretschmer", + "description": "art by Hugh Kretschmer", + "preview": "Hugh Kretschmer.jpg", + "prompt": "art by Hugh Kretschmer", + "negative": "" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hundertwasser.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hundertwasser.jpg new file mode 100644 index 00000000..4058e930 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hundertwasser.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Hundertwasser.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hundertwasser.json new file mode 100644 index 00000000..c6705163 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Hundertwasser.json @@ -0,0 +1,8 @@ +{ + "name": "Hundertwasser", + "description": "art by Hundertwasser", + "preview": "Hundertwasser.jpg", + "prompt": "art by Hundertwasser", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian McQue.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian McQue.jpg new file mode 100644 index 00000000..3729edd4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian McQue.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian McQue.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian McQue.json new file mode 100644 index 00000000..be2bf065 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian McQue.json @@ -0,0 +1,8 @@ +{ + "name": "Ian McQue", + "description": "art by Ian McQue", + "preview": "Ian McQue.jpg", + "prompt": "art by Ian McQue", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian Miller.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian Miller.jpg new file mode 100644 index 00000000..72ba5c52 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian Miller.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian Miller.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian Miller.json new file mode 100644 index 00000000..6ea8801c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ian Miller.json @@ -0,0 +1,8 @@ +{ + "name": "Ian Miller", + "description": "art by Ian Miller", + "preview": "Ian Miller.jpg", + "prompt": "art by Ian Miller", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Igor Morski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Igor Morski.jpg new file mode 100644 index 00000000..05a68a10 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Igor Morski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Igor Morski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Igor Morski.json new file mode 100644 index 00000000..164552ce --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Igor Morski.json @@ -0,0 +1,8 @@ +{ + "name": "Igor Morski", + "description": "art by Igor Morski", + "preview": "Igor Morski.jpg", + "prompt": "art by Igor Morski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilkka Uimonen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilkka Uimonen.jpg new file mode 100644 index 00000000..af7790a9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilkka Uimonen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilkka Uimonen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilkka Uimonen.json new file mode 100644 index 00000000..9ef1a511 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilkka Uimonen.json @@ -0,0 +1,8 @@ +{ + "name": "Ilkka Uimonen", + "description": "art by Ilkka Uimonen", + "preview": "Ilkka Uimonen.jpg", + "prompt": "art by Ilkka Uimonen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilya Repin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilya Repin.jpg new file mode 100644 index 00000000..c91d4ce1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilya Repin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilya Repin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilya Repin.json new file mode 100644 index 00000000..ace0b217 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ilya Repin.json @@ -0,0 +1,8 @@ +{ + "name": "Ilya Repin", + "description": "art by Ilya Repin", + "preview": "Ilya Repin.jpg", + "prompt": "art by Ilya Repin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Irma Stern.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Irma Stern.jpg new file mode 100644 index 00000000..b271c1c3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Irma Stern.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Irma Stern.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Irma Stern.json new file mode 100644 index 00000000..5fbe4721 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Irma Stern.json @@ -0,0 +1,8 @@ +{ + "name": "Irma Stern", + "description": "art by Irma Stern", + "preview": "Irma Stern.jpg", + "prompt": "art by Irma Stern", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Isaac Levitan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isaac Levitan.jpg new file mode 100644 index 00000000..fd0094cd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isaac Levitan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Isaac Levitan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isaac Levitan.json new file mode 100644 index 00000000..82606afb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isaac Levitan.json @@ -0,0 +1,8 @@ +{ + "name": "Isaac Levitan", + "description": "art by Isaac Levitan", + "preview": "Isaac Levitan.jpg", + "prompt": "art by Isaac Levitan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Isamu Noguchi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isamu Noguchi.jpg new file mode 100644 index 00000000..04bae152 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isamu Noguchi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Isamu Noguchi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isamu Noguchi.json new file mode 100644 index 00000000..d4dd1d6e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Isamu Noguchi.json @@ -0,0 +1,8 @@ +{ + "name": "Isamu Noguchi", + "description": "art by Isamu Noguchi", + "preview": "Isamu Noguchi.jpg", + "prompt": "art by Isamu Noguchi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Aivazovsky.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Aivazovsky.jpg new file mode 100644 index 00000000..527aa27a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Aivazovsky.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Aivazovsky.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Aivazovsky.json new file mode 100644 index 00000000..59feb0d2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Aivazovsky.json @@ -0,0 +1,8 @@ +{ + "name": "Ivan Aivazovsky", + "description": "art by Ivan Aivazovsky", + "preview": "Ivan Aivazovsky.jpg", + "prompt": "art by Ivan Aivazovsky", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Albright.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Albright.jpg new file mode 100644 index 00000000..af582a0f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Albright.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Albright.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Albright.json new file mode 100644 index 00000000..da48a6d3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Albright.json @@ -0,0 +1,8 @@ +{ + "name": "Ivan Albright", + "description": "art by Ivan Albright", + "preview": "Ivan Albright.jpg", + "prompt": "art by Ivan Albright", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Generalic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Generalic.jpg new file mode 100644 index 00000000..870f9ab4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Generalic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Generalic.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Generalic.json new file mode 100644 index 00000000..64ddd197 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Generalic.json @@ -0,0 +1,8 @@ +{ + "name": "Ivan Generalic", + "description": "art by Ivan Generalic", + "preview": "Ivan Generalic.jpg", + "prompt": "art by Ivan Generalic", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Shishkin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Shishkin.jpg new file mode 100644 index 00000000..794fd769 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Shishkin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Shishkin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Shishkin.json new file mode 100644 index 00000000..eafd1f90 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ivan Shishkin.json @@ -0,0 +1,8 @@ +{ + "name": "Ivan Shishkin", + "description": "art by Ivan Shishkin", + "preview": "Ivan Shishkin.jpg", + "prompt": "art by Ivan Shishkin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/J. J. Grandville.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/J. J. Grandville.jpg new file mode 100644 index 00000000..15b9c4bc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/J. J. Grandville.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/J. J. Grandville.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/J. J. Grandville.json new file mode 100644 index 00000000..1d75b88d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/J. J. Grandville.json @@ -0,0 +1,8 @@ +{ + "name": "J. J. Grandville", + "description": "art by J. J. Grandville", + "preview": "J. J. Grandville.jpg", + "prompt": "art by J. J. Grandville", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/J.C. Leyendecker.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.C. Leyendecker.jpg new file mode 100644 index 00000000..281ad55e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.C. Leyendecker.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/J.C. Leyendecker.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.C. Leyendecker.json new file mode 100644 index 00000000..8caa8f81 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.C. Leyendecker.json @@ -0,0 +1,8 @@ +{ + "name": "J.C. Leyendecker", + "description": "art by J.C. Leyendecker", + "preview": "J.C. Leyendecker.jpg", + "prompt": "art by J.C. Leyendecker", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/J.M.W. Turner.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.M.W. Turner.jpg new file mode 100644 index 00000000..105bb132 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.M.W. Turner.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/J.M.W. Turner.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.M.W. Turner.json new file mode 100644 index 00000000..150bceed --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/J.M.W. Turner.json @@ -0,0 +1,8 @@ +{ + "name": "J.M.W. Turner", + "description": "art by J.M.W. Turner", + "preview": "J.M.W. Turner.jpg", + "prompt": "art by J.M.W. Turner", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacek Yerka.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacek Yerka.jpg new file mode 100644 index 00000000..6be09b7d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacek Yerka.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacek Yerka.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacek Yerka.json new file mode 100644 index 00000000..243ee677 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacek Yerka.json @@ -0,0 +1,8 @@ +{ + "name": "Jacek Yerka", + "description": "art by Jacek Yerka", + "preview": "Jacek Yerka.jpg", + "prompt": "art by Jacek Yerka", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Butler Yeats.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Butler Yeats.jpg new file mode 100644 index 00000000..66c8dba4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Butler Yeats.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Butler Yeats.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Butler Yeats.json new file mode 100644 index 00000000..9d8321ff --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Butler Yeats.json @@ -0,0 +1,8 @@ +{ + "name": "Jack Butler Yeats", + "description": "art by Jack Butler Yeats", + "preview": "Jack Butler Yeats.jpg", + "prompt": "art by Jack Butler Yeats", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Davis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Davis.jpg new file mode 100644 index 00000000..c149a1ff Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Davis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Davis.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Davis.json new file mode 100644 index 00000000..3c8aade6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Davis.json @@ -0,0 +1,8 @@ +{ + "name": "Jack Davis", + "description": "art by Jack Davis", + "preview": "Jack Davis.jpg", + "prompt": "art by Jack Davis", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Gaughan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Gaughan.jpg new file mode 100644 index 00000000..8096311c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Gaughan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Gaughan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Gaughan.json new file mode 100644 index 00000000..720db6b8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Gaughan.json @@ -0,0 +1,8 @@ +{ + "name": "Jack Gaughan", + "description": "art by Jack Gaughan", + "preview": "Jack Gaughan.jpg", + "prompt": "art by Jack Gaughan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Kirby.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Kirby.jpg new file mode 100644 index 00000000..31320a58 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Kirby.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Kirby.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Kirby.json new file mode 100644 index 00000000..ac3ea613 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jack Kirby.json @@ -0,0 +1,8 @@ +{ + "name": "Jack Kirby", + "description": "art by Jack Kirby", + "preview": "Jack Kirby.jpg", + "prompt": "art by Jack Kirby", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jackson Pollock.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jackson Pollock.jpg new file mode 100644 index 00000000..f9449d53 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jackson Pollock.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jackson Pollock.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jackson Pollock.json new file mode 100644 index 00000000..9431cebd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jackson Pollock.json @@ -0,0 +1,8 @@ +{ + "name": "Jackson Pollock", + "description": "art by Jackson Pollock", + "preview": "Jackson Pollock.jpg", + "prompt": "art by Jackson Pollock", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Lawrence.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Lawrence.jpg new file mode 100644 index 00000000..d74f08ff Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Lawrence.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Lawrence.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Lawrence.json new file mode 100644 index 00000000..bbd94753 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Lawrence.json @@ -0,0 +1,8 @@ +{ + "name": "Jacob Lawrence", + "description": "art by Jacob Lawrence", + "preview": "Jacob Lawrence.jpg", + "prompt": "art by Jacob Lawrence", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Riis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Riis.jpg new file mode 100644 index 00000000..c1df3432 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Riis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Riis.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Riis.json new file mode 100644 index 00000000..35658230 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacob Riis.json @@ -0,0 +1,8 @@ +{ + "name": "Jacob Riis", + "description": "art by Jacob Riis", + "preview": "Jacob Riis.jpg", + "prompt": "art by Jacob Riis", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacques-Laurent Agasse.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacques-Laurent Agasse.jpg new file mode 100644 index 00000000..40ac0210 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacques-Laurent Agasse.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacques-Laurent Agasse.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacques-Laurent Agasse.json new file mode 100644 index 00000000..c0f3f4d6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jacques-Laurent Agasse.json @@ -0,0 +1,8 @@ +{ + "name": "Jacques-Laurent Agasse", + "description": "art by Jacques-Laurent Agasse", + "preview": "Jacques-Laurent Agasse.jpg", + "prompt": "art by Jacques-Laurent Agasse", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jakub Rozalski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jakub Rozalski.jpg new file mode 100644 index 00000000..38e0ebda Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jakub Rozalski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jakub Rozalski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jakub Rozalski.json new file mode 100644 index 00000000..e61977da --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jakub Rozalski.json @@ -0,0 +1,8 @@ +{ + "name": "Jakub Rozalski", + "description": "art by Jakub Rozalski", + "preview": "Jakub Rozalski.jpg", + "prompt": "art by Jakub Rozalski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Abbott McNeill Whistler.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Abbott McNeill Whistler.jpg new file mode 100644 index 00000000..b1ac02e6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Abbott McNeill Whistler.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Abbott McNeill Whistler.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Abbott McNeill Whistler.json new file mode 100644 index 00000000..2d6680f4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Abbott McNeill Whistler.json @@ -0,0 +1,8 @@ +{ + "name": "James Abbott McNeill Whistler", + "description": "art by James Abbott McNeill Whistler", + "preview": "James Abbott McNeill Whistler.jpg", + "prompt": "art by James Abbott McNeill Whistler", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James C. Christensen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/James C. Christensen.jpg new file mode 100644 index 00000000..17758d87 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/James C. Christensen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James C. Christensen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/James C. Christensen.json new file mode 100644 index 00000000..ede8ca62 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/James C. Christensen.json @@ -0,0 +1,8 @@ +{ + "name": "James C. Christensen", + "description": "art by James C. Christensen", + "preview": "James C. Christensen.jpg", + "prompt": "art by James C. Christensen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Ensor.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Ensor.jpg new file mode 100644 index 00000000..e55bdb1c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Ensor.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Ensor.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Ensor.json new file mode 100644 index 00000000..b6d0ce4e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Ensor.json @@ -0,0 +1,8 @@ +{ + "name": "James Ensor", + "description": "art by James Ensor", + "preview": "James Ensor.jpg", + "prompt": "art by James Ensor", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Jean.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Jean.jpg new file mode 100644 index 00000000..384b0a4d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Jean.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Jean.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Jean.json new file mode 100644 index 00000000..4684b9a2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Jean.json @@ -0,0 +1,8 @@ +{ + "name": "James Jean", + "description": "art by James Jean", + "preview": "James Jean.jpg", + "prompt": "art by James Jean", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Turrell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Turrell.jpg new file mode 100644 index 00000000..e1db9c34 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Turrell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/James Turrell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Turrell.json new file mode 100644 index 00000000..f0e31426 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/James Turrell.json @@ -0,0 +1,8 @@ +{ + "name": "James Turrell", + "description": "art by James Turrell", + "preview": "James Turrell.jpg", + "prompt": "art by James Turrell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jan van Goyen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jan van Goyen.jpg new file mode 100644 index 00000000..72cf6ca7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jan van Goyen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jan van Goyen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jan van Goyen.json new file mode 100644 index 00000000..34bd2f09 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jan van Goyen.json @@ -0,0 +1,8 @@ +{ + "name": "Jan van Goyen", + "description": "art by Jan van Goyen", + "preview": "Jan van Goyen.jpg", + "prompt": "art by Jan van Goyen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jaroslaw Jasnikowski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jaroslaw Jasnikowski.jpg new file mode 100644 index 00000000..5fe0097b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jaroslaw Jasnikowski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jaroslaw Jasnikowski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jaroslaw Jasnikowski.json new file mode 100644 index 00000000..1bbb2727 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jaroslaw Jasnikowski.json @@ -0,0 +1,8 @@ +{ + "name": "Jaroslaw Jasnikowski", + "description": "art by Jaroslaw Jasnikowski", + "preview": "Jaroslaw Jasnikowski.jpg", + "prompt": "art by Jaroslaw Jasnikowski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jasmine Becket-Griffith.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jasmine Becket-Griffith.jpg new file mode 100644 index 00000000..6d8c79fb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jasmine Becket-Griffith.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jasmine Becket-Griffith.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jasmine Becket-Griffith.json new file mode 100644 index 00000000..2a1b77b8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jasmine Becket-Griffith.json @@ -0,0 +1,8 @@ +{ + "name": "Jasmine Becket-Griffith", + "description": "art by Jasmine Becket-Griffith", + "preview": "Jasmine Becket-Griffith.jpg", + "prompt": "art by Jasmine Becket-Griffith", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Edmiston.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Edmiston.jpg new file mode 100644 index 00000000..325f76c8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Edmiston.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Edmiston.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Edmiston.json new file mode 100644 index 00000000..8c483502 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Edmiston.json @@ -0,0 +1,8 @@ +{ + "name": "Jason Edmiston", + "description": "art by Jason Edmiston", + "preview": "Jason Edmiston.jpg", + "prompt": "art by Jason Edmiston", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Limon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Limon.jpg new file mode 100644 index 00000000..37c4612c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Limon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Limon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Limon.json new file mode 100644 index 00000000..40ae732f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jason Limon.json @@ -0,0 +1,8 @@ +{ + "name": "Jason Limon", + "description": "art by Jason Limon", + "preview": "Jason Limon.jpg", + "prompt": "art by Jason Limon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Arp.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Arp.jpg new file mode 100644 index 00000000..c283aed9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Arp.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Arp.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Arp.json new file mode 100644 index 00000000..34a13ad8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Arp.json @@ -0,0 +1,8 @@ +{ + "name": "Jean Arp", + "description": "art by Jean Arp", + "preview": "Jean Arp.jpg", + "prompt": "art by Jean Arp", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Delville.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Delville.jpg new file mode 100644 index 00000000..5da19064 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Delville.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Delville.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Delville.json new file mode 100644 index 00000000..6df37cca --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Delville.json @@ -0,0 +1,8 @@ +{ + "name": "Jean Delville", + "description": "art by Jean Delville", + "preview": "Jean Delville.jpg", + "prompt": "art by Jean Delville", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Giraud (Moebius).jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Giraud (Moebius).jpg new file mode 100644 index 00000000..06ae467b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Giraud (Moebius).jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Giraud (Moebius).json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Giraud (Moebius).json new file mode 100644 index 00000000..c7b19f31 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Giraud (Moebius).json @@ -0,0 +1,8 @@ +{ + "name": "Jean Giraud (Moebius)", + "description": "art by Jean Giraud (Moebius)", + "preview": "Jean Giraud (Moebius).jpg", + "prompt": "art by Jean Giraud (Moebius)", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Leon Gerome.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Leon Gerome.jpg new file mode 100644 index 00000000..fc71960b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Leon Gerome.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Leon Gerome.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Leon Gerome.json new file mode 100644 index 00000000..71941193 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Leon Gerome.json @@ -0,0 +1,8 @@ +{ + "name": "Jean Leon Gerome", + "description": "art by Jean Leon Gerome", + "preview": "Jean Leon Gerome.jpg", + "prompt": "art by Jean Leon Gerome", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Metzinger.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Metzinger.jpg new file mode 100644 index 00000000..727a5265 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Metzinger.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Metzinger.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Metzinger.json new file mode 100644 index 00000000..f8210031 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean Metzinger.json @@ -0,0 +1,8 @@ +{ + "name": "Jean Metzinger", + "description": "art by Jean Metzinger", + "preview": "Jean Metzinger.jpg", + "prompt": "art by Jean Metzinger", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Auguste-Dominique Ingres.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Auguste-Dominique Ingres.jpg new file mode 100644 index 00000000..5ac76499 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Auguste-Dominique Ingres.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Auguste-Dominique Ingres.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Auguste-Dominique Ingres.json new file mode 100644 index 00000000..190a6ea5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Auguste-Dominique Ingres.json @@ -0,0 +1,8 @@ +{ + "name": "Jean-Auguste-Dominique Ingres", + "description": "art by Jean-Auguste-Dominique Ingres", + "preview": "Jean-Auguste-Dominique Ingres.jpg", + "prompt": "art by Jean-Auguste-Dominique Ingres", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste Carpeaux.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste Carpeaux.jpg new file mode 100644 index 00000000..e22d34b9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste Carpeaux.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste Carpeaux.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste Carpeaux.json new file mode 100644 index 00000000..2f699281 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste Carpeaux.json @@ -0,0 +1,8 @@ +{ + "name": "Jean-Baptiste Carpeaux", + "description": "art by Jean-Baptiste Carpeaux", + "preview": "Jean-Baptiste Carpeaux.jpg", + "prompt": "art by Jean-Baptiste Carpeaux", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste-Siméon Chardin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste-Siméon Chardin.jpg new file mode 100644 index 00000000..e84982c5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste-Siméon Chardin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste-Siméon Chardin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste-Siméon Chardin.json new file mode 100644 index 00000000..36e99f9a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Baptiste-Siméon Chardin.json @@ -0,0 +1,8 @@ +{ + "name": "Jean-Baptiste-Sim\u00e9on Chardin", + "description": "art by Jean-Baptiste-Sim\u00e9on Chardin", + "preview": "Jean-Baptiste-Sim\u00e9on Chardin.jpg", + "prompt": "art by Jean-Baptiste-Sim\u00e9on Chardin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Honore Fragonard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Honore Fragonard.jpg new file mode 100644 index 00000000..ddc6ea9f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Honore Fragonard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Honore Fragonard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Honore Fragonard.json new file mode 100644 index 00000000..de3bb674 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Honore Fragonard.json @@ -0,0 +1,8 @@ +{ + "name": "Jean-Honore Fragonard", + "description": "art by Jean-Honore Fragonard", + "preview": "Jean-Honore Fragonard.jpg", + "prompt": "art by Jean-Honore Fragonard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Michel Basquiat.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Michel Basquiat.jpg new file mode 100644 index 00000000..a7831322 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Michel Basquiat.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Michel Basquiat.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Michel Basquiat.json new file mode 100644 index 00000000..67b8bb2f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Michel Basquiat.json @@ -0,0 +1,8 @@ +{ + "name": "Jean-Michel Basquiat", + "description": "art by Jean-Michel Basquiat", + "preview": "Jean-Michel Basquiat.jpg", + "prompt": "art by Jean-Michel Basquiat", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Pierre Vasarely (Yvaral).jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Pierre Vasarely (Yvaral).jpg new file mode 100644 index 00000000..e5872fb5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Pierre Vasarely (Yvaral).jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Pierre Vasarely (Yvaral).json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Pierre Vasarely (Yvaral).json new file mode 100644 index 00000000..a12d43d1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jean-Pierre Vasarely (Yvaral).json @@ -0,0 +1,8 @@ +{ + "name": "Jean-Pierre Vasarely (Yvaral)", + "description": "art by Jean-Pierre Vasarely (Yvaral)", + "preview": "Jean-Pierre Vasarely (Yvaral).jpg", + "prompt": "art by Jean-Pierre Vasarely (Yvaral)", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Easley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Easley.jpg new file mode 100644 index 00000000..aef3f106 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Easley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Easley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Easley.json new file mode 100644 index 00000000..e2444e23 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Easley.json @@ -0,0 +1,8 @@ +{ + "name": "Jeff Easley", + "description": "art by Jeff Easley", + "preview": "Jeff Easley.jpg", + "prompt": "art by Jeff Easley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Koons.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Koons.jpg new file mode 100644 index 00000000..abeedfe0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Koons.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Koons.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Koons.json new file mode 100644 index 00000000..8bfe159e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Koons.json @@ -0,0 +1,8 @@ +{ + "name": "Jeff Koons", + "description": "art by Jeff Koons", + "preview": "Jeff Koons.jpg", + "prompt": "art by Jeff Koons", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Lemire.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Lemire.jpg new file mode 100644 index 00000000..31dba25c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Lemire.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Lemire.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Lemire.json new file mode 100644 index 00000000..75193759 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeff Lemire.json @@ -0,0 +1,8 @@ +{ + "name": "Jeff Lemire", + "description": "art by Jeff Lemire", + "preview": "Jeff Lemire.jpg", + "prompt": "art by Jeff Lemire", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Catherine Jones.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Catherine Jones.jpg new file mode 100644 index 00000000..e4ece74e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Catherine Jones.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Catherine Jones.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Catherine Jones.json new file mode 100644 index 00000000..1edbcf33 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Catherine Jones.json @@ -0,0 +1,8 @@ +{ + "name": "Jeffrey Catherine Jones", + "description": "art by Jeffrey Catherine Jones", + "preview": "Jeffrey Catherine Jones.jpg", + "prompt": "art by Jeffrey Catherine Jones", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Smith.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Smith.jpg new file mode 100644 index 00000000..15cee251 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Smith.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Smith.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Smith.json new file mode 100644 index 00000000..5bf381f4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey Smith.json @@ -0,0 +1,8 @@ +{ + "name": "Jeffrey Smith", + "description": "art by Jeffrey Smith", + "preview": "Jeffrey Smith.jpg", + "prompt": "art by Jeffrey Smith", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey T. Larson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey T. Larson.jpg new file mode 100644 index 00000000..cda4753e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey T. Larson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey T. Larson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey T. Larson.json new file mode 100644 index 00000000..6213fa67 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeffrey T. Larson.json @@ -0,0 +1,8 @@ +{ + "name": "Jeffrey T. Larson", + "description": "art by Jeffrey T. Larson", + "preview": "Jeffrey T. Larson.jpg", + "prompt": "art by Jeffrey T. Larson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Geddes.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Geddes.jpg new file mode 100644 index 00000000..37837b26 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Geddes.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Geddes.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Geddes.json new file mode 100644 index 00000000..0e94f0ae --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Geddes.json @@ -0,0 +1,8 @@ +{ + "name": "Jeremy Geddes", + "description": "art by Jeremy Geddes", + "preview": "Jeremy Geddes.jpg", + "prompt": "art by Jeremy Geddes", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Lipking.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Lipking.jpg new file mode 100644 index 00000000..78e88c29 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Lipking.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Lipking.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Lipking.json new file mode 100644 index 00000000..328fa79c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Lipking.json @@ -0,0 +1,8 @@ +{ + "name": "Jeremy Lipking", + "description": "art by Jeremy Lipking", + "preview": "Jeremy Lipking.jpg", + "prompt": "art by Jeremy Lipking", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Mann.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Mann.jpg new file mode 100644 index 00000000..f4aef85c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Mann.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Mann.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Mann.json new file mode 100644 index 00000000..56dec28a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jeremy Mann.json @@ -0,0 +1,8 @@ +{ + "name": "Jeremy Mann", + "description": "art by Jeremy Mann", + "preview": "Jeremy Mann.jpg", + "prompt": "art by Jeremy Mann", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jesper Ejsing.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jesper Ejsing.jpg new file mode 100644 index 00000000..a8bff801 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jesper Ejsing.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jesper Ejsing.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jesper Ejsing.json new file mode 100644 index 00000000..adc1986a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jesper Ejsing.json @@ -0,0 +1,8 @@ +{ + "name": "Jesper Ejsing", + "description": "art by Jesper Ejsing", + "preview": "Jesper Ejsing.jpg", + "prompt": "art by Jesper Ejsing", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Burns.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Burns.jpg new file mode 100644 index 00000000..92653df5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Burns.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Burns.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Burns.json new file mode 100644 index 00000000..034f5fa7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Burns.json @@ -0,0 +1,8 @@ +{ + "name": "Jim Burns", + "description": "art by Jim Burns", + "preview": "Jim Burns.jpg", + "prompt": "art by Jim Burns", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Fitzpatrick.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Fitzpatrick.jpg new file mode 100644 index 00000000..864c224d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Fitzpatrick.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Fitzpatrick.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Fitzpatrick.json new file mode 100644 index 00000000..1e9e8449 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Fitzpatrick.json @@ -0,0 +1,8 @@ +{ + "name": "Jim Fitzpatrick", + "description": "art by Jim Fitzpatrick", + "preview": "Jim Fitzpatrick.jpg", + "prompt": "art by Jim Fitzpatrick", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Lee.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Lee.jpg new file mode 100644 index 00000000..a7eb4d78 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Lee.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Lee.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Lee.json new file mode 100644 index 00000000..d609712c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Lee.json @@ -0,0 +1,8 @@ +{ + "name": "Jim Lee", + "description": "art by Jim Lee", + "preview": "Jim Lee.jpg", + "prompt": "art by Jim Lee", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Steranko.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Steranko.jpg new file mode 100644 index 00000000..71f5fe91 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Steranko.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Steranko.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Steranko.json new file mode 100644 index 00000000..26bbcb7c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jim Steranko.json @@ -0,0 +1,8 @@ +{ + "name": "Jim Steranko", + "description": "art by Jim Steranko", + "preview": "Jim Steranko.jpg", + "prompt": "art by Jim Steranko", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jithesh.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jithesh.jpg new file mode 100644 index 00000000..ad28cfe9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jithesh.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jithesh.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jithesh.json new file mode 100644 index 00000000..b21d5fee --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jithesh.json @@ -0,0 +1,8 @@ +{ + "name": "Jithesh", + "description": "art by Jithesh", + "preview": "Jithesh.jpg", + "prompt": "art by Jithesh", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joan Miró.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joan Miró.jpg new file mode 100644 index 00000000..f606ad02 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joan Miró.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joan Miró.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joan Miró.json new file mode 100644 index 00000000..d43068e3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joan Miró.json @@ -0,0 +1,8 @@ +{ + "name": "Joan Mir\u00f3", + "description": "art by Joan Mir\u00f3", + "preview": "Joan Mir\u00f3.jpg", + "prompt": "art by Joan Mir\u00f3", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joaquin Sorolla.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joaquin Sorolla.jpg new file mode 100644 index 00000000..1c29c1dd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joaquin Sorolla.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joaquin Sorolla.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joaquin Sorolla.json new file mode 100644 index 00000000..7706722d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joaquin Sorolla.json @@ -0,0 +1,8 @@ +{ + "name": "Joaquin Sorolla", + "description": "art by Joaquin Sorolla", + "preview": "Joaquin Sorolla.jpg", + "prompt": "art by Joaquin Sorolla", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Johan Christian Dahl.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johan Christian Dahl.jpg new file mode 100644 index 00000000..c5050139 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johan Christian Dahl.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Johan Christian Dahl.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johan Christian Dahl.json new file mode 100644 index 00000000..2951460c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johan Christian Dahl.json @@ -0,0 +1,8 @@ +{ + "name": "Johan Christian Dahl", + "description": "art by Johan Christian Dahl", + "preview": "Johan Christian Dahl.jpg", + "prompt": "art by Johan Christian Dahl", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Johannes Vermeer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johannes Vermeer.jpg new file mode 100644 index 00000000..e461a459 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johannes Vermeer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Johannes Vermeer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johannes Vermeer.json new file mode 100644 index 00000000..1898cef9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johannes Vermeer.json @@ -0,0 +1,8 @@ +{ + "name": "Johannes Vermeer", + "description": "art by Johannes Vermeer", + "preview": "Johannes Vermeer.jpg", + "prompt": "art by Johannes Vermeer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Johfra Bosschart.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johfra Bosschart.jpg new file mode 100644 index 00000000..a41241cd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johfra Bosschart.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Johfra Bosschart.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johfra Bosschart.json new file mode 100644 index 00000000..9fe4815f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Johfra Bosschart.json @@ -0,0 +1,8 @@ +{ + "name": "Johfra Bosschart", + "description": "art by Johfra Bosschart", + "preview": "Johfra Bosschart.jpg", + "prompt": "art by Johfra Bosschart", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Atkinson Grimshaw.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Atkinson Grimshaw.jpg new file mode 100644 index 00000000..d26e8c72 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Atkinson Grimshaw.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Atkinson Grimshaw.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Atkinson Grimshaw.json new file mode 100644 index 00000000..4502ee42 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Atkinson Grimshaw.json @@ -0,0 +1,8 @@ +{ + "name": "John Atkinson Grimshaw", + "description": "art by John Atkinson Grimshaw", + "preview": "John Atkinson Grimshaw.jpg", + "prompt": "art by John Atkinson Grimshaw", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Bauer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Bauer.jpg new file mode 100644 index 00000000..a888407b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Bauer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Bauer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Bauer.json new file mode 100644 index 00000000..0f5d0b7b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Bauer.json @@ -0,0 +1,8 @@ +{ + "name": "John Bauer", + "description": "art by John Bauer", + "preview": "John Bauer.jpg", + "prompt": "art by John Bauer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Berkey.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Berkey.jpg new file mode 100644 index 00000000..4353dd76 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Berkey.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Berkey.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Berkey.json new file mode 100644 index 00000000..dd689256 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Berkey.json @@ -0,0 +1,8 @@ +{ + "name": "John Berkey", + "description": "art by John Berkey", + "preview": "John Berkey.jpg", + "prompt": "art by John Berkey", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Blanche.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Blanche.jpg new file mode 100644 index 00000000..9c735f8a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Blanche.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Blanche.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Blanche.json new file mode 100644 index 00000000..da178901 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Blanche.json @@ -0,0 +1,8 @@ +{ + "name": "John Blanche", + "description": "art by John Blanche", + "preview": "John Blanche.jpg", + "prompt": "art by John Blanche", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Carpenter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Carpenter.jpg new file mode 100644 index 00000000..a395d0c7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Carpenter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Carpenter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Carpenter.json new file mode 100644 index 00000000..928c4c3a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Carpenter.json @@ -0,0 +1,8 @@ +{ + "name": "John Carpenter", + "description": "art by John Carpenter", + "preview": "John Carpenter.jpg", + "prompt": "art by John Carpenter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Constable.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Constable.jpg new file mode 100644 index 00000000..20ea29d6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Constable.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Constable.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Constable.json new file mode 100644 index 00000000..bd6bb4d5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Constable.json @@ -0,0 +1,8 @@ +{ + "name": "John Constable", + "description": "art by John Constable", + "preview": "John Constable.jpg", + "prompt": "art by John Constable", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Duncan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Duncan.jpg new file mode 100644 index 00000000..2bc504f3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Duncan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Duncan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Duncan.json new file mode 100644 index 00000000..7c6eeae0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Duncan.json @@ -0,0 +1,8 @@ +{ + "name": "John Duncan", + "description": "art by John Duncan", + "preview": "John Duncan.jpg", + "prompt": "art by John Duncan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Frederick Kensett.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Frederick Kensett.jpg new file mode 100644 index 00000000..ae597442 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Frederick Kensett.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Frederick Kensett.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Frederick Kensett.json new file mode 100644 index 00000000..8ac37afe --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Frederick Kensett.json @@ -0,0 +1,8 @@ +{ + "name": "John Frederick Kensett", + "description": "art by John Frederick Kensett", + "preview": "John Frederick Kensett.jpg", + "prompt": "art by John Frederick Kensett", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Harris.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Harris.jpg new file mode 100644 index 00000000..bbb22361 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Harris.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Harris.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Harris.json new file mode 100644 index 00000000..9bd72a3a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Harris.json @@ -0,0 +1,8 @@ +{ + "name": "John Harris", + "description": "art by John Harris", + "preview": "John Harris.jpg", + "prompt": "art by John Harris", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Hoyland.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Hoyland.jpg new file mode 100644 index 00000000..80d9bc0d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Hoyland.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Hoyland.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Hoyland.json new file mode 100644 index 00000000..a96430ad --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Hoyland.json @@ -0,0 +1,8 @@ +{ + "name": "John Hoyland", + "description": "art by John Hoyland", + "preview": "John Hoyland.jpg", + "prompt": "art by John Hoyland", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John James Audubon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John James Audubon.jpg new file mode 100644 index 00000000..e3a5bd0f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John James Audubon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John James Audubon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John James Audubon.json new file mode 100644 index 00000000..109475f4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John James Audubon.json @@ -0,0 +1,8 @@ +{ + "name": "John James Audubon", + "description": "art by John James Audubon", + "preview": "John James Audubon.jpg", + "prompt": "art by John James Audubon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kenn Mortensen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kenn Mortensen.jpg new file mode 100644 index 00000000..e4603e17 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kenn Mortensen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kenn Mortensen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kenn Mortensen.json new file mode 100644 index 00000000..284f648d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kenn Mortensen.json @@ -0,0 +1,8 @@ +{ + "name": "John Kenn Mortensen", + "description": "art by John Kenn Mortensen", + "preview": "John Kenn Mortensen.jpg", + "prompt": "art by John Kenn Mortensen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kricfalusi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kricfalusi.jpg new file mode 100644 index 00000000..9ebb1b78 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kricfalusi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kricfalusi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kricfalusi.json new file mode 100644 index 00000000..f1035903 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Kricfalusi.json @@ -0,0 +1,8 @@ +{ + "name": "John Kricfalusi", + "description": "art by John Kricfalusi", + "preview": "John Kricfalusi.jpg", + "prompt": "art by John Kricfalusi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Martin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Martin.jpg new file mode 100644 index 00000000..0343a089 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Martin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Martin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Martin.json new file mode 100644 index 00000000..87140f71 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Martin.json @@ -0,0 +1,8 @@ +{ + "name": "John Martin", + "description": "art by John Martin", + "preview": "John Martin.jpg", + "prompt": "art by John Martin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Perceval.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Perceval.jpg new file mode 100644 index 00000000..3fa05bc6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Perceval.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Perceval.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Perceval.json new file mode 100644 index 00000000..dc4b5b18 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Perceval.json @@ -0,0 +1,8 @@ +{ + "name": "John Perceval", + "description": "art by John Perceval", + "preview": "John Perceval.jpg", + "prompt": "art by John Perceval", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Philip Falter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Philip Falter.jpg new file mode 100644 index 00000000..ad393cd4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Philip Falter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Philip Falter.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Philip Falter.json new file mode 100644 index 00000000..9a080947 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Philip Falter.json @@ -0,0 +1,8 @@ +{ + "name": "John Philip Falter", + "description": "art by John Philip Falter", + "preview": "John Philip Falter.jpg", + "prompt": "art by John Philip Falter", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Romita Jr.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Romita Jr.jpg new file mode 100644 index 00000000..3bf5c9dc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Romita Jr.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Romita Jr.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Romita Jr.json new file mode 100644 index 00000000..31e23b8c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Romita Jr.json @@ -0,0 +1,8 @@ +{ + "name": "John Romita Jr", + "description": "art by John Romita Jr", + "preview": "John Romita Jr.jpg", + "prompt": "art by John Romita Jr", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Singer Sargent.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Singer Sargent.jpg new file mode 100644 index 00000000..09441fb0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Singer Sargent.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Singer Sargent.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Singer Sargent.json new file mode 100644 index 00000000..5dcb72d6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Singer Sargent.json @@ -0,0 +1,8 @@ +{ + "name": "John Singer Sargent", + "description": "art by John Singer Sargent", + "preview": "John Singer Sargent.jpg", + "prompt": "art by John Singer Sargent", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Stephens.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Stephens.jpg new file mode 100644 index 00000000..38d82745 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Stephens.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John Stephens.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Stephens.json new file mode 100644 index 00000000..c3237a3a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John Stephens.json @@ -0,0 +1,8 @@ +{ + "name": "John Stephens", + "description": "art by John Stephens", + "preview": "John Stephens.jpg", + "prompt": "art by John Stephens", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John William Waterhouse.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/John William Waterhouse.jpg new file mode 100644 index 00000000..14135124 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/John William Waterhouse.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/John William Waterhouse.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/John William Waterhouse.json new file mode 100644 index 00000000..1a3a448f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/John William Waterhouse.json @@ -0,0 +1,8 @@ +{ + "name": "John William Waterhouse", + "description": "art by John William Waterhouse", + "preview": "John William Waterhouse.jpg", + "prompt": "art by John William Waterhouse", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jonas Bendiksen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jonas Bendiksen.jpg new file mode 100644 index 00000000..4ecd96dd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jonas Bendiksen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jonas Bendiksen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jonas Bendiksen.json new file mode 100644 index 00000000..a9692881 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jonas Bendiksen.json @@ -0,0 +1,8 @@ +{ + "name": "Jonas Bendiksen", + "description": "art by Jonas Bendiksen", + "preview": "Jonas Bendiksen.jpg", + "prompt": "art by Jonas Bendiksen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Josan Gonzalez.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josan Gonzalez.jpg new file mode 100644 index 00000000..73207a17 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josan Gonzalez.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Josan Gonzalez.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josan Gonzalez.json new file mode 100644 index 00000000..85c1a383 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josan Gonzalez.json @@ -0,0 +1,8 @@ +{ + "name": "Josan Gonzalez", + "description": "art by Josan Gonzalez", + "preview": "Josan Gonzalez.jpg", + "prompt": "art by Josan Gonzalez", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Cornell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Cornell.jpg new file mode 100644 index 00000000..2a3331b5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Cornell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Cornell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Cornell.json new file mode 100644 index 00000000..626fa8a8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Cornell.json @@ -0,0 +1,8 @@ +{ + "name": "Joseph Cornell", + "description": "art by Joseph Cornell", + "preview": "Joseph Cornell.jpg", + "prompt": "art by Joseph Cornell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Ducreux.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Ducreux.jpg new file mode 100644 index 00000000..d6d49cc8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Ducreux.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Ducreux.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Ducreux.json new file mode 100644 index 00000000..5484d33f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Ducreux.json @@ -0,0 +1,8 @@ +{ + "name": "Joseph Ducreux", + "description": "art by Joseph Ducreux", + "preview": "Joseph Ducreux.jpg", + "prompt": "art by Joseph Ducreux", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Stella.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Stella.jpg new file mode 100644 index 00000000..d787023a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Stella.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Stella.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Stella.json new file mode 100644 index 00000000..6f2b716f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Joseph Stella.json @@ -0,0 +1,8 @@ +{ + "name": "Joseph Stella", + "description": "art by Joseph Stella", + "preview": "Joseph Stella.jpg", + "prompt": "art by Joseph Stella", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Josephine Wall.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josephine Wall.jpg new file mode 100644 index 00000000..746046d9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josephine Wall.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Josephine Wall.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josephine Wall.json new file mode 100644 index 00000000..bc45343a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Josephine Wall.json @@ -0,0 +1,8 @@ +{ + "name": "Josephine Wall", + "description": "art by Josephine Wall", + "preview": "Josephine Wall.jpg", + "prompt": "art by Josephine Wall", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Bastien-Lepage.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Bastien-Lepage.jpg new file mode 100644 index 00000000..3f3484eb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Bastien-Lepage.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Bastien-Lepage.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Bastien-Lepage.json new file mode 100644 index 00000000..f4a5fdf3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Bastien-Lepage.json @@ -0,0 +1,8 @@ +{ + "name": "Jules Bastien-Lepage", + "description": "art by Jules Bastien-Lepage", + "preview": "Jules Bastien-Lepage.jpg", + "prompt": "art by Jules Bastien-Lepage", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Feiffer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Feiffer.jpg new file mode 100644 index 00000000..784b9de7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Feiffer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Feiffer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Feiffer.json new file mode 100644 index 00000000..1d8f1df7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Feiffer.json @@ -0,0 +1,8 @@ +{ + "name": "Jules Feiffer", + "description": "art by Jules Feiffer", + "preview": "Jules Feiffer.jpg", + "prompt": "art by Jules Feiffer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Pascin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Pascin.jpg new file mode 100644 index 00000000..2c63a614 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Pascin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Pascin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Pascin.json new file mode 100644 index 00000000..ead49d31 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Jules Pascin.json @@ -0,0 +1,8 @@ +{ + "name": "Jules Pascin", + "description": "art by Jules Pascin", + "preview": "Jules Pascin.jpg", + "prompt": "art by Jules Pascin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Junji Ito.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Junji Ito.jpg new file mode 100644 index 00000000..81f320c6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Junji Ito.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Junji Ito.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Junji Ito.json new file mode 100644 index 00000000..d2d31031 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Junji Ito.json @@ -0,0 +1,8 @@ +{ + "name": "Junji Ito", + "description": "art by Junji Ito", + "preview": "Junji Ito.jpg", + "prompt": "art by Junji Ito", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Justin Gerard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Justin Gerard.jpg new file mode 100644 index 00000000..420195a5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Justin Gerard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Justin Gerard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Justin Gerard.json new file mode 100644 index 00000000..1d1fe07f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Justin Gerard.json @@ -0,0 +1,8 @@ +{ + "name": "Justin Gerard", + "description": "art by Justin Gerard", + "preview": "Justin Gerard.jpg", + "prompt": "art by Justin Gerard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaethe Butcher.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaethe Butcher.jpg new file mode 100644 index 00000000..0c7333d5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaethe Butcher.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaethe Butcher.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaethe Butcher.json new file mode 100644 index 00000000..8a8e40a0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaethe Butcher.json @@ -0,0 +1,8 @@ +{ + "name": "Kaethe Butcher", + "description": "art by Kaethe Butcher", + "preview": "Kaethe Butcher.jpg", + "prompt": "art by Kaethe Butcher", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaja Foglio.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaja Foglio.jpg new file mode 100644 index 00000000..33b201c5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaja Foglio.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaja Foglio.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaja Foglio.json new file mode 100644 index 00000000..4242a39f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kaja Foglio.json @@ -0,0 +1,8 @@ +{ + "name": "Kaja Foglio", + "description": "art by Kaja Foglio", + "preview": "Kaja Foglio.jpg", + "prompt": "art by Kaja Foglio", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karel Thole.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karel Thole.jpg new file mode 100644 index 00000000..997237d8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karel Thole.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karel Thole.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karel Thole.json new file mode 100644 index 00000000..7163b89e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karel Thole.json @@ -0,0 +1,8 @@ +{ + "name": "Karel Thole", + "description": "art by Karel Thole", + "preview": "Karel Thole.jpg", + "prompt": "art by Karel Thole", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Blossfeldt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Blossfeldt.jpg new file mode 100644 index 00000000..0e5c43b1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Blossfeldt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Blossfeldt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Blossfeldt.json new file mode 100644 index 00000000..cd9e9014 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Blossfeldt.json @@ -0,0 +1,8 @@ +{ + "name": "Karl Blossfeldt", + "description": "art by Karl Blossfeldt", + "preview": "Karl Blossfeldt.jpg", + "prompt": "art by Karl Blossfeldt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Schmidt-Rottluff.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Schmidt-Rottluff.jpg new file mode 100644 index 00000000..c884a1d8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Schmidt-Rottluff.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Schmidt-Rottluff.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Schmidt-Rottluff.json new file mode 100644 index 00000000..d58dfcd3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karl Schmidt-Rottluff.json @@ -0,0 +1,8 @@ +{ + "name": "Karl Schmidt-Rottluff", + "description": "art by Karl Schmidt-Rottluff", + "preview": "Karl Schmidt-Rottluff.jpg", + "prompt": "art by Karl Schmidt-Rottluff", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karol Bak.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karol Bak.jpg new file mode 100644 index 00000000..ca985b25 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karol Bak.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Karol Bak.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karol Bak.json new file mode 100644 index 00000000..0beb2cd3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Karol Bak.json @@ -0,0 +1,8 @@ +{ + "name": "Karol Bak", + "description": "art by Karol Bak", + "preview": "Karol Bak.jpg", + "prompt": "art by Karol Bak", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kate Greenaway.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kate Greenaway.jpg new file mode 100644 index 00000000..be64772e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kate Greenaway.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kate Greenaway.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kate Greenaway.json new file mode 100644 index 00000000..f1fa1fc6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kate Greenaway.json @@ -0,0 +1,8 @@ +{ + "name": "Kate Greenaway", + "description": "art by Kate Greenaway", + "preview": "Kate Greenaway.jpg", + "prompt": "art by Kate Greenaway", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kathe Kollwitz.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kathe Kollwitz.jpg new file mode 100644 index 00000000..f402b398 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kathe Kollwitz.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kathe Kollwitz.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kathe Kollwitz.json new file mode 100644 index 00000000..30a6c4b1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kathe Kollwitz.json @@ -0,0 +1,8 @@ +{ + "name": "Kathe Kollwitz", + "description": "art by Kathe Kollwitz", + "preview": "Kathe Kollwitz.jpg", + "prompt": "art by Kathe Kollwitz", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsuhiro Otomo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsuhiro Otomo.jpg new file mode 100644 index 00000000..3d738417 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsuhiro Otomo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsuhiro Otomo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsuhiro Otomo.json new file mode 100644 index 00000000..5a65636f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsuhiro Otomo.json @@ -0,0 +1,8 @@ +{ + "name": "Katsuhiro Otomo", + "description": "art by Katsuhiro Otomo", + "preview": "Katsuhiro Otomo.jpg", + "prompt": "art by Katsuhiro Otomo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsushika Hokusai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsushika Hokusai.jpg new file mode 100644 index 00000000..660bd5ea Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsushika Hokusai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsushika Hokusai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsushika Hokusai.json new file mode 100644 index 00000000..b4b0afb3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Katsushika Hokusai.json @@ -0,0 +1,8 @@ +{ + "name": "Katsushika Hokusai", + "description": "art by Katsushika Hokusai", + "preview": "Katsushika Hokusai.jpg", + "prompt": "art by Katsushika Hokusai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Nielsen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Nielsen.jpg new file mode 100644 index 00000000..1b1b0ca3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Nielsen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Nielsen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Nielsen.json new file mode 100644 index 00000000..36784f58 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Nielsen.json @@ -0,0 +1,8 @@ +{ + "name": "Kay Nielsen", + "description": "art by Kay Nielsen", + "preview": "Kay Nielsen.jpg", + "prompt": "art by Kay Nielsen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Sage.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Sage.jpg new file mode 100644 index 00000000..3ae89c15 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Sage.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Sage.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Sage.json new file mode 100644 index 00000000..11b153da --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kay Sage.json @@ -0,0 +1,8 @@ +{ + "name": "Kay Sage", + "description": "art by Kay Sage", + "preview": "Kay Sage.jpg", + "prompt": "art by Kay Sage", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kazimir Malevich.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kazimir Malevich.jpg new file mode 100644 index 00000000..791214e3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kazimir Malevich.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kazimir Malevich.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kazimir Malevich.json new file mode 100644 index 00000000..310f339e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kazimir Malevich.json @@ -0,0 +1,8 @@ +{ + "name": "Kazimir Malevich", + "description": "art by Kazimir Malevich", + "preview": "Kazimir Malevich.jpg", + "prompt": "art by Kazimir Malevich", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kehinde Wiley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kehinde Wiley.jpg new file mode 100644 index 00000000..ba157cbf Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kehinde Wiley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kehinde Wiley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kehinde Wiley.json new file mode 100644 index 00000000..102ae299 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kehinde Wiley.json @@ -0,0 +1,8 @@ +{ + "name": "Kehinde Wiley", + "description": "art by Kehinde Wiley", + "preview": "Kehinde Wiley.jpg", + "prompt": "art by Kehinde Wiley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly Freas.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly Freas.jpg new file mode 100644 index 00000000..2be7aa6c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly Freas.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly Freas.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly Freas.json new file mode 100644 index 00000000..981a6b79 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly Freas.json @@ -0,0 +1,8 @@ +{ + "name": "Kelly Freas", + "description": "art by Kelly Freas", + "preview": "Kelly Freas.jpg", + "prompt": "art by Kelly Freas", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly McKernan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly McKernan.jpg new file mode 100644 index 00000000..985109ca Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly McKernan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly McKernan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly McKernan.json new file mode 100644 index 00000000..2f91ad5e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kelly McKernan.json @@ -0,0 +1,8 @@ +{ + "name": "Kelly McKernan", + "description": "art by Kelly McKernan", + "preview": "Kelly McKernan.jpg", + "prompt": "art by Kelly McKernan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ken Sugimori.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ken Sugimori.jpg new file mode 100644 index 00000000..6cef1b90 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ken Sugimori.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ken Sugimori.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ken Sugimori.json new file mode 100644 index 00000000..37b49cae --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ken Sugimori.json @@ -0,0 +1,8 @@ +{ + "name": "Ken Sugimori", + "description": "art by Ken Sugimori", + "preview": "Ken Sugimori.jpg", + "prompt": "art by Ken Sugimori", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kenojuak Ashevak.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kenojuak Ashevak.jpg new file mode 100644 index 00000000..c556b916 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kenojuak Ashevak.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kenojuak Ashevak.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kenojuak Ashevak.json new file mode 100644 index 00000000..95b495cb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kenojuak Ashevak.json @@ -0,0 +1,8 @@ +{ + "name": "Kenojuak Ashevak", + "description": "art by Kenojuak Ashevak", + "preview": "Kenojuak Ashevak.jpg", + "prompt": "art by Kenojuak Ashevak", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kentaro Miura.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kentaro Miura.jpg new file mode 100644 index 00000000..e2e44d24 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kentaro Miura.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kentaro Miura.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kentaro Miura.json new file mode 100644 index 00000000..100b47a7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kentaro Miura.json @@ -0,0 +1,8 @@ +{ + "name": "Kentaro Miura", + "description": "art by Kentaro Miura", + "preview": "Kentaro Miura.jpg", + "prompt": "art by Kentaro Miura", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kilian Eng.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kilian Eng.jpg new file mode 100644 index 00000000..91e9c883 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kilian Eng.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kilian Eng.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kilian Eng.json new file mode 100644 index 00000000..18d956f7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kilian Eng.json @@ -0,0 +1,8 @@ +{ + "name": "Kilian Eng", + "description": "art by Kilian Eng", + "preview": "Kilian Eng.jpg", + "prompt": "art by Kilian Eng", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kim Jung Gi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kim Jung Gi.jpg new file mode 100644 index 00000000..20205b78 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kim Jung Gi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kim Jung Gi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kim Jung Gi.json new file mode 100644 index 00000000..19cc47be --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kim Jung Gi.json @@ -0,0 +1,8 @@ +{ + "name": "Kim Jung Gi", + "description": "art by Kim Jung Gi", + "preview": "Kim Jung Gi.jpg", + "prompt": "art by Kim Jung Gi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kuang Hong.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kuang Hong.jpg new file mode 100644 index 00000000..59c00cca Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kuang Hong.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Kuang Hong.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kuang Hong.json new file mode 100644 index 00000000..111d9aa0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Kuang Hong.json @@ -0,0 +1,8 @@ +{ + "name": "Kuang Hong", + "description": "art by Kuang Hong", + "preview": "Kuang Hong.jpg", + "prompt": "art by Kuang Hong", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Larry Elmore.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Larry Elmore.jpg new file mode 100644 index 00000000..059d5c3a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Larry Elmore.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Larry Elmore.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Larry Elmore.json new file mode 100644 index 00000000..812b4348 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Larry Elmore.json @@ -0,0 +1,8 @@ +{ + "name": "Larry Elmore", + "description": "art by Larry Elmore", + "preview": "Larry Elmore.jpg", + "prompt": "art by Larry Elmore", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lasar Segall.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lasar Segall.jpg new file mode 100644 index 00000000..501f70df Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lasar Segall.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lasar Segall.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lasar Segall.json new file mode 100644 index 00000000..b36cb20b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lasar Segall.json @@ -0,0 +1,8 @@ +{ + "name": "Lasar Segall", + "description": "art by Lasar Segall", + "preview": "Lasar Segall.jpg", + "prompt": "art by Lasar Segall", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurel Burch.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurel Burch.jpg new file mode 100644 index 00000000..fd0f6b06 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurel Burch.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurel Burch.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurel Burch.json new file mode 100644 index 00000000..04abc0a6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurel Burch.json @@ -0,0 +1,8 @@ +{ + "name": "Laurel Burch", + "description": "art by Laurel Burch", + "preview": "Laurel Burch.jpg", + "prompt": "art by Laurel Burch", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Greasley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Greasley.jpg new file mode 100644 index 00000000..36d18245 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Greasley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Greasley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Greasley.json new file mode 100644 index 00000000..6bd7a8eb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Greasley.json @@ -0,0 +1,8 @@ +{ + "name": "Laurie Greasley", + "description": "art by Laurie Greasley", + "preview": "Laurie Greasley.jpg", + "prompt": "art by Laurie Greasley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Lipton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Lipton.jpg new file mode 100644 index 00000000..8241ea27 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Lipton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Lipton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Lipton.json new file mode 100644 index 00000000..ea4a90da --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Laurie Lipton.json @@ -0,0 +1,8 @@ +{ + "name": "Laurie Lipton", + "description": "art by Laurie Lipton", + "preview": "Laurie Lipton.jpg", + "prompt": "art by Laurie Lipton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lawren Harris.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lawren Harris.jpg new file mode 100644 index 00000000..054e5fe0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lawren Harris.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lawren Harris.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lawren Harris.json new file mode 100644 index 00000000..93eb75e4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lawren Harris.json @@ -0,0 +1,8 @@ +{ + "name": "Lawren Harris", + "description": "art by Lawren Harris", + "preview": "Lawren Harris.jpg", + "prompt": "art by Lawren Harris", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Le caravaggesque.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Le caravaggesque.jpg new file mode 100644 index 00000000..2257ee14 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Le caravaggesque.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Le caravaggesque.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Le caravaggesque.json new file mode 100644 index 00000000..a8d4ffd8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Le caravaggesque.json @@ -0,0 +1,8 @@ +{ + "name": "Le caravaggesque", + "description": "art by Le caravaggesque", + "preview": "Le caravaggesque.jpg", + "prompt": "art by Le caravaggesque", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Krasner.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Krasner.jpg new file mode 100644 index 00000000..6551dc4a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Krasner.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Krasner.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Krasner.json new file mode 100644 index 00000000..fc537cc7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Krasner.json @@ -0,0 +1,8 @@ +{ + "name": "Lee Krasner", + "description": "art by Lee Krasner", + "preview": "Lee Krasner.jpg", + "prompt": "art by Lee Krasner", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Madgwick.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Madgwick.jpg new file mode 100644 index 00000000..2a11d2e3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Madgwick.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Madgwick.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Madgwick.json new file mode 100644 index 00000000..5d2149fc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lee Madgwick.json @@ -0,0 +1,8 @@ +{ + "name": "Lee Madgwick", + "description": "art by Lee Madgwick", + "preview": "Lee Madgwick.jpg", + "prompt": "art by Lee Madgwick", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leiji Matsumoto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leiji Matsumoto.jpg new file mode 100644 index 00000000..320f6fd7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leiji Matsumoto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leiji Matsumoto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leiji Matsumoto.json new file mode 100644 index 00000000..297fa6e2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leiji Matsumoto.json @@ -0,0 +1,8 @@ +{ + "name": "Leiji Matsumoto", + "description": "art by Leiji Matsumoto", + "preview": "Leiji Matsumoto.jpg", + "prompt": "art by Leiji Matsumoto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leon Bankst.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leon Bankst.jpg new file mode 100644 index 00000000..f2c412c5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leon Bankst.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leon Bankst.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leon Bankst.json new file mode 100644 index 00000000..e05e8368 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leon Bankst.json @@ -0,0 +1,8 @@ +{ + "name": "Leon Bankst", + "description": "art by Leon Bankst", + "preview": "Leon Bankst.jpg", + "prompt": "art by Leon Bankst", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonardo da Vinci.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonardo da Vinci.jpg new file mode 100644 index 00000000..dcba799e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonardo da Vinci.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonardo da Vinci.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonardo da Vinci.json new file mode 100644 index 00000000..5279f766 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonardo da Vinci.json @@ -0,0 +1,8 @@ +{ + "name": "Leonardo da Vinci", + "description": "art by Leonardo da Vinci", + "preview": "Leonardo da Vinci.jpg", + "prompt": "art by Leonardo da Vinci", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonid Afremov.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonid Afremov.jpg new file mode 100644 index 00000000..31fccfec Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonid Afremov.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonid Afremov.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonid Afremov.json new file mode 100644 index 00000000..e8a8a33b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Leonid Afremov.json @@ -0,0 +1,8 @@ +{ + "name": "Leonid Afremov", + "description": "art by Leonid Afremov", + "preview": "Leonid Afremov.jpg", + "prompt": "art by Leonid Afremov", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Liam Wong.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liam Wong.jpg new file mode 100644 index 00000000..3bf0bdaa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liam Wong.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Liam Wong.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liam Wong.json new file mode 100644 index 00000000..d068f0ab --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liam Wong.json @@ -0,0 +1,8 @@ +{ + "name": "Liam Wong", + "description": "art by Liam Wong", + "preview": "Liam Wong.jpg", + "prompt": "art by Liam Wong", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Liniers.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liniers.jpg new file mode 100644 index 00000000..8d5de0e3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liniers.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Liniers.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liniers.json new file mode 100644 index 00000000..2f846bac --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Liniers.json @@ -0,0 +1,8 @@ +{ + "name": "Liniers", + "description": "art by Liniers", + "preview": "Liniers.jpg", + "prompt": "art by Liniers", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lisa Frank.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lisa Frank.jpg new file mode 100644 index 00000000..52812572 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lisa Frank.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lisa Frank.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lisa Frank.json new file mode 100644 index 00000000..885c911f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lisa Frank.json @@ -0,0 +1,8 @@ +{ + "name": "Lisa Frank", + "description": "art by Lisa Frank", + "preview": "Lisa Frank.jpg", + "prompt": "art by Lisa Frank", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Comfort Tiffany.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Comfort Tiffany.jpg new file mode 100644 index 00000000..82a27751 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Comfort Tiffany.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Comfort Tiffany.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Comfort Tiffany.json new file mode 100644 index 00000000..59a0c828 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Comfort Tiffany.json @@ -0,0 +1,8 @@ +{ + "name": "Louis Comfort Tiffany", + "description": "art by Louis Comfort Tiffany", + "preview": "Louis Comfort Tiffany.jpg", + "prompt": "art by Louis Comfort Tiffany", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Wain.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Wain.jpg new file mode 100644 index 00000000..a01e5a21 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Wain.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Wain.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Wain.json new file mode 100644 index 00000000..194f9894 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Louis Wain.json @@ -0,0 +1,8 @@ +{ + "name": "Louis Wain", + "description": "art by Louis Wain", + "preview": "Louis Wain.jpg", + "prompt": "art by Louis Wain", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lovis Corinth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lovis Corinth.jpg new file mode 100644 index 00000000..061cb4eb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lovis Corinth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lovis Corinth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lovis Corinth.json new file mode 100644 index 00000000..f373957a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lovis Corinth.json @@ -0,0 +1,8 @@ +{ + "name": "Lovis Corinth", + "description": "art by Lovis Corinth", + "preview": "Lovis Corinth.jpg", + "prompt": "art by Lovis Corinth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Luc Schuiten.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luc Schuiten.jpg new file mode 100644 index 00000000..05afa76f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luc Schuiten.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Luc Schuiten.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luc Schuiten.json new file mode 100644 index 00000000..e7729eea --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luc Schuiten.json @@ -0,0 +1,8 @@ +{ + "name": "Luc Schuiten", + "description": "art by Luc Schuiten", + "preview": "Luc Schuiten.jpg", + "prompt": "art by Luc Schuiten", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lucian Freud.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lucian Freud.jpg new file mode 100644 index 00000000..c90c4123 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lucian Freud.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lucian Freud.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lucian Freud.json new file mode 100644 index 00000000..433f81c7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lucian Freud.json @@ -0,0 +1,8 @@ +{ + "name": "Lucian Freud", + "description": "art by Lucian Freud", + "preview": "Lucian Freud.jpg", + "prompt": "art by Lucian Freud", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Luis Royo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luis Royo.jpg new file mode 100644 index 00000000..980caeae Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luis Royo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Luis Royo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luis Royo.json new file mode 100644 index 00000000..1b1ba525 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Luis Royo.json @@ -0,0 +1,8 @@ +{ + "name": "Luis Royo", + "description": "art by Luis Royo", + "preview": "Luis Royo.jpg", + "prompt": "art by Luis Royo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyonel Feininger.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyonel Feininger.jpg new file mode 100644 index 00000000..f12ac51f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyonel Feininger.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyonel Feininger.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyonel Feininger.json new file mode 100644 index 00000000..4786f4b5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyonel Feininger.json @@ -0,0 +1,8 @@ +{ + "name": "Lyonel Feininger", + "description": "art by Lyonel Feininger", + "preview": "Lyonel Feininger.jpg", + "prompt": "art by Lyonel Feininger", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyubov Popova.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyubov Popova.jpg new file mode 100644 index 00000000..8b94e694 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyubov Popova.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyubov Popova.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyubov Popova.json new file mode 100644 index 00000000..fafd2463 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Lyubov Popova.json @@ -0,0 +1,8 @@ +{ + "name": "Lyubov Popova", + "description": "art by Lyubov Popova", + "preview": "Lyubov Popova.jpg", + "prompt": "art by Lyubov Popova", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/M.C. Escher.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.C. Escher.jpg new file mode 100644 index 00000000..5c215036 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.C. Escher.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/M.C. Escher.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.C. Escher.json new file mode 100644 index 00000000..9e91cda8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.C. Escher.json @@ -0,0 +1,8 @@ +{ + "name": "M.C. Escher", + "description": "art by M.C. Escher", + "preview": "M.C. Escher.jpg", + "prompt": "art by M.C. Escher", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/M.W. Kaluta.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.W. Kaluta.jpg new file mode 100644 index 00000000..ed7aaed2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.W. Kaluta.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/M.W. Kaluta.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.W. Kaluta.json new file mode 100644 index 00000000..2d988695 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/M.W. Kaluta.json @@ -0,0 +1,8 @@ +{ + "name": "M.W. Kaluta", + "description": "art by M.W. Kaluta", + "preview": "M.W. Kaluta.jpg", + "prompt": "art by M.W. Kaluta", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mab Graves.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mab Graves.jpg new file mode 100644 index 00000000..6f1c8f8e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mab Graves.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mab Graves.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mab Graves.json new file mode 100644 index 00000000..167ec6dd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mab Graves.json @@ -0,0 +1,8 @@ +{ + "name": "Mab Graves", + "description": "art by Mab Graves", + "preview": "Mab Graves.jpg", + "prompt": "art by Mab Graves", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Makoto Shinkai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Makoto Shinkai.jpg new file mode 100644 index 00000000..39a492d9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Makoto Shinkai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Makoto Shinkai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Makoto Shinkai.json new file mode 100644 index 00000000..f410838e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Makoto Shinkai.json @@ -0,0 +1,8 @@ +{ + "name": "Makoto Shinkai", + "description": "art by Makoto Shinkai", + "preview": "Makoto Shinkai.jpg", + "prompt": "art by Makoto Shinkai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Malcolm Liepke.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Malcolm Liepke.jpg new file mode 100644 index 00000000..69c508ee Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Malcolm Liepke.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Malcolm Liepke.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Malcolm Liepke.json new file mode 100644 index 00000000..757029ed --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Malcolm Liepke.json @@ -0,0 +1,8 @@ +{ + "name": "Malcolm Liepke", + "description": "art by Malcolm Liepke", + "preview": "Malcolm Liepke.jpg", + "prompt": "art by Malcolm Liepke", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Man Ray.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Man Ray.jpg new file mode 100644 index 00000000..21ab7d00 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Man Ray.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Man Ray.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Man Ray.json new file mode 100644 index 00000000..cb5c0c01 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Man Ray.json @@ -0,0 +1,8 @@ +{ + "name": "Man Ray", + "description": "art by Man Ray", + "preview": "Man Ray.jpg", + "prompt": "art by Man Ray", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Chagall.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Chagall.jpg new file mode 100644 index 00000000..a4cef087 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Chagall.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Chagall.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Chagall.json new file mode 100644 index 00000000..87185d67 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Chagall.json @@ -0,0 +1,8 @@ +{ + "name": "Marc Chagall", + "description": "art by Marc Chagall", + "preview": "Marc Chagall.jpg", + "prompt": "art by Marc Chagall", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Simonetti.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Simonetti.jpg new file mode 100644 index 00000000..76fa6ac9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Simonetti.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Simonetti.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Simonetti.json new file mode 100644 index 00000000..aee16638 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marc Simonetti.json @@ -0,0 +1,8 @@ +{ + "name": "Marc Simonetti", + "description": "art by Marc Simonetti", + "preview": "Marc Simonetti.jpg", + "prompt": "art by Marc Simonetti", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marco Mazzoni.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marco Mazzoni.jpg new file mode 100644 index 00000000..47a3ebea Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marco Mazzoni.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marco Mazzoni.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marco Mazzoni.json new file mode 100644 index 00000000..43c47f9b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marco Mazzoni.json @@ -0,0 +1,8 @@ +{ + "name": "Marco Mazzoni", + "description": "art by Marco Mazzoni", + "preview": "Marco Mazzoni.jpg", + "prompt": "art by Marco Mazzoni", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marek Okon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marek Okon.jpg new file mode 100644 index 00000000..a8028165 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marek Okon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marek Okon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marek Okon.json new file mode 100644 index 00000000..c93ad446 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marek Okon.json @@ -0,0 +1,8 @@ +{ + "name": "Marek Okon", + "description": "art by Marek Okon", + "preview": "Marek Okon.jpg", + "prompt": "art by Marek Okon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Boden.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Boden.jpg new file mode 100644 index 00000000..a35582e5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Boden.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Boden.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Boden.json new file mode 100644 index 00000000..5e2b8e5a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Boden.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Boden", + "description": "art by Margaret Boden", + "preview": "Margaret Boden.jpg", + "prompt": "art by Margaret Boden", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Bruce Wells.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Bruce Wells.jpg new file mode 100644 index 00000000..a75426fe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Bruce Wells.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Bruce Wells.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Bruce Wells.json new file mode 100644 index 00000000..35fd22f9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Bruce Wells.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Bruce Wells", + "description": "art by Margaret Bruce Wells", + "preview": "Margaret Bruce Wells.jpg", + "prompt": "art by Margaret Bruce Wells", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Brundage.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Brundage.jpg new file mode 100644 index 00000000..59ab7de0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Brundage.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Brundage.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Brundage.json new file mode 100644 index 00000000..4a5d1701 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Brundage.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Brundage", + "description": "art by Margaret Brundage", + "preview": "Margaret Brundage.jpg", + "prompt": "art by Margaret Brundage", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Garland.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Garland.jpg new file mode 100644 index 00000000..bbd5befe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Garland.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Garland.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Garland.json new file mode 100644 index 00000000..97d45962 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Garland.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Garland", + "description": "art by Margaret Garland", + "preview": "Margaret Garland.jpg", + "prompt": "art by Margaret Garland", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Geddes.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Geddes.jpg new file mode 100644 index 00000000..97b98534 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Geddes.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Geddes.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Geddes.json new file mode 100644 index 00000000..27c38646 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Geddes.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Geddes", + "description": "art by Margaret Geddes", + "preview": "Margaret Geddes.jpg", + "prompt": "art by Margaret Geddes", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Graeme Niven.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Graeme Niven.jpg new file mode 100644 index 00000000..faee781a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Graeme Niven.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Graeme Niven.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Graeme Niven.json new file mode 100644 index 00000000..0ad7b906 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Graeme Niven.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Graeme Niven", + "description": "art by Margaret Graeme Niven", + "preview": "Margaret Graeme Niven.jpg", + "prompt": "art by Margaret Graeme Niven", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Keane.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Keane.jpg new file mode 100644 index 00000000..389d8f51 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Keane.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Keane.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Keane.json new file mode 100644 index 00000000..85a45f64 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Keane.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Keane", + "description": "art by Margaret Keane", + "preview": "Margaret Keane.jpg", + "prompt": "art by Margaret Keane", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Macdonald Mackintosh.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Macdonald Mackintosh.jpg new file mode 100644 index 00000000..084c240a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Macdonald Mackintosh.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Macdonald Mackintosh.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Macdonald Mackintosh.json new file mode 100644 index 00000000..dc51735d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Margaret Macdonald Mackintosh.json @@ -0,0 +1,8 @@ +{ + "name": "Margaret Macdonald Mackintosh", + "description": "art by Margaret Macdonald Mackintosh", + "preview": "Margaret Macdonald Mackintosh.jpg", + "prompt": "art by Margaret Macdonald Mackintosh", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Prymachenko.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Prymachenko.jpg new file mode 100644 index 00000000..464b2b85 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Prymachenko.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Prymachenko.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Prymachenko.json new file mode 100644 index 00000000..af61a69d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Prymachenko.json @@ -0,0 +1,8 @@ +{ + "name": "Maria Prymachenko", + "description": "art by Maria Prymachenko", + "preview": "Maria Prymachenko.jpg", + "prompt": "art by Maria Prymachenko", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Sibylla Merian.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Sibylla Merian.jpg new file mode 100644 index 00000000..99309824 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Sibylla Merian.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Sibylla Merian.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Sibylla Merian.json new file mode 100644 index 00000000..8ec9824c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maria Sibylla Merian.json @@ -0,0 +1,8 @@ +{ + "name": "Maria Sibylla Merian", + "description": "art by Maria Sibylla Merian", + "preview": "Maria Sibylla Merian.jpg", + "prompt": "art by Maria Sibylla Merian", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marianne von Werefkin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marianne von Werefkin.jpg new file mode 100644 index 00000000..b7662c72 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marianne von Werefkin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marianne von Werefkin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marianne von Werefkin.json new file mode 100644 index 00000000..8b4c6932 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marianne von Werefkin.json @@ -0,0 +1,8 @@ +{ + "name": "Marianne von Werefkin", + "description": "art by Marianne von Werefkin", + "preview": "Marianne von Werefkin.jpg", + "prompt": "art by Marianne von Werefkin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mario Testino.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mario Testino.jpg new file mode 100644 index 00000000..d628bfcd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mario Testino.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mario Testino.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mario Testino.json new file mode 100644 index 00000000..dba8440d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mario Testino.json @@ -0,0 +1,8 @@ +{ + "name": "Mario Testino", + "description": "art by Mario Testino", + "preview": "Mario Testino.jpg", + "prompt": "art by Mario Testino", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marjorie Strider.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marjorie Strider.jpg new file mode 100644 index 00000000..02c16974 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marjorie Strider.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marjorie Strider.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marjorie Strider.json new file mode 100644 index 00000000..f7bf5f0a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marjorie Strider.json @@ -0,0 +1,8 @@ +{ + "name": "Marjorie Strider", + "description": "art by Marjorie Strider", + "preview": "Marjorie Strider.jpg", + "prompt": "art by Marjorie Strider", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Brooks.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Brooks.jpg new file mode 100644 index 00000000..e7e235df Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Brooks.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Brooks.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Brooks.json new file mode 100644 index 00000000..6a897084 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Brooks.json @@ -0,0 +1,8 @@ +{ + "name": "Mark Brooks", + "description": "art by Mark Brooks", + "preview": "Mark Brooks.jpg", + "prompt": "art by Mark Brooks", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Catesby.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Catesby.jpg new file mode 100644 index 00000000..dd28f672 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Catesby.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Catesby.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Catesby.json new file mode 100644 index 00000000..5f313a80 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Catesby.json @@ -0,0 +1,8 @@ +{ + "name": "Mark Catesby", + "description": "art by Mark Catesby", + "preview": "Mark Catesby.jpg", + "prompt": "art by Mark Catesby", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Lague.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Lague.jpg new file mode 100644 index 00000000..67b061ae Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Lague.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Lague.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Lague.json new file mode 100644 index 00000000..79ddffdb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Lague.json @@ -0,0 +1,8 @@ +{ + "name": "Mark Lague", + "description": "art by Mark Lague", + "preview": "Mark Lague.jpg", + "prompt": "art by Mark Lague", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Rothko.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Rothko.jpg new file mode 100644 index 00000000..fa473a09 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Rothko.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Rothko.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Rothko.json new file mode 100644 index 00000000..e37d0321 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Rothko.json @@ -0,0 +1,8 @@ +{ + "name": "Mark Rothko", + "description": "art by Mark Rothko", + "preview": "Mark Rothko.jpg", + "prompt": "art by Mark Rothko", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Ryden.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Ryden.jpg new file mode 100644 index 00000000..e8648387 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Ryden.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Ryden.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Ryden.json new file mode 100644 index 00000000..0d48402b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mark Ryden.json @@ -0,0 +1,8 @@ +{ + "name": "Mark Ryden", + "description": "art by Mark Ryden", + "preview": "Mark Ryden.jpg", + "prompt": "art by Mark Ryden", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marsden Hartley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marsden Hartley.jpg new file mode 100644 index 00000000..56ed0348 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marsden Hartley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Marsden Hartley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marsden Hartley.json new file mode 100644 index 00000000..6994d5bb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Marsden Hartley.json @@ -0,0 +1,8 @@ +{ + "name": "Marsden Hartley", + "description": "art by Marsden Hartley", + "preview": "Marsden Hartley.jpg", + "prompt": "art by Marsden Hartley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Johnson Heade.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Johnson Heade.jpg new file mode 100644 index 00000000..594d1208 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Johnson Heade.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Johnson Heade.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Johnson Heade.json new file mode 100644 index 00000000..02c9864d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Johnson Heade.json @@ -0,0 +1,8 @@ +{ + "name": "Martin Johnson Heade", + "description": "art by Martin Johnson Heade", + "preview": "Martin Johnson Heade.jpg", + "prompt": "art by Martin Johnson Heade", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Parr.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Parr.jpg new file mode 100644 index 00000000..352d0ba0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Parr.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Parr.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Parr.json new file mode 100644 index 00000000..2d8a9c07 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martin Parr.json @@ -0,0 +1,8 @@ +{ + "name": "Martin Parr", + "description": "art by Martin Parr", + "preview": "Martin Parr.jpg", + "prompt": "art by Martin Parr", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Martiros Saryan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martiros Saryan.jpg new file mode 100644 index 00000000..46513522 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martiros Saryan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Martiros Saryan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martiros Saryan.json new file mode 100644 index 00000000..5c34a4b2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Martiros Saryan.json @@ -0,0 +1,8 @@ +{ + "name": "Martiros Saryan", + "description": "art by Martiros Saryan", + "preview": "Martiros Saryan.jpg", + "prompt": "art by Martiros Saryan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Blair.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Blair.jpg new file mode 100644 index 00000000..8a430e5c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Blair.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Blair.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Blair.json new file mode 100644 index 00000000..2677b241 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Blair.json @@ -0,0 +1,8 @@ +{ + "name": "Mary Blair", + "description": "art by Mary Blair", + "preview": "Mary Blair.jpg", + "prompt": "art by Mary Blair", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Cassatt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Cassatt.jpg new file mode 100644 index 00000000..83bafb4b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Cassatt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Cassatt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Cassatt.json new file mode 100644 index 00000000..459a3ac8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mary Cassatt.json @@ -0,0 +1,8 @@ +{ + "name": "Mary Cassatt", + "description": "art by Mary Cassatt", + "preview": "Mary Cassatt.jpg", + "prompt": "art by Mary Cassatt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Masamune Shirow.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masamune Shirow.jpg new file mode 100644 index 00000000..786eaa6d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masamune Shirow.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Masamune Shirow.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masamune Shirow.json new file mode 100644 index 00000000..4b07037e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masamune Shirow.json @@ -0,0 +1,8 @@ +{ + "name": "Masamune Shirow", + "description": "art by Masamune Shirow", + "preview": "Masamune Shirow.jpg", + "prompt": "art by Masamune Shirow", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Masashi Kishimoto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masashi Kishimoto.jpg new file mode 100644 index 00000000..962c11e0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masashi Kishimoto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Masashi Kishimoto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masashi Kishimoto.json new file mode 100644 index 00000000..aa9a1f59 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Masashi Kishimoto.json @@ -0,0 +1,8 @@ +{ + "name": "Masashi Kishimoto", + "description": "art by Masashi Kishimoto", + "preview": "Masashi Kishimoto.jpg", + "prompt": "art by Masashi Kishimoto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mat Collishaw.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mat Collishaw.jpg new file mode 100644 index 00000000..509bc208 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mat Collishaw.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mat Collishaw.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mat Collishaw.json new file mode 100644 index 00000000..b6eec141 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mat Collishaw.json @@ -0,0 +1,8 @@ +{ + "name": "Mat Collishaw", + "description": "art by Mat Collishaw", + "preview": "Mat Collishaw.jpg", + "prompt": "art by Mat Collishaw", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mati Klarwein.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mati Klarwein.jpg new file mode 100644 index 00000000..ec966956 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mati Klarwein.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mati Klarwein.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mati Klarwein.json new file mode 100644 index 00000000..807b6f8e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mati Klarwein.json @@ -0,0 +1,8 @@ +{ + "name": "Mati Klarwein", + "description": "art by Mati Klarwein", + "preview": "Mati Klarwein.jpg", + "prompt": "art by Mati Klarwein", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Matt Groening.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matt Groening.jpg new file mode 100644 index 00000000..dec947e1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matt Groening.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Matt Groening.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matt Groening.json new file mode 100644 index 00000000..795b54fc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matt Groening.json @@ -0,0 +1,8 @@ +{ + "name": "Matt Groening", + "description": "art by Matt Groening", + "preview": "Matt Groening.jpg", + "prompt": "art by Matt Groening", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Matthias Grunewald.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matthias Grunewald.jpg new file mode 100644 index 00000000..54e26271 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matthias Grunewald.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Matthias Grunewald.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matthias Grunewald.json new file mode 100644 index 00000000..0c860ad4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matthias Grunewald.json @@ -0,0 +1,8 @@ +{ + "name": "Matthias Grunewald", + "description": "art by Matthias Grunewald", + "preview": "Matthias Grunewald.jpg", + "prompt": "art by Matthias Grunewald", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Matti Suuronen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matti Suuronen.jpg new file mode 100644 index 00000000..4c55f1d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matti Suuronen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Matti Suuronen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matti Suuronen.json new file mode 100644 index 00000000..23ae4835 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Matti Suuronen.json @@ -0,0 +1,8 @@ +{ + "name": "Matti Suuronen", + "description": "art by Matti Suuronen", + "preview": "Matti Suuronen.jpg", + "prompt": "art by Matti Suuronen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maurice Sendak.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maurice Sendak.jpg new file mode 100644 index 00000000..e39ea79b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maurice Sendak.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maurice Sendak.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maurice Sendak.json new file mode 100644 index 00000000..bf30c5ce --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maurice Sendak.json @@ -0,0 +1,8 @@ +{ + "name": "Maurice Sendak", + "description": "art by Maurice Sendak", + "preview": "Maurice Sendak.jpg", + "prompt": "art by Maurice Sendak", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Beckmann.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Beckmann.jpg new file mode 100644 index 00000000..bdfde671 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Beckmann.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Beckmann.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Beckmann.json new file mode 100644 index 00000000..3b8f46b8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Beckmann.json @@ -0,0 +1,8 @@ +{ + "name": "Max Beckmann", + "description": "art by Max Beckmann", + "preview": "Max Beckmann.jpg", + "prompt": "art by Max Beckmann", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Ernst.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Ernst.jpg new file mode 100644 index 00000000..3ed65eea Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Ernst.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Ernst.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Ernst.json new file mode 100644 index 00000000..5718a295 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Ernst.json @@ -0,0 +1,8 @@ +{ + "name": "Max Ernst", + "description": "art by Max Ernst", + "preview": "Max Ernst.jpg", + "prompt": "art by Max Ernst", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Pechstein.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Pechstein.jpg new file mode 100644 index 00000000..64de7c11 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Pechstein.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Pechstein.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Pechstein.json new file mode 100644 index 00000000..8f9b95eb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Pechstein.json @@ -0,0 +1,8 @@ +{ + "name": "Max Pechstein", + "description": "art by Max Pechstein", + "preview": "Max Pechstein.jpg", + "prompt": "art by Max Pechstein", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Weber.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Weber.jpg new file mode 100644 index 00000000..7b11cf31 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Weber.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Weber.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Weber.json new file mode 100644 index 00000000..f2fbf50a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Max Weber.json @@ -0,0 +1,8 @@ +{ + "name": "Max Weber", + "description": "art by Max Weber", + "preview": "Max Weber.jpg", + "prompt": "art by Max Weber", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maxfield Parrish.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maxfield Parrish.jpg new file mode 100644 index 00000000..17b84b7c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maxfield Parrish.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Maxfield Parrish.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maxfield Parrish.json new file mode 100644 index 00000000..0cde9878 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Maxfield Parrish.json @@ -0,0 +1,8 @@ +{ + "name": "Maxfield Parrish", + "description": "art by Maxfield Parrish", + "preview": "Maxfield Parrish.jpg", + "prompt": "art by Maxfield Parrish", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Meret Oppenheim.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Meret Oppenheim.jpg new file mode 100644 index 00000000..2b1a1b07 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Meret Oppenheim.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Meret Oppenheim.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Meret Oppenheim.json new file mode 100644 index 00000000..3bbb661e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Meret Oppenheim.json @@ -0,0 +1,8 @@ +{ + "name": "Meret Oppenheim", + "description": "art by Meret Oppenheim", + "preview": "Meret Oppenheim.jpg", + "prompt": "art by Meret Oppenheim", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Deforge.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Deforge.jpg new file mode 100644 index 00000000..d08efb3b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Deforge.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Deforge.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Deforge.json new file mode 100644 index 00000000..afbc4fad --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Deforge.json @@ -0,0 +1,8 @@ +{ + "name": "Michael Deforge", + "description": "art by Michael Deforge", + "preview": "Michael Deforge.jpg", + "prompt": "art by Michael Deforge", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Whelan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Whelan.jpg new file mode 100644 index 00000000..f3076403 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Whelan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Whelan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Whelan.json new file mode 100644 index 00000000..0f7ab653 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michael Whelan.json @@ -0,0 +1,8 @@ +{ + "name": "Michael Whelan", + "description": "art by Michael Whelan", + "preview": "Michael Whelan.jpg", + "prompt": "art by Michael Whelan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Michelangelo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michelangelo.jpg new file mode 100644 index 00000000..c7a0c0a3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michelangelo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Michelangelo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michelangelo.json new file mode 100644 index 00000000..341eafff --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Michelangelo.json @@ -0,0 +1,8 @@ +{ + "name": "Michelangelo", + "description": "art by Michelangelo", + "preview": "Michelangelo.jpg", + "prompt": "art by Michelangelo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mike Mignola.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mike Mignola.jpg new file mode 100644 index 00000000..f32be16e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mike Mignola.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mike Mignola.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mike Mignola.json new file mode 100644 index 00000000..391e80a1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mike Mignola.json @@ -0,0 +1,8 @@ +{ + "name": "Mike Mignola", + "description": "art by Mike Mignola", + "preview": "Mike Mignola.jpg", + "prompt": "art by Mike Mignola", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mikhail Vrubel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mikhail Vrubel.jpg new file mode 100644 index 00000000..f512e23f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mikhail Vrubel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mikhail Vrubel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mikhail Vrubel.json new file mode 100644 index 00000000..724c1ced --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mikhail Vrubel.json @@ -0,0 +1,8 @@ +{ + "name": "Mikhail Vrubel", + "description": "art by Mikhail Vrubel", + "preview": "Mikhail Vrubel.jpg", + "prompt": "art by Mikhail Vrubel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Miles Aldridge.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Miles Aldridge.jpg new file mode 100644 index 00000000..91633200 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Miles Aldridge.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Miles Aldridge.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Miles Aldridge.json new file mode 100644 index 00000000..12a54409 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Miles Aldridge.json @@ -0,0 +1,8 @@ +{ + "name": "Miles Aldridge", + "description": "art by Miles Aldridge", + "preview": "Miles Aldridge.jpg", + "prompt": "art by Miles Aldridge", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Avery.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Avery.jpg new file mode 100644 index 00000000..14dd32ff Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Avery.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Avery.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Avery.json new file mode 100644 index 00000000..e18fbcd1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Avery.json @@ -0,0 +1,8 @@ +{ + "name": "Milton Avery", + "description": "art by Milton Avery", + "preview": "Milton Avery.jpg", + "prompt": "art by Milton Avery", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Glaser.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Glaser.jpg new file mode 100644 index 00000000..95487939 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Glaser.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Glaser.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Glaser.json new file mode 100644 index 00000000..0a42ad2c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Milton Glaser.json @@ -0,0 +1,8 @@ +{ + "name": "Milton Glaser", + "description": "art by Milton Glaser", + "preview": "Milton Glaser.jpg", + "prompt": "art by Milton Glaser", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Moebius (Jean Giraud).jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Moebius (Jean Giraud).jpg new file mode 100644 index 00000000..f63d3c08 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Moebius (Jean Giraud).jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Moebius (Jean Giraud).json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Moebius (Jean Giraud).json new file mode 100644 index 00000000..f0e026f5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Moebius (Jean Giraud).json @@ -0,0 +1,8 @@ +{ + "name": "Moebius (Jean Giraud)", + "description": "art by Moebius (Jean Giraud)", + "preview": "Moebius (Jean Giraud).jpg", + "prompt": "art by Moebius (Jean Giraud)", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mort Drucker.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mort Drucker.jpg new file mode 100644 index 00000000..9668c4fb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mort Drucker.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Mort Drucker.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mort Drucker.json new file mode 100644 index 00000000..57fe8494 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Mort Drucker.json @@ -0,0 +1,8 @@ +{ + "name": "Mort Drucker", + "description": "art by Mort Drucker", + "preview": "Mort Drucker.jpg", + "prompt": "art by Mort Drucker", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nan Goldin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nan Goldin.jpg new file mode 100644 index 00000000..8e1e3a6a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nan Goldin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nan Goldin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nan Goldin.json new file mode 100644 index 00000000..f1419266 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nan Goldin.json @@ -0,0 +1,8 @@ +{ + "name": "Nan Goldin", + "description": "art by Nan Goldin", + "preview": "Nan Goldin.jpg", + "prompt": "art by Nan Goldin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nao Emoto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nao Emoto.jpg new file mode 100644 index 00000000..f523ce2c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nao Emoto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nao Emoto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nao Emoto.json new file mode 100644 index 00000000..58822494 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nao Emoto.json @@ -0,0 +1,8 @@ +{ + "name": "Nao Emoto", + "description": "art by Nao Emoto", + "preview": "Nao Emoto.jpg", + "prompt": "art by Nao Emoto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Naoto Hattori.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Naoto Hattori.jpg new file mode 100644 index 00000000..1dcf3624 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Naoto Hattori.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Naoto Hattori.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Naoto Hattori.json new file mode 100644 index 00000000..16200558 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Naoto Hattori.json @@ -0,0 +1,8 @@ +{ + "name": "Naoto Hattori", + "description": "art by Naoto Hattori", + "preview": "Naoto Hattori.jpg", + "prompt": "art by Naoto Hattori", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Natalia Goncharova.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Natalia Goncharova.jpg new file mode 100644 index 00000000..7d6a4c35 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Natalia Goncharova.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Natalia Goncharova.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Natalia Goncharova.json new file mode 100644 index 00000000..5ebad1f3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Natalia Goncharova.json @@ -0,0 +1,8 @@ +{ + "name": "Natalia Goncharova", + "description": "art by Natalia Goncharova", + "preview": "Natalia Goncharova.jpg", + "prompt": "art by Natalia Goncharova", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Neil Welliver.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Neil Welliver.jpg new file mode 100644 index 00000000..5c40a1d8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Neil Welliver.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Neil Welliver.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Neil Welliver.json new file mode 100644 index 00000000..8957b49b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Neil Welliver.json @@ -0,0 +1,8 @@ +{ + "name": "Neil Welliver", + "description": "art by Neil Welliver", + "preview": "Neil Welliver.jpg", + "prompt": "art by Neil Welliver", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nele Zirnite.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nele Zirnite.jpg new file mode 100644 index 00000000..60a2915b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nele Zirnite.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nele Zirnite.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nele Zirnite.json new file mode 100644 index 00000000..b1df5890 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nele Zirnite.json @@ -0,0 +1,8 @@ +{ + "name": "Nele Zirnite", + "description": "art by Nele Zirnite", + "preview": "Nele Zirnite.jpg", + "prompt": "art by Nele Zirnite", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nell Dorr.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nell Dorr.jpg new file mode 100644 index 00000000..3679ad82 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nell Dorr.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nell Dorr.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nell Dorr.json new file mode 100644 index 00000000..97738dd1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nell Dorr.json @@ -0,0 +1,8 @@ +{ + "name": "Nell Dorr", + "description": "art by Nell Dorr", + "preview": "Nell Dorr.jpg", + "prompt": "art by Nell Dorr", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nicholas Roerich.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nicholas Roerich.jpg new file mode 100644 index 00000000..8206b422 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nicholas Roerich.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nicholas Roerich.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nicholas Roerich.json new file mode 100644 index 00000000..b371acb9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nicholas Roerich.json @@ -0,0 +1,8 @@ +{ + "name": "Nicholas Roerich", + "description": "art by Nicholas Roerich", + "preview": "Nicholas Roerich.jpg", + "prompt": "art by Nicholas Roerich", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nick Knight.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nick Knight.jpg new file mode 100644 index 00000000..71c79b36 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nick Knight.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nick Knight.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nick Knight.json new file mode 100644 index 00000000..bedd3326 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nick Knight.json @@ -0,0 +1,8 @@ +{ + "name": "Nick Knight", + "description": "art by Nick Knight", + "preview": "Nick Knight.jpg", + "prompt": "art by Nick Knight", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nikos Economopoulos.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nikos Economopoulos.jpg new file mode 100644 index 00000000..904cc0dd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nikos Economopoulos.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nikos Economopoulos.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nikos Economopoulos.json new file mode 100644 index 00000000..f936c429 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nikos Economopoulos.json @@ -0,0 +1,8 @@ +{ + "name": "Nikos Economopoulos", + "description": "art by Nikos Economopoulos", + "preview": "Nikos Economopoulos.jpg", + "prompt": "art by Nikos Economopoulos", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nobuyoshi Araki.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nobuyoshi Araki.jpg new file mode 100644 index 00000000..95d504a1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nobuyoshi Araki.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nobuyoshi Araki.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nobuyoshi Araki.json new file mode 100644 index 00000000..52b58c11 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nobuyoshi Araki.json @@ -0,0 +1,8 @@ +{ + "name": "Nobuyoshi Araki", + "description": "art by Nobuyoshi Araki", + "preview": "Nobuyoshi Araki.jpg", + "prompt": "art by Nobuyoshi Araki", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Noriyoshi Ohrai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Noriyoshi Ohrai.jpg new file mode 100644 index 00000000..d972eb62 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Noriyoshi Ohrai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Noriyoshi Ohrai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Noriyoshi Ohrai.json new file mode 100644 index 00000000..a9003b91 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Noriyoshi Ohrai.json @@ -0,0 +1,8 @@ +{ + "name": "Noriyoshi Ohrai", + "description": "art by Noriyoshi Ohrai", + "preview": "Noriyoshi Ohrai.jpg", + "prompt": "art by Noriyoshi Ohrai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Norman Rockwell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Norman Rockwell.jpg new file mode 100644 index 00000000..49256dfc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Norman Rockwell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Norman Rockwell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Norman Rockwell.json new file mode 100644 index 00000000..3f5221f3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Norman Rockwell.json @@ -0,0 +1,8 @@ +{ + "name": "Norman Rockwell", + "description": "art by Norman Rockwell", + "preview": "Norman Rockwell.jpg", + "prompt": "art by Norman Rockwell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nychos.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nychos.jpg new file mode 100644 index 00000000..65500a00 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nychos.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Nychos.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nychos.json new file mode 100644 index 00000000..64adf4c8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Nychos.json @@ -0,0 +1,8 @@ +{ + "name": "Nychos", + "description": "art by Nychos", + "preview": "Nychos.jpg", + "prompt": "art by Nychos", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Odd Nerdrum.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odd Nerdrum.jpg new file mode 100644 index 00000000..9122c9f4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odd Nerdrum.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Odd Nerdrum.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odd Nerdrum.json new file mode 100644 index 00000000..f9352064 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odd Nerdrum.json @@ -0,0 +1,8 @@ +{ + "name": "Odd Nerdrum", + "description": "art by Odd Nerdrum", + "preview": "Odd Nerdrum.jpg", + "prompt": "art by Odd Nerdrum", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Odilon Redon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odilon Redon.jpg new file mode 100644 index 00000000..5622350e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odilon Redon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Odilon Redon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odilon Redon.json new file mode 100644 index 00000000..14d35a23 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Odilon Redon.json @@ -0,0 +1,8 @@ +{ + "name": "Odilon Redon", + "description": "art by Odilon Redon", + "preview": "Odilon Redon.jpg", + "prompt": "art by Odilon Redon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Oliver Jeffers.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oliver Jeffers.jpg new file mode 100644 index 00000000..cb7ddd14 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oliver Jeffers.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Oliver Jeffers.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oliver Jeffers.json new file mode 100644 index 00000000..fadc2088 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oliver Jeffers.json @@ -0,0 +1,8 @@ +{ + "name": "Oliver Jeffers", + "description": "art by Oliver Jeffers", + "preview": "Oliver Jeffers.jpg", + "prompt": "art by Oliver Jeffers", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Kokoschka.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Kokoschka.jpg new file mode 100644 index 00000000..1fae813f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Kokoschka.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Kokoschka.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Kokoschka.json new file mode 100644 index 00000000..b0462079 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Kokoschka.json @@ -0,0 +1,8 @@ +{ + "name": "Oskar Kokoschka", + "description": "art by Oskar Kokoschka", + "preview": "Oskar Kokoschka.jpg", + "prompt": "art by Oskar Kokoschka", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Schlemmer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Schlemmer.jpg new file mode 100644 index 00000000..60957f56 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Schlemmer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Schlemmer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Schlemmer.json new file mode 100644 index 00000000..eff341ba --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Oskar Schlemmer.json @@ -0,0 +1,8 @@ +{ + "name": "Oskar Schlemmer", + "description": "art by Oskar Schlemmer", + "preview": "Oskar Schlemmer.jpg", + "prompt": "art by Oskar Schlemmer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Dix.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Dix.jpg new file mode 100644 index 00000000..82516752 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Dix.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Dix.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Dix.json new file mode 100644 index 00000000..f4d91c6d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Dix.json @@ -0,0 +1,8 @@ +{ + "name": "Otto Dix", + "description": "art by Otto Dix", + "preview": "Otto Dix.jpg", + "prompt": "art by Otto Dix", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Marseus van Schrieck.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Marseus van Schrieck.jpg new file mode 100644 index 00000000..622de8e4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Marseus van Schrieck.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Marseus van Schrieck.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Marseus van Schrieck.json new file mode 100644 index 00000000..2603be90 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Otto Marseus van Schrieck.json @@ -0,0 +1,8 @@ +{ + "name": "Otto Marseus van Schrieck", + "description": "art by Otto Marseus van Schrieck", + "preview": "Otto Marseus van Schrieck.jpg", + "prompt": "art by Otto Marseus van Schrieck", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pablo Picasso.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pablo Picasso.jpg new file mode 100644 index 00000000..2c86a056 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pablo Picasso.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pablo Picasso.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pablo Picasso.json new file mode 100644 index 00000000..f9e85479 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pablo Picasso.json @@ -0,0 +1,8 @@ +{ + "name": "Pablo Picasso", + "description": "art by Pablo Picasso", + "preview": "Pablo Picasso.jpg", + "prompt": "art by Pablo Picasso", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pascal Campion.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pascal Campion.jpg new file mode 100644 index 00000000..bfa3f6fb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pascal Campion.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pascal Campion.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pascal Campion.json new file mode 100644 index 00000000..4500ba55 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pascal Campion.json @@ -0,0 +1,8 @@ +{ + "name": "Pascal Campion", + "description": "art by Pascal Campion", + "preview": "Pascal Campion.jpg", + "prompt": "art by Pascal Campion", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Henry Bruce.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Henry Bruce.jpg new file mode 100644 index 00000000..e51348dc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Henry Bruce.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Henry Bruce.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Henry Bruce.json new file mode 100644 index 00000000..4835de58 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Henry Bruce.json @@ -0,0 +1,8 @@ +{ + "name": "Patrick Henry Bruce", + "description": "art by Patrick Henry Bruce", + "preview": "Patrick Henry Bruce.jpg", + "prompt": "art by Patrick Henry Bruce", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Heron.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Heron.jpg new file mode 100644 index 00000000..659d21d8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Heron.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Heron.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Heron.json new file mode 100644 index 00000000..f3d0f626 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Heron.json @@ -0,0 +1,8 @@ +{ + "name": "Patrick Heron", + "description": "art by Patrick Heron", + "preview": "Patrick Heron.jpg", + "prompt": "art by Patrick Heron", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Nagel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Nagel.jpg new file mode 100644 index 00000000..521c9b8e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Nagel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Nagel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Nagel.json new file mode 100644 index 00000000..8b4ef633 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Nagel.json @@ -0,0 +1,8 @@ +{ + "name": "Patrick Nagel", + "description": "art by Patrick Nagel", + "preview": "Patrick Nagel.jpg", + "prompt": "art by Patrick Nagel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Woodroffe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Woodroffe.jpg new file mode 100644 index 00000000..56c5e634 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Woodroffe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Woodroffe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Woodroffe.json new file mode 100644 index 00000000..ed35b889 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Patrick Woodroffe.json @@ -0,0 +1,8 @@ +{ + "name": "Patrick Woodroffe", + "description": "art by Patrick Woodroffe", + "preview": "Patrick Woodroffe.jpg", + "prompt": "art by Patrick Woodroffe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Cezanne.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Cezanne.jpg new file mode 100644 index 00000000..17371235 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Cezanne.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Cezanne.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Cezanne.json new file mode 100644 index 00000000..a4340ebb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Cezanne.json @@ -0,0 +1,8 @@ +{ + "name": "Paul Cezanne", + "description": "art by Paul Cezanne", + "preview": "Paul Cezanne.jpg", + "prompt": "art by Paul Cezanne", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Delvaux.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Delvaux.jpg new file mode 100644 index 00000000..775a24ba Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Delvaux.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Delvaux.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Delvaux.json new file mode 100644 index 00000000..e648da06 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Delvaux.json @@ -0,0 +1,8 @@ +{ + "name": "Paul Delvaux", + "description": "art by Paul Delvaux", + "preview": "Paul Delvaux.jpg", + "prompt": "art by Paul Delvaux", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gauguin.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gauguin.jpg new file mode 100644 index 00000000..e4a3b965 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gauguin.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gauguin.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gauguin.json new file mode 100644 index 00000000..db615343 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gauguin.json @@ -0,0 +1,8 @@ +{ + "name": "Paul Gauguin", + "description": "art by Paul Gauguin", + "preview": "Paul Gauguin.jpg", + "prompt": "art by Paul Gauguin", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gustav Fischer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gustav Fischer.jpg new file mode 100644 index 00000000..09214811 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gustav Fischer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gustav Fischer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gustav Fischer.json new file mode 100644 index 00000000..52ec78ab --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Gustav Fischer.json @@ -0,0 +1,8 @@ +{ + "name": "Paul Gustav Fischer", + "description": "art by Paul Gustav Fischer", + "preview": "Paul Gustav Fischer.jpg", + "prompt": "art by Paul Gustav Fischer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Klee.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Klee.jpg new file mode 100644 index 00000000..7823d53d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Klee.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Klee.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Klee.json new file mode 100644 index 00000000..8134ddf6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Klee.json @@ -0,0 +1,8 @@ +{ + "name": "Paul Klee", + "description": "art by Paul Klee", + "preview": "Paul Klee.jpg", + "prompt": "art by Paul Klee", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Rand.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Rand.jpg new file mode 100644 index 00000000..ad080a87 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Rand.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Rand.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Rand.json new file mode 100644 index 00000000..2a29be21 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paul Rand.json @@ -0,0 +1,8 @@ +{ + "name": "Paul Rand", + "description": "art by Paul Rand", + "preview": "Paul Rand.jpg", + "prompt": "art by Paul Rand", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paula Modersohn-Becker.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paula Modersohn-Becker.jpg new file mode 100644 index 00000000..837035fe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paula Modersohn-Becker.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Paula Modersohn-Becker.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paula Modersohn-Becker.json new file mode 100644 index 00000000..a86cabba --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Paula Modersohn-Becker.json @@ -0,0 +1,8 @@ +{ + "name": "Paula Modersohn-Becker", + "description": "art by Paula Modersohn-Becker", + "preview": "Paula Modersohn-Becker.jpg", + "prompt": "art by Paula Modersohn-Becker", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pendleton Ward.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pendleton Ward.jpg new file mode 100644 index 00000000..2f763400 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pendleton Ward.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pendleton Ward.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pendleton Ward.json new file mode 100644 index 00000000..ffc75a26 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pendleton Ward.json @@ -0,0 +1,8 @@ +{ + "name": "Pendleton Ward", + "description": "art by Pendleton Ward", + "preview": "Pendleton Ward.jpg", + "prompt": "art by Pendleton Ward", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Bagge.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Bagge.jpg new file mode 100644 index 00000000..5eba47a6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Bagge.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Bagge.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Bagge.json new file mode 100644 index 00000000..f58c51e8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Bagge.json @@ -0,0 +1,8 @@ +{ + "name": "Peter Bagge", + "description": "art by Peter Bagge", + "preview": "Peter Bagge.jpg", + "prompt": "art by Peter Bagge", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Elson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Elson.jpg new file mode 100644 index 00000000..aff6b371 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Elson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Elson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Elson.json new file mode 100644 index 00000000..9171f5bd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Elson.json @@ -0,0 +1,8 @@ +{ + "name": "Peter Elson", + "description": "art by Peter Elson", + "preview": "Peter Elson.jpg", + "prompt": "art by Peter Elson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Gric.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Gric.jpg new file mode 100644 index 00000000..034be6b3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Gric.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Gric.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Gric.json new file mode 100644 index 00000000..a23423ea --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Gric.json @@ -0,0 +1,8 @@ +{ + "name": "Peter Gric", + "description": "art by Peter Gric", + "preview": "Peter Gric.jpg", + "prompt": "art by Peter Gric", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Kemp.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Kemp.jpg new file mode 100644 index 00000000..3a2e8c3b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Kemp.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Kemp.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Kemp.json new file mode 100644 index 00000000..218ae0c7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Kemp.json @@ -0,0 +1,8 @@ +{ + "name": "Peter Kemp", + "description": "art by Peter Kemp", + "preview": "Peter Kemp.jpg", + "prompt": "art by Peter Kemp", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Max.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Max.jpg new file mode 100644 index 00000000..e1328afe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Max.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Max.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Max.json new file mode 100644 index 00000000..478f1fae --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Max.json @@ -0,0 +1,8 @@ +{ + "name": "Peter Max", + "description": "art by Peter Max", + "preview": "Peter Max.jpg", + "prompt": "art by Peter Max", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Paul Rubens.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Paul Rubens.jpg new file mode 100644 index 00000000..efa78db1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Paul Rubens.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Paul Rubens.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Paul Rubens.json new file mode 100644 index 00000000..9c2c2b29 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Peter Paul Rubens.json @@ -0,0 +1,8 @@ +{ + "name": "Peter Paul Rubens", + "description": "art by Peter Paul Rubens", + "preview": "Peter Paul Rubens.jpg", + "prompt": "art by Peter Paul Rubens", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Phil Foglio.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Phil Foglio.jpg new file mode 100644 index 00000000..b39ec75b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Phil Foglio.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Phil Foglio.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Phil Foglio.json new file mode 100644 index 00000000..c90b16fc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Phil Foglio.json @@ -0,0 +1,8 @@ +{ + "name": "Phil Foglio", + "description": "art by Phil Foglio", + "preview": "Phil Foglio.jpg", + "prompt": "art by Phil Foglio", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Guston.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Guston.jpg new file mode 100644 index 00000000..a844ed79 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Guston.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Guston.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Guston.json new file mode 100644 index 00000000..a0537089 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Guston.json @@ -0,0 +1,8 @@ +{ + "name": "Philip Guston", + "description": "art by Philip Guston", + "preview": "Philip Guston.jpg", + "prompt": "art by Philip Guston", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Pearlstein.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Pearlstein.jpg new file mode 100644 index 00000000..0b907deb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Pearlstein.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Pearlstein.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Pearlstein.json new file mode 100644 index 00000000..413a89c5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip Pearlstein.json @@ -0,0 +1,8 @@ +{ + "name": "Philip Pearlstein", + "description": "art by Philip Pearlstein", + "preview": "Philip Pearlstein.jpg", + "prompt": "art by Philip Pearlstein", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip-Lorca diCorcia.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip-Lorca diCorcia.jpg new file mode 100644 index 00000000..256dadd5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip-Lorca diCorcia.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip-Lorca diCorcia.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip-Lorca diCorcia.json new file mode 100644 index 00000000..9aa543b1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Philip-Lorca diCorcia.json @@ -0,0 +1,8 @@ +{ + "name": "Philip-Lorca diCorcia", + "description": "art by Philip-Lorca diCorcia", + "preview": "Philip-Lorca diCorcia.jpg", + "prompt": "art by Philip-Lorca diCorcia", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pierre Bonnard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pierre Bonnard.jpg new file mode 100644 index 00000000..894a13bd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pierre Bonnard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pierre Bonnard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pierre Bonnard.json new file mode 100644 index 00000000..1876ce82 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pierre Bonnard.json @@ -0,0 +1,8 @@ +{ + "name": "Pierre Bonnard", + "description": "art by Pierre Bonnard", + "preview": "Pierre Bonnard.jpg", + "prompt": "art by Pierre Bonnard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Piet Mondrian.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Piet Mondrian.jpg new file mode 100644 index 00000000..2504cd16 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Piet Mondrian.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Piet Mondrian.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Piet Mondrian.json new file mode 100644 index 00000000..91e61c11 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Piet Mondrian.json @@ -0,0 +1,8 @@ +{ + "name": "Piet Mondrian", + "description": "art by Piet Mondrian", + "preview": "Piet Mondrian.jpg", + "prompt": "art by Piet Mondrian", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pieter Claesz.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pieter Claesz.jpg new file mode 100644 index 00000000..a621fdd6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pieter Claesz.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Pieter Claesz.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pieter Claesz.json new file mode 100644 index 00000000..f4afa83d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Pieter Claesz.json @@ -0,0 +1,8 @@ +{ + "name": "Pieter Claesz", + "description": "art by Pieter Claesz", + "preview": "Pieter Claesz.jpg", + "prompt": "art by Pieter Claesz", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Platon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Platon.jpg new file mode 100644 index 00000000..9a058fe8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Platon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Platon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Platon.json new file mode 100644 index 00000000..4174ad55 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Platon.json @@ -0,0 +1,8 @@ +{ + "name": "Platon", + "description": "art by Platon", + "preview": "Platon.jpg", + "prompt": "art by Platon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Quentin Blake.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Quentin Blake.jpg new file mode 100644 index 00000000..433dae8b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Quentin Blake.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Quentin Blake.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Quentin Blake.json new file mode 100644 index 00000000..a60789e3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Quentin Blake.json @@ -0,0 +1,8 @@ +{ + "name": "Quentin Blake", + "description": "art by Quentin Blake", + "preview": "Quentin Blake.jpg", + "prompt": "art by Quentin Blake", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rachel Ignotofsky.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rachel Ignotofsky.jpg new file mode 100644 index 00000000..fd293712 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rachel Ignotofsky.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rachel Ignotofsky.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rachel Ignotofsky.json new file mode 100644 index 00000000..644a65af --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rachel Ignotofsky.json @@ -0,0 +1,8 @@ +{ + "name": "Rachel Ignotofsky", + "description": "art by Rachel Ignotofsky", + "preview": "Rachel Ignotofsky.jpg", + "prompt": "art by Rachel Ignotofsky", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rafal Olbinski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rafal Olbinski.jpg new file mode 100644 index 00000000..78f02f66 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rafal Olbinski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rafal Olbinski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rafal Olbinski.json new file mode 100644 index 00000000..3659b356 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rafal Olbinski.json @@ -0,0 +1,8 @@ +{ + "name": "Rafal Olbinski", + "description": "art by Rafal Olbinski", + "preview": "Rafal Olbinski.jpg", + "prompt": "art by Rafal Olbinski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph McQuarrie.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph McQuarrie.jpg new file mode 100644 index 00000000..951c0a2a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph McQuarrie.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph McQuarrie.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph McQuarrie.json new file mode 100644 index 00000000..55c6fdef --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph McQuarrie.json @@ -0,0 +1,8 @@ +{ + "name": "Ralph McQuarrie", + "description": "art by Ralph McQuarrie", + "preview": "Ralph McQuarrie.jpg", + "prompt": "art by Ralph McQuarrie", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph Steadman.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph Steadman.jpg new file mode 100644 index 00000000..0eeb8be1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph Steadman.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph Steadman.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph Steadman.json new file mode 100644 index 00000000..90cff515 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ralph Steadman.json @@ -0,0 +1,8 @@ +{ + "name": "Ralph Steadman", + "description": "art by Ralph Steadman", + "preview": "Ralph Steadman.jpg", + "prompt": "art by Ralph Steadman", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ramón Casas.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ramón Casas.jpg new file mode 100644 index 00000000..169d4fe6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ramón Casas.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ramón Casas.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ramón Casas.json new file mode 100644 index 00000000..d2078619 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ramón Casas.json @@ -0,0 +1,8 @@ +{ + "name": "Ram\u00f3n Casas", + "description": "art by Ram\u00f3n Casas", + "preview": "Ram\u00f3n Casas.jpg", + "prompt": "art by Ram\u00f3n Casas", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Randolph Caldecott.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Randolph Caldecott.jpg new file mode 100644 index 00000000..a5ede523 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Randolph Caldecott.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Randolph Caldecott.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Randolph Caldecott.json new file mode 100644 index 00000000..619daf5c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Randolph Caldecott.json @@ -0,0 +1,8 @@ +{ + "name": "Randolph Caldecott", + "description": "art by Randolph Caldecott", + "preview": "Randolph Caldecott.jpg", + "prompt": "art by Randolph Caldecott", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphael Lacoste.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphael Lacoste.jpg new file mode 100644 index 00000000..10eb21da Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphael Lacoste.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphael Lacoste.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphael Lacoste.json new file mode 100644 index 00000000..311cdc53 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphael Lacoste.json @@ -0,0 +1,8 @@ +{ + "name": "Raphael Lacoste", + "description": "art by Raphael Lacoste", + "preview": "Raphael Lacoste.jpg", + "prompt": "art by Raphael Lacoste", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphaelite.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphaelite.jpg new file mode 100644 index 00000000..5343725d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphaelite.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphaelite.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphaelite.json new file mode 100644 index 00000000..493ad5ec --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raphaelite.json @@ -0,0 +1,8 @@ +{ + "name": "Raphaelite", + "description": "art by Raphaelite", + "preview": "Raphaelite.jpg", + "prompt": "art by Raphaelite", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Caesar.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Caesar.jpg new file mode 100644 index 00000000..154ab16f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Caesar.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Caesar.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Caesar.json new file mode 100644 index 00000000..c01d4c3c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Caesar.json @@ -0,0 +1,8 @@ +{ + "name": "Ray Caesar", + "description": "art by Ray Caesar", + "preview": "Ray Caesar.jpg", + "prompt": "art by Ray Caesar", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Earnes.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Earnes.jpg new file mode 100644 index 00000000..ae7fb50d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Earnes.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Earnes.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Earnes.json new file mode 100644 index 00000000..6d190e59 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ray Earnes.json @@ -0,0 +1,8 @@ +{ + "name": "Ray Earnes", + "description": "art by Ray Earnes", + "preview": "Ray Earnes.jpg", + "prompt": "art by Ray Earnes", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Briggs.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Briggs.jpg new file mode 100644 index 00000000..caf964d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Briggs.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Briggs.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Briggs.json new file mode 100644 index 00000000..ba625d56 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Briggs.json @@ -0,0 +1,8 @@ +{ + "name": "Raymond Briggs", + "description": "art by Raymond Briggs", + "preview": "Raymond Briggs.jpg", + "prompt": "art by Raymond Briggs", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Swanland.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Swanland.jpg new file mode 100644 index 00000000..a5f1dc4b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Swanland.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Swanland.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Swanland.json new file mode 100644 index 00000000..f6e4eb33 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Raymond Swanland.json @@ -0,0 +1,8 @@ +{ + "name": "Raymond Swanland", + "description": "art by Raymond Swanland", + "preview": "Raymond Swanland.jpg", + "prompt": "art by Raymond Swanland", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebeca Saray.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebeca Saray.jpg new file mode 100644 index 00000000..05856692 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebeca Saray.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebeca Saray.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebeca Saray.json new file mode 100644 index 00000000..7fd7bcb3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebeca Saray.json @@ -0,0 +1,8 @@ +{ + "name": "Rebeca Saray", + "description": "art by Rebeca Saray", + "preview": "Rebeca Saray.jpg", + "prompt": "art by Rebeca Saray", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebecca Guay.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebecca Guay.jpg new file mode 100644 index 00000000..69fcbcd9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebecca Guay.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebecca Guay.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebecca Guay.json new file mode 100644 index 00000000..04ef103f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rebecca Guay.json @@ -0,0 +1,8 @@ +{ + "name": "Rebecca Guay", + "description": "art by Rebecca Guay", + "preview": "Rebecca Guay.jpg", + "prompt": "art by Rebecca Guay", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Reginald Marsh.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Reginald Marsh.jpg new file mode 100644 index 00000000..25d96f9b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Reginald Marsh.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Reginald Marsh.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Reginald Marsh.json new file mode 100644 index 00000000..181b9536 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Reginald Marsh.json @@ -0,0 +1,8 @@ +{ + "name": "Reginald Marsh", + "description": "art by Reginald Marsh", + "preview": "Reginald Marsh.jpg", + "prompt": "art by Reginald Marsh", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Remedios Varo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Remedios Varo.jpg new file mode 100644 index 00000000..d0029bc8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Remedios Varo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Remedios Varo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Remedios Varo.json new file mode 100644 index 00000000..f1936844 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Remedios Varo.json @@ -0,0 +1,8 @@ +{ + "name": "Remedios Varo", + "description": "art by Remedios Varo", + "preview": "Remedios Varo.jpg", + "prompt": "art by Remedios Varo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/René Magritte.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/René Magritte.jpg new file mode 100644 index 00000000..41b4bb42 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/René Magritte.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/René Magritte.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/René Magritte.json new file mode 100644 index 00000000..eebe9cb0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/René Magritte.json @@ -0,0 +1,8 @@ +{ + "name": "Ren\u00e9 Magritte", + "description": "art by Ren\u00e9 Magritte", + "preview": "Ren\u00e9 Magritte.jpg", + "prompt": "art by Ren\u00e9 Magritte", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Corben.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Corben.jpg new file mode 100644 index 00000000..cf061d22 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Corben.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Corben.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Corben.json new file mode 100644 index 00000000..b1dfa71e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Corben.json @@ -0,0 +1,8 @@ +{ + "name": "Richard Corben", + "description": "art by Richard Corben", + "preview": "Richard Corben.jpg", + "prompt": "art by Richard Corben", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Dadd.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Dadd.jpg new file mode 100644 index 00000000..27f71b98 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Dadd.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Dadd.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Dadd.json new file mode 100644 index 00000000..f1407800 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Dadd.json @@ -0,0 +1,8 @@ +{ + "name": "Richard Dadd", + "description": "art by Richard Dadd", + "preview": "Richard Dadd.jpg", + "prompt": "art by Richard Dadd", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Diebenkorn.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Diebenkorn.jpg new file mode 100644 index 00000000..c59db5d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Diebenkorn.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Diebenkorn.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Diebenkorn.json new file mode 100644 index 00000000..e8125df0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Diebenkorn.json @@ -0,0 +1,8 @@ +{ + "name": "Richard Diebenkorn", + "description": "art by Richard Diebenkorn", + "preview": "Richard Diebenkorn.jpg", + "prompt": "art by Richard Diebenkorn", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Doyle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Doyle.jpg new file mode 100644 index 00000000..129325eb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Doyle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Doyle.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Doyle.json new file mode 100644 index 00000000..9e341efd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Doyle.json @@ -0,0 +1,8 @@ +{ + "name": "Richard Doyle", + "description": "art by Richard Doyle", + "preview": "Richard Doyle.jpg", + "prompt": "art by Richard Doyle", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Scarry.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Scarry.jpg new file mode 100644 index 00000000..da7bc1aa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Scarry.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Scarry.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Scarry.json new file mode 100644 index 00000000..eb74499c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Richard Scarry.json @@ -0,0 +1,8 @@ +{ + "name": "Richard Scarry", + "description": "art by Richard Scarry", + "preview": "Richard Scarry.jpg", + "prompt": "art by Richard Scarry", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ridley Scott.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ridley Scott.jpg new file mode 100644 index 00000000..1df5a780 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ridley Scott.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ridley Scott.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ridley Scott.json new file mode 100644 index 00000000..298b0966 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ridley Scott.json @@ -0,0 +1,8 @@ +{ + "name": "Ridley Scott", + "description": "art by Ridley Scott", + "preview": "Ridley Scott.jpg", + "prompt": "art by Ridley Scott", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rineke Dijkstra.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rineke Dijkstra.jpg new file mode 100644 index 00000000..833b7b44 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rineke Dijkstra.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rineke Dijkstra.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rineke Dijkstra.json new file mode 100644 index 00000000..e168708f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rineke Dijkstra.json @@ -0,0 +1,8 @@ +{ + "name": "Rineke Dijkstra", + "description": "art by Rineke Dijkstra", + "preview": "Rineke Dijkstra.jpg", + "prompt": "art by Rineke Dijkstra", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Gonsalves.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Gonsalves.jpg new file mode 100644 index 00000000..537d63aa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Gonsalves.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Gonsalves.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Gonsalves.json new file mode 100644 index 00000000..dfe8ecbc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Gonsalves.json @@ -0,0 +1,8 @@ +{ + "name": "Rob Gonsalves", + "description": "art by Rob Gonsalves", + "preview": "Rob Gonsalves.jpg", + "prompt": "art by Rob Gonsalves", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Liefeld.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Liefeld.jpg new file mode 100644 index 00000000..33949d2a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Liefeld.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Liefeld.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Liefeld.json new file mode 100644 index 00000000..e54893cc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rob Liefeld.json @@ -0,0 +1,8 @@ +{ + "name": "Rob Liefeld", + "description": "art by Rob Liefeld", + "preview": "Rob Liefeld.jpg", + "prompt": "art by Rob Liefeld", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Bechtle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Bechtle.jpg new file mode 100644 index 00000000..0e99abfc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Bechtle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Bechtle.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Bechtle.json new file mode 100644 index 00000000..8bf3dd20 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Bechtle.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Bechtle", + "description": "art by Robert Bechtle", + "preview": "Robert Bechtle.jpg", + "prompt": "art by Robert Bechtle", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Capa.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Capa.jpg new file mode 100644 index 00000000..47562906 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Capa.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Capa.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Capa.json new file mode 100644 index 00000000..7b6110cf --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Capa.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Capa", + "description": "art by Robert Capa", + "preview": "Robert Capa.jpg", + "prompt": "art by Robert Capa", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Crumb.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Crumb.jpg new file mode 100644 index 00000000..1f2f8a61 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Crumb.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Crumb.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Crumb.json new file mode 100644 index 00000000..c75feeee --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Crumb.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Crumb", + "description": "art by Robert Crumb", + "preview": "Robert Crumb.jpg", + "prompt": "art by Robert Crumb", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Delaunay.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Delaunay.jpg new file mode 100644 index 00000000..8a5a9138 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Delaunay.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Delaunay.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Delaunay.json new file mode 100644 index 00000000..ee6092d1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Delaunay.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Delaunay", + "description": "art by Robert Delaunay", + "preview": "Robert Delaunay.jpg", + "prompt": "art by Robert Delaunay", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McCall.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McCall.jpg new file mode 100644 index 00000000..73cc892d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McCall.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McCall.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McCall.json new file mode 100644 index 00000000..a0605eae --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McCall.json @@ -0,0 +1,8 @@ +{ + "name": "Robert McCall", + "description": "art by Robert McCall", + "preview": "Robert McCall.jpg", + "prompt": "art by Robert McCall", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McGinnis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McGinnis.jpg new file mode 100644 index 00000000..f3f413b9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McGinnis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McGinnis.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McGinnis.json new file mode 100644 index 00000000..a326d969 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert McGinnis.json @@ -0,0 +1,8 @@ +{ + "name": "Robert McGinnis", + "description": "art by Robert McGinnis", + "preview": "Robert McGinnis.jpg", + "prompt": "art by Robert McGinnis", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Motherwell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Motherwell.jpg new file mode 100644 index 00000000..57e1132b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Motherwell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Motherwell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Motherwell.json new file mode 100644 index 00000000..ed9675cd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Motherwell.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Motherwell", + "description": "art by Robert Motherwell", + "preview": "Robert Motherwell.jpg", + "prompt": "art by Robert Motherwell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Rauschenberg.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Rauschenberg.jpg new file mode 100644 index 00000000..c36558f1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Rauschenberg.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Rauschenberg.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Rauschenberg.json new file mode 100644 index 00000000..f6ad9f74 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Rauschenberg.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Rauschenberg", + "description": "art by Robert Rauschenberg", + "preview": "Robert Rauschenberg.jpg", + "prompt": "art by Robert Rauschenberg", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Williams.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Williams.jpg new file mode 100644 index 00000000..ca365416 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Williams.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Williams.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Williams.json new file mode 100644 index 00000000..4cd04266 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Robert Williams.json @@ -0,0 +1,8 @@ +{ + "name": "Robert Williams", + "description": "art by Robert Williams", + "preview": "Robert Williams.jpg", + "prompt": "art by Robert Williams", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Ferri.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Ferri.jpg new file mode 100644 index 00000000..4f5e2411 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Ferri.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Ferri.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Ferri.json new file mode 100644 index 00000000..350734bd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Ferri.json @@ -0,0 +1,8 @@ +{ + "name": "Roberto Ferri", + "description": "art by Roberto Ferri", + "preview": "Roberto Ferri.jpg", + "prompt": "art by Roberto Ferri", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Matta.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Matta.jpg new file mode 100644 index 00000000..54da8c83 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Matta.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Matta.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Matta.json new file mode 100644 index 00000000..9745b2b1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roberto Matta.json @@ -0,0 +1,8 @@ +{ + "name": "Roberto Matta", + "description": "art by Roberto Matta", + "preview": "Roberto Matta.jpg", + "prompt": "art by Roberto Matta", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rockwell Kent.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rockwell Kent.jpg new file mode 100644 index 00000000..85662003 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rockwell Kent.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rockwell Kent.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rockwell Kent.json new file mode 100644 index 00000000..50d0c040 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rockwell Kent.json @@ -0,0 +1,8 @@ +{ + "name": "Rockwell Kent", + "description": "art by Rockwell Kent", + "preview": "Rockwell Kent.jpg", + "prompt": "art by Rockwell Kent", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodney Matthews.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodney Matthews.jpg new file mode 100644 index 00000000..b4775891 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodney Matthews.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodney Matthews.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodney Matthews.json new file mode 100644 index 00000000..1247f11b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodney Matthews.json @@ -0,0 +1,8 @@ +{ + "name": "Rodney Matthews", + "description": "art by Rodney Matthews", + "preview": "Rodney Matthews.jpg", + "prompt": "art by Rodney Matthews", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodrigo Prieto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodrigo Prieto.jpg new file mode 100644 index 00000000..2eef9d68 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodrigo Prieto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodrigo Prieto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodrigo Prieto.json new file mode 100644 index 00000000..ed6f06e8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rodrigo Prieto.json @@ -0,0 +1,8 @@ +{ + "name": "Rodrigo Prieto", + "description": "art by Rodrigo Prieto", + "preview": "Rodrigo Prieto.jpg", + "prompt": "art by Rodrigo Prieto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roger Dean.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roger Dean.jpg new file mode 100644 index 00000000..49edf589 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roger Dean.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roger Dean.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roger Dean.json new file mode 100644 index 00000000..80e91cb8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roger Dean.json @@ -0,0 +1,8 @@ +{ + "name": "Roger Dean", + "description": "art by Roger Dean", + "preview": "Roger Dean.jpg", + "prompt": "art by Roger Dean", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Romare Bearden.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romare Bearden.jpg new file mode 100644 index 00000000..1de9a426 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romare Bearden.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Romare Bearden.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romare Bearden.json new file mode 100644 index 00000000..b67b1e70 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romare Bearden.json @@ -0,0 +1,8 @@ +{ + "name": "Romare Bearden", + "description": "art by Romare Bearden", + "preview": "Romare Bearden.jpg", + "prompt": "art by Romare Bearden", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Romero Britto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romero Britto.jpg new file mode 100644 index 00000000..09e19488 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romero Britto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Romero Britto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romero Britto.json new file mode 100644 index 00000000..1252bc69 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Romero Britto.json @@ -0,0 +1,8 @@ +{ + "name": "Romero Britto", + "description": "art by Romero Britto", + "preview": "Romero Britto.jpg", + "prompt": "art by Romero Britto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ron Walotsky.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ron Walotsky.jpg new file mode 100644 index 00000000..927c0f63 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ron Walotsky.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ron Walotsky.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ron Walotsky.json new file mode 100644 index 00000000..c0cfcd53 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ron Walotsky.json @@ -0,0 +1,8 @@ +{ + "name": "Ron Walotsky", + "description": "art by Ron Walotsky", + "preview": "Ron Walotsky.jpg", + "prompt": "art by Ron Walotsky", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rosa Bonheur.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rosa Bonheur.jpg new file mode 100644 index 00000000..deab9dfe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rosa Bonheur.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rosa Bonheur.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rosa Bonheur.json new file mode 100644 index 00000000..286d0bd8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rosa Bonheur.json @@ -0,0 +1,8 @@ +{ + "name": "Rosa Bonheur", + "description": "art by Rosa Bonheur", + "preview": "Rosa Bonheur.jpg", + "prompt": "art by Rosa Bonheur", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roy Lichtenstein.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roy Lichtenstein.jpg new file mode 100644 index 00000000..0c4d8db9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roy Lichtenstein.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Roy Lichtenstein.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roy Lichtenstein.json new file mode 100644 index 00000000..b984310c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Roy Lichtenstein.json @@ -0,0 +1,8 @@ +{ + "name": "Roy Lichtenstein", + "description": "art by Roy Lichtenstein", + "preview": "Roy Lichtenstein.jpg", + "prompt": "art by Roy Lichtenstein", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rudolf Hausner.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rudolf Hausner.jpg new file mode 100644 index 00000000..2ffb14a6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rudolf Hausner.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rudolf Hausner.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rudolf Hausner.json new file mode 100644 index 00000000..9ca10a68 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rudolf Hausner.json @@ -0,0 +1,8 @@ +{ + "name": "Rudolf Hausner", + "description": "art by Rudolf Hausner", + "preview": "Rudolf Hausner.jpg", + "prompt": "art by Rudolf Hausner", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rufino Tamayo.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rufino Tamayo.jpg new file mode 100644 index 00000000..28f715ae Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rufino Tamayo.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Rufino Tamayo.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rufino Tamayo.json new file mode 100644 index 00000000..e618bae8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Rufino Tamayo.json @@ -0,0 +1,8 @@ +{ + "name": "Rufino Tamayo", + "description": "art by Rufino Tamayo", + "preview": "Rufino Tamayo.jpg", + "prompt": "art by Rufino Tamayo", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Russ Mills.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Russ Mills.jpg new file mode 100644 index 00000000..a7a7680f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Russ Mills.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Russ Mills.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Russ Mills.json new file mode 100644 index 00000000..16cfb6c8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Russ Mills.json @@ -0,0 +1,8 @@ +{ + "name": "Russ Mills", + "description": "art by Russ Mills", + "preview": "Russ Mills.jpg", + "prompt": "art by Russ Mills", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ruth Bernhard.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ruth Bernhard.jpg new file mode 100644 index 00000000..1d88a1a8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ruth Bernhard.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ruth Bernhard.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ruth Bernhard.json new file mode 100644 index 00000000..2d25c327 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ruth Bernhard.json @@ -0,0 +1,8 @@ +{ + "name": "Ruth Bernhard", + "description": "art by Ruth Bernhard", + "preview": "Ruth Bernhard.jpg", + "prompt": "art by Ruth Bernhard", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryan Hewett.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryan Hewett.jpg new file mode 100644 index 00000000..a7c31140 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryan Hewett.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryan Hewett.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryan Hewett.json new file mode 100644 index 00000000..7f647828 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryan Hewett.json @@ -0,0 +1,8 @@ +{ + "name": "Ryan Hewett", + "description": "art by Ryan Hewett", + "preview": "Ryan Hewett.jpg", + "prompt": "art by Ryan Hewett", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryo Takemasa.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryo Takemasa.jpg new file mode 100644 index 00000000..06a142be Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryo Takemasa.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryo Takemasa.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryo Takemasa.json new file mode 100644 index 00000000..e13b1f0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryo Takemasa.json @@ -0,0 +1,8 @@ +{ + "name": "Ryo Takemasa", + "description": "art by Ryo Takemasa", + "preview": "Ryo Takemasa.jpg", + "prompt": "art by Ryo Takemasa", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryohei Hase.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryohei Hase.jpg new file mode 100644 index 00000000..1a477f07 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryohei Hase.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryohei Hase.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryohei Hase.json new file mode 100644 index 00000000..eb9785b4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ryohei Hase.json @@ -0,0 +1,8 @@ +{ + "name": "Ryohei Hase", + "description": "art by Ryohei Hase", + "preview": "Ryohei Hase.jpg", + "prompt": "art by Ryohei Hase", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sally Mann.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sally Mann.jpg new file mode 100644 index 00000000..f9a3e162 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sally Mann.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sally Mann.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sally Mann.json new file mode 100644 index 00000000..644cf740 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sally Mann.json @@ -0,0 +1,8 @@ +{ + "name": "Sally Mann", + "description": "art by Sally Mann", + "preview": "Sally Mann.jpg", + "prompt": "art by Sally Mann", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Salvador Dali.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Salvador Dali.jpg new file mode 100644 index 00000000..3857f09e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Salvador Dali.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Salvador Dali.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Salvador Dali.json new file mode 100644 index 00000000..835991d6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Salvador Dali.json @@ -0,0 +1,8 @@ +{ + "name": "Salvador Dali", + "description": "art by Salvador Dali", + "preview": "Salvador Dali.jpg", + "prompt": "art by Salvador Dali", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Bosma.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Bosma.jpg new file mode 100644 index 00000000..4072198f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Bosma.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Bosma.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Bosma.json new file mode 100644 index 00000000..ba82fd50 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Bosma.json @@ -0,0 +1,8 @@ +{ + "name": "Sam Bosma", + "description": "art by Sam Bosma", + "preview": "Sam Bosma.jpg", + "prompt": "art by Sam Bosma", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Francis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Francis.jpg new file mode 100644 index 00000000..0797f827 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Francis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Francis.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Francis.json new file mode 100644 index 00000000..5196c0fa --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Francis.json @@ -0,0 +1,8 @@ +{ + "name": "Sam Francis", + "description": "art by Sam Francis", + "preview": "Sam Francis.jpg", + "prompt": "art by Sam Francis", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Guay.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Guay.jpg new file mode 100644 index 00000000..42c00366 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Guay.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Guay.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Guay.json new file mode 100644 index 00000000..1a0228bd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Guay.json @@ -0,0 +1,8 @@ +{ + "name": "Sam Guay", + "description": "art by Sam Guay", + "preview": "Sam Guay.jpg", + "prompt": "art by Sam Guay", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Toft.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Toft.jpg new file mode 100644 index 00000000..55deaf5a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Toft.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Toft.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Toft.json new file mode 100644 index 00000000..8d20200a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sam Toft.json @@ -0,0 +1,8 @@ +{ + "name": "Sam Toft", + "description": "art by Sam Toft", + "preview": "Sam Toft.jpg", + "prompt": "art by Sam Toft", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Santiago Caruso.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Santiago Caruso.jpg new file mode 100644 index 00000000..aa62240c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Santiago Caruso.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Santiago Caruso.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Santiago Caruso.json new file mode 100644 index 00000000..ec75faab --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Santiago Caruso.json @@ -0,0 +1,8 @@ +{ + "name": "Santiago Caruso", + "description": "art by Santiago Caruso", + "preview": "Santiago Caruso.jpg", + "prompt": "art by Santiago Caruso", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Satoshi Kon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Satoshi Kon.jpg new file mode 100644 index 00000000..0bf679c0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Satoshi Kon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Satoshi Kon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Satoshi Kon.json new file mode 100644 index 00000000..19be58c5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Satoshi Kon.json @@ -0,0 +1,8 @@ +{ + "name": "Satoshi Kon", + "description": "art by Satoshi Kon", + "preview": "Satoshi Kon.jpg", + "prompt": "art by Satoshi Kon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastian Krüger.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastian Krüger.jpg new file mode 100644 index 00000000..93316351 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastian Krüger.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastian Krüger.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastian Krüger.json new file mode 100644 index 00000000..789b9915 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastian Krüger.json @@ -0,0 +1,8 @@ +{ + "name": "Sebastian Kr\u00fcger", + "description": "art by Sebastian Kr\u00fcger", + "preview": "Sebastian Kr\u00fcger.jpg", + "prompt": "art by Sebastian Kr\u00fcger", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastião Salgado.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastião Salgado.jpg new file mode 100644 index 00000000..875656fa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastião Salgado.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastião Salgado.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastião Salgado.json new file mode 100644 index 00000000..34c241ac --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sebastião Salgado.json @@ -0,0 +1,8 @@ +{ + "name": "Sebasti\u00e3o Salgado", + "description": "art by Sebasti\u00e3o Salgado", + "preview": "Sebasti\u00e3o Salgado.jpg", + "prompt": "art by Sebasti\u00e3o Salgado", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sergio Toppi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sergio Toppi.jpg new file mode 100644 index 00000000..db011139 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sergio Toppi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sergio Toppi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sergio Toppi.json new file mode 100644 index 00000000..d4aaff3d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sergio Toppi.json @@ -0,0 +1,8 @@ +{ + "name": "Sergio Toppi", + "description": "art by Sergio Toppi", + "preview": "Sergio Toppi.jpg", + "prompt": "art by Sergio Toppi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shaun Tan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shaun Tan.jpg new file mode 100644 index 00000000..79355956 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shaun Tan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shaun Tan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shaun Tan.json new file mode 100644 index 00000000..7485cb28 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shaun Tan.json @@ -0,0 +1,8 @@ +{ + "name": "Shaun Tan", + "description": "art by Shaun Tan", + "preview": "Shaun Tan.jpg", + "prompt": "art by Shaun Tan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shepard Fairey.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shepard Fairey.jpg new file mode 100644 index 00000000..adceac8b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shepard Fairey.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shepard Fairey.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shepard Fairey.json new file mode 100644 index 00000000..7677fd12 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shepard Fairey.json @@ -0,0 +1,8 @@ +{ + "name": "Shepard Fairey", + "description": "art by Shepard Fairey", + "preview": "Shepard Fairey.jpg", + "prompt": "art by Shepard Fairey", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shiki.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shiki.jpg new file mode 100644 index 00000000..52bfac79 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shiki.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shiki.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shiki.json new file mode 100644 index 00000000..a0f9c2f5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shiki.json @@ -0,0 +1,8 @@ +{ + "name": "Shiki", + "description": "art by Shiki", + "preview": "Shiki.jpg", + "prompt": "art by Shiki", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shinji Aramaki.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shinji Aramaki.jpg new file mode 100644 index 00000000..40b83512 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shinji Aramaki.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shinji Aramaki.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shinji Aramaki.json new file mode 100644 index 00000000..671fcd5b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shinji Aramaki.json @@ -0,0 +1,8 @@ +{ + "name": "Shinji Aramaki", + "description": "art by Shinji Aramaki", + "preview": "Shinji Aramaki.jpg", + "prompt": "art by Shinji Aramaki", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shotaro Ishinomori.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shotaro Ishinomori.jpg new file mode 100644 index 00000000..d0d1a7d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shotaro Ishinomori.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Shotaro Ishinomori.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shotaro Ishinomori.json new file mode 100644 index 00000000..2469d9eb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Shotaro Ishinomori.json @@ -0,0 +1,8 @@ +{ + "name": "Shotaro Ishinomori", + "description": "art by Shotaro Ishinomori", + "preview": "Shotaro Ishinomori.jpg", + "prompt": "art by Shotaro Ishinomori", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Nolan.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Nolan.jpg new file mode 100644 index 00000000..1f1d713c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Nolan.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Nolan.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Nolan.json new file mode 100644 index 00000000..168405fc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Nolan.json @@ -0,0 +1,8 @@ +{ + "name": "Sidney Nolan", + "description": "art by Sidney Nolan", + "preview": "Sidney Nolan.jpg", + "prompt": "art by Sidney Nolan", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Prior Hall.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Prior Hall.jpg new file mode 100644 index 00000000..e7c0f038 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Prior Hall.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Prior Hall.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Prior Hall.json new file mode 100644 index 00000000..3bbb5485 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sidney Prior Hall.json @@ -0,0 +1,8 @@ +{ + "name": "Sidney Prior Hall", + "description": "art by Sidney Prior Hall", + "preview": "Sidney Prior Hall.jpg", + "prompt": "art by Sidney Prior Hall", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Bisley.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Bisley.jpg new file mode 100644 index 00000000..670c2857 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Bisley.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Bisley.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Bisley.json new file mode 100644 index 00000000..7414024e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Bisley.json @@ -0,0 +1,8 @@ +{ + "name": "Simon Bisley", + "description": "art by Simon Bisley", + "preview": "Simon Bisley.jpg", + "prompt": "art by Simon Bisley", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Stålenhag.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Stålenhag.jpg new file mode 100644 index 00000000..f2f24b8b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Stålenhag.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Stålenhag.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Stålenhag.json new file mode 100644 index 00000000..c3775641 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simon Stålenhag.json @@ -0,0 +1,8 @@ +{ + "name": "Simon St\u00e5lenhag", + "description": "art by Simon St\u00e5lenhag", + "preview": "Simon St\u00e5lenhag.jpg", + "prompt": "art by Simon St\u00e5lenhag", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Simone Martini.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simone Martini.jpg new file mode 100644 index 00000000..6cfaf5e9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simone Martini.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Simone Martini.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simone Martini.json new file mode 100644 index 00000000..54278061 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Simone Martini.json @@ -0,0 +1,8 @@ +{ + "name": "Simone Martini", + "description": "art by Simone Martini", + "preview": "Simone Martini.jpg", + "prompt": "art by Simone Martini", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir James Guthrie.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir James Guthrie.jpg new file mode 100644 index 00000000..85970638 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir James Guthrie.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir James Guthrie.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir James Guthrie.json new file mode 100644 index 00000000..e8f058e0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir James Guthrie.json @@ -0,0 +1,8 @@ +{ + "name": "Sir James Guthrie", + "description": "art by Sir James Guthrie", + "preview": "Sir James Guthrie.jpg", + "prompt": "art by Sir James Guthrie", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir Max Beerbohm.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir Max Beerbohm.jpg new file mode 100644 index 00000000..56288e91 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir Max Beerbohm.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir Max Beerbohm.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir Max Beerbohm.json new file mode 100644 index 00000000..09d66607 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sir Max Beerbohm.json @@ -0,0 +1,8 @@ +{ + "name": "Sir Max Beerbohm", + "description": "art by Sir Max Beerbohm", + "preview": "Sir Max Beerbohm.jpg", + "prompt": "art by Sir Max Beerbohm", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sonia Delaunay.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sonia Delaunay.jpg new file mode 100644 index 00000000..43f3d8fa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sonia Delaunay.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sonia Delaunay.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sonia Delaunay.json new file mode 100644 index 00000000..972415a7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sonia Delaunay.json @@ -0,0 +1,8 @@ +{ + "name": "Sonia Delaunay", + "description": "art by Sonia Delaunay", + "preview": "Sonia Delaunay.jpg", + "prompt": "art by Sonia Delaunay", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stanley Donwood.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stanley Donwood.jpg new file mode 100644 index 00000000..543b85d0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stanley Donwood.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stanley Donwood.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stanley Donwood.json new file mode 100644 index 00000000..a74e88d9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stanley Donwood.json @@ -0,0 +1,8 @@ +{ + "name": "Stanley Donwood", + "description": "art by Stanley Donwood", + "preview": "Stanley Donwood.jpg", + "prompt": "art by Stanley Donwood", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stefan Gesell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stefan Gesell.jpg new file mode 100644 index 00000000..8694bf4d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stefan Gesell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stefan Gesell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stefan Gesell.json new file mode 100644 index 00000000..f3f351cb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stefan Gesell.json @@ -0,0 +1,8 @@ +{ + "name": "Stefan Gesell", + "description": "art by Stefan Gesell", + "preview": "Stefan Gesell.jpg", + "prompt": "art by Stefan Gesell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephanie Law.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephanie Law.jpg new file mode 100644 index 00000000..e316d7c7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephanie Law.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephanie Law.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephanie Law.json new file mode 100644 index 00000000..ce6916b3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephanie Law.json @@ -0,0 +1,8 @@ +{ + "name": "Stephanie Law", + "description": "art by Stephanie Law", + "preview": "Stephanie Law.jpg", + "prompt": "art by Stephanie Law", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephen Gammell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephen Gammell.jpg new file mode 100644 index 00000000..ab787031 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephen Gammell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephen Gammell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephen Gammell.json new file mode 100644 index 00000000..78e49c8b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stephen Gammell.json @@ -0,0 +1,8 @@ +{ + "name": "Stephen Gammell", + "description": "art by Stephen Gammell", + "preview": "Stephen Gammell.jpg", + "prompt": "art by Stephen Gammell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Argyle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Argyle.jpg new file mode 100644 index 00000000..f5cba4f8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Argyle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Argyle.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Argyle.json new file mode 100644 index 00000000..1930fefa --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Argyle.json @@ -0,0 +1,8 @@ +{ + "name": "Steve Argyle", + "description": "art by Steve Argyle", + "preview": "Steve Argyle.jpg", + "prompt": "art by Steve Argyle", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Dillon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Dillon.jpg new file mode 100644 index 00000000..26510ba6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Dillon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Dillon.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Dillon.json new file mode 100644 index 00000000..0c7a6986 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Dillon.json @@ -0,0 +1,8 @@ +{ + "name": "Steve Dillon", + "description": "art by Steve Dillon", + "preview": "Steve Dillon.jpg", + "prompt": "art by Steve Dillon", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Ditko.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Ditko.jpg new file mode 100644 index 00000000..01d92451 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Ditko.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Ditko.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Ditko.json new file mode 100644 index 00000000..2fb5199a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve Ditko.json @@ -0,0 +1,8 @@ +{ + "name": "Steve Ditko", + "description": "art by Steve Ditko", + "preview": "Steve Ditko.jpg", + "prompt": "art by Steve Ditko", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve McCurry.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve McCurry.jpg new file mode 100644 index 00000000..e8abe427 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve McCurry.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve McCurry.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve McCurry.json new file mode 100644 index 00000000..60dc099b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Steve McCurry.json @@ -0,0 +1,8 @@ +{ + "name": "Steve McCurry", + "description": "art by Steve McCurry", + "preview": "Steve McCurry.jpg", + "prompt": "art by Steve McCurry", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Storm Thorgerson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Storm Thorgerson.jpg new file mode 100644 index 00000000..5fb62464 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Storm Thorgerson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Storm Thorgerson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Storm Thorgerson.json new file mode 100644 index 00000000..231df834 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Storm Thorgerson.json @@ -0,0 +1,8 @@ +{ + "name": "Storm Thorgerson", + "description": "art by Storm Thorgerson", + "preview": "Storm Thorgerson.jpg", + "prompt": "art by Storm Thorgerson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stuart Davis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stuart Davis.jpg new file mode 100644 index 00000000..473b7653 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stuart Davis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Stuart Davis.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stuart Davis.json new file mode 100644 index 00000000..58d25142 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Stuart Davis.json @@ -0,0 +1,8 @@ +{ + "name": "Stuart Davis", + "description": "art by Stuart Davis", + "preview": "Stuart Davis.jpg", + "prompt": "art by Stuart Davis", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Syd Mead.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Syd Mead.jpg new file mode 100644 index 00000000..746696fe Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Syd Mead.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Syd Mead.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Syd Mead.json new file mode 100644 index 00000000..6fad3085 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Syd Mead.json @@ -0,0 +1,8 @@ +{ + "name": "Syd Mead", + "description": "art by Syd Mead", + "preview": "Syd Mead.jpg", + "prompt": "art by Syd Mead", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sylvain Chomet.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sylvain Chomet.jpg new file mode 100644 index 00000000..960402dc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sylvain Chomet.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Sylvain Chomet.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sylvain Chomet.json new file mode 100644 index 00000000..d92b3f5d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Sylvain Chomet.json @@ -0,0 +1,8 @@ +{ + "name": "Sylvain Chomet", + "description": "art by Sylvain Chomet", + "preview": "Sylvain Chomet.jpg", + "prompt": "art by Sylvain Chomet", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Taiyo Matsumoto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taiyo Matsumoto.jpg new file mode 100644 index 00000000..bc45c38e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taiyo Matsumoto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Taiyo Matsumoto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taiyo Matsumoto.json new file mode 100644 index 00000000..fd1bbd84 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taiyo Matsumoto.json @@ -0,0 +1,8 @@ +{ + "name": "Taiyo Matsumoto", + "description": "art by Taiyo Matsumoto", + "preview": "Taiyo Matsumoto.jpg", + "prompt": "art by Taiyo Matsumoto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Takashi Murakami.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takashi Murakami.jpg new file mode 100644 index 00000000..0668263b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takashi Murakami.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Takashi Murakami.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takashi Murakami.json new file mode 100644 index 00000000..32e75a17 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takashi Murakami.json @@ -0,0 +1,8 @@ +{ + "name": "Takashi Murakami", + "description": "art by Takashi Murakami", + "preview": "Takashi Murakami.jpg", + "prompt": "art by Takashi Murakami", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Takato Yamamoto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takato Yamamoto.jpg new file mode 100644 index 00000000..e5df195f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takato Yamamoto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Takato Yamamoto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takato Yamamoto.json new file mode 100644 index 00000000..ea705933 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takato Yamamoto.json @@ -0,0 +1,8 @@ +{ + "name": "Takato Yamamoto", + "description": "art by Takato Yamamoto", + "preview": "Takato Yamamoto.jpg", + "prompt": "art by Takato Yamamoto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Takehiko Inoue.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takehiko Inoue.jpg new file mode 100644 index 00000000..4e80960d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takehiko Inoue.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Takehiko Inoue.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takehiko Inoue.json new file mode 100644 index 00000000..69727a06 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Takehiko Inoue.json @@ -0,0 +1,8 @@ +{ + "name": "Takehiko Inoue", + "description": "art by Takehiko Inoue", + "preview": "Takehiko Inoue.jpg", + "prompt": "art by Takehiko Inoue", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Taro Okamoto.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taro Okamoto.jpg new file mode 100644 index 00000000..5b3d31e2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taro Okamoto.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Taro Okamoto.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taro Okamoto.json new file mode 100644 index 00000000..57992c93 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Taro Okamoto.json @@ -0,0 +1,8 @@ +{ + "name": "Taro Okamoto", + "description": "art by Taro Okamoto", + "preview": "Taro Okamoto.jpg", + "prompt": "art by Taro Okamoto", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tarsila do Amaral.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tarsila do Amaral.jpg new file mode 100644 index 00000000..a3672eb6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tarsila do Amaral.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tarsila do Amaral.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tarsila do Amaral.json new file mode 100644 index 00000000..fa27f7a9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tarsila do Amaral.json @@ -0,0 +1,8 @@ +{ + "name": "Tarsila do Amaral", + "description": "art by Tarsila do Amaral", + "preview": "Tarsila do Amaral.jpg", + "prompt": "art by Tarsila do Amaral", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tatsuro Kiuchi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tatsuro Kiuchi.jpg new file mode 100644 index 00000000..d5918755 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tatsuro Kiuchi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tatsuro Kiuchi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tatsuro Kiuchi.json new file mode 100644 index 00000000..f2c8fd0f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tatsuro Kiuchi.json @@ -0,0 +1,8 @@ +{ + "name": "Tatsuro Kiuchi", + "description": "art by Tatsuro Kiuchi", + "preview": "Tatsuro Kiuchi.jpg", + "prompt": "art by Tatsuro Kiuchi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ted Nasmith.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ted Nasmith.jpg new file mode 100644 index 00000000..95e86f6d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ted Nasmith.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ted Nasmith.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ted Nasmith.json new file mode 100644 index 00000000..69dd0d2a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ted Nasmith.json @@ -0,0 +1,8 @@ +{ + "name": "Ted Nasmith", + "description": "art by Ted Nasmith", + "preview": "Ted Nasmith.jpg", + "prompt": "art by Ted Nasmith", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry O'Neill.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry O'Neill.jpg new file mode 100644 index 00000000..3f54740c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry O'Neill.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry O'Neill.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry O'Neill.json new file mode 100644 index 00000000..4e9aee4e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry O'Neill.json @@ -0,0 +1,7 @@ +{ + "name": "Terry O'Neill", + "description": "art by Terry O'Neill", + "preview": "Terry O'Neill.jpg", + "prompt": "art by Terry O'Neill", + "negative": "" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry Oakes.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry Oakes.jpg new file mode 100644 index 00000000..89ce1e71 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry Oakes.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry Oakes.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry Oakes.json new file mode 100644 index 00000000..f588a462 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Terry Oakes.json @@ -0,0 +1,8 @@ +{ + "name": "Terry Oakes", + "description": "art by Terry Oakes", + "preview": "Terry Oakes.jpg", + "prompt": "art by Terry Oakes", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tex Avery.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tex Avery.jpg new file mode 100644 index 00000000..f2a4a176 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tex Avery.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tex Avery.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tex Avery.json new file mode 100644 index 00000000..c385f666 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tex Avery.json @@ -0,0 +1,8 @@ +{ + "name": "Tex Avery", + "description": "art by Tex Avery", + "preview": "Tex Avery.jpg", + "prompt": "art by Tex Avery", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Theodor Seuss Geisel.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Theodor Seuss Geisel.jpg new file mode 100644 index 00000000..d913b135 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Theodor Seuss Geisel.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Theodor Seuss Geisel.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Theodor Seuss Geisel.json new file mode 100644 index 00000000..aaa2184c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Theodor Seuss Geisel.json @@ -0,0 +1,8 @@ +{ + "name": "Theodor Seuss Geisel (dr. seuss)", + "description": "art by Theodor Seuss Geisel", + "preview": "Theodor Seuss Geisel.jpg", + "prompt": "art by Theodor Seuss Geisel", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Cole.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Cole.jpg new file mode 100644 index 00000000..dc4c4d20 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Cole.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Cole.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Cole.json new file mode 100644 index 00000000..93471f21 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Cole.json @@ -0,0 +1,8 @@ +{ + "name": "Thomas Cole", + "description": "art by Thomas Cole", + "preview": "Thomas Cole.jpg", + "prompt": "art by Thomas Cole", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Gainsborough.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Gainsborough.jpg new file mode 100644 index 00000000..40bf45ad Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Gainsborough.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Gainsborough.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Gainsborough.json new file mode 100644 index 00000000..e64e254d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Gainsborough.json @@ -0,0 +1,8 @@ +{ + "name": "Thomas Gainsborough", + "description": "art by Thomas Gainsborough", + "preview": "Thomas Gainsborough.jpg", + "prompt": "art by Thomas Gainsborough", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Kinkade.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Kinkade.jpg new file mode 100644 index 00000000..73591c9f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Kinkade.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Kinkade.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Kinkade.json new file mode 100644 index 00000000..7e46b115 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Thomas Kinkade.json @@ -0,0 +1,8 @@ +{ + "name": "Thomas Kinkade", + "description": "art by Thomas Kinkade", + "preview": "Thomas Kinkade.jpg", + "prompt": "art by Thomas Kinkade", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tibor Nagy.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tibor Nagy.jpg new file mode 100644 index 00000000..5e71162f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tibor Nagy.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tibor Nagy.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tibor Nagy.json new file mode 100644 index 00000000..b294e42f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tibor Nagy.json @@ -0,0 +1,8 @@ +{ + "name": "Tibor Nagy", + "description": "art by Tibor Nagy", + "preview": "Tibor Nagy.jpg", + "prompt": "art by Tibor Nagy", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tillie Walden.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tillie Walden.jpg new file mode 100644 index 00000000..04056038 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tillie Walden.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tillie Walden.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tillie Walden.json new file mode 100644 index 00000000..44f90d4d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tillie Walden.json @@ -0,0 +1,8 @@ +{ + "name": "Tillie Walden", + "description": "art by Tillie Walden", + "preview": "Tillie Walden.jpg", + "prompt": "art by Tillie Walden", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Burton.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Burton.jpg new file mode 100644 index 00000000..2421ff57 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Burton.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Burton.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Burton.json new file mode 100644 index 00000000..3d2c586e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Burton.json @@ -0,0 +1,8 @@ +{ + "name": "Tim Burton", + "description": "art by Tim Burton", + "preview": "Tim Burton.jpg", + "prompt": "art by Tim Burton", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Doyle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Doyle.jpg new file mode 100644 index 00000000..cc35d00b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Doyle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Doyle.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Doyle.json new file mode 100644 index 00000000..c6ee9a02 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Doyle.json @@ -0,0 +1,8 @@ +{ + "name": "Tim Doyle", + "description": "art by Tim Doyle", + "preview": "Tim Doyle.jpg", + "prompt": "art by Tim Doyle", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Hildebrandt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Hildebrandt.jpg new file mode 100644 index 00000000..0c687805 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Hildebrandt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Hildebrandt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Hildebrandt.json new file mode 100644 index 00000000..b0480e7c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim Hildebrandt.json @@ -0,0 +1,8 @@ +{ + "name": "Tim Hildebrandt", + "description": "art by Tim Hildebrandt", + "preview": "Tim Hildebrandt.jpg", + "prompt": "art by Tim Hildebrandt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim White.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim White.jpg new file mode 100644 index 00000000..5ab7de89 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim White.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim White.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim White.json new file mode 100644 index 00000000..a60a4e1b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tim White.json @@ -0,0 +1,8 @@ +{ + "name": "Tim White", + "description": "art by Tim White", + "preview": "Tim White.jpg", + "prompt": "art by Tim White", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tivadar Csontvary Kosztka.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tivadar Csontvary Kosztka.jpg new file mode 100644 index 00000000..9c50efc0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tivadar Csontvary Kosztka.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tivadar Csontvary Kosztka.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tivadar Csontvary Kosztka.json new file mode 100644 index 00000000..3e795216 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tivadar Csontvary Kosztka.json @@ -0,0 +1,8 @@ +{ + "name": "Tivadar Csontvary Kosztka", + "description": "art by Tivadar Csontvary Kosztka", + "preview": "Tivadar Csontvary Kosztka.jpg", + "prompt": "art by Tivadar Csontvary Kosztka", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Todd McFarlane.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Todd McFarlane.jpg new file mode 100644 index 00000000..07cf33ff Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Todd McFarlane.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Todd McFarlane.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Todd McFarlane.json new file mode 100644 index 00000000..705d6134 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Todd McFarlane.json @@ -0,0 +1,8 @@ +{ + "name": "Todd McFarlane", + "description": "art by Todd McFarlane", + "preview": "Todd McFarlane.jpg", + "prompt": "art by Todd McFarlane", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Bagshaw.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Bagshaw.jpg new file mode 100644 index 00000000..4fd1c2ff Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Bagshaw.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Bagshaw.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Bagshaw.json new file mode 100644 index 00000000..3d3d335a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Bagshaw.json @@ -0,0 +1,8 @@ +{ + "name": "Tom Bagshaw", + "description": "art by Tom Bagshaw", + "preview": "Tom Bagshaw.jpg", + "prompt": "art by Tom Bagshaw", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Lovell.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Lovell.jpg new file mode 100644 index 00000000..7757cb65 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Lovell.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Lovell.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Lovell.json new file mode 100644 index 00000000..25d680c1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Lovell.json @@ -0,0 +1,8 @@ +{ + "name": "Tom Lovell", + "description": "art by Tom Lovell", + "preview": "Tom Lovell.jpg", + "prompt": "art by Tom Lovell", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Thomson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Thomson.jpg new file mode 100644 index 00000000..db57ef60 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Thomson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Thomson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Thomson.json new file mode 100644 index 00000000..bcc4366c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Thomson.json @@ -0,0 +1,8 @@ +{ + "name": "Tom Thomson", + "description": "art by Tom Thomson", + "preview": "Tom Thomson.jpg", + "prompt": "art by Tom Thomson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Whalen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Whalen.jpg new file mode 100644 index 00000000..72cbda42 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Whalen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Whalen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Whalen.json new file mode 100644 index 00000000..f4597293 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tom Whalen.json @@ -0,0 +1,8 @@ +{ + "name": "Tom Whalen", + "description": "art by Tom Whalen", + "preview": "Tom Whalen.jpg", + "prompt": "art by Tom Whalen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Alen Kopera.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Alen Kopera.jpg new file mode 100644 index 00000000..e3daa94c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Alen Kopera.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Alen Kopera.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Alen Kopera.json new file mode 100644 index 00000000..15760a1b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Alen Kopera.json @@ -0,0 +1,8 @@ +{ + "name": "Tomasz Alen Kopera", + "description": "art by Tomasz Alen Kopera", + "preview": "Tomasz Alen Kopera.jpg", + "prompt": "art by Tomasz Alen Kopera", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Jedruszek.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Jedruszek.jpg new file mode 100644 index 00000000..c75bfb93 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Jedruszek.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Jedruszek.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Jedruszek.json new file mode 100644 index 00000000..b456c4e6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomasz Jedruszek.json @@ -0,0 +1,8 @@ +{ + "name": "Tomasz Jedruszek", + "description": "art by Tomasz Jedruszek", + "preview": "Tomasz Jedruszek.jpg", + "prompt": "art by Tomasz Jedruszek", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomek Setowski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomek Setowski.jpg new file mode 100644 index 00000000..429a9d20 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomek Setowski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomek Setowski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomek Setowski.json new file mode 100644 index 00000000..9e0fa244 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomek Setowski.json @@ -0,0 +1,8 @@ +{ + "name": "Tomek Setowski", + "description": "art by Tomek Setowski", + "preview": "Tomek Setowski.jpg", + "prompt": "art by Tomek Setowski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomer Hanuka.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomer Hanuka.jpg new file mode 100644 index 00000000..ad595886 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomer Hanuka.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomer Hanuka.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomer Hanuka.json new file mode 100644 index 00000000..bce85615 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomer Hanuka.json @@ -0,0 +1,8 @@ +{ + "name": "Tomer Hanuka", + "description": "art by Tomer Hanuka", + "preview": "Tomer Hanuka.jpg", + "prompt": "art by Tomer Hanuka", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomi Ungerer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomi Ungerer.jpg new file mode 100644 index 00000000..5a62fb79 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomi Ungerer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomi Ungerer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomi Ungerer.json new file mode 100644 index 00000000..c14b7942 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomi Ungerer.json @@ -0,0 +1,8 @@ +{ + "name": "Tomi Ungerer", + "description": "art by Tomi Ungerer", + "preview": "Tomi Ungerer.jpg", + "prompt": "art by Tomi Ungerer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomioka Tessai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomioka Tessai.jpg new file mode 100644 index 00000000..077afe53 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomioka Tessai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomioka Tessai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomioka Tessai.json new file mode 100644 index 00000000..064af140 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomioka Tessai.json @@ -0,0 +1,8 @@ +{ + "name": "Tomioka Tessai", + "description": "art by Tomioka Tessai", + "preview": "Tomioka Tessai.jpg", + "prompt": "art by Tomioka Tessai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Dolabella.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Dolabella.jpg new file mode 100644 index 00000000..f59b3a5e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Dolabella.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Dolabella.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Dolabella.json new file mode 100644 index 00000000..48f08e5c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Dolabella.json @@ -0,0 +1,8 @@ +{ + "name": "Tommaso Dolabella", + "description": "art by Tommaso Dolabella", + "preview": "Tommaso Dolabella.jpg", + "prompt": "art by Tommaso Dolabella", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Masaccio.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Masaccio.jpg new file mode 100644 index 00000000..c2a069e6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Masaccio.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Masaccio.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Masaccio.json new file mode 100644 index 00000000..11854d26 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Masaccio.json @@ -0,0 +1,8 @@ +{ + "name": "Tommaso Masaccio", + "description": "art by Tommaso Masaccio", + "preview": "Tommaso Masaccio.jpg", + "prompt": "art by Tommaso Masaccio", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Redi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Redi.jpg new file mode 100644 index 00000000..e24616b9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Redi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Redi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Redi.json new file mode 100644 index 00000000..b4b6868c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tommaso Redi.json @@ -0,0 +1,8 @@ +{ + "name": "Tommaso Redi", + "description": "art by Tommaso Redi", + "preview": "Tommaso Redi.jpg", + "prompt": "art by Tommaso Redi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomokazu Matsuyama.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomokazu Matsuyama.jpg new file mode 100644 index 00000000..ec8fb3e6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomokazu Matsuyama.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomokazu Matsuyama.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomokazu Matsuyama.json new file mode 100644 index 00000000..be93b6a3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomokazu Matsuyama.json @@ -0,0 +1,8 @@ +{ + "name": "Tomokazu Matsuyama", + "description": "art by Tomokazu Matsuyama", + "preview": "Tomokazu Matsuyama.jpg", + "prompt": "art by Tomokazu Matsuyama", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomàs Barceló.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomàs Barceló.jpg new file mode 100644 index 00000000..5136358d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomàs Barceló.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomàs Barceló.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomàs Barceló.json new file mode 100644 index 00000000..d5d307be --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tomàs Barceló.json @@ -0,0 +1,8 @@ +{ + "name": "Tom\u00e0s Barcel\u00f3", + "description": "art by Tom\u00e0s Barcel\u00f3", + "preview": "Tom\u00e0s Barcel\u00f3.jpg", + "prompt": "art by Tom\u00e0s Barcel\u00f3", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tony DiTerlizzi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tony DiTerlizzi.jpg new file mode 100644 index 00000000..6ec8a1fa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tony DiTerlizzi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tony DiTerlizzi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tony DiTerlizzi.json new file mode 100644 index 00000000..26009c38 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tony DiTerlizzi.json @@ -0,0 +1,8 @@ +{ + "name": "Tony DiTerlizzi", + "description": "art by Tony DiTerlizzi", + "preview": "Tony DiTerlizzi.jpg", + "prompt": "art by Tony DiTerlizzi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tove Jansson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tove Jansson.jpg new file mode 100644 index 00000000..b7c062b2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tove Jansson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tove Jansson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tove Jansson.json new file mode 100644 index 00000000..3646834b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tove Jansson.json @@ -0,0 +1,8 @@ +{ + "name": "Tove Jansson", + "description": "art by Tove Jansson", + "preview": "Tove Jansson.jpg", + "prompt": "art by Tove Jansson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tsutomu Nihei.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tsutomu Nihei.jpg new file mode 100644 index 00000000..3869fd74 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tsutomu Nihei.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Tsutomu Nihei.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tsutomu Nihei.json new file mode 100644 index 00000000..3ca5da1e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Tsutomu Nihei.json @@ -0,0 +1,8 @@ +{ + "name": "Tsutomu Nihei", + "description": "art by Tsutomu Nihei", + "preview": "Tsutomu Nihei.jpg", + "prompt": "art by Tsutomu Nihei", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ub Iwerks.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ub Iwerks.jpg new file mode 100644 index 00000000..22f64858 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ub Iwerks.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Ub Iwerks.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ub Iwerks.json new file mode 100644 index 00000000..06f54289 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Ub Iwerks.json @@ -0,0 +1,8 @@ +{ + "name": "Ub Iwerks", + "description": "art by Ub Iwerks", + "preview": "Ub Iwerks.jpg", + "prompt": "art by Ub Iwerks", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Van Herpen.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Van Herpen.jpg new file mode 100644 index 00000000..97f75441 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Van Herpen.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Van Herpen.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Van Herpen.json new file mode 100644 index 00000000..34cab79f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Van Herpen.json @@ -0,0 +1,8 @@ +{ + "name": "Van Herpen", + "description": "art by Van Herpen", + "preview": "Van Herpen.jpg", + "prompt": "art by Van Herpen", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victo Ngai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victo Ngai.jpg new file mode 100644 index 00000000..86c50243 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victo Ngai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victo Ngai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victo Ngai.json new file mode 100644 index 00000000..a861539a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victo Ngai.json @@ -0,0 +1,8 @@ +{ + "name": "Victo Ngai", + "description": "art by Victo Ngai", + "preview": "Victo Ngai.jpg", + "prompt": "art by Victo Ngai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Brauner.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Brauner.jpg new file mode 100644 index 00000000..999846d9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Brauner.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Brauner.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Brauner.json new file mode 100644 index 00000000..947d5443 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Brauner.json @@ -0,0 +1,8 @@ +{ + "name": "Victor Brauner", + "description": "art by Victor Brauner", + "preview": "Victor Brauner.jpg", + "prompt": "art by Victor Brauner", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Moscoso.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Moscoso.jpg new file mode 100644 index 00000000..6820ce4a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Moscoso.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Moscoso.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Moscoso.json new file mode 100644 index 00000000..bb58d520 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Moscoso.json @@ -0,0 +1,8 @@ +{ + "name": "Victor Moscoso", + "description": "art by Victor Moscoso", + "preview": "Victor Moscoso.jpg", + "prompt": "art by Victor Moscoso", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Ngai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Ngai.jpg new file mode 100644 index 00000000..48d81a48 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Ngai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Ngai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Ngai.json new file mode 100644 index 00000000..6e58c4e8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Ngai.json @@ -0,0 +1,8 @@ +{ + "name": "Victor Ngai", + "description": "art by Victor Ngai", + "preview": "Victor Ngai.jpg", + "prompt": "art by Victor Ngai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Vasarely.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Vasarely.jpg new file mode 100644 index 00000000..45696cc1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Vasarely.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Vasarely.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Vasarely.json new file mode 100644 index 00000000..13c2559a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Victor Vasarely.json @@ -0,0 +1,8 @@ +{ + "name": "Victor Vasarely", + "description": "art by Victor Vasarely", + "preview": "Victor Vasarely.jpg", + "prompt": "art by Victor Vasarely", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Viktor Vasnetsov.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Viktor Vasnetsov.jpg new file mode 100644 index 00000000..02f419e1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Viktor Vasnetsov.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Viktor Vasnetsov.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Viktor Vasnetsov.json new file mode 100644 index 00000000..bd2fbe5e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Viktor Vasnetsov.json @@ -0,0 +1,8 @@ +{ + "name": "Viktor Vasnetsov", + "description": "art by Viktor Vasnetsov", + "preview": "Viktor Vasnetsov.jpg", + "prompt": "art by Viktor Vasnetsov", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilhelm Hammershoi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilhelm Hammershoi.jpg new file mode 100644 index 00000000..a14c934d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilhelm Hammershoi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilhelm Hammershoi.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilhelm Hammershoi.json new file mode 100644 index 00000000..a3abe8a1 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilhelm Hammershoi.json @@ -0,0 +1,8 @@ +{ + "name": "Vilhelm Hammershoi", + "description": "art by Vilhelm Hammershoi", + "preview": "Vilhelm Hammershoi.jpg", + "prompt": "art by Vilhelm Hammershoi", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilmos Zsigmond.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilmos Zsigmond.jpg new file mode 100644 index 00000000..8b91a466 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilmos Zsigmond.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilmos Zsigmond.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilmos Zsigmond.json new file mode 100644 index 00000000..1d66386f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vilmos Zsigmond.json @@ -0,0 +1,8 @@ +{ + "name": "Vilmos Zsigmond", + "description": "art by Vilmos Zsigmond", + "preview": "Vilmos Zsigmond.jpg", + "prompt": "art by Vilmos Zsigmond", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Vincent van Gogh.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vincent van Gogh.jpg new file mode 100644 index 00000000..c507ad31 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vincent van Gogh.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Vincent van Gogh.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vincent van Gogh.json new file mode 100644 index 00000000..df22a70d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Vincent van Gogh.json @@ -0,0 +1,8 @@ +{ + "name": "Vincent van Gogh", + "description": "art by Vincent van Gogh", + "preview": "Vincent van Gogh.jpg", + "prompt": "art by Vincent van Gogh", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Virgil Finlay.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Virgil Finlay.jpg new file mode 100644 index 00000000..999da73b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Virgil Finlay.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Virgil Finlay.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Virgil Finlay.json new file mode 100644 index 00000000..ed22956d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Virgil Finlay.json @@ -0,0 +1,8 @@ +{ + "name": "Virgil Finlay", + "description": "art by Virgil Finlay", + "preview": "Virgil Finlay.jpg", + "prompt": "art by Virgil Finlay", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Walt Disney.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walt Disney.jpg new file mode 100644 index 00000000..4db82442 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walt Disney.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Walt Disney.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walt Disney.json new file mode 100644 index 00000000..dbb579dd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walt Disney.json @@ -0,0 +1,8 @@ +{ + "name": "Walt Disney", + "description": "art by Walt Disney", + "preview": "Walt Disney.jpg", + "prompt": "art by Walt Disney", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Walter Crane.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walter Crane.jpg new file mode 100644 index 00000000..999da73b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walter Crane.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Walter Crane.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walter Crane.json new file mode 100644 index 00000000..f295ae7f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Walter Crane.json @@ -0,0 +1,8 @@ +{ + "name": "Walter Crane", + "description": "art by Walter Crane", + "preview": "Walter Crane.jpg", + "prompt": "art by Walter Crane", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wassily Kandinsky.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wassily Kandinsky.jpg new file mode 100644 index 00000000..f6f48a5b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wassily Kandinsky.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wassily Kandinsky.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wassily Kandinsky.json new file mode 100644 index 00000000..e3deb377 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wassily Kandinsky.json @@ -0,0 +1,8 @@ +{ + "name": "Wassily Kandinsky", + "description": "art by Wassily Kandinsky", + "preview": "Wassily Kandinsky.jpg", + "prompt": "art by Wassily Kandinsky", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wayne Barlowe.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wayne Barlowe.jpg new file mode 100644 index 00000000..224e4f79 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wayne Barlowe.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wayne Barlowe.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wayne Barlowe.json new file mode 100644 index 00000000..74442063 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wayne Barlowe.json @@ -0,0 +1,8 @@ +{ + "name": "Wayne Barlowe", + "description": "art by Wayne Barlowe", + "preview": "Wayne Barlowe.jpg", + "prompt": "art by Wayne Barlowe", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Weegee.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Weegee.jpg new file mode 100644 index 00000000..368aa45c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Weegee.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Weegee.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Weegee.json new file mode 100644 index 00000000..1fb4ec5c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Weegee.json @@ -0,0 +1,8 @@ +{ + "name": "Weegee", + "description": "art by Weegee", + "preview": "Weegee.jpg", + "prompt": "art by Weegee", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wes Anderson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wes Anderson.jpg new file mode 100644 index 00000000..b81dcd32 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wes Anderson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wes Anderson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wes Anderson.json new file mode 100644 index 00000000..bde372bd --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wes Anderson.json @@ -0,0 +1,8 @@ +{ + "name": "Wes Anderson", + "description": "art by Wes Anderson", + "preview": "Wes Anderson.jpg", + "prompt": "art by Wes Anderson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wifredo Lam.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wifredo Lam.jpg new file mode 100644 index 00000000..e4d263d0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wifredo Lam.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wifredo Lam.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wifredo Lam.json new file mode 100644 index 00000000..1034daaf --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wifredo Lam.json @@ -0,0 +1,8 @@ +{ + "name": "Wifredo Lam", + "description": "art by Wifredo Lam", + "preview": "Wifredo Lam.jpg", + "prompt": "art by Wifredo Lam", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Will Simpson.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Will Simpson.jpg new file mode 100644 index 00000000..b81dcd32 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Will Simpson.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Will Simpson.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Will Simpson.json new file mode 100644 index 00000000..c75928c9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Will Simpson.json @@ -0,0 +1,8 @@ +{ + "name": "Will Simpson", + "description": "art by Will Simpson", + "preview": "Will Simpson.jpg", + "prompt": "art by Will Simpson", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Blake.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Blake.jpg new file mode 100644 index 00000000..71fa1e04 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Blake.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Blake.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Blake.json new file mode 100644 index 00000000..e09ab0c5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Blake.json @@ -0,0 +1,8 @@ +{ + "name": "William Blake", + "description": "art by William Blake", + "preview": "William Blake.jpg", + "prompt": "art by William Blake", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Gropper.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Gropper.jpg new file mode 100644 index 00000000..90f1653f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Gropper.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Gropper.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Gropper.json new file mode 100644 index 00000000..b3bd2dc5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Gropper.json @@ -0,0 +1,8 @@ +{ + "name": "William Gropper", + "description": "art by William Gropper", + "preview": "William Gropper.jpg", + "prompt": "art by William Gropper", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Henry Hunt.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Henry Hunt.jpg new file mode 100644 index 00000000..87364e74 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Henry Hunt.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Henry Hunt.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Henry Hunt.json new file mode 100644 index 00000000..fc060470 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Henry Hunt.json @@ -0,0 +1,8 @@ +{ + "name": "William Henry Hunt", + "description": "art by William Henry Hunt", + "preview": "William Henry Hunt.jpg", + "prompt": "art by William Henry Hunt", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Hogarth.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Hogarth.jpg new file mode 100644 index 00000000..61cc9f22 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Hogarth.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Hogarth.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Hogarth.json new file mode 100644 index 00000000..fed974ff --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Hogarth.json @@ -0,0 +1,8 @@ +{ + "name": "William Hogarth", + "description": "art by William Hogarth", + "preview": "William Hogarth.jpg", + "prompt": "art by William Hogarth", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Morris.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Morris.jpg new file mode 100644 index 00000000..f1c3d1d5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Morris.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Morris.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Morris.json new file mode 100644 index 00000000..bd03a577 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Morris.json @@ -0,0 +1,8 @@ +{ + "name": "William Morris", + "description": "art by William Morris", + "preview": "William Morris.jpg", + "prompt": "art by William Morris", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William S Burroughs.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William S Burroughs.jpg new file mode 100644 index 00000000..f7cc0ac2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William S Burroughs.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William S Burroughs.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William S Burroughs.json new file mode 100644 index 00000000..4f0eb37e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William S Burroughs.json @@ -0,0 +1,8 @@ +{ + "name": "William S Burroughs", + "description": "art by William S Burroughs", + "preview": "William S Burroughs.jpg", + "prompt": "art by William S Burroughs", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Stout.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Stout.jpg new file mode 100644 index 00000000..a9c9c2b2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Stout.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William Stout.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Stout.json new file mode 100644 index 00000000..2c90fc38 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William Stout.json @@ -0,0 +1,8 @@ +{ + "name": "William Stout", + "description": "art by William Stout", + "preview": "William Stout.jpg", + "prompt": "art by William Stout", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William-Adolphe Bouguereau.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/William-Adolphe Bouguereau.jpg new file mode 100644 index 00000000..d40d2ca0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/William-Adolphe Bouguereau.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/William-Adolphe Bouguereau.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/William-Adolphe Bouguereau.json new file mode 100644 index 00000000..c3754e1d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/William-Adolphe Bouguereau.json @@ -0,0 +1,8 @@ +{ + "name": "William-Adolphe Bouguereau", + "description": "art by William-Adolphe Bouguereau", + "preview": "William-Adolphe Bouguereau.jpg", + "prompt": "art by William-Adolphe Bouguereau", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Winslow Homer.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Winslow Homer.jpg new file mode 100644 index 00000000..2bec7106 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Winslow Homer.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Winslow Homer.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Winslow Homer.json new file mode 100644 index 00000000..e5858307 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Winslow Homer.json @@ -0,0 +1,8 @@ +{ + "name": "Winslow Homer", + "description": "art by Winslow Homer", + "preview": "Winslow Homer.jpg", + "prompt": "art by Winslow Homer", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wong Kar-Wai.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wong Kar-Wai.jpg new file mode 100644 index 00000000..f27db584 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wong Kar-Wai.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Wong Kar-Wai.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wong Kar-Wai.json new file mode 100644 index 00000000..c6102bd0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Wong Kar-Wai.json @@ -0,0 +1,8 @@ +{ + "name": "Wong Kar-Wai", + "description": "art by Wong Kar-Wai", + "preview": "Wong Kar-Wai.jpg", + "prompt": "art by Wong Kar-Wai", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yaacov Agam.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yaacov Agam.jpg new file mode 100644 index 00000000..0bba0f3b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yaacov Agam.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yaacov Agam.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yaacov Agam.json new file mode 100644 index 00000000..757c653a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yaacov Agam.json @@ -0,0 +1,8 @@ +{ + "name": "Yaacov Agam", + "description": "art by Yaacov Agam", + "preview": "Yaacov Agam.jpg", + "prompt": "art by Yaacov Agam", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yayoi Kusama.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yayoi Kusama.jpg new file mode 100644 index 00000000..abbe7833 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yayoi Kusama.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yayoi Kusama.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yayoi Kusama.json new file mode 100644 index 00000000..c792134e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yayoi Kusama.json @@ -0,0 +1,8 @@ +{ + "name": "Yayoi Kusama", + "description": "art by Yayoi Kusama", + "preview": "Yayoi Kusama.jpg", + "prompt": "art by Yayoi Kusama", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yoshitaka Amano.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yoshitaka Amano.jpg new file mode 100644 index 00000000..f66f0011 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yoshitaka Amano.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yoshitaka Amano.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yoshitaka Amano.json new file mode 100644 index 00000000..adba65b7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yoshitaka Amano.json @@ -0,0 +1,8 @@ +{ + "name": "Yoshitaka Amano", + "description": "art by Yoshitaka Amano", + "preview": "Yoshitaka Amano.jpg", + "prompt": "art by Yoshitaka Amano", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yousuf Karsh.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yousuf Karsh.jpg new file mode 100644 index 00000000..de372a8d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yousuf Karsh.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yousuf Karsh.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yousuf Karsh.json new file mode 100644 index 00000000..8883de6f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yousuf Karsh.json @@ -0,0 +1,8 @@ +{ + "name": "Yousuf Karsh", + "description": "art by Yousuf Karsh", + "preview": "Yousuf Karsh.jpg", + "prompt": "art by Yousuf Karsh", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yuumei.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yuumei.jpg new file mode 100644 index 00000000..bb756a9f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yuumei.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yuumei.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yuumei.json new file mode 100644 index 00000000..c6e6573e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yuumei.json @@ -0,0 +1,8 @@ +{ + "name": "Yuumei", + "description": "art by Yuumei", + "preview": "Yuumei.jpg", + "prompt": "art by Yuumei", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Klein.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Klein.jpg new file mode 100644 index 00000000..b58e6d08 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Klein.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Klein.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Klein.json new file mode 100644 index 00000000..f9efed99 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Klein.json @@ -0,0 +1,8 @@ +{ + "name": "Yves Klein", + "description": "art by Yves Klein", + "preview": "Yves Klein.jpg", + "prompt": "art by Yves Klein", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Tanguy.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Tanguy.jpg new file mode 100644 index 00000000..74048347 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Tanguy.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Tanguy.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Tanguy.json new file mode 100644 index 00000000..83266bb0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Yves Tanguy.json @@ -0,0 +1,8 @@ +{ + "name": "Yves Tanguy", + "description": "art by Yves Tanguy", + "preview": "Yves Tanguy.jpg", + "prompt": "art by Yves Tanguy", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Zack Snyder.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zack Snyder.jpg new file mode 100644 index 00000000..da575168 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zack Snyder.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Zack Snyder.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zack Snyder.json new file mode 100644 index 00000000..f24791e0 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zack Snyder.json @@ -0,0 +1,8 @@ +{ + "name": "Zack Snyder", + "description": "art by Zack Snyder", + "preview": "Zack Snyder.jpg", + "prompt": "art by Zack Snyder", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Zaha Hadid.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zaha Hadid.jpg new file mode 100644 index 00000000..24d9e3e2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zaha Hadid.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Zaha Hadid.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zaha Hadid.json new file mode 100644 index 00000000..fa5b3a15 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zaha Hadid.json @@ -0,0 +1,8 @@ +{ + "name": "Zaha Hadid", + "description": "art by Zaha Hadid", + "preview": "Zaha Hadid.jpg", + "prompt": "art by Zaha Hadid", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Zdzislaw Beksinski.jpg b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zdzislaw Beksinski.jpg new file mode 100644 index 00000000..612b3c05 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zdzislaw Beksinski.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Artists/Zdzislaw Beksinski.json b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zdzislaw Beksinski.json new file mode 100644 index 00000000..e4d2871b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Artists/Zdzislaw Beksinski.json @@ -0,0 +1,8 @@ +{ + "name": "Zdzislaw Beksinski", + "description": "art by Zdzislaw Beksinski", + "preview": "Zdzislaw Beksinski.jpg", + "prompt": "art by Zdzislaw Beksinski", + "negative": "", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/3d-model.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/3d-model.jpg new file mode 100644 index 00000000..5d42339b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/3d-model.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/3d-model.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/3d-model.json new file mode 100644 index 00000000..343a7976 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/3d-model.json @@ -0,0 +1,8 @@ +{ + "name": "3d-model", + "description": "3d-model", + "preview": "3d-model.jpg", + "prompt": "professional 3d model, {prompt}, octane render, highly detailed, volumetric, dramatic lighting", + "negative": "ugly, deformed, noisy, low poly, blurry, painting", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Advertising.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Advertising.jpg new file mode 100644 index 00000000..a120f12f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Advertising.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Advertising.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Advertising.json new file mode 100644 index 00000000..249558a6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Advertising.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Advertising", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Advertising.jpg", + "prompt": "advertising poster style {prompt}, Professional, modern, product-focused, commercial, eye-catching, highly detailed", + "negative": "noisy, blurry, amateurish, sloppy, unattractive" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Automotive.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Automotive.jpg new file mode 100644 index 00000000..6b83da64 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Automotive.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Automotive.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Automotive.json new file mode 100644 index 00000000..a1366e6e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Automotive.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Automotive", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Automotive.jpg", + "prompt": "automotive advertisement style {prompt}, sleek, dynamic, professional, commercial, vehicle-focused, high-resolution, highly detailed", + "negative": "noisy, blurry, unattractive, sloppy, unprofessional" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Corporate.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Corporate.jpg new file mode 100644 index 00000000..8dbead54 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Corporate.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Corporate.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Corporate.json new file mode 100644 index 00000000..fd58c0b7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Corporate.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Corporate", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Corporate.jpg", + "prompt": "corporate branding style {prompt}, professional, clean, modern, sleek, minimalist, business-oriented, highly detailed", + "negative": "noisy, blurry, grungy, sloppy, cluttered, disorganized" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Fashion Editorial.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Fashion Editorial.jpg new file mode 100644 index 00000000..846530ee Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Fashion Editorial.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Fashion Editorial.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Fashion Editorial.json new file mode 100644 index 00000000..2fb06afb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Fashion Editorial.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Fashion Editorial", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Fashion Editorial.jpg", + "prompt": "fashion editorial style {prompt}, high fashion, trendy, stylish, editorial, magazine style, professional, highly detailed", + "negative": "outdated, blurry, noisy, unattractive, sloppy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Food Photography.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Food Photography.jpg new file mode 100644 index 00000000..cb690d8e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Food Photography.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Food Photography.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Food Photography.json new file mode 100644 index 00000000..63a7660e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Food Photography.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Food Photography", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Food Photography.jpg", + "prompt": "food photography style {prompt}, appetizing, professional, culinary, high-resolution, commercial, highly detailed", + "negative": "unappetizing, sloppy, unprofessional, noisy, blurry" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Gourmet Food Photography.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Gourmet Food Photography.jpg new file mode 100644 index 00000000..5d1b5774 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Gourmet Food Photography.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Gourmet Food Photography.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Gourmet Food Photography.json new file mode 100644 index 00000000..81ba1815 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Gourmet Food Photography.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Gourmet Food Photography", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Gourmet Food Photography.jpg", + "prompt": "gourmet food photo of {prompt}, soft natural lighting, macro details, vibrant colors, fresh ingredients, glistening textures, bokeh background, styled plating, wooden tabletop, garnished, tantalizing, editorial quality", + "negative": "cartoon, anime, sketch, grayscale, dull, overexposed, cluttered, messy plate, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Luxury.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Luxury.jpg new file mode 100644 index 00000000..04a095b7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Luxury.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Luxury.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Luxury.json new file mode 100644 index 00000000..e72c21a7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Luxury.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Luxury", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Luxury.jpg", + "prompt": "luxury product style {prompt}, elegant, sophisticated, high-end, luxurious, professional, highly detailed", + "negative": "cheap, noisy, blurry, unattractive, amateurish" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Real Estate.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Real Estate.jpg new file mode 100644 index 00000000..1afed609 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Real Estate.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Real Estate.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Real Estate.json new file mode 100644 index 00000000..e5a863fa --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Real Estate.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Real Estate", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Real Estate.jpg", + "prompt": "real estate photography style {prompt}, professional, inviting, well-lit, high-resolution, property-focused, commercial, highly detailed", + "negative": "dark, blurry, unappealing, noisy, unprofessional" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Retail.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Retail.jpg new file mode 100644 index 00000000..e04aea9e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Retail.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Retail.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Retail.json new file mode 100644 index 00000000..2fd0873d --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Ads Retail.json @@ -0,0 +1,7 @@ +{ + "name": "Ads Retail", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Ads Retail.jpg", + "prompt": "retail packaging style {prompt}, vibrant, enticing, commercial, product-focused, eye-catching, professional, highly detailed", + "negative": "noisy, blurry, amateurish, sloppy, unattractive" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Analog film.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Analog film.jpg new file mode 100644 index 00000000..801f4d05 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Analog film.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Analog film.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Analog film.json new file mode 100644 index 00000000..f7908f4f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Analog film.json @@ -0,0 +1,8 @@ +{ + "name": "Analog film", + "description": "Analog film", + "preview": "Analog film.jpg", + "prompt": "analog film photo, {prompt}, faded film, desaturated, 35mm photo, grainy, vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage", + "negative": "painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Anime.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Anime.jpg new file mode 100644 index 00000000..abc21697 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Anime.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Anime.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Anime.json new file mode 100644 index 00000000..b866a836 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Anime.json @@ -0,0 +1,8 @@ +{ + "name": "Anime", + "description": "Anime image", + "preview": "Anime.jpg", + "prompt": "anime artwork, {prompt}, anime style, key visual, vibrant, studio anime, highly detailed", + "negative": "photo, deformed, black and white, realism, disfigured, low contrast", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract Expressionism.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract Expressionism.jpg new file mode 100644 index 00000000..6496fe80 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract Expressionism.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract Expressionism.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract Expressionism.json new file mode 100644 index 00000000..26f09db8 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract Expressionism.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Abstract Expressionism", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Abstract Expressionism.jpg", + "prompt": "abstract expressionist painting {prompt}, energetic brushwork, bold colors, abstract forms, expressive, emotional", + "negative": "realistic, photorealistic, low contrast, plain, simple, monochrome" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract.jpg new file mode 100644 index 00000000..2411e673 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract.json new file mode 100644 index 00000000..4bfe0468 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Abstract.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Abstract", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Abstract.jpg", + "prompt": "abstract style {prompt}, non-representational, colors and shapes, expression of feelings, imaginative, highly detailed", + "negative": "realistic, photographic, figurative, concrete" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Deco.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Deco.jpg new file mode 100644 index 00000000..3f8775cb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Deco.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Deco.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Deco.json new file mode 100644 index 00000000..038aa585 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Deco.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Art Deco", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Art Deco.jpg", + "prompt": "art deco style {prompt}, geometric shapes, bold colors, luxurious, elegant, decorative, symmetrical, ornate, detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, modernist, minimalist" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Nouveau.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Nouveau.jpg new file mode 100644 index 00000000..2eb272d2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Nouveau.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Nouveau.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Nouveau.json new file mode 100644 index 00000000..8bd2f06f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Art Nouveau.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Art Nouveau", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Art Nouveau.jpg", + "prompt": "art nouveau style {prompt}, elegant, decorative, curvilinear forms, nature-inspired, ornate, detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, modernist, minimalist" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Constructivist.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Constructivist.jpg new file mode 100644 index 00000000..125d953f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Constructivist.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Constructivist.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Constructivist.json new file mode 100644 index 00000000..c4bf3131 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Constructivist.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Constructivist", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Constructivist.jpg", + "prompt": "constructivist style {prompt}, geometric shapes, bold colors, dynamic composition, propaganda art style", + "negative": "realistic, photorealistic, low contrast, plain, simple, abstract expressionism" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Cubist.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Cubist.jpg new file mode 100644 index 00000000..31be270f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Cubist.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Cubist.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Cubist.json new file mode 100644 index 00000000..a513d3cb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Cubist.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Cubist", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Cubist.jpg", + "prompt": "cubist artwork {prompt}, geometric shapes, abstract, innovative, revolutionary", + "negative": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Expressionist.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Expressionist.jpg new file mode 100644 index 00000000..fb65322b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Expressionist.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Expressionist.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Expressionist.json new file mode 100644 index 00000000..054a5857 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Expressionist.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Expressionist", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Expressionist.jpg", + "prompt": "expressionist {prompt}, raw, emotional, dynamic, distortion for emotional effect, vibrant, use of unusual colors, detailed", + "negative": "realism, symmetry, quiet, calm, photo" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Graffiti.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Graffiti.jpg new file mode 100644 index 00000000..40075c3d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Graffiti.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Graffiti.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Graffiti.json new file mode 100644 index 00000000..bc18912a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Graffiti.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Graffiti", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Graffiti.jpg", + "prompt": "graffiti style {prompt}, street art, vibrant, urban, detailed, tag, mural", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Hyperrealism.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Hyperrealism.jpg new file mode 100644 index 00000000..f97f1522 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Hyperrealism.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Hyperrealism.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Hyperrealism.json new file mode 100644 index 00000000..23e98623 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Hyperrealism.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Hyperrealism", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Hyperrealism.jpg", + "prompt": "hyperrealistic art {prompt}, extremely high-resolution details, photographic, realism pushed to extreme, fine texture, incredibly lifelike", + "negative": "simplified, abstract, unrealistic, impressionistic, low resolution" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Impressionist.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Impressionist.jpg new file mode 100644 index 00000000..8326f2f4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Impressionist.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Impressionist.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Impressionist.json new file mode 100644 index 00000000..53ad497f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Impressionist.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Impressionist", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Impressionist.jpg", + "prompt": "impressionist painting {prompt}, loose brushwork, vibrant color, light and shadow play, captures feeling over form", + "negative": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pointillism.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pointillism.jpg new file mode 100644 index 00000000..b3c43534 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pointillism.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pointillism.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pointillism.json new file mode 100644 index 00000000..db27c9c9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pointillism.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Pointillism", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Pointillism.jpg", + "prompt": "pointillism style {prompt}, composed entirely of small, distinct dots of color, vibrant, highly detailed", + "negative": "line drawing, smooth shading, large color fields, simplistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pop Art.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pop Art.jpg new file mode 100644 index 00000000..e369c34b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pop Art.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pop Art.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pop Art.json new file mode 100644 index 00000000..636ccd0a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Pop Art.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Pop Art", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Pop Art.jpg", + "prompt": "pop Art style {prompt}, bright colors, bold outlines, popular culture themes, ironic or kitsch", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, minimalist" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Psychedelic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Psychedelic.jpg new file mode 100644 index 00000000..91d1f0b4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Psychedelic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Psychedelic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Psychedelic.json new file mode 100644 index 00000000..d9c685c3 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Psychedelic.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Psychedelic", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Psychedelic.jpg", + "prompt": "psychedelic style {prompt}, vibrant colors, swirling patterns, abstract forms, surreal, trippy", + "negative": "monochrome, black and white, low contrast, realistic, photorealistic, plain, simple" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Renaissance.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Renaissance.jpg new file mode 100644 index 00000000..e47983f1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Renaissance.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Renaissance.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Renaissance.json new file mode 100644 index 00000000..a085068a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Renaissance.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Renaissance", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Renaissance.jpg", + "prompt": "renaissance style {prompt}, realistic, perspective, light and shadow, religious or mythological themes, highly detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, modernist, minimalist, abstract" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Steampunk.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Steampunk.jpg new file mode 100644 index 00000000..226e51e7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Steampunk.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Steampunk.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Steampunk.json new file mode 100644 index 00000000..614031f6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Steampunk.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Steampunk", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Steampunk.jpg", + "prompt": "steampunk style {prompt}, antique, mechanical, brass and copper tones, gears, intricate, detailed", + "negative": "deformed, glitch, noisy, low contrast, anime, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Surrealist.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Surrealist.jpg new file mode 100644 index 00000000..2dcd9afa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Surrealist.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Surrealist.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Surrealist.json new file mode 100644 index 00000000..00a8eb8c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Surrealist.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Surrealist", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Surrealist.jpg", + "prompt": "surrealist art {prompt}, dreamlike, mysterious, provocative, symbolic, intricate, detailed", + "negative": "anime, photorealistic, realistic, deformed, glitch, noisy, low contrast" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Typography.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Typography.jpg new file mode 100644 index 00000000..3be14f89 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Typography.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Typography.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Typography.json new file mode 100644 index 00000000..d63a830b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Typography.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Typography", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Typography.jpg", + "prompt": "typographic art {prompt}, stylized, intricate, detailed, artistic, text-based", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Watercolor.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Watercolor.jpg new file mode 100644 index 00000000..4e4d867c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Watercolor.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Watercolor.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Watercolor.json new file mode 100644 index 00000000..24dc55bc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Artstyle Watercolor.json @@ -0,0 +1,7 @@ +{ + "name": "Artstyle Watercolor", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Artstyle Watercolor.jpg", + "prompt": "watercolor painting {prompt}, vibrant, beautiful, painterly, detailed, textural, artistic", + "negative": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Cinematic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Cinematic.jpg new file mode 100644 index 00000000..57b36c8f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Cinematic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Cinematic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Cinematic.json new file mode 100644 index 00000000..aefe56e6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Cinematic.json @@ -0,0 +1,8 @@ +{ + "name": "Cinematic", + "description": "Cinematic", + "preview": "Cinematic.jpg", + "prompt": "cinematic film still, {prompt}, shallow depth of field, vignette, highly detailed, high budget Hollywood movie, bokeh, cinemascope, moody, epic, gorgeous, film grain, grainy", + "negative": "anime, cartoon, graphic, text, painting, crayon, graphite, abstract, glitch, deformed, mutated, ugly, disfigured", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Comic-Book.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Comic-Book.jpg new file mode 100644 index 00000000..14280007 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Comic-Book.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Comic-Book.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Comic-Book.json new file mode 100644 index 00000000..658a26a6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Comic-Book.json @@ -0,0 +1,8 @@ +{ + "name": "Comic book", + "description": "Comic Book Style", + "preview": "Comic-Book.jpg", + "prompt": "comic, {prompt}, graphic illustration, comic art, graphic novel art, vibrant, highly detailed", + "negative": "photograph, deformed, glitch, noisy, realistic, stock photo", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Craft clay.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Craft clay.jpg new file mode 100644 index 00000000..e09b00dd Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Craft clay.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Craft clay.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Craft clay.json new file mode 100644 index 00000000..7d10a452 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Craft clay.json @@ -0,0 +1,8 @@ +{ + "name": "Craft clay", + "description": "Craft clay", + "preview": "Craft clay.jpg", + "prompt": "play-doh style, {prompt}, sculpture, clay art, centered composition, Claymation", + "negative": "sloppy, messy, grainy, highly detailed, ultra textured, photo", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Digital-art.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Digital-art.jpg new file mode 100644 index 00000000..3fd0d1c7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Digital-art.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Digital-art.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Digital-art.json new file mode 100644 index 00000000..08a36a94 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Digital-art.json @@ -0,0 +1,8 @@ +{ + "name": "Digital art", + "description": "Digital art", + "preview": "Digital-art.jpg", + "prompt": "concept art, {prompt}, digital artwork, illustrative, painterly, matte painting, highly detailed", + "negative": "photo, photorealistic, realism, ugly", + "extra": "Steps:20, Sampler:UniPC, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Enhance.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Enhance.jpg new file mode 100644 index 00000000..19c18dd9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Enhance.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Enhance.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Enhance.json new file mode 100644 index 00000000..8a9cff22 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Enhance.json @@ -0,0 +1,8 @@ +{ + "name": "Enhance", + "description": "Detail enhancement ", + "preview": "Enhance.jpg", + "prompt": "breathtaking, {prompt}, award-winning, professional, highly detailed", + "negative": "ugly, deformed, noisy, blurry, distorted, grainy", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Fantasy art.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Fantasy art.jpg new file mode 100644 index 00000000..ba0d86da Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Fantasy art.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Fantasy art.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Fantasy art.json new file mode 100644 index 00000000..b36c6a9c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Fantasy art.json @@ -0,0 +1,8 @@ +{ + "name": "Fantasy art", + "description": "fantasy concept art", + "preview": "Fantasy art.jpg", + "prompt": "comic, {prompt}, graphic illustration, comic art, graphic novel art, vibrant, highly detailed", + "negative": "photographic, realistic, realism, 35mm film, dslr, cropped, frame, text, deformed, glitch, noise, noisy, off-center, deformed, cross-eyed, closed eyes, bad anatomy, ugly, disfigured, sloppy, duplicate, mutated, black and white", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical Cyberpunk.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical Cyberpunk.jpg new file mode 100644 index 00000000..c8370f69 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical Cyberpunk.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical Cyberpunk.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical Cyberpunk.json new file mode 100644 index 00000000..80902827 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical Cyberpunk.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Biomechanical Cyberpunk", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Biomechanical Cyberpunk.jpg", + "prompt": "biomechanical cyberpunk {prompt}, cybernetics, human-machine fusion, dystopian, organic meets artificial, dark, intricate, highly detailed", + "negative": "natural, colorful, deformed, sketch, low contrast, watercolor" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical.jpg new file mode 100644 index 00000000..5a17cf01 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical.json new file mode 100644 index 00000000..dfbe18ee --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Biomechanical.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Biomechanical", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Biomechanical.jpg", + "prompt": "biomechanical style {prompt}, blend of organic and mechanical elements, futuristic, cybernetic, detailed, intricate", + "negative": "natural, rustic, primitive, organic, simplistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic Robot.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic Robot.jpg new file mode 100644 index 00000000..cad5547a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic Robot.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic Robot.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic Robot.json new file mode 100644 index 00000000..6b70faae --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic Robot.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Cybernetic Robot", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Cybernetic Robot.jpg", + "prompt": "cybernetic robot {prompt}, android, AI, machine, metal, wires, tech, futuristic, highly detailed", + "negative": "organic, natural, human, sketch, watercolor, low contrast" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic.jpg new file mode 100644 index 00000000..0ece9695 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic.json new file mode 100644 index 00000000..85c9a6d7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cybernetic.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Cybernetic", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Cybernetic.jpg", + "prompt": "cybernetic style {prompt}, futuristic, technological, cybernetic enhancements, robotics, artificial intelligence themes", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, historical, medieval" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cyberpunk Cityscape.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cyberpunk Cityscape.jpg new file mode 100644 index 00000000..97141709 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cyberpunk Cityscape.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cyberpunk Cityscape.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cyberpunk Cityscape.json new file mode 100644 index 00000000..b5615864 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Cyberpunk Cityscape.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Cyberpunk Cityscape", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Cyberpunk Cityscape.jpg", + "prompt": "cyberpunk cityscape {prompt}, neon lights, dark alleys, skyscrapers, futuristic, vibrant colors, high contrast, highly detailed", + "negative": "natural, rural, deformed, low contrast, black and white, sketch, watercolor" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Futuristic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Futuristic.jpg new file mode 100644 index 00000000..6277d235 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Futuristic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Futuristic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Futuristic.json new file mode 100644 index 00000000..64e45ffc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Futuristic.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Futuristic", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Futuristic.jpg", + "prompt": "futuristic style {prompt}, sleek, modern, ultramodern, high tech, detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, vintage, antique" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Cyberpunk.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Cyberpunk.jpg new file mode 100644 index 00000000..e175a585 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Cyberpunk.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Cyberpunk.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Cyberpunk.json new file mode 100644 index 00000000..fd4a0110 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Cyberpunk.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Retro Cyberpunk", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Retro Cyberpunk.jpg", + "prompt": "retro cyberpunk {prompt}, 80\u2019s inspired, synthwave, neon, vibrant, detailed, retro futurism", + "negative": "modern, desaturated, black and white, realism, low contrast" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Futurism.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Futurism.jpg new file mode 100644 index 00000000..bb812d72 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Futurism.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Futurism.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Futurism.json new file mode 100644 index 00000000..5ef4e13c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Retro Futurism.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Retro Futurism", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Retro Futurism.jpg", + "prompt": "retro-futuristic {prompt}, vintage sci-fi, 50s and 60s style, atomic age, vibrant, highly detailed", + "negative": "contemporary, realistic, rustic, primitive" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Sci Fi.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Sci Fi.jpg new file mode 100644 index 00000000..a4c396d7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Sci Fi.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Sci Fi.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Sci Fi.json new file mode 100644 index 00000000..3ddddd09 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Sci Fi.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Sci Fi", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Sci Fi.jpg", + "prompt": "sci-fi style {prompt}, futuristic, technological, alien worlds, space themes, advanced civilizations", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, historical, medieval" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Vaporwave.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Vaporwave.jpg new file mode 100644 index 00000000..b8bdac23 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Vaporwave.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Vaporwave.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Vaporwave.json new file mode 100644 index 00000000..a6acdb93 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Futuristic Vaporwave.json @@ -0,0 +1,7 @@ +{ + "name": "Futuristic Vaporwave", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Futuristic Vaporwave.jpg", + "prompt": "vaporwave style {prompt}, retro aesthetic, cyberpunk, vibrant, neon colors, vintage 80s and 90s style, highly detailed", + "negative": "monochrome, muted colors, realism, rustic, minimalist, dark" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Bubble Bobble.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Bubble Bobble.jpg new file mode 100644 index 00000000..d9089ad2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Bubble Bobble.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Bubble Bobble.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Bubble Bobble.json new file mode 100644 index 00000000..a66e91f4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Bubble Bobble.json @@ -0,0 +1,7 @@ +{ + "name": "Game Bubble Bobble", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Bubble Bobble.jpg", + "prompt": "Bubble Bobble style {prompt}, 8-bit, cute, pixelated, fantasy, vibrant, reminiscent of Bubble Bobble game", + "negative": "realistic, modern, photorealistic, violent, horror" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Cyberpunk Game.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Cyberpunk Game.jpg new file mode 100644 index 00000000..8c2fa7a3 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Cyberpunk Game.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Cyberpunk Game.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Cyberpunk Game.json new file mode 100644 index 00000000..bfbda648 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Cyberpunk Game.json @@ -0,0 +1,7 @@ +{ + "name": "Game Cyberpunk Game", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Cyberpunk Game.jpg", + "prompt": "cyberpunk game style {prompt}, neon, dystopian, futuristic, digital, vibrant, detailed, high contrast, reminiscent of cyberpunk genre video games", + "negative": "historical, natural, rustic, low detailed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Fighting Game.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Fighting Game.jpg new file mode 100644 index 00000000..03476e0d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Fighting Game.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Fighting Game.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Fighting Game.json new file mode 100644 index 00000000..e3502894 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Fighting Game.json @@ -0,0 +1,7 @@ +{ + "name": "Game Fighting Game", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Fighting Game.jpg", + "prompt": "fighting game style {prompt}, dynamic, vibrant, action-packed, detailed character design, reminiscent of fighting video games", + "negative": "peaceful, calm, minimalist, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Gta.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Gta.jpg new file mode 100644 index 00000000..b14e0b86 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Gta.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Gta.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Gta.json new file mode 100644 index 00000000..13f49e85 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Gta.json @@ -0,0 +1,7 @@ +{ + "name": "Game Gta", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Gta.jpg", + "prompt": "GTA-style artwork {prompt}, satirical, exaggerated, pop art style, vibrant colors, iconic characters, action-packed", + "negative": "realistic, black and white, low contrast, impressionist, cubist, noisy, blurry, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Mario.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Mario.jpg new file mode 100644 index 00000000..0142b56c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Mario.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Mario.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Mario.json new file mode 100644 index 00000000..5a1f3fd9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Mario.json @@ -0,0 +1,7 @@ +{ + "name": "Game Mario", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Mario.jpg", + "prompt": "Super Mario style {prompt}, vibrant, cute, cartoony, fantasy, playful, reminiscent of Super Mario series", + "negative": "realistic, modern, horror, dystopian, violent" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Minecraft.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Minecraft.jpg new file mode 100644 index 00000000..c0ea2e4b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Minecraft.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Minecraft.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Minecraft.json new file mode 100644 index 00000000..32363e19 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Minecraft.json @@ -0,0 +1,7 @@ +{ + "name": "Game Minecraft", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Minecraft.jpg", + "prompt": "Minecraft style {prompt}, blocky, pixelated, vibrant colors, recognizable characters and objects, game assets", + "negative": "smooth, realistic, detailed, photorealistic, noise, blurry, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Pokemon.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Pokemon.jpg new file mode 100644 index 00000000..48b4e3b5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Pokemon.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Pokemon.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Pokemon.json new file mode 100644 index 00000000..d79ddccc --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Pokemon.json @@ -0,0 +1,7 @@ +{ + "name": "Game Pokemon", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Pokemon.jpg", + "prompt": "Pok\u00e9mon style {prompt}, vibrant, cute, anime, fantasy, reminiscent of Pok\u00e9mon series", + "negative": "realistic, modern, horror, dystopian, violent" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game RPG Fantasy Game.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game RPG Fantasy Game.jpg new file mode 100644 index 00000000..f1925b60 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game RPG Fantasy Game.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game RPG Fantasy Game.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game RPG Fantasy Game.json new file mode 100644 index 00000000..fe1dee38 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game RPG Fantasy Game.json @@ -0,0 +1,7 @@ +{ + "name": "Game RPG Fantasy Game", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game RPG Fantasy Game.jpg", + "prompt": "role-playing game (RPG) style fantasy {prompt}, detailed, vibrant, immersive, reminiscent of high fantasy RPG games", + "negative": "sci-fi, modern, urban, futuristic, low detailed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Arcade.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Arcade.jpg new file mode 100644 index 00000000..ba6cf0d2 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Arcade.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Arcade.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Arcade.json new file mode 100644 index 00000000..1c0e27b6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Arcade.json @@ -0,0 +1,7 @@ +{ + "name": "Game Retro Arcade", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Retro Arcade.jpg", + "prompt": "retro arcade style {prompt}, 8-bit, pixelated, vibrant, classic video game, old school gaming, reminiscent of 80s and 90s arcade games", + "negative": "modern, ultra-high resolution, photorealistic, 3D" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Game.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Game.jpg new file mode 100644 index 00000000..5efcd297 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Game.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Game.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Game.json new file mode 100644 index 00000000..5eddc521 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Retro Game.json @@ -0,0 +1,7 @@ +{ + "name": "Game Retro Game", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Retro Game.jpg", + "prompt": "retro game art {prompt}, 16-bit, vibrant colors, pixelated, nostalgic, charming, fun", + "negative": "realistic, photorealistic, 35mm film, deformed, glitch, low contrast, noisy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Strategy Game.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Strategy Game.jpg new file mode 100644 index 00000000..0c129ee5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Strategy Game.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Strategy Game.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Strategy Game.json new file mode 100644 index 00000000..8438b558 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Strategy Game.json @@ -0,0 +1,7 @@ +{ + "name": "Game Strategy Game", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Strategy Game.jpg", + "prompt": "strategy game style {prompt}, overhead view, detailed map, units, reminiscent of real-time strategy video games", + "negative": "first-person view, modern, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Streetfighter.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Streetfighter.jpg new file mode 100644 index 00000000..9bc5a775 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Streetfighter.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Streetfighter.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Streetfighter.json new file mode 100644 index 00000000..63afb278 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Streetfighter.json @@ -0,0 +1,7 @@ +{ + "name": "Game Streetfighter", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Streetfighter.jpg", + "prompt": "Street Fighter style {prompt}, vibrant, dynamic, arcade, 2D fighting game, highly detailed, reminiscent of Street Fighter series", + "negative": "3D, realistic, modern, photorealistic, turn-based strategy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Zelda.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Zelda.jpg new file mode 100644 index 00000000..0568691f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Zelda.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Zelda.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Zelda.json new file mode 100644 index 00000000..e1030e81 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Game Zelda.json @@ -0,0 +1,7 @@ +{ + "name": "Game Zelda", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Game Zelda.jpg", + "prompt": "Legend of Zelda style {prompt}, vibrant, fantasy, detailed, epic, heroic, reminiscent of The Legend of Zelda series", + "negative": "sci-fi, modern, realistic, horror" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Isometric.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Isometric.jpg new file mode 100644 index 00000000..53ef3e1a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Isometric.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Isometric.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Isometric.json new file mode 100644 index 00000000..c62c8544 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Isometric.json @@ -0,0 +1,8 @@ +{ + "name": "Isometric", + "description": "Isometric", + "preview": "Isometric.jpg", + "prompt": "isometric style, {prompt}, vibrant, beautiful, crisp, detailed, ultra detailed, intricate", + "negative": "deformed, mutated, ugly, disfigured, blur, blurry, noise, noisy, realistic, photographic", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Line art.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Line art.jpg new file mode 100644 index 00000000..47a4112f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Line art.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Line art.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Line art.json new file mode 100644 index 00000000..c0792795 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Line art.json @@ -0,0 +1,8 @@ +{ + "name": "Line art", + "description": "Line art", + "preview": "Line art.jpg", + "prompt": "line art drawing, {prompt}, professional, sleek, modern, minimalist, graphic, line art, vector graphics", + "negative": "anime, photorealistic, 35mm film, deformed, glitch, blurry, noisy, off-center, deformed, cross-eyed, closed eyes, bad anatomy, ugly, disfigured, mutated, realism, realistic, impressionism, expressionism, oil, acrylic", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Lowpoly.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Lowpoly.jpg new file mode 100644 index 00000000..9bd6cf5c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Lowpoly.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Lowpoly.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Lowpoly.json new file mode 100644 index 00000000..e34de1c5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Lowpoly.json @@ -0,0 +1,8 @@ +{ + "name": "Lowpoly", + "description": "Lowpoly", + "preview": "Lowpoly.jpg", + "prompt": "low-poly style, {prompt}, low-poly game art, polygon mesh, jagged, blocky, wireframe edges, centered composition", + "negative": "noisy, sloppy, messy, grainy, highly detailed, ultra textured, photo", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Architectural.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Architectural.jpg new file mode 100644 index 00000000..f03b2f56 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Architectural.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Architectural.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Architectural.json new file mode 100644 index 00000000..46a53303 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Architectural.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Architectural", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Architectural.jpg", + "prompt": "architectural style {prompt}, clean lines, geometric shapes, minimalist, modern, architectural drawing, highly detailed", + "negative": "curved lines, ornate, baroque, abstract, grunge" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Disco.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Disco.jpg new file mode 100644 index 00000000..a951a8ca Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Disco.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Disco.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Disco.json new file mode 100644 index 00000000..46ba4602 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Disco.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Disco", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Disco.jpg", + "prompt": "disco-themed {prompt}, vibrant, groovy, retro 70s style, shiny disco balls, neon lights, dance floor, highly detailed", + "negative": "minimalist, rustic, monochrome, contemporary, simplistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dreamscape.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dreamscape.jpg new file mode 100644 index 00000000..757756f5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dreamscape.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dreamscape.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dreamscape.json new file mode 100644 index 00000000..d6e4cee5 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dreamscape.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Dreamscape", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Dreamscape.jpg", + "prompt": "dreamscape {prompt}, surreal, ethereal, dreamy, mysterious, fantasy, highly detailed", + "negative": "realistic, concrete, ordinary, mundane" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dystopian.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dystopian.jpg new file mode 100644 index 00000000..82b3f44b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dystopian.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dystopian.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dystopian.json new file mode 100644 index 00000000..a5e8f464 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Dystopian.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Dystopian", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Dystopian.jpg", + "prompt": "dystopian style {prompt}, bleak, post-apocalyptic, somber, dramatic, highly detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, cheerful, optimistic, vibrant, colorful" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Fairy Tale.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Fairy Tale.jpg new file mode 100644 index 00000000..98c0d898 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Fairy Tale.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Fairy Tale.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Fairy Tale.json new file mode 100644 index 00000000..5b848a9b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Fairy Tale.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Fairy Tale", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Fairy Tale.jpg", + "prompt": "fairy tale {prompt}, magical, fantastical, enchanting, storybook style, highly detailed", + "negative": "realistic, modern, ordinary, mundane" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Gothic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Gothic.jpg new file mode 100644 index 00000000..24e6c1cc Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Gothic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Gothic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Gothic.json new file mode 100644 index 00000000..bdc93fa2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Gothic.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Gothic", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Gothic.jpg", + "prompt": "gothic style {prompt}, dark, mysterious, haunting, dramatic, ornate, detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, cheerful, optimistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Grunge.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Grunge.jpg new file mode 100644 index 00000000..b4f019a8 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Grunge.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Grunge.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Grunge.json new file mode 100644 index 00000000..a097a1f7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Grunge.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Grunge", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Grunge.jpg", + "prompt": "grunge style {prompt}, textured, distressed, vintage, edgy, punk rock vibe, dirty, noisy", + "negative": "smooth, clean, minimalist, sleek, modern, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Horror.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Horror.jpg new file mode 100644 index 00000000..4cfa938d Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Horror.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Horror.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Horror.json new file mode 100644 index 00000000..c6fe5be9 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Horror.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Horror", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Horror.jpg", + "prompt": "horror-themed {prompt}, eerie, unsettling, dark, spooky, suspenseful, grim, highly detailed", + "negative": "cheerful, bright, vibrant, light-hearted, cute" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Kawaii.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Kawaii.jpg new file mode 100644 index 00000000..64afeff9 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Kawaii.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Kawaii.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Kawaii.json new file mode 100644 index 00000000..a90941a6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Kawaii.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Kawaii", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Kawaii.jpg", + "prompt": "kawaii style {prompt}, cute, adorable, brightly colored, cheerful, anime influence, highly detailed", + "negative": "dark, scary, realistic, monochrome, abstract" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Lovecraftian.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Lovecraftian.jpg new file mode 100644 index 00000000..313106ce Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Lovecraftian.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Lovecraftian.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Lovecraftian.json new file mode 100644 index 00000000..a6238eeb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Lovecraftian.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Lovecraftian", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Lovecraftian.jpg", + "prompt": "lovecraftian horror {prompt}, eldritch, cosmic horror, unknown, mysterious, surreal, highly detailed", + "negative": "light-hearted, mundane, familiar, simplistic, realistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Macabre.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Macabre.jpg new file mode 100644 index 00000000..8003bf85 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Macabre.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Macabre.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Macabre.json new file mode 100644 index 00000000..8bea0d93 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Macabre.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Macabre", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Macabre.jpg", + "prompt": "macabre style {prompt}, dark, gothic, grim, haunting, highly detailed", + "negative": "bright, cheerful, light-hearted, cartoonish, cute" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Manga.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Manga.jpg new file mode 100644 index 00000000..8a7b0daa Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Manga.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Manga.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Manga.json new file mode 100644 index 00000000..33a42095 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Manga.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Manga", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Manga.jpg", + "prompt": "manga style {prompt}, vibrant, high-energy, detailed, iconic, Japanese comic style", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, Western comic style" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Metropolis.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Metropolis.jpg new file mode 100644 index 00000000..ad19c89f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Metropolis.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Metropolis.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Metropolis.json new file mode 100644 index 00000000..63f88792 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Metropolis.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Metropolis", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Metropolis.jpg", + "prompt": "metropolis-themed {prompt}, urban, cityscape, skyscrapers, modern, futuristic, highly detailed", + "negative": "rural, natural, rustic, historical, simple" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Minimalist.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Minimalist.jpg new file mode 100644 index 00000000..7fa93054 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Minimalist.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Minimalist.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Minimalist.json new file mode 100644 index 00000000..51836912 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Minimalist.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Minimalist", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Minimalist.jpg", + "prompt": "minimalist style {prompt}, simple, clean, uncluttered, modern, elegant", + "negative": "ornate, complicated, highly detailed, cluttered, disordered, messy, noisy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Monochrome.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Monochrome.jpg new file mode 100644 index 00000000..f36dd39f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Monochrome.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Monochrome.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Monochrome.json new file mode 100644 index 00000000..c24bd561 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Monochrome.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Monochrome", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Monochrome.jpg", + "prompt": "monochrome {prompt}, black and white, contrast, tone, texture, detailed", + "negative": "colorful, vibrant, noisy, blurry, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Nautical.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Nautical.jpg new file mode 100644 index 00000000..9f360214 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Nautical.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Nautical.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Nautical.json new file mode 100644 index 00000000..c2744422 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Nautical.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Nautical", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Nautical.jpg", + "prompt": "nautical-themed {prompt}, sea, ocean, ships, maritime, beach, marine life, highly detailed", + "negative": "landlocked, desert, mountains, urban, rustic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Space.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Space.jpg new file mode 100644 index 00000000..354e3b96 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Space.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Space.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Space.json new file mode 100644 index 00000000..484c0e94 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Space.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Space", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Space.jpg", + "prompt": "space-themed {prompt}, cosmic, celestial, stars, galaxies, nebulas, planets, science fiction, highly detailed", + "negative": "earthly, mundane, ground-based, realism" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Stained Glass.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Stained Glass.jpg new file mode 100644 index 00000000..be8ffcb6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Stained Glass.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Stained Glass.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Stained Glass.json new file mode 100644 index 00000000..0854c1b2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Stained Glass.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Stained Glass", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Stained Glass.jpg", + "prompt": "stained glass style {prompt}, vibrant, beautiful, translucent, intricate, detailed", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Techwear Fashion.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Techwear Fashion.jpg new file mode 100644 index 00000000..bd076f10 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Techwear Fashion.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Techwear Fashion.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Techwear Fashion.json new file mode 100644 index 00000000..6dec92a2 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Techwear Fashion.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Techwear Fashion", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Techwear Fashion.jpg", + "prompt": "techwear fashion {prompt}, futuristic, cyberpunk, urban, tactical, sleek, dark, highly detailed", + "negative": "vintage, rural, colorful, low contrast, realism, sketch, watercolor" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Tribal.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Tribal.jpg new file mode 100644 index 00000000..f90713f4 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Tribal.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Tribal.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Tribal.json new file mode 100644 index 00000000..6d46ea4b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Tribal.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Tribal", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Tribal.jpg", + "prompt": "tribal style {prompt}, indigenous, ethnic, traditional patterns, bold, natural colors, highly detailed", + "negative": "modern, futuristic, minimalist, pastel" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Zentangle.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Zentangle.jpg new file mode 100644 index 00000000..903c0e12 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Zentangle.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Zentangle.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Zentangle.json new file mode 100644 index 00000000..14565d82 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Misc Zentangle.json @@ -0,0 +1,7 @@ +{ + "name": "Misc Zentangle", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Misc Zentangle.jpg", + "prompt": "zentangle {prompt}, intricate, abstract, monochrome, patterns, meditative, highly detailed", + "negative": "colorful, representative, simplistic, large fields of color" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Neonpunk.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Neonpunk.jpg new file mode 100644 index 00000000..d778327c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Neonpunk.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Neonpunk.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Neonpunk.json new file mode 100644 index 00000000..44efa058 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Neonpunk.json @@ -0,0 +1,8 @@ +{ + "name": "Neon punk", + "description": "Neonpunk", + "preview": "Neonpunk.jpg", + "prompt": "neonpunk style, {prompt}, cyberpunk, vaporwave, neon, vibes, vibrant, stunningly beautiful, crisp, detailed, sleek, ultramodern, magenta highlights, dark purple shadows, high contrast, cinematic, ultra detailed, intricate, professional", + "negative": "painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Origami.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Origami.jpg new file mode 100644 index 00000000..e8c62c4f Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Origami.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Origami.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Origami.json new file mode 100644 index 00000000..8a6e25fb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Origami.json @@ -0,0 +1,8 @@ +{ + "name": "Origami", + "description": "Origami", + "preview": "Origami.jpg", + "prompt": "origami style, {prompt}, paper art, pleated paper, folded, origami art, pleats, cut and fold, centered composition", + "negative": "noisy, sloppy, messy, grainy, highly detailed, ultra textured, photo", + "extra": "Steps:20, Sampler:LMSD, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Collage.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Collage.jpg new file mode 100644 index 00000000..6728099e Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Collage.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Collage.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Collage.json new file mode 100644 index 00000000..efa4a07a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Collage.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Collage", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Collage.jpg", + "prompt": "collage style {prompt}, mixed media, layered, textural, detailed, artistic", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Flat Papercut.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Flat Papercut.jpg new file mode 100644 index 00000000..695e01a7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Flat Papercut.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Flat Papercut.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Flat Papercut.json new file mode 100644 index 00000000..813049f6 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Flat Papercut.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Flat Papercut", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Flat Papercut.jpg", + "prompt": "flat papercut style {prompt}, silhouette, clean cuts, paper, sharp edges, minimalist, color block", + "negative": "3D, high detail, noise, grainy, blurry, painting, drawing, photo, disfigured" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Kirigami.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Kirigami.jpg new file mode 100644 index 00000000..749a08a7 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Kirigami.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Kirigami.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Kirigami.json new file mode 100644 index 00000000..c5e28a33 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Kirigami.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Kirigami", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Kirigami.jpg", + "prompt": "kirigami representation of {prompt}, 3D, paper folding, paper cutting, Japanese, intricate, symmetrical, precision, clean lines", + "negative": "painting, drawing, 2D, noisy, blurry, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Mache.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Mache.jpg new file mode 100644 index 00000000..ae772a97 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Mache.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Mache.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Mache.json new file mode 100644 index 00000000..6311020b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Mache.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Paper Mache", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Paper Mache.jpg", + "prompt": "paper mache representation of {prompt}, 3D, sculptural, textured, handmade, vibrant, fun", + "negative": "2D, flat, photo, sketch, digital art, deformed, noisy, blurry" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Quilling.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Quilling.jpg new file mode 100644 index 00000000..679c93f0 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Quilling.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Quilling.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Quilling.json new file mode 100644 index 00000000..f8201f73 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Paper Quilling.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Paper Quilling", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Paper Quilling.jpg", + "prompt": "paper quilling art of {prompt}, intricate, delicate, curling, rolling, shaping, coiling, loops, 3D, dimensional, ornamental", + "negative": "photo, painting, drawing, 2D, flat, deformed, noisy, blurry" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Collage.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Collage.jpg new file mode 100644 index 00000000..96aca283 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Collage.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Collage.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Collage.json new file mode 100644 index 00000000..5674366f --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Collage.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Papercut Collage", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Papercut Collage.jpg", + "prompt": "papercut collage of {prompt}, mixed media, textured paper, overlapping, asymmetrical, abstract, vibrant", + "negative": "photo, 3D, realistic, drawing, painting, high detail, disfigured" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Shadow Box.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Shadow Box.jpg new file mode 100644 index 00000000..d617d5e1 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Shadow Box.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Shadow Box.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Shadow Box.json new file mode 100644 index 00000000..77a5c9bb --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Papercut Shadow Box.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Papercut Shadow Box", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Papercut Shadow Box.jpg", + "prompt": "3D papercut shadow box of {prompt}, layered, dimensional, depth, silhouette, shadow, papercut, handmade, high contrast", + "negative": "painting, drawing, photo, 2D, flat, high detail, blurry, noisy, disfigured" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Stacked Papercut.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Stacked Papercut.jpg new file mode 100644 index 00000000..eadb9f0a Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Stacked Papercut.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Stacked Papercut.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Stacked Papercut.json new file mode 100644 index 00000000..9f4caf2a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Stacked Papercut.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Stacked Papercut", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Stacked Papercut.jpg", + "prompt": "stacked papercut art of {prompt}, 3D, layered, dimensional, depth, precision cut, stacked layers, papercut, high contrast", + "negative": "2D, flat, noisy, blurry, painting, drawing, photo, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Thick Layered Papercut.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Thick Layered Papercut.jpg new file mode 100644 index 00000000..8202df63 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Thick Layered Papercut.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Thick Layered Papercut.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Thick Layered Papercut.json new file mode 100644 index 00000000..53f56a7e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Papercraft Thick Layered Papercut.json @@ -0,0 +1,7 @@ +{ + "name": "Papercraft Thick Layered Papercut", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Papercraft Thick Layered Papercut.jpg", + "prompt": "thick layered papercut art of {prompt}, deep 3D, volumetric, dimensional, depth, thick paper, high stack, heavy texture, tangible layers", + "negative": "2D, flat, thin paper, low stack, smooth texture, painting, drawing, photo, deformed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Alien.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Alien.jpg new file mode 100644 index 00000000..244248f6 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Alien.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Alien.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Alien.json new file mode 100644 index 00000000..f8b25f85 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Alien.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Alien", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Alien.jpg", + "prompt": "alien-themed {prompt}, extraterrestrial, cosmic, otherworldly, mysterious, sci-fi, highly detailed", + "negative": "earthly, mundane, common, realistic, simple" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Film Noir.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Film Noir.jpg new file mode 100644 index 00000000..f165db51 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Film Noir.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Film Noir.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Film Noir.json new file mode 100644 index 00000000..8dfb5ded --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Film Noir.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Film Noir", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Film Noir.jpg", + "prompt": "film noir style {prompt}, monochrome, high contrast, dramatic shadows, 1940s style, mysterious, cinematic", + "negative": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, vibrant, colorful" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Glamour.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Glamour.jpg new file mode 100644 index 00000000..3a0d8352 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Glamour.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Glamour.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Glamour.json new file mode 100644 index 00000000..fff57008 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Glamour.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Glamour", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Glamour.jpg", + "prompt": "glamorous photo {prompt}, high fashion, luxurious, extravagant, stylish, sensual, opulent, elegance, stunning beauty, professional, high contrast, detailed", + "negative": "ugly, deformed, noisy, blurry, distorted, grainy, sketch, low contrast, dull, plain, modest" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Hdr.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Hdr.jpg new file mode 100644 index 00000000..3fb66132 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Hdr.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Hdr.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Hdr.json new file mode 100644 index 00000000..7ce4682c --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Hdr.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Hdr", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Hdr.jpg", + "prompt": "HDR photo of {prompt}, High dynamic range, vivid, rich details, clear shadows and highlights, realistic, intense, enhanced contrast, highly detailed", + "negative": "flat, low contrast, oversaturated, underexposed, overexposed, blurred, noisy" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Iphone Photographic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Iphone Photographic.jpg new file mode 100644 index 00000000..98e19b82 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Iphone Photographic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Iphone Photographic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Iphone Photographic.json new file mode 100644 index 00000000..888d9351 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Iphone Photographic.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Iphone Photographic", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Iphone Photographic.jpg", + "prompt": "iphone photo {prompt}, large depth of field, deep depth of field, highly detailed", + "negative": "drawing, painting, crayon, sketch, graphite, impressionist, noisy, blurry, soft, deformed, ugly, shallow depth of field, bokeh" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Long Exposure.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Long Exposure.jpg new file mode 100644 index 00000000..b1d7b9d5 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Long Exposure.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Long Exposure.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Long Exposure.json new file mode 100644 index 00000000..292a9949 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Long Exposure.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Long Exposure", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Long Exposure.jpg", + "prompt": "long exposure photo of {prompt}, Blurred motion, streaks of light, surreal, dreamy, ghosting effect, highly detailed", + "negative": "static, noisy, deformed, shaky, abrupt, flat, low contrast" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Neon Noir.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Neon Noir.jpg new file mode 100644 index 00000000..1524eaeb Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Neon Noir.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Neon Noir.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Neon Noir.json new file mode 100644 index 00000000..3a3d0c2e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Neon Noir.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Neon Noir", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Neon Noir.jpg", + "prompt": "neon noir {prompt}, cyberpunk, dark, rainy streets, neon signs, high contrast, low light, vibrant, highly detailed", + "negative": "bright, sunny, daytime, low contrast, black and white, sketch, watercolor" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Silhouette.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Silhouette.jpg new file mode 100644 index 00000000..4b44b883 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Silhouette.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Silhouette.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Silhouette.json new file mode 100644 index 00000000..1a533232 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Silhouette.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Silhouette", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Silhouette.jpg", + "prompt": "silhouette style {prompt}, high contrast, minimalistic, black and white, stark, dramatic", + "negative": "ugly, deformed, noisy, blurry, low contrast, color, realism, photorealistic" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Tilt Shift.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Tilt Shift.jpg new file mode 100644 index 00000000..0ad11a02 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Tilt Shift.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Tilt Shift.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Tilt Shift.json new file mode 100644 index 00000000..10d63f52 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photo Tilt Shift.json @@ -0,0 +1,7 @@ +{ + "name": "Photo Tilt Shift", + "description": "These prompt templates are found in [SDXL Prompt Styler]", + "preview": "Photo Tilt Shift.jpg", + "prompt": "tilt-shift photo of {prompt}, selective focus, miniature effect, blurred background, highly detailed, vibrant, perspective control", + "negative": "blurry, noisy, deformed, flat, low contrast, unrealistic, oversaturated, underexposed" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photographic.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photographic.jpg new file mode 100644 index 00000000..d8e3e676 Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photographic.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Photographic.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photographic.json new file mode 100644 index 00000000..9ca83cb4 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Photographic.json @@ -0,0 +1,8 @@ +{ + "name": "Photographic", + "description": "cinematic photo", + "preview": "Photographic.jpg", + "prompt": "cinematic photo, {prompt}, 35mm photograph, film, bokeh, professional, 4k, highly detailed", + "negative": "drawing, painting, crayon, sketch, graphite, impressionist, noisy, blurry, soft, deformed, ugly", + "extra": "Steps:20, Sampler:UniPC, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Texture.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/Texture.jpg new file mode 100644 index 00000000..617f5d3b Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/Texture.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/Texture.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/Texture.json new file mode 100644 index 00000000..fc764ef7 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/Texture.json @@ -0,0 +1,8 @@ +{ + "name": "Texture", + "description": "Texture", + "preview": "Texture.jpg", + "prompt": "texture, {prompt}, top down close-up", + "negative": "ugly, deformed, noisy, blurry", + "extra": "Steps:20, Sampler:UniPC, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/pixel art.jpg b/extensions-builtin/sd-webui-ux/styles_data/Styles/pixel art.jpg new file mode 100644 index 00000000..00375e1c Binary files /dev/null and b/extensions-builtin/sd-webui-ux/styles_data/Styles/pixel art.jpg differ diff --git a/extensions-builtin/sd-webui-ux/styles_data/Styles/pixel art.json b/extensions-builtin/sd-webui-ux/styles_data/Styles/pixel art.json new file mode 100644 index 00000000..0d857767 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/styles_data/Styles/pixel art.json @@ -0,0 +1,8 @@ +{ + "name": "pixel art", + "description": "pixel art", + "preview": "pixel art.jpg", + "prompt": "pixel-art, {prompt}, low-res, blocky, pixel art style, 8-bit graphics", + "negative": "sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic", + "extra": "Steps:20, Sampler:UniPC, CFG scale: 6, Seed: -1, Size: 1024x1024" +} \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_cozy.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_cozy.css index 8c5720a3..272cc191 100644 --- a/extensions-builtin/sd-webui-ux/themes/ae_v1_cozy.css +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_cozy.css @@ -1 +1 @@ ---ae-primary-color:hsla(196, 96%, 52%, 1);--ae-secondary-color:hsla(145, 93%, 41%, 1);--ae-main-bg-color:hsla(180, 10%, 8%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(180, 100%, 95%, 0.75);--ae-secondary-label-color:hsla(180, 100%, 95%, 0.5);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(180, 100%, 95%, 0.75);--ae-input-placeholder-color:hsla(180, 100%, 95%, 0.35);--ae-input-bg-color:hsla(180, 10%, 0%, 0.25);--ae-input-border-color:hsla(180, 10%, 0%, 0.1);--ae-input-hover-text-color:hsla(180, 100%, 95%, 0.75);--ae-panel-bg-color:hsla(180, 10%, 20%, 0.5);--ae-panel-border-color:hsla(180, 10%, 20%, 0.75);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(180, 10%, 11%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(180, 10%, 11%, 1);--ae-group-gap:6px; \ No newline at end of file +--ae-primary-color:hsla(196, 96%, 52%, 1);--ae-secondary-color:hsla(180, 10%, 8%, 1);--ae-main-bg-color:hsla(180, 10%, 8%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(180, 100%, 95%, 0.75);--ae-secondary-label-color:hsla(180, 100%, 95%, 0.5);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(180, 100%, 95%, 0.75);--ae-input-placeholder-color:hsla(180, 100%, 95%, 0.35);--ae-input-bg-color:hsla(180, 10%, 0%, 0.25);--ae-input-border-color:hsla(180, 10%, 0%, 0.1);--ae-input-hover-text-color:hsla(180, 100%, 95%, 0.75);--ae-panel-bg-color:hsla(180, 10%, 20%, 0.5);--ae-panel-border-color:hsla(180, 10%, 20%, 0.75);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(180, 10%, 11%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(180, 10%, 11%, 1);--ae-group-gap:6px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_github.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_github.css new file mode 100644 index 00000000..8b96be1e --- /dev/null +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_github.css @@ -0,0 +1 @@ +--ae-primary-color:hsla(213, 93%, 62%, 1);--ae-secondary-color:hsla(160, 0%, 41%, 1);--ae-main-bg-color:hsla(195, 0%, 8%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(195, 0%, 95%, 0.75);--ae-secondary-label-color:hsla(195, 0%, 95%, 0.5);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(195, 0%, 95%, 0.75);--ae-input-placeholder-color:hsla(195, 0%, 95%, 0.35);--ae-input-bg-color:hsla(195, 0%, 0%, 0.25);--ae-input-border-color:hsla(195, 0%, 0%, 0.1);--ae-input-hover-text-color:hsla(195, 0%, 95%, 0.75);--ae-panel-bg-color:hsla(195, 0%, 20%, 0.5);--ae-panel-border-color:hsla(195, 0%, 20%, 0.75);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(195, 0%, 11%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(195, 0%, 11%, 1);--ae-group-gap:6px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_iccy.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_iccy.css index 3b0f1de4..2f62fef6 100644 --- a/extensions-builtin/sd-webui-ux/themes/ae_v1_iccy.css +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_iccy.css @@ -1 +1 @@ ---ae-primary-color:hsla(192, 70%, 36%, 1);--ae-secondary-color:hsla(160, 100%, 41%, 1);--ae-main-bg-color:hsla(195, 30%, 8%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(195, 100%, 95%, 0.75);--ae-secondary-label-color:hsla(195, 100%, 95%, 0.5);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(195, 100%, 95%, 0.75);--ae-input-placeholder-color:hsla(195, 100%, 95%, 0.35);--ae-input-bg-color:hsla(195, 30%, 0%, 0.25);--ae-input-border-color:hsla(195, 30%, 0%, 0.1);--ae-input-hover-text-color:hsla(195, 100%, 95%, 0.75);--ae-panel-bg-color:hsla(195, 30%, 20%, 0.5);--ae-panel-border-color:hsla(195, 30%, 20%, 0.75);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(195, 30%, 11%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(195, 30%, 11%, 1);--ae-group-gap:6px; \ No newline at end of file +--ae-primary-color:hsla(192, 70%, 36%, 1);--ae-secondary-color:hsla(192, 70%, 36%, 1);--ae-main-bg-color:hsla(195, 30%, 8%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(195, 100%, 95%, 0.75);--ae-secondary-label-color:hsla(195, 100%, 95%, 0.5);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(195, 100%, 95%, 0.75);--ae-input-placeholder-color:hsla(195, 100%, 95%, 0.35);--ae-input-bg-color:hsla(195, 30%, 0%, 0.25);--ae-input-border-color:hsla(195, 30%, 0%, 0.1);--ae-input-hover-text-color:hsla(195, 100%, 95%, 0.75);--ae-panel-bg-color:hsla(195, 30%, 20%, 0.5);--ae-panel-border-color:hsla(195, 30%, 20%, 0.75);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(195, 30%, 11%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(195, 30%, 11%, 1);--ae-group-gap:6px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_light.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_light.css index a7678c7a..e8b9e6d6 100644 --- a/extensions-builtin/sd-webui-ux/themes/ae_v1_light.css +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_light.css @@ -1 +1 @@ ---ae-primary-color:hsla(0, 0%, 0%, 1);--ae-secondary-color:hsla(225, 6%, 13%, 1);--ae-main-bg-color:hsla(0, 0%, 95%, 1);--ae-input-height:28px;--ae-input-slider-height:0.5;--ae-input-padding:5px;--ae-input-font-size:12px;--ae-input-line-height:13px;--ae-label-color:hsla(0, 0%, 15%, 1);--ae-secondary-label-color:hsla(0, 100%, 50%, 1);--ae-input-border-size:1px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(0, 0%, 0%, 1);--ae-input-placeholder-color:hsla(0, 0%, 89%, 1);--ae-input-bg-color:hsla(0, 100%, 100%, 1);--ae-input-border-color:hsla(0, 0%, 95%, 1);--ae-input-hover-text-color:hsla(0, 100%, 100%, 1);--ae-panel-bg-color:hsla(0, 0%, 98%, 1);--ae-panel-border-color:hsla(0, 0%, 87%, 1);--ae-panel-padding:5px;--ae-border-radius:5px;--ae-border-size:0px;--ae-gap-size-val:3px;--ae-group-bg-color:hsla(0, 0%, 94%, 1);--ae-group-padding:2px;--ae-group-radius:6px;--ae-group-border-size:0px;--ae-group-border-color:hsla(0, 0%, 94%, 1);--ae-group-gap:2px; \ No newline at end of file +--ae-primary-color:hsla(0, 0%, 0%, 1);--ae-secondary-color:hsla(0, 100%, 100%, 1);--ae-main-bg-color:hsla(0, 0%, 95%, 1);--ae-input-height:28px;--ae-input-slider-height:0.5;--ae-input-padding:5px;--ae-input-font-size:12px;--ae-input-line-height:13px;--ae-label-color:hsla(0, 0%, 15%, 1);--ae-secondary-label-color:hsla(0, 100%, 50%, 1);--ae-input-border-size:1px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(0, 0%, 0%, 1);--ae-input-placeholder-color:hsla(0, 0%, 89%, 1);--ae-input-bg-color:hsla(0, 100%, 100%, 1);--ae-input-border-color:hsla(0, 0%, 95%, 1);--ae-input-hover-text-color:hsla(0, 100%, 100%, 1);--ae-panel-bg-color:hsla(0, 0%, 98%, 1);--ae-panel-border-color:hsla(0, 0%, 87%, 1);--ae-panel-padding:5px;--ae-border-radius:5px;--ae-border-size:0px;--ae-gap-size-val:3px;--ae-group-bg-color:hsla(0, 0%, 94%, 1);--ae-group-padding:2px;--ae-group-radius:6px;--ae-group-border-size:0px;--ae-group-border-color:hsla(0, 0%, 94%, 1);--ae-group-gap:2px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_green.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_green.css new file mode 100644 index 00000000..8a612b46 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_green.css @@ -0,0 +1 @@ +--ae-primary-color:hsla(0, 0%, 0%, 1);--ae-secondary-color:hsla(148, 100%, 42%, 1);--ae-main-bg-color:hsla(148, 100%, 48%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(0, 0%, 0%, 1);--ae-secondary-label-color:hsla(0, 0%, 0%, 1);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(0, 0%, 0%, 1);--ae-input-placeholder-color:hsla(148, 100%, 0%, 0.34901960784313724);--ae-input-bg-color:hsla(148, 100%, 56%, 0.24705882352941178);--ae-input-border-color:hsla(148, 100%, 56%, 0.09803921568627451);--ae-input-hover-text-color:hsla(148, 100%, 48%, 1);--ae-panel-bg-color:hsla(148, 100%, 36%, 0.4980392156862745);--ae-panel-border-color:hsla(148, 100%, 36%, 0.7490196078431373);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(148, 100%, 45%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(148, 100%, 45%, 1);--ae-group-gap:6px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_pastel.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_pastel.css new file mode 100644 index 00000000..23993a2b --- /dev/null +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_pastel.css @@ -0,0 +1 @@ +--ae-primary-color:hsla(50, 30%, 0%, 1);--ae-secondary-color:hsla(198, 30%, 92%, 1);--ae-main-bg-color:hsla(198, 30%, 98%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(50, 30%, 0%, 1);--ae-secondary-label-color:hsla(50, 30%, 50%, 1);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(50, 30%, 0%, 1);--ae-input-placeholder-color:hsla(50, 30%, 50%, 1);--ae-input-bg-color:hsla(198, 30%, 100%, 0.24705882352941178);--ae-input-border-color:hsla(198, 30%, 100%, 0.09803921568627451);--ae-input-hover-text-color:hsla(198, 30%, 98%, 1);--ae-panel-bg-color:hsla(198, 30%, 86%, 0.4980392156862745);--ae-panel-border-color:hsla(198, 30%, 86%, 0.7490196078431373);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(198, 30%, 95%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(198, 30%, 95%, 1);--ae-group-gap:6px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_wt.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_wt.css new file mode 100644 index 00000000..0ff07330 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_mono_wt.css @@ -0,0 +1 @@ +--ae-primary-color:hsla(0, 0%, 0%, 1);--ae-secondary-color:hsla(148, 0%, 92%, 1);--ae-main-bg-color:hsla(148, 0%, 98%, 1);--ae-input-height:28px;--ae-input-slider-height:0.6;--ae-input-padding:2px;--ae-input-font-size:12px;--ae-input-line-height:14px;--ae-label-color:hsla(0, 0%, 0%, 1);--ae-secondary-label-color:hsla(0, 0%, 50%, 1);--ae-input-border-size:2px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(0, 0%, 0%, 1);--ae-input-placeholder-color:hsla(0, 0%, 50%, 1);--ae-input-bg-color:hsla(148, 0%, 100%, 0.24705882352941178);--ae-input-border-color:hsla(148, 0%, 100%, 0.09803921568627451);--ae-input-hover-text-color:hsla(148, 0%, 98%, 1);--ae-panel-bg-color:hsla(148, 0%, 86%, 0.4980392156862745);--ae-panel-border-color:hsla(148, 0%, 86%, 0.7490196078431373);--ae-panel-padding:3px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(148, 0%, 95%, 1);--ae-group-padding:2px;--ae-group-radius:7px;--ae-group-border-size:2px;--ae-group-border-color:hsla(148, 0%, 95%, 1);--ae-group-gap:6px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_moonorange.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_moonorange.css new file mode 100644 index 00000000..4a2cab4a --- /dev/null +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_moonorange.css @@ -0,0 +1 @@ +--ae-primary-color:hsla(354, 50%, 63%, 1);--ae-secondary-color:hsla(222, 75%, 60%, 1);--ae-main-bg-color:hsla(240, 16%, 6%, 1);--ae-input-height:28px;--ae-input-slider-height:0.5;--ae-input-padding:5px;--ae-input-font-size:12px;--ae-input-line-height:16px;--ae-label-color:hsla(185, 66%, 85%, 1);--ae-secondary-label-color:hsla(0, 100%, 50%, 1);--ae-input-border-size:0px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(222, 75%, 62%, 1);--ae-input-placeholder-color:hsla(222, 75%, 62%, 1);--ae-input-bg-color:hsla(240, 17%, 8%, 1);--ae-input-border-color:hsla(240, 17%, 8%, 1);--ae-input-hover-text-color:hsla(240, 18%, 12%, 1);--ae-panel-bg-color:hsla(240, 18%, 12%, 1);--ae-panel-border-color:hsla(240, 18%, 12%, 1);--ae-panel-padding:4px;--ae-border-radius:16px;--ae-border-size:0px;--ae-gap-size-val:1px;--ae-group-bg-color:hsla(240, 18%, 12%, 1);--ae-group-padding:0px;--ae-group-radius:0px;--ae-group-border-size:0px;--ae-group-border-color:hsla(240, 18%, 12%, 1);--ae-group-gap:0px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/ae_v1_tron_sm.css b/extensions-builtin/sd-webui-ux/themes/ae_v1_tron_sm.css new file mode 100644 index 00000000..93649d93 --- /dev/null +++ b/extensions-builtin/sd-webui-ux/themes/ae_v1_tron_sm.css @@ -0,0 +1 @@ +--ae-primary-color:hsla(182, 95%, 51%, 1);--ae-secondary-color:hsla(182, 95%, 51%, 1);--ae-main-bg-color:hsla(185, 75%, 3%, 1);--ae-input-height:30px;--ae-input-slider-height:0.5;--ae-input-padding:3px;--ae-input-font-size:11px;--ae-input-line-height:14px;--ae-label-color:hsla(182, 95%, 75%, 1);--ae-secondary-label-color:hsla(0, 100%, 50%, 1);--ae-input-border-size:1px;--ae-input-border-radius:0px;--ae-input-text-color:hsla(168, 75%, 70%, 1);--ae-input-placeholder-color:hsla(185, 72%, 25%, 1);--ae-input-bg-color:hsla(184, 89%, 7%, 1);--ae-input-border-color:hsla(185, 72%, 25%, 1);--ae-input-hover-text-color:hsla(182, 94%, 80%, 1);--ae-panel-bg-color:hsla(185, 73%, 3%, 1);--ae-panel-border-color:hsla(185, 72%, 25%, 1);--ae-panel-padding:5px;--ae-border-radius:0px;--ae-border-size:1px;--ae-gap-size-val:3px;--ae-group-bg-color:hsla(185, 73%, 3%, 1);--ae-group-padding:0px;--ae-group-radius:0px;--ae-group-border-size:0px;--ae-group-border-color:hsla(185, 73%, 3%, 1);--ae-group-gap:1px; \ No newline at end of file diff --git a/extensions-builtin/sd-webui-ux/themes/animagine_xl.css b/extensions-builtin/sd-webui-ux/themes/animagine_xl.css index 245c670f..3173f3c4 100644 --- a/extensions-builtin/sd-webui-ux/themes/animagine_xl.css +++ b/extensions-builtin/sd-webui-ux/themes/animagine_xl.css @@ -1 +1 @@ ---ae-primary-color:hsla(205, 83%, 62%, 1);--ae-secondary-color:hsla(212, 80%, 42%, 1);--ae-main-bg-color:hsla(0, 100%, 100%, 1);--ae-input-height:35px;--ae-input-slider-height:0.5;--ae-input-padding:5px;--ae-input-font-size:14px;--ae-input-line-height:14px;--ae-label-color:hsla(205, 83%, 62%, 1);--ae-secondary-label-color:hsla(212, 80%, 42%, 1);--ae-input-border-size:0px;--ae-input-border-radius:5px;--ae-input-text-color:hsla(240, 1%, 19%, 1);--ae-input-placeholder-color:hsla(206, 11%, 75%, 1);--ae-input-bg-color:hsla(205, 21%, 89%, 1);--ae-input-border-color:hsla(205, 21%, 89%, 1);--ae-input-hover-text-color:hsla(0, 100%, 100%, 1);--ae-panel-bg-color:hsla(207, 41%, 95%, 1);--ae-panel-border-color:hsla(205, 21%, 89%, 1);--ae-panel-padding:5px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(205, 21%, 89%, 1);--ae-group-padding:1px;--ae-group-radius:8px;--ae-group-border-size:1px;--ae-group-border-color:hsla(205, 21%, 89%, 1);--ae-group-gap:1px; \ No newline at end of file +--ae-primary-color:hsla(205, 83%, 62%, 1);--ae-secondary-color:hsla(205, 21%, 89%, 1);--ae-main-bg-color:hsla(0, 100%, 100%, 1);--ae-input-height:35px;--ae-input-slider-height:0.5;--ae-input-padding:5px;--ae-input-font-size:14px;--ae-input-line-height:14px;--ae-label-color:hsla(205, 83%, 62%, 1);--ae-secondary-label-color:hsla(212, 80%, 42%, 1);--ae-input-border-size:0px;--ae-input-border-radius:5px;--ae-input-text-color:hsla(240, 1%, 19%, 1);--ae-input-placeholder-color:hsla(206, 11%, 75%, 1);--ae-input-bg-color:hsla(205, 21%, 89%, 1);--ae-input-border-color:hsla(205, 21%, 89%, 1);--ae-input-hover-text-color:hsla(0, 100%, 100%, 1);--ae-panel-bg-color:hsla(207, 41%, 95%, 1);--ae-panel-border-color:hsla(205, 21%, 89%, 1);--ae-panel-padding:5px;--ae-border-radius:5px;--ae-border-size:2px;--ae-gap-size-val:5px;--ae-group-bg-color:hsla(205, 21%, 89%, 1);--ae-group-padding:1px;--ae-group-radius:8px;--ae-group-border-size:1px;--ae-group-border-color:hsla(205, 21%, 89%, 1);--ae-group-gap:1px; \ No newline at end of file diff --git a/modules/options.py b/modules/options.py index 8fb8c86e..f53e8ef2 100644 --- a/modules/options.py +++ b/modules/options.py @@ -328,18 +328,20 @@ class OptionsCategories: def register_category(self, category_id, label, position=None): if category_id in self.mapping: - return category_id + return category_id - # Use a dictionary to hold the categories temporarily - temp_mapping = self.mapping.copy() - - # Insert the new category at the specified position - if position is not None and position == 0: - temp_mapping = {category_id: OptionsCategory(category_id, label), **temp_mapping} + new_category = OptionsCategory(category_id, label) + if position is not None: + if position < 0 or position > len(self.mapping): + self.mapping[category_id] = new_category + else: + keys = list(self.mapping.keys()) + keys.insert(position, category_id) + self.mapping[category_id] = new_category + self.mapping = {key: self.mapping[key] for key in keys} else: - temp_mapping[category_id] = OptionsCategory(category_id, label) - - # Update the mapping - self.mapping = temp_mapping + self.mapping[category_id] = new_category + + return category_id categories = OptionsCategories() diff --git a/modules/ui.py b/modules/ui.py index 25ad289f..1e174339 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -272,7 +272,8 @@ def create_ui(): extra_tabs = gr.Tabs(elem_id="txt2img_extra_tabs", elem_classes=["extra-networks"]) extra_tabs.__enter__() - with gr.Tab("Generation", id="txt2img_generation") as txt2img_generation_tab, ResizeHandleRow(equal_height=False): + #with gr.Tab("Generation", id="txt2img_generation") as txt2img_generation_tab, ResizeHandleRow(equal_height=False): + with gr.Tab("Generation", id="txt2img_generation"), ResizeHandleRow(equal_height=False): with ExitStack() as stack: if shared.opts.txt2img_settings_accordion: stack.enter_context(gr.Accordion("Open for Settings", open=False)) @@ -491,8 +492,8 @@ def create_ui(): toprow.token_button.click(fn=wrap_queued_call(update_token_counter), inputs=[toprow.prompt, steps, toprow.ui_styles.dropdown], outputs=[toprow.token_counter]) toprow.negative_token_button.click(fn=wrap_queued_call(update_negative_prompt_token_counter), inputs=[toprow.negative_prompt, steps, toprow.ui_styles.dropdown], outputs=[toprow.negative_token_counter]) - extra_networks_ui = ui_extra_networks.create_ui(txt2img_interface, [txt2img_generation_tab], 'txt2img') - ui_extra_networks.setup_ui(extra_networks_ui, output_panel.gallery) + #extra_networks_ui = ui_extra_networks.create_ui(txt2img_interface, [txt2img_generation_tab], 'txt2img') + #ui_extra_networks.setup_ui(extra_networks_ui, output_panel.gallery) extra_tabs.__exit__()