UltraMarkoBR commited on
Commit
a46b5eb
·
verified ·
1 Parent(s): f208bf8

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +576 -19
index.html CHANGED
@@ -1,19 +1,576 @@
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": 7,
137
+ "last_link_id": 7,
138
+ "nodes": [
139
+ {
140
+ "id": 1,
141
+ "type": "CheckpointLoaderSimple",
142
+ "pos": [
143
+ 50,
144
+ 50
145
+ ],
146
+ "size": [
147
+ 315,
148
+ 100
149
+ ],
150
+ "flags": {},
151
+ "order": 0,
152
+ "mode": 0,
153
+ "outputs": [
154
+ {
155
+ "name": "MODEL",
156
+ "type": "MODEL",
157
+ "links": [
158
+ 1
159
+ ],
160
+ "slot_index": 0
161
+ },
162
+ {
163
+ "name": "CLIP",
164
+ "type": "CLIP",
165
+ "links": [
166
+ 2,
167
+ 3
168
+ ],
169
+ "slot_index": 1
170
+ },
171
+ {
172
+ "name": "VAE",
173
+ "type": "VAE",
174
+ "links": [
175
+ 6
176
+ ],
177
+ "slot_index": 2
178
+ }
179
+ ],
180
+ "properties": {
181
+ "Node name for S&R": "CheckpointLoaderSimple"
182
+ },
183
+ "widgets_values": [
184
+ "v1-5-pruned-emaonly.ckpt"
185
+ ]
186
+ },
187
+ {
188
+ "id": 2,
189
+ "type": "CLIPTextEncode",
190
+ "pos": [
191
+ 450,
192
+ 50
193
+ ],
194
+ "size": [
195
+ 400,
196
+ 150
197
+ ],
198
+ "flags": {},
199
+ "order": 1,
200
+ "mode": 0,
201
+ "inputs": [
202
+ {
203
+ "name": "clip",
204
+ "type": "CLIP",
205
+ "link": 2
206
+ }
207
+ ],
208
+ "outputs": [
209
+ {
210
+ "name": "CONDITIONING",
211
+ "type": "CONDITIONING",
212
+ "links": [
213
+ 4
214
+ ],
215
+ "slot_index": 0
216
+ }
217
+ ],
218
+ "title": "Positive Prompt",
219
+ "properties": {
220
+ "Node name for S&R": "CLIPTextEncode"
221
+ },
222
+ "widgets_values": [
223
+ "beautiful landscape, mountains, sunset, high quality, detailed, 8k"
224
+ ]
225
+ },
226
+ {
227
+ "id": 3,
228
+ "type": "CLIPTextEncode",
229
+ "pos": [
230
+ 450,
231
+ 250
232
+ ],
233
+ "size": [
234
+ 400,
235
+ 150
236
+ ],
237
+ "flags": {},
238
+ "order": 2,
239
+ "mode": 0,
240
+ "inputs": [
241
+ {
242
+ "name": "clip",
243
+ "type": "CLIP",
244
+ "link": 3
245
+ }
246
+ ],
247
+ "outputs": [
248
+ {
249
+ "name": "CONDITIONING",
250
+ "type": "CONDITIONING",
251
+ "links": [
252
+ 5
253
+ ],
254
+ "slot_index": 0
255
+ }
256
+ ],
257
+ "title": "Negative Prompt",
258
+ "properties": {
259
+ "Node name for S&R": "CLIPTextEncode"
260
+ },
261
+ "widgets_values": [
262
+ "ugly, blurry, low quality, distorted, watermark"
263
+ ]
264
+ },
265
+ {
266
+ "id": 4,
267
+ "type": "EmptyLatentImage",
268
+ "pos": [
269
+ 450,
270
+ 450
271
+ ],
272
+ "size": [
273
+ 315,
274
+ 106
275
+ ],
276
+ "flags": {},
277
+ "order": 3,
278
+ "mode": 0,
279
+ "outputs": [
280
+ {
281
+ "name": "LATENT",
282
+ "type": "LATENT",
283
+ "links": [
284
+ 7
285
+ ],
286
+ "slot_index": 0
287
+ }
288
+ ],
289
+ "properties": {
290
+ "Node name for S&R": "EmptyLatentImage"
291
+ },
292
+ "widgets_values": [
293
+ 512,
294
+ 512,
295
+ 1
296
+ ]
297
+ },
298
+ {
299
+ "id": 5,
300
+ "type": "KSampler",
301
+ "pos": [
302
+ 900,
303
+ 50
304
+ ],
305
+ "size": [
306
+ 315,
307
+ 262
308
+ ],
309
+ "flags": {},
310
+ "order": 4,
311
+ "mode": 0,
312
+ "inputs": [
313
+ {
314
+ "name": "model",
315
+ "type": "MODEL",
316
+ "link": 1
317
+ },
318
+ {
319
+ "name": "positive",
320
+ "type": "CONDITIONING",
321
+ "link": 4
322
+ },
323
+ {
324
+ "name": "negative",
325
+ "type": "CONDITIONING",
326
+ "link": 5
327
+ },
328
+ {
329
+ "name": "latent_image",
330
+ "type": "LATENT",
331
+ "link": 7
332
+ }
333
+ ],
334
+ "outputs": [
335
+ {
336
+ "name": "LATENT",
337
+ "type": "LATENT",
338
+ "links": [
339
+ 8
340
+ ],
341
+ "slot_index": 0
342
+ }
343
+ ],
344
+ "properties": {
345
+ "Node name for S&R": "KSampler"
346
+ },
347
+ "widgets_values": [
348
+ 1566802084281666,
349
+ "randomize",
350
+ 20,
351
+ 7,
352
+ "euler",
353
+ "normal",
354
+ 1
355
+ ]
356
+ },
357
+ {
358
+ "id": 6,
359
+ "type": "VAEDecode",
360
+ "pos": [
361
+ 900,
362
+ 370
363
+ ],
364
+ "size": [
365
+ 210,
366
+ 46
367
+ ],
368
+ "flags": {},
369
+ "order": 5,
370
+ "mode": 0,
371
+ "inputs": [
372
+ {
373
+ "name": "samples",
374
+ "type": "LATENT",
375
+ "link": 8
376
+ },
377
+ {
378
+ "name": "vae",
379
+ "type": "VAE",
380
+ "link": 6
381
+ }
382
+ ],
383
+ "outputs": [
384
+ {
385
+ "name": "IMAGE",
386
+ "type": "IMAGE",
387
+ "links": [
388
+ 9
389
+ ],
390
+ "slot_index": 0
391
+ }
392
+ ],
393
+ "properties": {
394
+ "Node name for S&R": "VAEDecode"
395
+ }
396
+ },
397
+ {
398
+ "id": 7,
399
+ "type": "SaveImage",
400
+ "pos": [
401
+ 900,
402
+ 480
403
+ ],
404
+ "size": [
405
+ 315,
406
+ 270
407
+ ],
408
+ "flags": {},
409
+ "order": 6,
410
+ "mode": 0,
411
+ "inputs": [
412
+ {
413
+ "name": "images",
414
+ "type": "IMAGE",
415
+ "link": 9
416
+ }
417
+ ],
418
+ "outputs": [],
419
+ "properties": {
420
+ "Node name for S&R": "SaveImage"
421
+ },
422
+ "widgets_values": [
423
+ "ComfyUI"
424
+ ]
425
+ }
426
+ ],
427
+ "links": [
428
+ [
429
+ 1,
430
+ 1,
431
+ 0,
432
+ 5,
433
+ 0,
434
+ "MODEL"
435
+ ],
436
+ [
437
+ 2,
438
+ 1,
439
+ 1,
440
+ 2,
441
+ 0,
442
+ "CLIP"
443
+ ],
444
+ [
445
+ 3,
446
+ 1,
447
+ 1,
448
+ 3,
449
+ 0,
450
+ "CLIP"
451
+ ],
452
+ [
453
+ 4,
454
+ 2,
455
+ 0,
456
+ 5,
457
+ 1,
458
+ "CONDITIONING"
459
+ ],
460
+ [
461
+ 5,
462
+ 3,
463
+ 0,
464
+ 5,
465
+ 2,
466
+ "CONDITIONING"
467
+ ],
468
+ [
469
+ 6,
470
+ 1,
471
+ 2,
472
+ 6,
473
+ 1,
474
+ "VAE"
475
+ ],
476
+ [
477
+ 7,
478
+ 4,
479
+ 0,
480
+ 5,
481
+ 3,
482
+ "LATENT"
483
+ ],
484
+ [
485
+ 8,
486
+ 5,
487
+ 0,
488
+ 6,
489
+ 0,
490
+ "LATENT"
491
+ ],
492
+ [
493
+ 9,
494
+ 6,
495
+ 0,
496
+ 7,
497
+ 0,
498
+ "IMAGE"
499
+ ]
500
+ ],
501
+ "groups": [],
502
+ "config": {},
503
+ "extra": {
504
+ "ds": {
505
+ "scale": 1.0,
506
+ "offset": [
507
+ 0,
508
+ 0
509
+ ]
510
+ },
511
+ "_comment": "Built with anycoder - https://huggingface.co/spaces/akhaliq/anycoder"
512
+ },
513
+ "version": 0.4
514
+ }</pre>
515
+ </div>
516
+ </div>
517
+
518
+ <script>
519
+ function copyToClipboard() {
520
+ const jsonContent = document.getElementById('json-content').textContent;
521
+ navigator.clipboard.writeText(jsonContent).then(() => {
522
+ const btn = event.target;
523
+ const originalText = btn.textContent;
524
+ btn.textContent = 'Copied!';
525
+ btn.classList.add('success');
526
+ setTimeout(() => {
527
+ btn.textContent = originalText;
528
+ btn.classList.remove('success');
529
+ }, 2000);
530
+ }).catch(err => {
531
+ alert('Failed to copy to clipboard');
532
+ });
533
+ }
534
+
535
+ function downloadJSON() {
536
+ const jsonContent = document.getElementById('json-content').textContent;
537
+ const blob = new Blob([jsonContent], { type: 'application/json' });
538
+ const url = URL.createObjectURL(blob);
539
+ const a = document.createElement('a');
540
+ a.href = url;
541
+ a.download = 'comfyui_workflow.json';
542
+ document.body.appendChild(a);
543
+ a.click();
544
+ document.body.removeChild(a);
545
+ URL.revokeObjectURL(url);
546
+
547
+ const btn = event.target;
548
+ const originalText = btn.textContent;
549
+ btn.textContent = 'Downloaded!';
550
+ btn.classList.add('success');
551
+ setTimeout(() => {
552
+ btn.textContent = originalText;
553
+ btn.classList.remove('success');
554
+ }, 2000);
555
+ }
556
+
557
+ // Add syntax highlighting
558
+ function highlightJSON() {
559
+ const content = document.getElementById('json-content');
560
+ let html = content.innerHTML;
561
+
562
+ // Highlight different JSON elements
563
+ html = html.replace(/"([^"]+)":/g, '<span class="json-key">"$1":</span>');
564
+ html = html.replace(/: "([^"]*)"/g, ': <span class="json-string">"$1"</span>');
565
+ html = html.replace(/: (-?\d+\.?\d*)/g, ': <span class="json-number">$1</span>');
566
+ html = html.replace(/: (true|false)/g, ': <span class="json-boolean">$1</span>');
567
+ html = html.replace(/: null/g, ': <span class="json-null">null</span>');
568
+
569
+ content.innerHTML = html;
570
+ }
571
+
572
+ // Apply syntax highlighting after page load
573
+ window.addEventListener('load', highlightJSON);
574
+ </script>
575
+ </body>
576
+ </html>