nphSi commited on
Commit
abbe697
·
verified ·
1 Parent(s): 83457a8

Upload 2 files

Browse files
Files changed (2) hide show
  1. datascript.js +0 -0
  2. index.html +277 -19
datascript.js ADDED
The diff for this file is too large to render. See raw diff
 
index.html CHANGED
@@ -1,19 +1,277 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="scroll-smooth">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>SDXL LoRA Lookalike Model Index Archive</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/lucide@latest"></script>
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
10
+ <style>
11
+ body { font-family: 'Inter', sans-serif; }
12
+ .gradient-text {
13
+ background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 50%, #ff8f8f 100%);
14
+ -webkit-background-clip: text;
15
+ -webkit-text-fill-color: transparent;
16
+ background-clip: text;
17
+ }
18
+ .card-hover {
19
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
20
+ }
21
+ .card-hover:hover {
22
+
23
+ box-shadow: 0 20px 25px -5px rgba(239, 68, 68, 0.15), 0 10px 10px -5px rgba(239, 68, 68, 0.1);
24
+ }
25
+ .scrollbar-hide::-webkit-scrollbar {
26
+ display: none;
27
+ }
28
+ .scrollbar-hide {
29
+ -ms-overflow-style: none;
30
+ scrollbar-width: none;
31
+ }
32
+ .glass-panel {
33
+ background: rgba(17, 24, 39, 0.8);
34
+ backdrop-filter: blur(12px);
35
+ border: 1px solid rgba(239, 68, 68, 0.2);
36
+ }
37
+ [contenteditable]:focus {
38
+ outline: 2px solid #ef4444;
39
+ border-radius: 4px;
40
+ padding: 2px 4px;
41
+ }
42
+
43
+ .image-overlay {
44
+ opacity: 0;
45
+ visibility: hidden;
46
+ transition: all 0.45s ease-in-out;
47
+ }
48
+
49
+ .image-overlay.active {
50
+ opacity: 1;
51
+ visibility: visible;
52
+ }
53
+
54
+ .image-overlay img {
55
+ transform: scale(0.5);
56
+ transition: transform 0.45s ease-in-out;
57
+ }
58
+
59
+ .image-overlay.active img {
60
+ transform: scale(1);
61
+ }
62
+ .image-overlay video {
63
+ transform: scale(0.5);
64
+ transition: transform 0.45s ease-in-out;
65
+ }
66
+
67
+ .image-overlay.active video {
68
+ transform: scale(1);
69
+ }
70
+ #myBtn {
71
+ display: none;
72
+ position: fixed;
73
+ bottom: 20px;
74
+ right: 30px;
75
+ z-index: 99;
76
+ font-size: 18px;
77
+ border: none;
78
+ outline: none;
79
+ background-color: red;
80
+ color: white;
81
+ cursor: pointer;
82
+ padding: 15px;
83
+ border-radius: 4px;
84
+ }
85
+
86
+ #myBtn:hover {
87
+ background-color: #555;
88
+ }
89
+
90
+ </style>
91
+ </head>
92
+ <body class="bg-gray-950 text-gray-100 antialiased">
93
+
94
+ <button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
95
+
96
+ <script>
97
+ // Get the button
98
+ let mybutton = document.getElementById("myBtn");
99
+
100
+ // When the user scrolls down 20px from the top of the document, show the button
101
+ window.onscroll = function() {scrollFunction()};
102
+
103
+ function scrollFunction() {
104
+ if (document.body.scrollTop > 600 || document.documentElement.scrollTop > 600) {
105
+ mybutton.style.display = "block";
106
+ } else {
107
+ mybutton.style.display = "none";
108
+ }
109
+ }
110
+
111
+ // When the user clicks on the button, scroll to the top of the document
112
+ function topFunction() {
113
+ document.body.scrollTop = 0;
114
+ document.documentElement.scrollTop = 0;
115
+ }
116
+ </script>
117
+
118
+
119
+ <!-- Header -->
120
+ <header class="sticky top-0 z-50 glass-panel border-b border-red-900/30">
121
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-1">
122
+ <div class="flex flex-col lg:flex-row lg:items-center gap-4 justify-between">
123
+ <!-- Logo -->
124
+ <div class="flex items-center gap-3">
125
+ <div class="w-20 h-20 bg-gradient-to-br rounded-lg flex items-center justify-center">
126
+ <img alt="nphSi's picture" class="h-16 w-16 overflow-hidden rounded-full border-[3px] border-white bg-white dark:border-gray-950 dark:bg-gray-950 lg:h-16 lg:w-16" src="https://cdn-avatars.huggingface.co/v1/production/uploads/6724de4c478a59591377a0aa/NfWB4LRni0DkkmAsdxQyR.jpeg">
127
+ </div>
128
+ <div>
129
+ <h1 class="text-xl font-bold gradient-text tracking-tight">SDXL Lookalike Archive</h1>
130
+ <p class="text-xs text-gray-400">nphSi´s finest authentic Loras<br>Compatible with SDXL</p>
131
+ </div>
132
+ </div>
133
+
134
+ <!-- Controls -->
135
+ <div class="flex flex-col sm:flex-row gap-3 flex-1 lg:justify-end">
136
+ <!-- Search -->
137
+ <div class="relative group flex-1 max-w-md">
138
+ <i data-lucide="search" class="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500 group-focus-within:text-red-400 transition-colors"></i>
139
+ <input type="text" id="searchInput" placeholder="Search models..."
140
+ class="w-full bg-gray-900/50 border border-gray-800 rounded-lg pl-10 pr-4 py-2 text-sm focus:outline-none focus:border-red-500/50 focus:ring-2 focus:ring-red-500/20 transition-all placeholder-gray-600">
141
+ </div>
142
+
143
+ <!-- Filters -->
144
+ <select id="sortSelect" class="bg-gray-900/50 border border-gray-800 rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-red-500/50 cursor-pointer">
145
+
146
+ <option value="name-asc" selected>Name (A-Z)</option>
147
+ <option value="name-desc">Name (Z-A)</option>
148
+ </select>
149
+
150
+ <select id="categoryFilter" class="bg-gray-900/50 border border-gray-800 rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-red-500/50 cursor-pointer">
151
+ <option value="all" selected>All Categories</option>
152
+
153
+ </select>
154
+
155
+ <button onclick="window.open('https://huggingface.co/nphSi/Z-Image-Lora/discussions')" class="bg-gradient-to-r from-red-600 to-pink-600 hover:from-red-500 hover:to-pink-500 text-white px-4 py-2 rounded-lg text-sm font-medium flex items-center gap-2 transition-all shadow-lg shadow-red-600/20 hover:shadow-red-600/30">
156
+
157
+ <span class="hidden sm:inline">Community</span>
158
+ </button>
159
+ </div>
160
+ </div>
161
+
162
+ <!-- Alphabet Navigation -->
163
+ <div class="mt-1 flex gap-2 overflow-x-auto scrollbar-hide pb-1 items-center justify-between" id="alphabetNav">
164
+ <!-- Generated by JS -->
165
+ </div>
166
+ </div>
167
+ </header>
168
+
169
+ <!-- Stats Bar -->
170
+ <div class="bg-gray-900/30 border-b border-gray-800">
171
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-2 flex flex-wrap gap-4 text-xs text-gray-400 items-center">
172
+ <span class="flex items-center gap-1">
173
+ <i data-lucide="database" class="w-3 h-3"></i>
174
+ <span id="totalCount">1337</span> LoRAs
175
+ </span>
176
+ <span class="flex items-center gap-1">
177
+ <i data-lucide="filter" class="w-3 h-3"></i>
178
+ <span id="filteredCount">Showing all</span>
179
+ </span>
180
+ <span class="ml-auto text-white-400 flex items-center gap-1">
181
+ <span id="catheader"></span>
182
+ </span>
183
+
184
+ <a href="https://ko-fi.com/nphsi" target="_blank" class="ml-auto flex items-center gap-1 text-pink-400 hover:text-pink-300 transition-colors">
185
+ <i data-lucide="coffee" class="w-3 h-3"></i>
186
+ ❤️ Support me on Ko-fi ❤️
187
+ </a>
188
+ </div>
189
+ </div>
190
+
191
+ <!-- Main Content -->
192
+ <main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
193
+ <!-- Grid -->
194
+ <div id="modelGrid" class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-4">
195
+ <!-- Cards injected by JS -->
196
+ </div>
197
+
198
+ <!-- Empty State -->
199
+ <div id="emptyState" class="hidden text-center py-20">
200
+ <i data-lucide="search-x" class="w-16 h-16 text-gray-700 mx-auto mb-4"></i>
201
+ <p class="text-gray-500 text-lg">No models found matching your criteria</p>
202
+ <button onclick="resetFilters()" class="mt-4 text-red-400 hover:text-red-300 text-sm font-medium">Reset filters</button>
203
+ </div>
204
+ </main>
205
+
206
+
207
+ <!-- Add/Edit Modal -->
208
+ <div id="itemModal" class="fixed inset-0 z-[100] hidden">
209
+ <div class="absolute inset-0 flex items-center justify-center p-4">
210
+ <div class="bg-gray-900 border border-gray-800 rounded-2xl w-full max-w-lg shadow-2xl shadow-red-900/20 overflow-hidden transform transition-all scale-100">
211
+
212
+ <form id="itemForm" class="p-6 space-y-4">
213
+ </form>
214
+ </div>
215
+ </div>
216
+ </div>
217
+
218
+
219
+ <!-- Footer -->
220
+ <footer class="border-t border-gray-800 bg-gray-900/30 mt-12">
221
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
222
+ <div class="grid md:grid-cols-2 gap-6 text-sm text-gray-500">
223
+ <div>
224
+ <h4 class="text-gray-300 font-semibold mb-2">Disclaimer</h4>
225
+ <p class="text-xs leading-relaxed">
226
+ Loras with the (vrtlxxx) trigger are trained on public domain images found on the public internet.
227
+ No nudity or pornography is involved in the training process.
228
+ Takedown requests: barbara.cummingworth-(at)-protonmail.com
229
+ </p>
230
+ </div>
231
+ <div class="md:text-right">
232
+ <h4 class="text-red-400 font-semibold mb-2 flex items-center md:justify-end gap-2">
233
+ <i data-lucide="alert-triangle" class="w-4 h-4"></i>
234
+ Legal Notice
235
+ </h4>
236
+ <p class="text-xxs leading-relaxed text-red-300/80">
237
+ YOU ARE NOT ALLOWED TO SHARE NUDITY AND/OR PORNOGRAPHIC CONTENT (DEEPFAKES) OF FAMOUS PEOPLE (CELEBRITIES) MADE WITH MY LORAS<br>
238
+ THIS IS ILLEGAL IN ALMOST ALL COUNTRIES IN THE WORLD. THE AUTHOR REJECTS ANY RESPONSIBILITY FOR CREATED ILLEGAL CONTENT IN ANY POSSIBLE WAY<br>
239
+ Please do not spread Deepfakes. Please respect the dignity and privacy of other people as you would expect to be respected yourself!
240
+ </p>
241
+ </div>
242
+ </div>
243
+ <div class="mt-8 pt-6 border-t border-gray-800 text-center text-xs text-gray-600">
244
+ <p>Brain de Fecalo Productions • ephBeeEye Design • Created by nphSi 2026</p>
245
+ </div>
246
+ </div>
247
+ </footer>
248
+
249
+ <!-- Image Overlay Modal -->
250
+ <div id="imageOverlay" class="image-overlay fixed inset-0 z-50 bg-black/95 flex items-center justify-center p-1" onclick="closeOverlay()">
251
+ <div class="relative max-w-7xl max-h-full w-full flex flex-col items-center" onclick="event.stopPropagation();closeOverlay()">
252
+ <video autoplay playsinline loop id="overlayVideo" src="" poster="" alt="Loading..." class="hidden max-w-full max-h-[90vh] object-contain rounded-lg shadow-2xl" onclick="closeOverlay()"></video>
253
+ <img id="overlayImage" src="" alt="Loading Image..." class="max-w-full max-h-[90vh] object-contain rounded-lg shadow-2xl" onclick="closeOverlay()">
254
+
255
+ <p id="overlayCaption" class="mt-2 text-white/60 text-lg font-medium text-center"></p>
256
+ <p class="mt-1 text-white/40 text-xs">Click anywhere or press ESC to close.</p>
257
+ </div>
258
+ </div>
259
+
260
+ <script src='datascript.js'></script>
261
+
262
+ <script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
263
+ <script>
264
+ kofiWidgetOverlay.draw('nphsi', {
265
+ 'type': 'floating-chat',
266
+ 'floating-chat.donateButton.text': 'Support me',
267
+ 'floating-chat.donateButton.background-color': '#323842',
268
+ 'floating-chat.donateButton.text-color': '#fff'
269
+ });
270
+ </script>
271
+
272
+ <!-- 100% privacy-first analytics -->
273
+ <script data-collect-dnt="true" async src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
274
+ <noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif?collect-dnt=true" alt="" referrerpolicy="no-referrer-when-downgrade"/></noscript>
275
+
276
+ </body>
277
+ </html>