add files
|
@ -0,0 +1,79 @@
|
||||||
|
name: Generate Static HTML
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main" ]
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0,12 * * *' # 00:00 and 12:00 UTC
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow one concurrent deployment
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
generate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Setup
|
||||||
|
uses: BSFishy/pip-action@v1
|
||||||
|
with:
|
||||||
|
packages: |
|
||||||
|
requests
|
||||||
|
huggingface_hub
|
||||||
|
pillow
|
||||||
|
bs4
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: ${{ github.repository }}
|
||||||
|
|
||||||
|
- name: Generate Models Webpage
|
||||||
|
run: python ${{ github.workspace }}/generate_tx_models_html.py ${{ github.workspace }}/site/index.html
|
||||||
|
shell: sh
|
||||||
|
|
||||||
|
- name: Commit Changes
|
||||||
|
uses: devops-infra/action-commit-push@master
|
||||||
|
with:
|
||||||
|
github_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
add_timestamp: false
|
||||||
|
commit_prefix: "[AUTO] "
|
||||||
|
commit_message: "Update static page"
|
||||||
|
force: false
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: generate
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
# Need this to force it to get the latest commit (always the one created by the generate job above).
|
||||||
|
# Otherwise it will always publish the previous job's output.
|
||||||
|
ref: 'main'
|
||||||
|
|
||||||
|
# Alternative solution to the previous job issue?
|
||||||
|
# - name: Pull latest changes
|
||||||
|
# run: git pull --no-rebase
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v1
|
||||||
|
with:
|
||||||
|
path: 'site'
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v1
|
|
@ -0,0 +1,20 @@
|
||||||
|
name: Delete old workflow runs
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
days:
|
||||||
|
description: 'Number of days.'
|
||||||
|
required: true
|
||||||
|
default: "20"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
del_runs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Delete workflow runs
|
||||||
|
uses: Mattraks/delete-workflow-runs@main
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.TOKEN_GITHUB }}
|
||||||
|
repository: ${{ github.repository }}
|
||||||
|
retain_days: ${{ github.event.inputs.days }}
|
||||||
|
keep_minimum_runs: 3
|
|
@ -0,0 +1 @@
|
||||||
|
stable-diffusion-textual-inversion-models.html
|
|
@ -0,0 +1,9 @@
|
||||||
|
# stable-diffusion-textual-inversion-models
|
||||||
|
|
||||||
|
_Automated list of Stable Diffusion textual inversion models from sd-concepts-library._
|
||||||
|
|
||||||
|
[![Generate and Publish GitHub Pages](https://github.com/Cyberes/stable-diffusion-textual-inversion-models/actions/workflows/generate.yml/badge.svg)](https://github.com/Cyberes/stable-diffusion-textual-inversion-models/actions/workflows/generate.yml)
|
||||||
|
|
||||||
|
Using GitHub Actions, every 12 hours the entire [sd-concepts-library](https://huggingface.co/sd-concepts-library) is scraped and a list of all textual inversion models is generated and published to GitHub Pages.
|
||||||
|
|
||||||
|
View it here: [https://cyberes.github.io/stable-diffusion-textual-inversion-models/](https://cyberes.github.io/stable-diffusion-textual-inversion-models/)
|
|
@ -0,0 +1,273 @@
|
||||||
|
import argparse
|
||||||
|
import datetime
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
from urllib import request as ulreq
|
||||||
|
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
import requests
|
||||||
|
from huggingface_hub import HfApi
|
||||||
|
from PIL import ImageFile
|
||||||
|
|
||||||
|
|
||||||
|
def getsizes(uri):
|
||||||
|
# https://stackoverflow.com/a/37709319
|
||||||
|
# get file size *and* image size (None if not known)
|
||||||
|
file = ulreq.urlopen(uri)
|
||||||
|
size = file.headers.get("content-length")
|
||||||
|
if size:
|
||||||
|
size = int(size)
|
||||||
|
p = ImageFile.Parser()
|
||||||
|
while True:
|
||||||
|
data = file.read(1024)
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
p.feed(data)
|
||||||
|
if p.image:
|
||||||
|
return size, p.image.size
|
||||||
|
break
|
||||||
|
file.close()
|
||||||
|
return (size, None)
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('out_file', nargs='?', help='file to save to', default='stable-diffusion-textual-inversion-models.html')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
print('Will save to file:', args.out_file)
|
||||||
|
|
||||||
|
# Get list of models under the sd-concepts-library organization
|
||||||
|
api = HfApi()
|
||||||
|
models_list = []
|
||||||
|
for model in api.list_models(author="sd-concepts-library"):
|
||||||
|
models_list.append(model.modelId.replace('sd-concepts-library/', ''))
|
||||||
|
models_list.sort()
|
||||||
|
|
||||||
|
dt = datetime.datetime.now()
|
||||||
|
tz = dt.astimezone().tzname()
|
||||||
|
|
||||||
|
html_struct = f"""
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Stable Diffusion Texual Inversion Models</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||||
|
<meta http-equiv="Pragma" content="no-cache" />
|
||||||
|
<meta http-equiv="Expires" content="0" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/stable-diffusion-textual-inversion-models/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/stable-diffusion-textual-inversion-models/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/stable-diffusion-textual-inversion-models/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/stable-diffusion-textual-inversion-models/site.webmanifest">
|
||||||
|
<link rel="mask-icon" href="/stable-diffusion-textual-inversion-models/safari-pinned-tab.svg" color="#ee9321">
|
||||||
|
<link rel="shortcut icon" href="favicon.ico">
|
||||||
|
<meta name="msapplication-TileColor" content="#ee9321">
|
||||||
|
<meta name="msapplication-config" content="/stable-diffusion-textual-inversion-models/browserconfig.xml">
|
||||||
|
<meta name="theme-color" content="#ee9321">
|
||||||
|
|
||||||
|
<!-- Matomo -->
|
||||||
|
<script>
|
||||||
|
var _paq = window._paq = window._paq || [];
|
||||||
|
_paq.push(['trackPageView']);
|
||||||
|
_paq.push(['enableLinkTracking']);
|
||||||
|
(function() {{
|
||||||
|
var u = "https://mato.evulid.cc/";
|
||||||
|
_paq.push(['setTrackerUrl', u + 'matomo.php']);
|
||||||
|
_paq.push(['setSiteId', '1']);
|
||||||
|
var d = document,
|
||||||
|
g = d.createElement('script'),
|
||||||
|
s = d.getElementsByTagName('script')[0];
|
||||||
|
g.async = true;
|
||||||
|
g.src = u + 'matomo.js';
|
||||||
|
s.parentNode.insertBefore(g, s);
|
||||||
|
}})();
|
||||||
|
</script>
|
||||||
|
<!-- End Matomo Code -->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<style>
|
||||||
|
.thumbnail {{
|
||||||
|
max-width: 185px;
|
||||||
|
display: block;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}}
|
||||||
|
|
||||||
|
.model-title {{
|
||||||
|
margin-top: 100px;
|
||||||
|
}}
|
||||||
|
</style>
|
||||||
|
<div class="container" style="margin-bottom: 180px;">
|
||||||
|
<div class="jumbotron text-center" style="margin-top: 45px;margin-right: 45px;margin-bottom: 0px;margin-left: 45px;">
|
||||||
|
<h1>Stable Diffusion Texual Inversion Models</h1>
|
||||||
|
</div>
|
||||||
|
<center>
|
||||||
|
<p style="margin-bottom: 45px;font-size: 8pt;">
|
||||||
|
<i>Page updates automatically daily. Last updated <a class="btn-link" style="cursor: pointer;text-decoration: none;" data-toggle="tooltip" data-placement="bottom" title="{dt.strftime(f"%m-%d-%Y %H:%M:%S {tz}")}">{datetime.datetime.now().strftime("%A %B %d, %Y")}</a>.</i>
|
||||||
|
</p>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Generated from <a href="https://huggingface.co/sd-concepts-library">huggingface.co/sd-concepts-library</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Models are downloaded straight from the HuggingFace repositories. There are currently {len(models_list)} textual inversion models in sd-concepts-library. The images displayed are the inputs, not the outputs.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Want to quickly test concepts? Try the <a href="https://huggingface.co/spaces/sd-concepts-library/stable-diffusion-conceptualizer">Stable Diffusion Conceptualizer</a> on HuggingFace.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="https://github.com/Cyberes/stable-diffusion-textual-inversion-models/actions/workflows/generate_static_html.yml"><img src="https://github.com/Cyberes/stable-diffusion-textual-inversion-models/actions/workflows/generate_static_html.yml/badge.svg"></a>
|
||||||
|
</p>
|
||||||
|
<br>
|
||||||
|
<hr>
|
||||||
|
<script>
|
||||||
|
const downloadAs = (url, name) => {{
|
||||||
|
axios.get(url, {{
|
||||||
|
headers: {{
|
||||||
|
"Content-Type": "application/octet-stream"
|
||||||
|
}},
|
||||||
|
responseType: "blob"
|
||||||
|
}})
|
||||||
|
.then(response => {{
|
||||||
|
const a = document.createElement("a");
|
||||||
|
const url = window.URL.createObjectURL(response.data);
|
||||||
|
a.href = url;
|
||||||
|
a.download = name;
|
||||||
|
a.click();
|
||||||
|
}})
|
||||||
|
.catch(err => {{
|
||||||
|
console.log("error", err);
|
||||||
|
}});
|
||||||
|
_paq.push(['trackLink', url, 'download']);
|
||||||
|
}};
|
||||||
|
</script>
|
||||||
|
<noscript><p><img src="https://mato.evulid.cc/matomo.php?idsite=1&rec=1&url=https://cyberes.github.io/stable-diffusion-textual-inversion-models" style="border:0;" alt="" /></p></noscript>
|
||||||
|
"""
|
||||||
|
|
||||||
|
i = 1
|
||||||
|
for model_name in models_list:
|
||||||
|
# For testing
|
||||||
|
# if i == 4:
|
||||||
|
# break
|
||||||
|
|
||||||
|
print(f'{i}/{len(models_list)} -> {model_name}')
|
||||||
|
|
||||||
|
# Images can be in a few different formats, figure out which one it's in
|
||||||
|
restricted = False
|
||||||
|
try:
|
||||||
|
files = api.list_repo_files(
|
||||||
|
repo_id=f'sd-concepts-library/{model_name}')
|
||||||
|
concept_images = [i for i in files if i.startswith('concept_images/')]
|
||||||
|
# sometimes an author will require you to share your contact info to gain access.
|
||||||
|
except requests.exceptions.HTTPError:
|
||||||
|
restricted = True
|
||||||
|
|
||||||
|
if restricted:
|
||||||
|
html_struct = html_struct + f"""
|
||||||
|
<h3 class="model-title">{model_name}</h3>
|
||||||
|
<p>
|
||||||
|
{model_name} is restricted and you must share your contact information to view this repository.
|
||||||
|
<a type="button" class="btn btn-link" href="https://huggingface.co/sd-concepts-library/{model_name}/">View Repository</a>
|
||||||
|
</p>
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
html_struct = html_struct + f"""
|
||||||
|
<h3 class="model-title">{model_name}</h3>
|
||||||
|
<p>
|
||||||
|
<button type="button" class="btn btn-primary" onclick="downloadAs('https://huggingface.co/sd-concepts-library/{model_name}/resolve/main/learned_embeds.bin', '{model_name}.pt')">Download {model_name}.pt</button>
|
||||||
|
<a type="button" class="btn btn-link" href="https://huggingface.co/sd-concepts-library/{model_name}/">View Repository</a>
|
||||||
|
</p>
|
||||||
|
<div class="row">
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Some repos don't have 3 images
|
||||||
|
img_count = 3
|
||||||
|
if len(concept_images) < 3:
|
||||||
|
img_count = len(concept_images)
|
||||||
|
|
||||||
|
for x in range(img_count):
|
||||||
|
html_struct = html_struct + f"""
|
||||||
|
<div class="col-sm">
|
||||||
|
<img class="thumbnail mx-auto lazy-load img-fluid" data-src="https://huggingface.co/sd-concepts-library/{model_name}/resolve/main/{concept_images[x]}">
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
html_struct = html_struct + '</div>'
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
html_struct = html_struct + """
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
let lazyloadImages;
|
||||||
|
if ("IntersectionObserver" in window) {
|
||||||
|
lazyloadImages = document.querySelectorAll(".lazy-load");
|
||||||
|
let imageObserver = new IntersectionObserver(function(entries, observer) {
|
||||||
|
entries.forEach(function(entry) {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
let image = entry.target;
|
||||||
|
image.src = image.dataset.src;
|
||||||
|
image.classList.remove("lazy-load");
|
||||||
|
imageObserver.unobserve(image);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
lazyloadImages.forEach(function(image) {
|
||||||
|
imageObserver.observe(image);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
let lazyloadThrottleTimeout;
|
||||||
|
lazyloadImages = document.querySelectorAll(".lazy-load");
|
||||||
|
|
||||||
|
function lazyload() {
|
||||||
|
if (lazyloadThrottleTimeout) {
|
||||||
|
clearTimeout(lazyloadThrottleTimeout);
|
||||||
|
}
|
||||||
|
lazyloadThrottleTimeout = setTimeout(function() {
|
||||||
|
let scrollTop = window.pageYOffset;
|
||||||
|
lazyloadImages.forEach(function(img) {
|
||||||
|
if (img.offsetTop < (window.innerHeight + scrollTop)) {
|
||||||
|
img.src = img.dataset.src;
|
||||||
|
img.classList.remove('lazy-load');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (lazyloadImages.length == 0) {
|
||||||
|
document.removeEventListener("scroll", lazyload);
|
||||||
|
window.removeEventListener("resize", lazyload);
|
||||||
|
window.removeEventListener("orientationChange", lazyload);
|
||||||
|
}
|
||||||
|
}, 20);
|
||||||
|
}
|
||||||
|
document.addEventListener("scroll", lazyload);
|
||||||
|
window.addEventListener("resize", lazyload);
|
||||||
|
window.addEventListener("orientationChange", lazyload);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
$('[data-toggle="tooltip"]').tooltip({
|
||||||
|
placement: "bottom"
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Load the HTML into bs4 so we can format it
|
||||||
|
soup = BeautifulSoup(html_struct, "html.parser")
|
||||||
|
|
||||||
|
f = open(args.out_file, 'w', encoding='utf-8')
|
||||||
|
f.write(str(soup.prettify()))
|
||||||
|
f.close()
|
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#ee9321</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
After Width: | Height: | Size: 655 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,89 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="1507.000000pt" height="1507.000000pt" viewBox="0 0 1507.000000 1507.000000"
|
||||||
|
preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata>
|
||||||
|
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,1507.000000) scale(0.100000,-0.100000)"
|
||||||
|
fill="#000000" stroke="none">
|
||||||
|
<path d="M7197 14233 c-1 -1 -114 -4 -252 -7 -137 -4 -293 -9 -345 -12 -52 -3
|
||||||
|
-143 -7 -202 -9 -59 -3 -129 -7 -157 -10 -28 -3 -92 -7 -143 -10 -51 -2 -118
|
||||||
|
-7 -148 -10 -30 -3 -84 -7 -120 -10 -66 -6 -137 -13 -200 -20 -19 -2 -64 -7
|
||||||
|
-100 -10 -36 -4 -72 -8 -80 -10 -8 -2 -44 -6 -80 -10 -36 -3 -92 -10 -125 -15
|
||||||
|
-33 -5 -78 -12 -100 -15 -51 -7 -93 -14 -125 -20 -14 -3 -52 -10 -85 -15 -61
|
||||||
|
-10 -69 -12 -165 -31 -335 -67 -632 -185 -1095 -437 -207 -112 -546 -323 -665
|
||||||
|
-414 -14 -11 -65 -49 -115 -86 -88 -66 -231 -178 -270 -212 -299 -262 -508
|
||||||
|
-473 -542 -547 -13 -29 -27 -65 -30 -80 -3 -16 -5 -604 -5 -1308 0 -1205 2
|
||||||
|
-1340 26 -1450 27 -126 59 -220 110 -325 98 -204 310 -572 505 -874 80 -125
|
||||||
|
111 -181 101 -184 -7 -3 -24 -16 -37 -30 -23 -25 -25 -37 -26 -144 l0 -58 -51
|
||||||
|
0 -51 0 -2 42 c-1 30 -9 49 -28 67 -24 25 -30 26 -136 26 -109 0 -111 0 -135
|
||||||
|
-28 -19 -22 -24 -39 -24 -83 0 -30 -4 -54 -10 -54 -16 0 -41 -58 -47 -108 -3
|
||||||
|
-26 -8 -50 -12 -54 -5 -6 -149 -48 -163 -48 -4 0 -2 15 3 33 9 29 87 332 94
|
||||||
|
367 2 8 32 123 66 255 33 132 62 249 63 260 1 14 -17 30 -64 57 -36 21 -72 38
|
||||||
|
-80 38 -9 0 -29 -24 -46 -52 -17 -29 -118 -201 -224 -383 -106 -181 -203 -348
|
||||||
|
-215 -370 -13 -22 -76 -130 -140 -240 -126 -215 -143 -245 -176 -302 -12 -21
|
||||||
|
-74 -128 -139 -238 -127 -217 -267 -458 -284 -490 -7 -11 -24 -39 -39 -62 -15
|
||||||
|
-24 -27 -44 -27 -47 0 -2 -34 -61 -76 -132 -82 -138 -79 -130 -89 -329 -3 -71
|
||||||
|
-8 -164 -10 -205 -10 -159 -29 -540 -40 -760 -2 -41 -6 -124 -9 -185 -6 -108
|
||||||
|
-10 -171 -21 -390 -3 -60 -7 -141 -10 -180 -3 -38 -7 -119 -10 -180 -3 -60 -7
|
||||||
|
-146 -10 -190 -2 -44 -7 -141 -11 -215 -3 -74 -7 -160 -9 -190 -2 -30 -7 -116
|
||||||
|
-10 -190 -3 -74 -8 -160 -11 -190 -2 -30 -6 -120 -10 -200 -3 -79 -7 -147 -9
|
||||||
|
-150 -2 -3 0 -12 5 -20 9 -15 159 -23 181 -10 6 4 13 34 15 66 2 33 6 93 9
|
||||||
|
134 2 41 7 116 10 165 3 50 8 113 11 142 3 28 7 82 9 120 14 216 24 351 30
|
||||||
|
423 3 34 26 109 197 630 44 135 99 306 123 380 24 74 87 266 139 425 52 160
|
||||||
|
107 328 122 375 14 47 30 89 35 94 4 5 22 11 39 13 57 6 117 48 144 102 8 15
|
||||||
|
38 122 67 237 29 115 55 212 59 217 4 4 22 1 41 -7 35 -15 88 -13 121 5 51 27
|
||||||
|
78 117 51 171 -12 25 -11 29 31 70 24 24 80 97 124 163 131 199 199 247 396
|
||||||
|
281 94 16 312 16 381 0 88 -20 131 -41 176 -87 48 -47 48 -48 51 -121 3 -72 4
|
||||||
|
-73 36 -87 19 -9 32 -22 32 -33 0 -9 10 -24 23 -32 20 -13 62 -15 235 -7 7 1
|
||||||
|
24 12 37 25 22 23 23 27 19 151 -3 70 -2 137 2 147 3 12 32 31 69 48 34 15 69
|
||||||
|
37 77 48 13 20 15 19 49 -23 83 -102 266 -300 405 -439 524 -524 1008 -805
|
||||||
|
1654 -961 110 -26 370 -75 430 -80 19 -2 51 -6 70 -9 52 -8 129 -17 185 -21
|
||||||
|
28 -2 73 -6 100 -9 67 -7 224 -16 369 -21 65 -2 120 -5 121 -7 1 -2 -4 -28
|
||||||
|
-11 -58 -72 -291 -174 -715 -178 -733 -2 -13 2 -48 10 -78 8 -30 16 -63 19
|
||||||
|
-74 2 -11 22 -94 45 -185 38 -151 107 -434 115 -470 2 -8 29 -118 60 -245 31
|
||||||
|
-126 85 -347 120 -490 35 -143 89 -363 120 -490 75 -305 166 -676 170 -695 5
|
||||||
|
-20 91 -374 170 -696 35 -144 76 -310 90 -370 15 -59 31 -116 36 -127 14 -24
|
||||||
|
50 -37 73 -25 11 6 22 6 28 0 13 -13 54 -3 71 17 8 9 22 45 31 81 8 36 54 223
|
||||||
|
101 415 47 193 92 377 100 410 9 33 17 69 20 80 2 11 11 47 19 80 21 83 66
|
||||||
|
266 71 288 2 10 7 28 11 39 3 11 8 30 9 41 2 12 9 42 16 67 6 25 13 52 14 60
|
||||||
|
1 8 5 22 8 30 4 13 128 522 142 585 2 11 22 92 44 180 44 177 90 362 96 385
|
||||||
|
36 157 185 767 194 795 5 17 13 48 17 70 4 22 8 45 10 50 1 6 12 48 24 95 12
|
||||||
|
47 26 101 31 120 9 29 4 61 -26 185 -125 521 -148 614 -160 652 -17 53 -11 58
|
||||||
|
75 68 82 9 98 12 135 19 17 4 49 9 72 11 103 12 384 79 548 132 194 62 508
|
||||||
|
201 596 264 15 10 30 19 34 19 13 0 251 163 350 240 207 161 478 422 700 675
|
||||||
|
39 44 72 82 75 85 5 5 189 225 221 265 68 82 66 81 86 64 10 -9 38 -25 63 -36
|
||||||
|
75 -33 76 -37 68 -213 -7 -147 5 -159 173 -162 117 -3 139 5 139 51 0 34 14
|
||||||
|
55 33 48 24 -9 37 14 37 65 0 113 83 181 260 214 64 11 232 10 318 -2 231 -34
|
||||||
|
303 -86 452 -324 19 -30 37 -57 40 -60 3 -3 26 -28 52 -55 l47 -50 -13 -39
|
||||||
|
c-19 -54 -6 -103 38 -143 20 -18 46 -33 58 -34 45 -2 73 3 96 17 27 18 22 29
|
||||||
|
68 -156 2 -8 8 -33 14 -55 6 -22 13 -51 16 -65 13 -62 43 -160 58 -188 9 -17
|
||||||
|
30 -40 47 -52 29 -21 111 -52 126 -47 6 2 26 -56 223 -663 56 -173 117 -360
|
||||||
|
135 -415 142 -430 259 -794 261 -815 5 -41 23 -286 29 -396 3 -47 5 -84 21
|
||||||
|
-299 4 -44 8 -102 9 -130 6 -124 18 -231 25 -239 10 -10 144 -14 171 -4 18 7
|
||||||
|
20 14 15 70 -3 35 -8 113 -11 173 -3 61 -7 146 -10 190 -2 44 -7 139 -11 210
|
||||||
|
-3 72 -7 159 -9 195 -2 36 -6 117 -9 180 -4 63 -9 151 -12 195 -2 44 -7 132
|
||||||
|
-9 195 -3 63 -7 143 -10 177 -3 34 -7 119 -11 190 -3 70 -6 155 -8 188 -2 33
|
||||||
|
-7 121 -11 195 -8 171 -13 254 -19 360 -3 47 -8 139 -11 205 -3 66 -8 156 -10
|
||||||
|
200 -3 44 -7 125 -10 180 -12 276 -18 342 -32 370 -15 30 -147 256 -253 435
|
||||||
|
-31 52 -59 102 -63 110 -4 8 -13 24 -20 35 -7 11 -59 101 -116 200 -57 99
|
||||||
|
-114 197 -127 217 -13 21 -65 108 -115 195 -50 87 -100 172 -110 188 -10 17
|
||||||
|
-27 46 -37 65 -51 96 -557 957 -571 972 -15 17 -20 16 -86 -19 -39 -20 -73
|
||||||
|
-40 -76 -45 -5 -8 56 -262 151 -623 17 -66 33 -129 35 -140 3 -11 13 -54 24
|
||||||
|
-95 11 -41 19 -76 17 -77 -1 -1 -24 4 -51 13 -28 8 -66 19 -85 24 -32 9 -35
|
||||||
|
13 -38 52 -3 43 -37 128 -51 128 -4 0 -8 17 -8 38 -1 67 -3 73 -29 97 -25 23
|
||||||
|
-34 25 -135 25 l-107 0 -26 -31 c-18 -21 -26 -42 -26 -70 l0 -39 -53 2 -53 2
|
||||||
|
1 81 c1 55 -3 88 -13 107 -15 26 -50 48 -77 48 -10 0 9 38 52 107 76 124 89
|
||||||
|
146 136 228 19 33 45 78 57 100 134 233 221 412 266 550 16 46 44 204 50 274
|
||||||
|
10 118 11 2513 1 2580 -14 95 -47 147 -179 281 -184 186 -302 293 -513 461
|
||||||
|
-65 52 -228 173 -285 212 -246 165 -459 299 -615 384 -95 52 -443 226 -520
|
||||||
|
260 -38 17 -95 42 -125 56 -112 50 -386 127 -575 162 -64 11 -262 44 -300 50
|
||||||
|
-23 3 -50 7 -61 9 -11 2 -47 7 -79 11 -33 4 -73 9 -88 11 -16 3 -52 7 -80 9
|
||||||
|
-29 3 -63 7 -77 9 -24 4 -124 15 -199 21 -19 2 -67 6 -105 9 -82 8 -162 14
|
||||||
|
-261 21 -38 2 -104 7 -145 10 -41 3 -124 8 -185 10 -60 3 -141 7 -180 10 -169
|
||||||
|
10 -1180 26 -1188 18z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.0 KiB |
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"name": "Texual Inversion Models",
|
||||||
|
"short_name": "Texual Inversion Models",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ee9321",
|
||||||
|
"background_color": "#ee9321",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|