pages branch

Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
Vladimir Mandic
2026-05-27 13:24:06 +02:00
parent 8338ae240a
commit 85ccfe2313
31 changed files with 1150 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
name: Build & Deploy GitHub Pages
on:
push:
branches:
- pages
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: pages-checkout
uses: actions/checkout@v4
- name: pages-build
run: python3 scripts/build-pages.py
- name: pages-ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
- name: pages-dependencies
run: bundle install
- name: pages-site
run: bundle exec jekyll build --destination ./_site
- name: pages-upload
uses: actions/upload-pages-artifact@v3
with:
path: ./_site
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: pages-deploy
id: deployment
uses: actions/deploy-pages@v4
+5
View File
@@ -0,0 +1,5 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor
+35
View File
@@ -0,0 +1,35 @@
# Workspace Assistant Instructions
This file provides guidance for the default workspace assistant when working in the `sdnext-pages` repository.
## Project Purpose
- This repository creates the homepage for the [SD.Next](https://github.com/vladmandic/sdnext) project.
- The site is hosted on GitHub Pages and built using a custom GitHub Action
## Assistant guidance
- Prefer non-destructive suggestions and ask before making broad structural edits.
- Operate as the default workspace assistant for general requests unless the user explicitly requests a different mode.
- If a request is ambiguous or references files not described here, ask for clarification before proceeding.
- If additional repository context is needed, request it explicitly rather than guessing.
## Project structure
- `_config.yml` is the Jekyll configuration file. It sets site metadata, markdown parser settings, plugins, baseurl/url, and build options.
- `Gemfile` defines the Ruby gems used by Bundler for Jekyll. It should include Jekyll and the plugins configured in `_config.yml`.
- `_layouts/default.html` is the page shell template. Jekyll renders page content into the `{{ content }}` placeholder.
- `index.md` is the homepage source. Its front matter selects the layout and metadata, and its body assembles content using `{% include %}` partials.
- `_includes/` contains reusable HTML fragments. `index.md` uses `_includes/readme/*.html` to build the homepage.
- `_includes/readme/*.html` are generated by `scripts/build-pages.py` and should not be edited manually.
- `_site/` is the generated build output and should not be edited directly.
- `.github/workflows/build-pages.yml` defines the GitHub Actions workflow for building and deploying the site.
## Common Commands
- `bundle install` - Install Jekyll dependencies.
- `bundle exec jekyll build` - Build the site locally.
- `bundle exec jekyll serve` - Serve the site locally for testing.
When adding or removing a plugin, update both `Gemfile` and `_config.yml` together, and run `bundle install` afterward.
When modifying any md/html/css content, run `bundle exec jekyll build` to regenerate the site and verify changes.
+12
View File
@@ -0,0 +1,12 @@
source "https://rubygems.org"
gem "jekyll", "~> 4.4.1"
gem "kramdown-parser-gfm"
group :jekyll_plugins do
gem "jekyll-seo-tag"
end
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem do not have a Java counterpart.
gem "http_parser.rb", "~> 0.6.0", platforms: [:jruby]
+239
View File
@@ -0,0 +1,239 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.9.0)
public_suffix (>= 2.0.2, < 8.0)
base64 (0.3.0)
bigdecimal (4.1.2)
colorator (1.1.0)
concurrent-ruby (1.3.6)
csv (3.3.5)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.4)
ffi (1.17.4-aarch64-linux-gnu)
ffi (1.17.4-aarch64-linux-musl)
ffi (1.17.4-arm-linux-gnu)
ffi (1.17.4-arm-linux-musl)
ffi (1.17.4-arm64-darwin)
ffi (1.17.4-x86-linux-gnu)
ffi (1.17.4-x86-linux-musl)
ffi (1.17.4-x86_64-darwin)
ffi (1.17.4-x86_64-linux-gnu)
ffi (1.17.4-x86_64-linux-musl)
forwardable-extended (2.6.0)
google-protobuf (4.35.0)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-aarch64-linux-gnu)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-aarch64-linux-musl)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-arm64-darwin)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-x86-linux-gnu)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-x86-linux-musl)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-x86_64-darwin)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-x86_64-linux-gnu)
bigdecimal
rake (~> 13.3)
google-protobuf (4.35.0-x86_64-linux-musl)
bigdecimal
rake (~> 13.3)
http_parser.rb (0.8.1)
i18n (1.14.8)
concurrent-ruby (~> 1.0)
jekyll (4.4.1)
addressable (~> 2.4)
base64 (~> 0.2)
colorator (~> 1.0)
csv (~> 3.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
json (~> 2.6)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.3, >= 0.3.6)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-sass-converter (3.1.0)
sass-embedded (~> 1.75)
jekyll-seo-tag (2.9.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.19.5)
kramdown (2.5.2)
rexml (>= 3.4.4)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.10.0)
logger
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.7.0)
mercenary (0.3.6)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (7.0.5)
rake (13.4.2)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.4.4)
rouge (3.30.0)
safe_yaml (1.0.5)
sass-embedded (1.100.0)
google-protobuf (~> 4.31)
rake (>= 13)
sass-embedded (1.100.0-aarch64-linux-android)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-aarch64-linux-gnu)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-aarch64-linux-musl)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-arm-linux-androideabi)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-arm-linux-gnueabihf)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-arm-linux-musleabihf)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-arm64-darwin)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-riscv64-linux-android)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-riscv64-linux-gnu)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-riscv64-linux-musl)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-x86_64-darwin)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-x86_64-linux-android)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-x86_64-linux-gnu)
google-protobuf (~> 4.31)
sass-embedded (1.100.0-x86_64-linux-musl)
google-protobuf (~> 4.31)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.6.0)
webrick (1.9.2)
PLATFORMS
aarch64-linux-android
aarch64-linux-gnu
aarch64-linux-musl
arm-linux-androideabi
arm-linux-gnu
arm-linux-gnueabihf
arm-linux-musl
arm-linux-musleabihf
arm64-darwin
riscv64-linux-android
riscv64-linux-gnu
riscv64-linux-musl
ruby
x86-linux-gnu
x86-linux-musl
x86_64-darwin
x86_64-linux-android
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES
http_parser.rb (~> 0.6.0)
jekyll (~> 4.4.1)
jekyll-seo-tag
kramdown-parser-gfm
CHECKSUMS
addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
bundler (4.0.12) sha256=7f8b757d28dfb636e7b24fba2344ac6dd13b5b24f4b46d62573d483f211825ac
colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8
eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972
ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf
ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df
ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39
ffi (1.17.4-arm-linux-gnu) sha256=d6dbddf7cb77bf955411af5f187a65b8cd378cb003c15c05697f5feee1cb1564
ffi (1.17.4-arm-linux-musl) sha256=9d4838ded0465bef6e2426935f6bcc93134b6616785a84ffd2a3d82bc3cf6f95
ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
ffi (1.17.4-x86-linux-gnu) sha256=38e150df5f4ca555e25beca4090823ae09657bceded154e3c52f8631c1ed72cf
ffi (1.17.4-x86-linux-musl) sha256=fbeec0fc7c795bcf86f623bb18d31ea1820f7bd580e1703a3d3740d527437809
ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496
ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d
ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e
forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97
google-protobuf (4.35.0) sha256=95346162c792ed78c9a28cbf2d937a53f706de6df36a27471582f63f03c30c0d
google-protobuf (4.35.0-aarch64-linux-gnu) sha256=2cabd61b420918aec1564f9f7414e455bf922d20c5f8139d62783df5558a7aea
google-protobuf (4.35.0-aarch64-linux-musl) sha256=f6b11f3420a4564f68e8233c95eac6924f6a727dfc2f81a56af2e09add551501
google-protobuf (4.35.0-arm64-darwin) sha256=66ab26d3fc82b8950702e53ab16c198e3c0ea3f2a38aaaf1f32152da45593ac5
google-protobuf (4.35.0-x86-linux-gnu) sha256=7a5b5681c7d7bf28e1a6e285e45bf55c4ef47b7b1ca8af6ff79964255efece9a
google-protobuf (4.35.0-x86-linux-musl) sha256=f481b63b176c0335db8b50e46f033c0956857a599d9feafdd891a5c18ce28d43
google-protobuf (4.35.0-x86_64-darwin) sha256=05eb5c8bc9899135befff496fc0a3642e7ff3d0943f043841dcc456f5654fea0
google-protobuf (4.35.0-x86_64-linux-gnu) sha256=999226f3b00cd9fddb1b26851d16060212fa1d90c406aaad47e574682b716059
google-protobuf (4.35.0-x86_64-linux-musl) sha256=be0218520d77b2aee898b363514b03819f6f63f9c041ae0d0d79b4ce5247bffd
http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1
jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443
jekyll-seo-tag (2.9.0) sha256=0260015a8e1df9bf195cdfb0c675b7b2883fd8cbf12556e1c1cbe36a831c6852
jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1
json (2.19.5) sha256=218a18553e4801d579ca7e0f5bc72bafd776d7397238a1fb4e74db5b0a812c59
kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3
listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
mercenary (0.3.6) sha256=2a084b18f5692c86a633e185d5311ba6d11fc46c802eb414ae05368178078a82
pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589
public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe
rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
rouge (3.30.0) sha256=a3d353222aa72e49e2c86726c0bcfd719f82592f57d494474655f48e669eceb6
safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848
sass-embedded (1.100.0) sha256=b7d4831f304be5ba8717b2a1307644164b63dc158113a67f469e90578d3fc092
sass-embedded (1.100.0-aarch64-linux-android) sha256=9603e1c26bea0396e849e3c3bb75b6843a43bae7a32c580084fd6c64260d9ef8
sass-embedded (1.100.0-aarch64-linux-gnu) sha256=c13187f8eaae7e7e64246b18eb896534a84465a17198829ef65730db4662860e
sass-embedded (1.100.0-aarch64-linux-musl) sha256=1b0945a66cd4e40f505db73b1e790e2561e07e6d9fd04ef6ebbf279835666b3f
sass-embedded (1.100.0-arm-linux-androideabi) sha256=9948122504b69e20dc82a3b8fc20b3a61ea58a4713a713f64630b4c9a36f11e1
sass-embedded (1.100.0-arm-linux-gnueabihf) sha256=a2de272bb02977ea91acaf3fecb6d8e09e4989501efbfc5375da4b5e7bff001d
sass-embedded (1.100.0-arm-linux-musleabihf) sha256=ce19837c10bab5ae6785f10b435a57a64ca027a99875cd701dc6fd3af317cbe5
sass-embedded (1.100.0-arm64-darwin) sha256=d294b32c3b7bed293ad39bd392713c07f1df5454e65fa0f8d80dadbdba8a0cf4
sass-embedded (1.100.0-riscv64-linux-android) sha256=148669225f027eeedea0a27e474dc69448567c030c56792114894f55a68af38e
sass-embedded (1.100.0-riscv64-linux-gnu) sha256=880ff1fca280b45b4d223366606aa634177adf38e793ad521426be7ad70a1ef2
sass-embedded (1.100.0-riscv64-linux-musl) sha256=a8568d17343dcf0278d48b2efb4b3490ebe3ba0279ec4d69753e8ce4fd0614fa
sass-embedded (1.100.0-x86_64-darwin) sha256=3db80c837a60712de3461d5aa1be43c7056a0584d7182a8ae7a8996d64ab46d3
sass-embedded (1.100.0-x86_64-linux-android) sha256=1600dbddf82c83344a5bc2a5e163081efdf15661f782922603574328888cd2cc
sass-embedded (1.100.0-x86_64-linux-gnu) sha256=58dd0a8a4f0dd78881b90d8b0e4d0eed042d54865b19b71384d91091ade93e18
sass-embedded (1.100.0-x86_64-linux-musl) sha256=03dbee81bf93e770c725caf0c895e04c7b049ebef56b8a7002fcf21e6bedf7c5
terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91
unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a
webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131
BUNDLED WITH
4.0.12
+31
View File
@@ -0,0 +1,31 @@
# github pages
## notes
github-pages uses `github-pages` gem which is not compatible with latest `jekyll`
so build is done using custom github actions
## create empty branch for github pages
```shell
git clone https://github.com/vladmandic/sdnext sdnext-pages
cd sdnext-pages
git switch --orphan pages
git commit --allow-empty -m "gh-pages create empty"
git push -u origin pages
git log --oneline
```
## create site
```shell
sudo apt-get install ruby-full build-essential zlib1g-dev
jekyll new --skip-bundle .
bundle install
```
## run locally
```shell
bundle exec jekyll serve
```
+41
View File
@@ -0,0 +1,41 @@
# Site settings
# These are used to personalize your new site. If you look in the HTML files, you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible in the templates via {{ site.myvariable }}.
title: SD.Next
email: your-email@example.com
description: >-
SD.Next: All-in-one WebUI for AI generative image and video creation, captioning and processing
baseurl: "/sdnext"
url: "https://vladmandic.github.io"
markdown: kramdown
kramdown:
input: GFM
hard_wrap: false
syntax_highlighter: rouge
# GH immutable plugins
plugins:
- jekyll-seo-tag
# GH immutable settings
lsi: false
safe: true
source: "."
incremental: false
highlighter: rouge
# Excludes defaults
exclude:
- .sass-cache/
- .jekyll-cache/
- gemfiles/
- Gemfile
- Gemfile.lock
- node_modules/
- vendor/bundle/
- vendor/cache/
- vendor/gems/
- vendor/ruby/
+38
View File
@@ -0,0 +1,38 @@
[
{
"slug": "hero",
"title": "hero"
},
{
"slug": "table-of-contents",
"title": "Table of contents"
},
{
"slug": "features-and-capabilities",
"title": "Features and Capabilities"
},
{
"slug": "supported-ai-models",
"title": "Supported AI Models"
},
{
"slug": "supported-platforms-and-hardware",
"title": "Supported Platforms and Hardware"
},
{
"slug": "getting-started",
"title": "Getting started"
},
{
"slug": "community-and-support",
"title": "Community and Support"
},
{
"slug": "license-credits",
"title": "License & Credits"
},
{
"slug": "evolution",
"title": "Evolution"
}
]
@@ -0,0 +1,6 @@
<h2>Community and Support</h2>
<p>If you're unsure how to use a feature, best place to start is <a href="https://vladmandic.github.io/sdnext-docs/" rel="nofollow">Docs</a> and if its not there,<br>
check <a href="https://vladmandic.github.io/sdnext-docs/CHANGELOG/" rel="nofollow">ChangeLog</a> for when feature was first introduced as it will always have a short note on how to use it</p>
<p>And for any question, reach out on <a href="https://discord.gg/VjvR2tabEX" rel="nofollow">Discord</a> or open an <a href="https://github.com/vladmandic/sdnext/issues">issue</a> or <a href="https://github.com/vladmandic/sdnext/discussions">discussion</a></p>
<h3>Contributing</h3>
<p>Please see <a href="https://raw.githubusercontent.com/vladmandic/sdnext/refs/heads/dev/CONTRIBUTING" rel="nofollow">Contributing</a> for details on how to contribute to this project</p>
+10
View File
@@ -0,0 +1,10 @@
## Community and Support
If you're unsure how to use a feature, best place to start is [Docs](https://vladmandic.github.io/sdnext-docs/) and if its not there,
check [ChangeLog](https://vladmandic.github.io/sdnext-docs/CHANGELOG/) for when feature was first introduced as it will always have a short note on how to use it
And for any question, reach out on [Discord](https://discord.gg/VjvR2tabEX) or open an [issue](https://github.com/vladmandic/sdnext/issues) or [discussion](https://github.com/vladmandic/sdnext/discussions)
### Contributing
Please see [Contributing](https://raw.githubusercontent.com/vladmandic/sdnext/refs/heads/dev/CONTRIBUTING) for details on how to contribute to this project
+11
View File
@@ -0,0 +1,11 @@
<h2>Evolution</h2>
<a href="https://star-history.com/#vladmandic/sdnext&amp;Date" rel="nofollow">
<themed-picture data-catalyst-inline="true"><picture>
<source media="(prefers-color-scheme: dark)" srcset="https://camo.githubusercontent.com/cbb9062e860c4e5c1d7823c799c26ba84ca3e960e3f158b6c1df7c633073c60c/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d766c61646d616e6469632f73646e65787426747970653d44617465267468656d653d6461726b" data-canonical-src="https://api.star-history.com/svg?repos=vladmandic/sdnext&amp;type=Date&amp;theme=dark">
<img src="https://camo.githubusercontent.com/4e1c40346c58bb5b484dc72443951cd002d7fa01c66e8a2abbbed11ffa02a6a3/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d766c61646d616e6469632f73646e65787426747970653d44617465" alt="starts" width="320" data-canonical-src="https://api.star-history.com/svg?repos=vladmandic/sdnext&amp;type=Date">
</picture></themed-picture>
</a>
<ul>
<li><a href="https://ossinsight.io/analyze/vladmandic/sdnext#overview" rel="nofollow">OSS Stats</a></li>
</ul>
<br>
+12
View File
@@ -0,0 +1,12 @@
## Evolution
<a href="https://star-history.com/#vladmandic/sdnext&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=vladmandic/sdnext&type=Date&theme=dark" />
<img src="https://api.star-history.com/svg?repos=vladmandic/sdnext&type=Date" alt="starts" width="320">
</picture>
</a>
- [OSS Stats](https://ossinsight.io/analyze/vladmandic/sdnext#overview)
<br>
@@ -0,0 +1,20 @@
<h2>Features and Capabilities</h2>
<p>SD.Next is feature-rich with a focus on performance, flexibility, and user experience. Key features include:</p>
<ul>
<li><a href="https://vladmandic.github.io/sdnext-docs/nVidia/" rel="nofollow">Multi-platform</a>!</li>
<li>Many <a href="https://vladmandic.github.io/sdnext-docs/Model-Support/" rel="nofollow">diffusion models</a>!</li>
<li>Fully localized to ~15 languages and with support for many <a href="https://vladmandic.github.io/sdnext-docs/Themes/" rel="nofollow">UI themes</a>!</li>
<li><a href="#screenshot-desktop-interface">Desktop</a> and <a href="#screenshot-mobile-interface">Mobile</a> support!</li>
<li>Platform specific auto-detection and tuning performed on install</li>
<li>Built in installer with automatic updates and dependency management</li>
</ul>
<h3>Unique features</h3>
<p>SD.Next includes many features not found in other WebUIs, such as:</p>
<ul>
<li><strong>SDNQ</strong>: State-of-the-Art quantization engine<br>
Use pre-quantized or run with quantization on-the-fly for up to 4x VRAM reduction with no or minimal quality and performance impact</li>
<li><strong>Balanced Offload</strong>: Dynamically balance CPU and GPU memory to run larger models on limited hardware</li>
<li><strong>Captioning</strong> with 150+ <strong>OpenCLiP</strong> models, <strong>Tagger</strong> with <strong>WaifuDiffusion</strong> and <strong>DeepDanbooru</strong> models, and 25+ built-in <strong>VLMs</strong></li>
<li><strong>Image Processing</strong> with full image correction color-grading suite of tools</li>
</ul>
<br>
@@ -0,0 +1,20 @@
## Features and Capabilities
SD.Next is feature-rich with a focus on performance, flexibility, and user experience. Key features include:
- [Multi-platform](https://vladmandic.github.io/sdnext-docs/nVidia/)!
- Many [diffusion models](https://vladmandic.github.io/sdnext-docs/Model-Support/)!
- Fully localized to ~15 languages and with support for many [UI themes](https://vladmandic.github.io/sdnext-docs/Themes/)!
- [Desktop](#screenshot-desktop-interface) and [Mobile](#screenshot-mobile-interface) support!
- Platform specific auto-detection and tuning performed on install
- Built in installer with automatic updates and dependency management
### Unique features
SD.Next includes many features not found in other WebUIs, such as:
- **SDNQ**: State-of-the-Art quantization engine
Use pre-quantized or run with quantization on-the-fly for up to 4x VRAM reduction with no or minimal quality and performance impact
- **Balanced Offload**: Dynamically balance CPU and GPU memory to run larger models on limited hardware
- **Captioning** with 150+ **OpenCLiP** models, **Tagger** with **WaifuDiffusion** and **DeepDanbooru** models, and 25+ built-in **VLMs**
- **Image Processing** with full image correction color-grading suite of tools
<br>
+18
View File
@@ -0,0 +1,18 @@
<h2>Getting started</h2>
<ul>
<li>Get started with <strong>SD.Next</strong> by following the <a href="https://vladmandic.github.io/sdnext-docs/Installation/" rel="nofollow">installation instructions</a></li>
<li>For more details, check out <a href="https://vladmandic.github.io/sdnext-docs/Advanced-Install/" rel="nofollow">advanced installation</a> guide</li>
<li>List and explanation of <a href="https://vladmandic.github.io/sdnext-docs/CLI-Arguments/" rel="nofollow">command line arguments</a></li>
<li>Install walkthrough <a href="https://www.youtube.com/watch?v=nWTnTyFTuAs" rel="nofollow">video</a></li>
</ul>
<div class="markdown-alert markdown-alert-tip"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-light-bulb mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg>Tip</p><p>And for platform specific information, check out<br>
<a href="https://vladmandic.github.io/sdnext-docs/WSL/" rel="nofollow">WSL</a> | <a href="https://vladmandic.github.io/sdnext-docs/Intel-ARC/" rel="nofollow">Intel Arc</a> | <a href="https://vladmandic.github.io/sdnext-docs/DirectML/" rel="nofollow">DirectML</a> | <a href="https://vladmandic.github.io/sdnext-docs/OpenVINO/" rel="nofollow">OpenVINO</a> | <a href="https://vladmandic.github.io/sdnext-docs/ONNX-Runtime/" rel="nofollow">ONNX &amp; Olive</a> | <a href="https://vladmandic.github.io/sdnext-docs/ZLUDA/" rel="nofollow">ZLUDA</a> | <a href="https://vladmandic.github.io/sdnext-docs/AMD-ROCm/" rel="nofollow">AMD ROCm</a> | <a href="https://vladmandic.github.io/sdnext-docs/MacOS-Python/" rel="nofollow">MacOS</a> | <a href="https://vladmandic.github.io/sdnext-docs/nVidia/" rel="nofollow">nVidia</a> | <a href="https://vladmandic.github.io/sdnext-docs/Docker/" rel="nofollow">Docker</a></p>
</div>
<h3>Quick Start</h3>
<div class="highlight highlight-source-shell"><pre class="notranslate">git clone https://github.com/vladmandic/sdnext
<span class="pl-c1">cd</span> sdnext
./webui.sh <span class="pl-c"><span class="pl-c">#</span> Linux/Mac</span>
webui.bat <span class="pl-c"><span class="pl-c">#</span> Windows</span>
webui.ps1 <span class="pl-c"><span class="pl-c">#</span> PowerShell</span></pre></div>
<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p>If you run into issues, check out <a href="https://vladmandic.github.io/sdnext-docs/Troubleshooting/" rel="nofollow">troubleshooting</a> and <a href="https://vladmandic.github.io/sdnext-docs/Debug/" rel="nofollow">debugging</a> guides</p>
</div>
+23
View File
@@ -0,0 +1,23 @@
## Getting started
- Get started with **SD.Next** by following the [installation instructions](https://vladmandic.github.io/sdnext-docs/Installation/)
- For more details, check out [advanced installation](https://vladmandic.github.io/sdnext-docs/Advanced-Install/) guide
- List and explanation of [command line arguments](https://vladmandic.github.io/sdnext-docs/CLI-Arguments/)
- Install walkthrough [video](https://www.youtube.com/watch?v=nWTnTyFTuAs)
> [!TIP]
> And for platform specific information, check out
> [WSL](https://vladmandic.github.io/sdnext-docs/WSL/) | [Intel Arc](https://vladmandic.github.io/sdnext-docs/Intel-ARC/) | [DirectML](https://vladmandic.github.io/sdnext-docs/DirectML/) | [OpenVINO](https://vladmandic.github.io/sdnext-docs/OpenVINO/) | [ONNX & Olive](https://vladmandic.github.io/sdnext-docs/ONNX-Runtime/) | [ZLUDA](https://vladmandic.github.io/sdnext-docs/ZLUDA/) | [AMD ROCm](https://vladmandic.github.io/sdnext-docs/AMD-ROCm/) | [MacOS](https://vladmandic.github.io/sdnext-docs/MacOS-Python/) | [nVidia](https://vladmandic.github.io/sdnext-docs/nVidia/) | [Docker](https://vladmandic.github.io/sdnext-docs/Docker/)
### Quick Start
```shell
git clone https://github.com/vladmandic/sdnext
cd sdnext
./webui.sh # Linux/Mac
webui.bat # Windows
webui.ps1 # PowerShell
```
> [!WARNING]
> If you run into issues, check out [troubleshooting](https://vladmandic.github.io/sdnext-docs/Troubleshooting/) and [debugging](https://vladmandic.github.io/sdnext-docs/Debug/) guides
+15
View File
@@ -0,0 +1,15 @@
<div align="center">
<a target="_blank" rel="noopener noreferrer" href="https://github.com/vladmandic/sdnext/raw/dev/ui/assets/logo-transparent.png"><img src="https://github.com/vladmandic/sdnext/raw/dev/ui/assets/logo-transparent.png" width="200" alt="SD.Next: AI art generator logo" style="max-width: 100%;"></a>
<h1>SD.Next: All-in-one WebUI</h1>
<p>SD.Next is a powerful, open-source WebUI app for AI image and video generation, built on Stable Diffusion and supporting dozens of advanced models. Create, caption, and process images and videos with a modern, cross-platform interface—perfect for artists, researchers, and AI enthusiasts.</p>
<p><a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/74981eb3e4475b056a152c5dd5ceccfce2de508df746eb10005ba2b08390781f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f766c61646d616e6469632f73646e6578743f7374796c653d736f6369616c"><img src="https://camo.githubusercontent.com/74981eb3e4475b056a152c5dd5ceccfce2de508df746eb10005ba2b08390781f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f766c61646d616e6469632f73646e6578743f7374796c653d736f6369616c" alt="Stars" data-canonical-src="https://img.shields.io/github/stars/vladmandic/sdnext?style=social" style="max-width: 100%;"></a><br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/397d0c2f80632159b2fb4476823b57a05ddb5197e64a38c11adaedf53ad91184/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f766c61646d616e6469632f73646e6578743f7374796c653d736f6369616c"><img src="https://camo.githubusercontent.com/397d0c2f80632159b2fb4476823b57a05ddb5197e64a38c11adaedf53ad91184/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f766c61646d616e6469632f73646e6578743f7374796c653d736f6369616c" alt="Forks" data-canonical-src="https://img.shields.io/github/forks/vladmandic/sdnext?style=social" style="max-width: 100%;"></a><br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/047b61f010cc64e71050886658f6a8fc8c1b3106f49a5979de4b2cf88eae90d9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f766c61646d616e6469632f73646e657874"><img src="https://camo.githubusercontent.com/047b61f010cc64e71050886658f6a8fc8c1b3106f49a5979de4b2cf88eae90d9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f766c61646d616e6469632f73646e657874" alt="Contributors" data-canonical-src="https://img.shields.io/github/contributors/vladmandic/sdnext" style="max-width: 100%;"></a><br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/632316738407e5319ae8083861f951f22973085fe9afa8d777b9350ae4eb5b0d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f766c61646d616e6469632f73646e6578743f7376673d74727565"><img src="https://camo.githubusercontent.com/632316738407e5319ae8083861f951f22973085fe9afa8d777b9350ae4eb5b0d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f766c61646d616e6469632f73646e6578743f7376673d74727565" alt="Last update" data-canonical-src="https://img.shields.io/github/last-commit/vladmandic/sdnext?svg=true" style="max-width: 100%;"></a><br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/a5a6a761f2cbdab56b9fef9e85384499a8d331d9c694c9300cf26a71e8069c1f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f766c61646d616e6469632f73646e6578743f7376673d74727565"><img src="https://camo.githubusercontent.com/a5a6a761f2cbdab56b9fef9e85384499a8d331d9c694c9300cf26a71e8069c1f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f766c61646d616e6469632f73646e6578743f7376673d74727565" alt="License" data-canonical-src="https://img.shields.io/github/license/vladmandic/sdnext?svg=true" style="max-width: 100%;"></a><br>
<a href="https://discord.gg/VjvR2tabEX" rel="nofollow"><img src="https://camo.githubusercontent.com/25c18d211fe733645a177f061c7045062579aceb2d35aa22ee9b6d6af113ea3b/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f313130313939383833363332383639373836373f6c6f676f3d446973636f7264267376673d74727565" alt="Discord" data-canonical-src="https://img.shields.io/discord/1101998836328697867?logo=Discord&amp;svg=true" style="max-width: 100%;"></a><br>
<a href="https://deepwiki.com/vladmandic/sdnext" rel="nofollow"><img src="https://camo.githubusercontent.com/0f5ae213ac378635adeb5d7f13cef055ad2f7d9a47b36de7b1c67dbe09f609ca/68747470733a2f2f6465657077696b692e636f6d2f62616467652e737667" alt="DeepWiki" data-canonical-src="https://deepwiki.com/badge.svg" style="max-width: 100%;"></a><br>
<a href="https://github.com/sponsors/vladmandic"><img src="https://camo.githubusercontent.com/d2432db86e1cfca636933728a664bf886cff501efab549a0af6abab26fe8851b/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d53706f6e736f72266d6573736167653d254532253944254134266c6f676f3d47697448756226636f6c6f723d253233666538653836" alt="Sponsors" data-canonical-src="https://img.shields.io/static/v1?label=Sponsor&amp;message=%E2%9D%A4&amp;logo=GitHub&amp;color=%23fe8e86" style="max-width: 100%;"></a></p>
<p><a href="https://vladmandic.github.io/sdnext-docs/" rel="nofollow">Docs</a> | <a href="https://github.com/vladmandic/sdnext/wiki">Wiki</a> | <a href="https://discord.gg/VjvR2tabEX" rel="nofollow">Discord</a> | <a href="CHANGELOG.md">Changelog</a></p>
</div>
<br>
+20
View File
@@ -0,0 +1,20 @@
<div align="center">
<img src="https://github.com/vladmandic/sdnext/raw/dev/ui/assets/logo-transparent.png" width=200 alt="SD.Next: AI art generator logo">
# SD.Next: All-in-one WebUI
SD.Next is a powerful, open-source WebUI app for AI image and video generation, built on Stable Diffusion and supporting dozens of advanced models. Create, caption, and process images and videos with a modern, cross-platform interface—perfect for artists, researchers, and AI enthusiasts.
![Stars](https://img.shields.io/github/stars/vladmandic/sdnext?style=social)
![Forks](https://img.shields.io/github/forks/vladmandic/sdnext?style=social)
![Contributors](https://img.shields.io/github/contributors/vladmandic/sdnext)
![Last update](https://img.shields.io/github/last-commit/vladmandic/sdnext?svg=true)
![License](https://img.shields.io/github/license/vladmandic/sdnext?svg=true)
[![Discord](https://img.shields.io/discord/1101998836328697867?logo=Discord&svg=true)](https://discord.gg/VjvR2tabEX)
[![DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/vladmandic/sdnext)
[![Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/vladmandic)
[Docs](https://vladmandic.github.io/sdnext-docs/) | [Wiki](https://github.com/vladmandic/sdnext/wiki) | [Discord](https://discord.gg/VjvR2tabEX) | [Changelog](CHANGELOG.md)
</div>
<br>
+5
View File
@@ -0,0 +1,5 @@
<h2>License &amp; Credits</h2>
<ul>
<li>SD.Next is licensed under the <a href="LICENSE.txt">Apache License 2.0</a></li>
<li>Main credit goes to <a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui">Automatic1111 WebUI</a> for the original codebase</li>
</ul>
+4
View File
@@ -0,0 +1,4 @@
## License & Credits
- SD.Next is licensed under the [Apache License 2.0](LICENSE.txt)
- Main credit goes to [Automatic1111 WebUI](https://github.com/AUTOMATIC1111/stable-diffusion-webui) for the original codebase
@@ -0,0 +1,2 @@
<h2>Supported AI Models</h2>
<p>SD.Next supports broad range of models: <a href="https://vladmandic.github.io/sdnext-docs/Model-Support/" rel="nofollow">supported models</a> and <a href="https://vladmandic.github.io/sdnext-docs/Models/" rel="nofollow">model specs</a></p>
+3
View File
@@ -0,0 +1,3 @@
## Supported AI Models
SD.Next supports broad range of models: [supported models](https://vladmandic.github.io/sdnext-docs/Model-Support/) and [model specs](https://vladmandic.github.io/sdnext-docs/Models/)
@@ -0,0 +1,12 @@
<h2>Supported Platforms and Hardware</h2>
<ul>
<li><em>nVidia</em> GPUs using <strong>CUDA</strong> libraries on both <em>Windows and Linux</em></li>
<li><em>AMD</em> GPUs using <strong>ROCm</strong> libraries on both <em>Linux and Windows</em></li>
<li><em>AMD</em> GPUs on Windows using <strong>ZLUDA</strong> libraries</li>
<li><em>Intel Arc</em> GPUs using <strong>OneAPI</strong> with <em>IPEX XPU</em> libraries on both <em>Windows and Linux</em></li>
<li>Any <em>CPU/GPU</em> or device compatible with <strong>OpenVINO</strong> libraries on both <em>Windows and Linux</em></li>
<li>Any GPU compatible with <em>DirectX</em> on <em>Windows</em> using <strong>DirectML</strong> libraries</li>
<li><em>Apple M1/M2</em> on <em>OSX</em> using built-in support in Torch with <strong>MPS</strong> optimizations</li>
<li><em>ONNX/Olive</em></li>
</ul>
<p>Plus <strong>Docker</strong> container recipes for: <a href="https://vladmandic.github.io/sdnext-docs/Docker/" rel="nofollow">CUDA, ROCm, Intel IPEX and OpenVINO</a></p>
@@ -0,0 +1,12 @@
## Supported Platforms and Hardware
- *nVidia* GPUs using **CUDA** libraries on both *Windows and Linux*
- *AMD* GPUs using **ROCm** libraries on both *Linux and Windows*
- *AMD* GPUs on Windows using **ZLUDA** libraries
- *Intel Arc* GPUs using **OneAPI** with *IPEX XPU* libraries on both *Windows and Linux*
- Any *CPU/GPU* or device compatible with **OpenVINO** libraries on both *Windows and Linux*
- Any GPU compatible with *DirectX* on *Windows* using **DirectML** libraries
- *Apple M1/M2* on *OSX* using built-in support in Torch with **MPS** optimizations
- *ONNX/Olive*
Plus **Docker** container recipes for: [CUDA, ROCm, Intel IPEX and OpenVINO](https://vladmandic.github.io/sdnext-docs/Docker/)
+17
View File
@@ -0,0 +1,17 @@
<h2>Table of contents</h2>
<ul>
<li><a href="https://vladmandic.github.io/sdnext-docs/" rel="nofollow">Documentation</a></li>
<li><a href="#features-and-capabilities">Features &amp; Capabilities</a></li>
<li><a href="#supported-ai-models">Supported AI Models</a></li>
<li><a href="#supported-platforms-and-hardware">Supported Platforms &amp; Hardware</a></li>
<li><a href="#getting-started">Getting started</a></li>
</ul>
<h3>Screenshot: Desktop interface</h3>
<div align="center">
<a target="_blank" rel="noopener noreferrer" href="https://github.com/vladmandic/sdnext/raw/dev/ui/assets/screenshot-robot.jpg"><img src="https://github.com/vladmandic/sdnext/raw/dev/ui/assets/screenshot-robot.jpg" alt="SD.Next: AI art generator desktop interface screenshot" width="90%" style="max-width: 100%;"></a>
</div>
<h3>Screenshot: Mobile interface</h3>
<div align="center">
<a target="_blank" rel="noopener noreferrer" href="https://github.com/user-attachments/assets/ced9fe0c-d2c2-46d1-94a7-8f9f2307ce38"><img src="https://github.com/user-attachments/assets/ced9fe0c-d2c2-46d1-94a7-8f9f2307ce38" alt="SD.Next: AI art generator mobile interface screenshot" width="35%" style="max-width: 100%;"></a>
</div>
<br>
+21
View File
@@ -0,0 +1,21 @@
## Table of contents
- [Documentation](https://vladmandic.github.io/sdnext-docs/)
- [Features & Capabilities](#features-and-capabilities)
- [Supported AI Models](#supported-ai-models)
- [Supported Platforms & Hardware](#supported-platforms-and-hardware)
- [Getting started](#getting-started)
### Screenshot: Desktop interface
<div align="center">
<img src="https://github.com/vladmandic/sdnext/raw/dev/ui/assets/screenshot-robot.jpg" alt="SD.Next: AI art generator desktop interface screenshot" width="90%">
</div>
### Screenshot: Mobile interface
<div align="center">
<img src="https://github.com/user-attachments/assets/ced9fe0c-d2c2-46d1-94a7-8f9f2307ce38" alt="SD.Next: AI art generator mobile interface screenshot" width="35%">
</div>
<br>
+18
View File
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{{ page.title | default: site.title }}</title>
<meta name="description" content="{{ page.description | default: site.description }}" />
{% seo %}
<link rel="stylesheet" href="{{ '/assets/main.css' | relative_url }}" />
</head>
<body>
<div class="page-shell">
<main class="page-content" aria-label="Content">
<div class="wrapper content-wrapper">{{ content }}</div>
</main>
</div>
</body>
</html>
+292
View File
@@ -0,0 +1,292 @@
---
---
:root {
color-scheme: dark;
--bg: hsl(214, 24%, 7%);
--surface: hsl(214, 20%, 13%);
--surface-strong: hsl(214, 18%, 17%);
--surface-soft: rgba(255, 255, 255, 0.04);
--surface-glow: rgba(86, 169, 230, 0.15);
--text: hsl(0, 0%, 95%);
--muted: hsl(220, 6%, 68%);
--accent: hsl(183, 82%, 62%);
--accent-strong: hsl(183, 94%, 72%);
--border: rgba(255, 255, 255, 0.08);
--shadow-dark: rgba(0, 0, 0, 0.45);
--shadow-light: rgba(255, 255, 255, 0.08);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
font-family: 'Inter', 'Noto Sans', system-ui, sans-serif;
background: radial-gradient(circle at top left, rgba(86, 169, 230, 0.14), transparent 25%),
radial-gradient(circle at bottom right, rgba(120, 255, 240, 0.08), transparent 30%),
var(--bg);
color: var(--text);
}
body::before {
content: '';
position: fixed;
inset: 0;
pointer-events: none;
background: radial-gradient(circle at 20% 20%, rgba(255,255,255,0.08), transparent 14%),
radial-gradient(circle at 85% 15%, rgba(86,169,230,0.08), transparent 9%),
radial-gradient(circle at 50% 90%, rgba(120,255,240,0.04), transparent 18%);
opacity: 0.9;
}
a {
color: var(--accent);
text-decoration: none;
transition: color 180ms ease, transform 180ms ease;
}
a:hover,
a:focus-visible {
color: var(--accent-strong);
transform: translateY(-1px);
}
.wrapper {
width: min(1120px, calc(100% - 3rem));
margin: 0 auto;
}
.page-content {
padding: 2.5rem 0 3rem;
}
.content-wrapper {
padding: 1rem 1.5rem 0;
}
.page-shell {
position: relative;
z-index: 1;
}
.hero-card,
.toc-card,
.readme-section {
background: var(--surface-strong);
border-radius: 2rem;
box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.4),inset -1px -1px 1px rgba(100, 255, 255, 0.2),18px 18px 46px rgba(100, 255, 255, 0.05);
backdrop-filter: blur(12px);
}
.hero-card {
padding: 2rem;
}
.hero-shell {
display: grid;
}
.homepage-shell {
display: grid;
gap: 1.5rem;
}
.content-shell {
display: grid;
gap: 1.5rem;
}
h1,
h2,
h3 {
color: var(--text);
}
h1 {
font-size: clamp(2.75rem, 4vw, 4rem);
text-align: center;
letter-spacing: -0.04em;
margin-bottom: 0.5rem;
text-shadow: 0 0px 0px rgba(255, 255, 255, 0), 0 16px 16px rgba(100, 255, 255, 0.2);
}
h2 {
font-size: clamp(1.9rem, 2.4vw, 2.4rem);
margin-bottom: 1rem;
position: relative;
color: var(--text);
text-shadow: 0 0px 0px rgba(255, 255, 255, 0), 0 8px 8px rgba(100, 255, 255, 0.2);
}
h2::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
}
h2::after {
content: "";
position: absolute;
left: 0;
bottom: -0.2em;
width: 40%;
height: 0.15em;
border-radius: 1em;
background: linear-gradient(90deg, var(--accent), transparent);
}
h3 {
margin: 1.5rem 0 0.5rem;
}
p,
ul,
blockquote,
pre,
code {
margin: 0;
color: var(--muted);
line-height: 1.75em;
}
p + p,
ul + p,
pre + p,
blockquote + p,
code + p {
margin-top: 1rem;
}
ul {
margin: 0 0 1.25rem 1.5rem;
padding: 0;
}
li + li {
margin-top: 0.65rem;
}
pre,
code {
background: rgba(255, 255, 255, 0.03);
color: var(--text);
border: 1px solid rgba(255, 255, 255, 0.08);
}
pre {
margin: 0 0 1.25rem;
padding: 1.1rem 1rem;
overflow-x: auto;
border-radius: 1rem;
}
code {
padding: 0.35rem 0.55rem;
border-radius: 0.75rem;
}
blockquote {
margin: 0 0 1.25rem;
padding: 1.25rem 1.35rem;
border-left: 4px solid rgba(97, 236, 241, 0.28);
background: rgba(255, 255, 255, 0.03);
}
.markdown-alert {
margin: 1.25rem 0;
padding: 1.25rem;
border-radius: 1.5rem;
border: 1px solid rgba(255, 255, 255, 0.08);
background: rgba(255, 255, 255, 0.025);
}
.markdown-alert-title {
margin: 0 0 0.75rem;
font-weight: 700;
color: var(--text);
}
.markdown-alert-tip {
background-color: rgba(30, 50, 70, 0.55);
}
.markdown-alert-warning {
background-color: rgba(55, 5, 75, 0.55);
}
.readme-section {
position: relative;
padding: 2rem;
overflow: hidden;
background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 65%),
radial-gradient(circle at top right, rgba(97, 236, 241, 0.12), transparent 18%),
radial-gradient(circle at 20% 10%, rgba(86, 169, 230, 0.1), transparent 16%);
}
.readme-section::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), transparent 35%, rgba(0, 0, 0, 0.08));
}
.readme-section h2 {
font-weight: 700;
}
.readme-section h3 {
margin: 1.5rem 0 0.5rem;
}
.hero-card p {
justify-self: center;
}
.hero-card p {
display: flex;
padding: 0em 1em 0.6em 1em
}
.hero-card p:last-of-type a {
margin: 0 0.6em;
}
.svg-glow,
svg {
align-self: center;
margin-right: 0.5em;
fill: var(--accent);
}
.readme-section:hover,
.hero-card:hover,
.toc-card:hover {
transform: translateY(-1px);
box-shadow:
inset 1px 1px 1px rgba(255, 255, 255, 0.06),
inset -1px -1px 1px rgba(0, 0, 0, 0.2),
22px 22px 54px rgba(0, 0, 0, 0.32);
}
.readme-section,
.hero-card,
.toc-card {
transition: transform 180ms ease, box-shadow 180ms ease;
}
@media (max-width: 768px) {
.wrapper {
width: min(100%, calc(100% - 2rem));
}
.hero-card,
.readme-section,
.toc-card {
padding: 1.5rem;
}
}
+35
View File
@@ -0,0 +1,35 @@
---
layout: default
title: Documentation
permalink: /docs/
description: "SD.Next documentation and guides for setup, hardware support, and advanced usage."
---
<link rel="stylesheet" href="{{ '/assets/site.css' | relative_url }}">
<section class="section">
<div class="section-header">
<p class="eyebrow">Documentation</p>
<h1>SD.Next Guides & Resources</h1>
</div>
<p>Explore the documentation hub for installation instructions, platform-specific setup, model support, and advanced workflows.</p>
<div class="docs-grid">
<article class="doc-card">
<h2>Installation</h2>
<p>Get started quickly on Windows, Linux, macOS, or with Docker.</p>
<a class="button tertiary" href="https://vladmandic.github.io/sdnext-docs/Installation/">Read installation guide</a>
</article>
<article class="doc-card">
<h2>Hardware support</h2>
<p>Learn how SD.Next detects and optimizes nVidia, AMD, Intel, OpenVINO, and Apple platforms.</p>
<a class="button tertiary" href="https://vladmandic.github.io/sdnext-docs/nVidia/">View platform guides</a>
</article>
<article class="doc-card">
<h2>Model support</h2>
<p>Browse supported AI models, quantization workflows, and advanced inference options.</p>
<a class="button tertiary" href="https://vladmandic.github.io/sdnext-docs/Model-Support/">See supported models</a>
</article>
</div>
</section>
+27
View File
@@ -0,0 +1,27 @@
---
layout: default
title: SD.Next
permalink: /
description: "SD.Next is a powerful, open-source WebUI app for AI image and video generation, built on Stable Diffusion and supporting dozens of advanced models."
---
<div class="homepage-shell">
<div class="hero-shell">
{% assign hero_section = site.data.readme_sections | where: "slug", "hero" | first %}
{% if hero_section %}
<section class="hero-card readme-section" id="{{ hero_section.slug }}">
{% include readme/{{ hero_section.slug }}.html %}
</section>
{% endif %}
</div>
<div class="content-shell">
{% for section in site.data.readme_sections %}
{% unless section.slug == "hero" %}
<section class="readme-section{% if section.slug == 'table-of-contents' %} toc-card{% endif %}" id="{{ section.slug }}">
{% include readme/{{ section.slug }}.html %}
</section>
{% endunless %}
{% endfor %}
</div>
</div>
+95
View File
@@ -0,0 +1,95 @@
#!/usr/bin/env python3
import json
import os
import re
from pathlib import Path
from urllib.request import Request, urlopen
ROOT = Path(__file__).resolve().parent.parent
README_URL = "https://raw.githubusercontent.com/vladmandic/sdnext/refs/heads/dev/README.md"
GITHUB_MARKDOWN_API = "https://api.github.com/markdown"
OUT_DIR = ROOT / "_includes" / "readme"
DATA_FILE = ROOT / "_data" / "readme_sections.json"
pattern = re.compile(r"^(##)\s+(.*)$")
def slugify(text: str) -> str:
slug = text.strip().lower()
slug = re.sub(r"[^a-z0-9]+", "-", slug)
return slug.strip("-")
def github_render(markdown_text: str) -> str:
headers = {
"User-Agent": "sdnext-pages-script/1.0",
"Content-Type": "application/json",
}
token = os.environ.get("GITHUB_TOKEN")
if token:
headers["Authorization"] = f"token {token}"
payload = json.dumps({"text": markdown_text, "mode": "gfm"}).encode("utf-8")
request = Request(GITHUB_MARKDOWN_API, data=payload, headers=headers)
with urlopen(request, timeout=20) as response:
return response.read().decode("utf-8")
def main() -> int:
OUT_DIR.mkdir(parents=True, exist_ok=True)
DATA_FILE.parent.mkdir(parents=True, exist_ok=True)
request = Request(README_URL, headers={"User-Agent": "sdnext-pages-script/1.0"})
with urlopen(request, timeout=20) as response:
data = response.read().decode("utf-8")
lines = data.splitlines()
sections = []
current = {"slug": "hero", "title": "hero", "lines": []}
for line in lines:
match = pattern.match(line)
if match:
if current["lines"]:
sections.append(current)
current = {
"slug": slugify(match.group(2)),
"title": match.group(2).strip(),
"lines": [line],
}
else:
current["lines"].append(line)
if current["lines"]:
sections.append(current)
for section in sections:
source = "\n".join(section["lines"]).rstrip() + "\n"
md_path = OUT_DIR / f"{section['slug']}.md"
html_path = OUT_DIR / f"{section['slug']}.html"
md_path.write_text(source, encoding="utf-8")
try:
rendered = github_render(source)
except Exception as exc:
print(f"Warning: GitHub markdown render failed for {section['slug']}: {exc}")
rendered = source
html_path.write_text(rendered, encoding="utf-8")
DATA_FILE.write_text(
json.dumps(
[{"slug": section["slug"], "title": section["title"]} for section in sections],
indent=2,
),
encoding="utf-8",
)
print(f"Generated {len(sections)} README section includes in {OUT_DIR}")
print(f"Saved section metadata to {DATA_FILE}")
return 0
if __name__ == "__main__":
raise SystemExit(main())