ApprikatAI commited on
Commit
b19299c
·
verified ·
1 Parent(s): e96432a

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +448 -19
index.html CHANGED
@@ -1,19 +1,448 @@
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">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>ComfyUI Workflow</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+ body {
14
+ font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif;
15
+ background-color: #000000;
16
+ color: #f5f5f7;
17
+ line-height: 1.6;
18
+ padding: 20px;
19
+ min-height: 100vh;
20
+ }
21
+ .container {
22
+ max-width: 1200px;
23
+ margin: 0 auto;
24
+ }
25
+ .header {
26
+ text-align: center;
27
+ margin-bottom: 40px;
28
+ padding: 40px 20px;
29
+ }
30
+ .header h1 {
31
+ font-size: 48px;
32
+ font-weight: 600;
33
+ color: #ffffff;
34
+ margin-bottom: 12px;
35
+ letter-spacing: -0.02em;
36
+ }
37
+ .header p {
38
+ font-size: 18px;
39
+ color: #86868b;
40
+ font-weight: 400;
41
+ }
42
+ .controls {
43
+ display: flex;
44
+ gap: 12px;
45
+ margin-bottom: 24px;
46
+ justify-content: center;
47
+ }
48
+ .btn {
49
+ padding: 12px 24px;
50
+ border: none;
51
+ border-radius: 24px;
52
+ font-size: 14px;
53
+ font-weight: 500;
54
+ cursor: pointer;
55
+ transition: all 0.2s;
56
+ font-family: inherit;
57
+ }
58
+ .btn-primary {
59
+ background: #ffffff;
60
+ color: #000000;
61
+ }
62
+ .btn-primary:hover {
63
+ background: #f5f5f7;
64
+ transform: scale(0.98);
65
+ }
66
+ .btn-secondary {
67
+ background: #1d1d1f;
68
+ color: #f5f5f7;
69
+ border: 1px solid #424245;
70
+ }
71
+ .btn-secondary:hover {
72
+ background: #2d2d2f;
73
+ transform: scale(0.98);
74
+ }
75
+ .json-container {
76
+ background-color: #1d1d1f;
77
+ border-radius: 16px;
78
+ padding: 32px;
79
+ overflow-x: auto;
80
+ border: 1px solid #424245;
81
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
82
+ }
83
+ pre {
84
+ margin: 0;
85
+ font-family: 'SF Mono', 'Monaco', 'Menlo', 'Consolas', monospace;
86
+ font-size: 13px;
87
+ line-height: 1.6;
88
+ white-space: pre-wrap;
89
+ word-wrap: break-word;
90
+ }
91
+ .json-key {
92
+ color: #9cdcfe;
93
+ }
94
+ .json-string {
95
+ color: #ce9178;
96
+ }
97
+ .json-number {
98
+ color: #b5cea8;
99
+ }
100
+ .json-boolean {
101
+ color: #569cd6;
102
+ }
103
+ .json-null {
104
+ color: #569cd6;
105
+ }
106
+ .success {
107
+ color: #30d158;
108
+ }
109
+ @media (max-width: 768px) {
110
+ .header h1 {
111
+ font-size: 32px;
112
+ }
113
+ .controls {
114
+ flex-direction: column;
115
+ }
116
+ .json-container {
117
+ padding: 20px;
118
+ }
119
+ }
120
+ </style>
121
+ </head>
122
+ <body>
123
+ <div class="container">
124
+ <div class="header">
125
+ <h1>ComfyUI Workflow</h1>
126
+ <p>View and download your workflow JSON</p>
127
+ </div>
128
+
129
+ <div class="controls">
130
+ <button class="btn btn-primary" onclick="downloadJSON()">Download JSON</button>
131
+ <button class="btn btn-secondary" onclick="copyToClipboard()">Copy to Clipboard</button>
132
+ </div>
133
+
134
+ <div class="json-container">
135
+ <pre id="json-content">{
136
+ "last_node_id": 5,
137
+ "last_link_id": 8,
138
+ "nodes": [
139
+ {
140
+ "id": 1,
141
+ "type": "CheckpointLoaderSimple",
142
+ "pos": [
143
+ 212,
144
+ 98
145
+ ],
146
+ "size": [
147
+ 315,
148
+ 98
149
+ ],
150
+ "flags": {},
151
+ "order": 0,
152
+ "mode": 0,
153
+ "inputs": [],
154
+ "outputs": [
155
+ {
156
+ "name": "model",
157
+ "type": "MODEL"
158
+ },
159
+ {
160
+ "name": "clip",
161
+ "type": "CLIP"
162
+ },
163
+ {
164
+ "name": "vae",
165
+ "type": "VAE"
166
+ }
167
+ ],
168
+ "properties": {
169
+ "model_name": "sd_xl_base_1.0_2.0.safetensors"
170
+ }
171
+ },
172
+ {
173
+ "id": 2,
174
+ "type": "CLIPTextEncode",
175
+ "pos": [
176
+ 212,
177
+ 242
178
+ ],
179
+ "size": [
180
+ 364,
181
+ 82
182
+ ],
183
+ "flags": {},
184
+ "order": 1,
185
+ "mode": 0,
186
+ "inputs": [
187
+ {
188
+ "name": "clip",
189
+ "type": "CLIP",
190
+ "link": 0
191
+ }
192
+ ],
193
+ "outputs": [
194
+ {
195
+ "name": "conditioning",
196
+ "type": "CONDITIONING"
197
+ }
198
+ ],
199
+ "properties": {
200
+ "text": "Hola!",
201
+ "clip": null
202
+ }
203
+ },
204
+ {
205
+ "id": 3,
206
+ "type": "KSampler",
207
+ "pos": [
208
+ 212,
209
+ 386
210
+ ],
211
+ "size": [
212
+ 315,
213
+ 130
214
+ ],
215
+ "flags": {},
216
+ "order": 2,
217
+ "mode": 0,
218
+ "inputs": [
219
+ {
220
+ "name": "model",
221
+ "type": "MODEL",
222
+ "link": 1
223
+ },
224
+ {
225
+ "name": "positive",
226
+ "type": "CONDITIONING",
227
+ "link": 4
228
+ },
229
+ {
230
+ "name": "negative",
231
+ "type": "CONDITIONING"
232
+ },
233
+ {
234
+ "name": "latent_image",
235
+ "type": "LATENT"
236
+ },
237
+ {
238
+ "name": "denoise",
239
+ "type": "FLOAT",
240
+ "link": 6
241
+ },
242
+ {
243
+ "name": "seed",
244
+ "type": "INT",
245
+ "link": 7
246
+ }
247
+ ],
248
+ "outputs": [
249
+ {
250
+ "name": "latent",
251
+ "type": "LATENT"
252
+ }
253
+ ],
254
+ "properties": {
255
+ "seed": 123456789,
256
+ "scheduler": "euler",
257
+ "sampling_steps": 20,
258
+ "sampling_method": "dpmpp_2m_sde_gpu",
259
+ "cfg": 8,
260
+ "denoise": 1
261
+ }
262
+ },
263
+ {
264
+ "id": 4,
265
+ "type": "VAEDecode",
266
+ "pos": [
267
+ 212,
268
+ 546
269
+ ],
270
+ "size": [
271
+ 315,
272
+ 98
273
+ ],
274
+ "flags": {},
275
+ "order": 3,
276
+ "mode": 0,
277
+ "inputs": [
278
+ {
279
+ "name": "vae",
280
+ "type": "VAE",
281
+ "link": 2
282
+ },
283
+ {
284
+ "name": "latent_image",
285
+ "type": "LATENT",
286
+ "link": 5
287
+ }
288
+ ],
289
+ "outputs": [
290
+ {
291
+ "name": "image",
292
+ "type": "IMAGE"
293
+ }
294
+ ],
295
+ "properties": {}
296
+ },
297
+ {
298
+ "id": 5,
299
+ "type": "SaveImage",
300
+ "pos": [
301
+ 212,
302
+ 676
303
+ ],
304
+ "size": [
305
+ 315,
306
+ 82
307
+ ],
308
+ "flags": {},
309
+ "order": 4,
310
+ "mode": 0,
311
+ "inputs": [
312
+ {
313
+ "name": "images",
314
+ "type": "IMAGE",
315
+ "link": 8
316
+ }
317
+ ],
318
+ "outputs": []
319
+ }
320
+ ],
321
+ "links": [
322
+ [
323
+ 0,
324
+ 0,
325
+ 1,
326
+ 0
327
+ ],
328
+ [
329
+ 0,
330
+ 1,
331
+ 2,
332
+ 0
333
+ ],
334
+ [
335
+ 1,
336
+ 2,
337
+ 3,
338
+ 0
339
+ ],
340
+ [
341
+ 2,
342
+ 0,
343
+ 3,
344
+ 1
345
+ ],
346
+ [
347
+ 3,
348
+ 3,
349
+ 4,
350
+ 0
351
+ ],
352
+ [
353
+ 4,
354
+ 0,
355
+ 5,
356
+ 0
357
+ ],
358
+ [
359
+ 6,
360
+ 0,
361
+ 3,
362
+ 4
363
+ ],
364
+ [
365
+ 7,
366
+ 0,
367
+ 3,
368
+ 3
369
+ ],
370
+ [
371
+ 8,
372
+ 0,
373
+ 5,
374
+ 0
375
+ ]
376
+ ],
377
+ "groups": [],
378
+ "config": {},
379
+ "extra": {
380
+ "schema_version": 1,
381
+ "comfy": {
382
+ "version": "1.10.1+stable",
383
+ "build": "202410241800"
384
+ }
385
+ }
386
+ }</pre>
387
+ </div>
388
+ </div>
389
+
390
+ <script>
391
+ function copyToClipboard() {
392
+ const jsonContent = document.getElementById('json-content').textContent;
393
+ navigator.clipboard.writeText(jsonContent).then(() => {
394
+ const btn = event.target;
395
+ const originalText = btn.textContent;
396
+ btn.textContent = 'Copied!';
397
+ btn.classList.add('success');
398
+ setTimeout(() => {
399
+ btn.textContent = originalText;
400
+ btn.classList.remove('success');
401
+ }, 2000);
402
+ }).catch(err => {
403
+ alert('Failed to copy to clipboard');
404
+ });
405
+ }
406
+
407
+ function downloadJSON() {
408
+ const jsonContent = document.getElementById('json-content').textContent;
409
+ const blob = new Blob([jsonContent], { type: 'application/json' });
410
+ const url = URL.createObjectURL(blob);
411
+ const a = document.createElement('a');
412
+ a.href = url;
413
+ a.download = 'comfyui_workflow.json';
414
+ document.body.appendChild(a);
415
+ a.click();
416
+ document.body.removeChild(a);
417
+ URL.revokeObjectURL(url);
418
+
419
+ const btn = event.target;
420
+ const originalText = btn.textContent;
421
+ btn.textContent = 'Downloaded!';
422
+ btn.classList.add('success');
423
+ setTimeout(() => {
424
+ btn.textContent = originalText;
425
+ btn.classList.remove('success');
426
+ }, 2000);
427
+ }
428
+
429
+ // Add syntax highlighting
430
+ function highlightJSON() {
431
+ const content = document.getElementById('json-content');
432
+ let html = content.innerHTML;
433
+
434
+ // Highlight different JSON elements
435
+ html = html.replace(/"([^"]+)":/g, '<span class="json-key">"$1":</span>');
436
+ html = html.replace(/: "([^"]*)"/g, ': <span class="json-string">"$1"</span>');
437
+ html = html.replace(/: (-?\d+\.?\d*)/g, ': <span class="json-number">$1</span>');
438
+ html = html.replace(/: (true|false)/g, ': <span class="json-boolean">$1</span>');
439
+ html = html.replace(/: null/g, ': <span class="json-null">null</span>');
440
+
441
+ content.innerHTML = html;
442
+ }
443
+
444
+ // Apply syntax highlighting after page load
445
+ window.addEventListener('load', highlightJSON);
446
+ </script>
447
+ </body>
448
+ </html>