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"
|
||||
}
|