akhaliq HF Staff commited on
Commit
ef7833e
·
verified ·
1 Parent(s): 1eade64

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +749 -19
index.html CHANGED
@@ -1,19 +1,749 @@
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": 12,
137
+ "last_link_id": 11,
138
+ "nodes": [
139
+ {
140
+ "id": 1,
141
+ "type": "CheckpointLoaderSimple",
142
+ "pos": [
143
+ 50,
144
+ 300
145
+ ],
146
+ "size": {
147
+ "0": 350,
148
+ "1": 100
149
+ },
150
+ "flags": {},
151
+ "order": 0,
152
+ "mode": 0,
153
+ "outputs": [
154
+ {
155
+ "name": "MODEL",
156
+ "type": "MODEL",
157
+ "links": [
158
+ 2
159
+ ],
160
+ "shape": 3,
161
+ "slot_index": 0
162
+ },
163
+ {
164
+ "name": "CLIP",
165
+ "type": "CLIP",
166
+ "links": [
167
+ 1
168
+ ],
169
+ "shape": 3,
170
+ "slot_index": 1
171
+ },
172
+ {
173
+ "name": "VAE",
174
+ "type": "VAE",
175
+ "links": [
176
+ 3
177
+ ],
178
+ "shape": 3,
179
+ "slot_index": 2
180
+ }
181
+ ],
182
+ "properties": {
183
+ "Node name for S&R": "CheckpointLoaderSimple"
184
+ },
185
+ "widgets_values": [
186
+ "v1-5-pruned-emaonly.safetensors"
187
+ ]
188
+ },
189
+ {
190
+ "id": 2,
191
+ "type": "CLIPTextEncode",
192
+ "pos": [
193
+ 450,
194
+ 200
195
+ ],
196
+ "size": {
197
+ "0": 400,
198
+ "1": 200
199
+ },
200
+ "flags": {},
201
+ "order": 1,
202
+ "mode": 0,
203
+ "inputs": [
204
+ {
205
+ "name": "clip",
206
+ "type": "CLIP",
207
+ "link": 1
208
+ }
209
+ ],
210
+ "outputs": [
211
+ {
212
+ "name": "CONDITIONING",
213
+ "type": "CONDITIONING",
214
+ "links": [
215
+ 4
216
+ ],
217
+ "shape": 3,
218
+ "slot_index": 0
219
+ }
220
+ ],
221
+ "properties": {
222
+ "Node name for S&R": "CLIPTextEncode"
223
+ },
224
+ "widgets_values": [
225
+ "a beautiful landscape painting, mountains, lake, sunset, highly detailed, masterpiece"
226
+ ]
227
+ },
228
+ {
229
+ "id": 3,
230
+ "type": "CLIPTextEncode",
231
+ "pos": [
232
+ 450,
233
+ 450
234
+ ],
235
+ "size": {
236
+ "0": 400,
237
+ "1": 200
238
+ },
239
+ "flags": {},
240
+ "order": 2,
241
+ "mode": 0,
242
+ "inputs": [
243
+ {
244
+ "name": "clip",
245
+ "type": "CLIP",
246
+ "link": 1
247
+ }
248
+ ],
249
+ "outputs": [
250
+ {
251
+ "name": "CONDITIONING",
252
+ "type": "CONDITIONING",
253
+ "links": [
254
+ 5
255
+ ],
256
+ "shape": 3,
257
+ "slot_index": 0
258
+ }
259
+ ],
260
+ "properties": {
261
+ "Node name for S&R": "CLIPTextEncode"
262
+ },
263
+ "widgets_values": [
264
+ "blurry, low quality, distorted, deformed, ugly, bad anatomy"
265
+ ]
266
+ },
267
+ {
268
+ "id": 4,
269
+ "type": "EmptyLatentImage",
270
+ "pos": [
271
+ 450,
272
+ 700
273
+ ],
274
+ "size": {
275
+ "0": 315,
276
+ "1": 110
277
+ },
278
+ "flags": {},
279
+ "order": 3,
280
+ "mode": 0,
281
+ "outputs": [
282
+ {
283
+ "name": "LATENT",
284
+ "type": "LATENT",
285
+ "links": [
286
+ 6
287
+ ],
288
+ "shape": 3,
289
+ "slot_index": 0
290
+ }
291
+ ],
292
+ "properties": {
293
+ "Node name for S&R": "EmptyLatentImage"
294
+ },
295
+ "widgets_values": [
296
+ 512,
297
+ 512,
298
+ 1
299
+ ]
300
+ },
301
+ {
302
+ "id": 5,
303
+ "type": "KSampler",
304
+ "pos": [
305
+ 900,
306
+ 400
307
+ ],
308
+ "size": {
309
+ "0": 300,
310
+ "1": 262
311
+ },
312
+ "flags": {},
313
+ "order": 4,
314
+ "mode": 0,
315
+ "inputs": [
316
+ {
317
+ "name": "model",
318
+ "type": "MODEL",
319
+ "link": 2
320
+ },
321
+ {
322
+ "name": "positive",
323
+ "type": "CONDITIONING",
324
+ "link": 4
325
+ },
326
+ {
327
+ "name": "negative",
328
+ "type": "CONDITIONING",
329
+ "link": 5
330
+ },
331
+ {
332
+ "name": "latent_image",
333
+ "type": "LATENT",
334
+ "link": 6
335
+ }
336
+ ],
337
+ "outputs": [
338
+ {
339
+ "name": "LATENT",
340
+ "type": "LATENT",
341
+ "links": [
342
+ 7
343
+ ],
344
+ "shape": 3,
345
+ "slot_index": 0
346
+ }
347
+ ],
348
+ "properties": {
349
+ "Node name for S&R": "KSampler"
350
+ },
351
+ "widgets_values": [
352
+ 42,
353
+ "randomize",
354
+ 20,
355
+ 8,
356
+ "euler",
357
+ "normal"
358
+ ]
359
+ },
360
+ {
361
+ "id": 6,
362
+ "type": "VAEDecode",
363
+ "pos": [
364
+ 1250,
365
+ 400
366
+ ],
367
+ "size": {
368
+ "0": 210,
369
+ "1": 46
370
+ },
371
+ "flags": {},
372
+ "order": 5,
373
+ "mode": 0,
374
+ "inputs": [
375
+ {
376
+ "name": "samples",
377
+ "type": "LATENT",
378
+ "link": 7
379
+ },
380
+ {
381
+ "name": "vae",
382
+ "type": "VAE",
383
+ "link": 3
384
+ }
385
+ ],
386
+ "outputs": [
387
+ {
388
+ "name": "IMAGE",
389
+ "type": "IMAGE",
390
+ "links": [
391
+ 8
392
+ ],
393
+ "shape": 3,
394
+ "slot_index": 0
395
+ }
396
+ ],
397
+ "properties": {
398
+ "Node name for S&R": "VAEDecode"
399
+ }
400
+ },
401
+ {
402
+ "id": 7,
403
+ "type": "SaveImage",
404
+ "pos": [
405
+ 1500,
406
+ 400
407
+ ],
408
+ "size": {
409
+ "0": 315,
410
+ "1": 270
411
+ },
412
+ "flags": {},
413
+ "order": 6,
414
+ "mode": 0,
415
+ "inputs": [
416
+ {
417
+ "name": "images",
418
+ "type": "IMAGE",
419
+ "link": 8
420
+ }
421
+ ],
422
+ "properties": {
423
+ "Node name for S&R": "SaveImage"
424
+ },
425
+ "widgets_values": [
426
+ "ComfyUI"
427
+ ]
428
+ },
429
+ {
430
+ "id": 8,
431
+ "type": "LoadImage",
432
+ "pos": [
433
+ 50,
434
+ 50
435
+ ],
436
+ "size": {
437
+ "0": 315,
438
+ "1": 314
439
+ },
440
+ "flags": {},
441
+ "order": 7,
442
+ "mode": 0,
443
+ "outputs": [
444
+ {
445
+ "name": "IMAGE",
446
+ "type": "IMAGE",
447
+ "links": [],
448
+ "shape": 3,
449
+ "slot_index": 0
450
+ },
451
+ {
452
+ "name": "MASK",
453
+ "type": "MASK",
454
+ "links": [],
455
+ "shape": 3,
456
+ "slot_index": 1
457
+ }
458
+ ],
459
+ "properties": {
460
+ "Node name for S&R": "LoadImage"
461
+ },
462
+ "widgets_values": [
463
+ "example.png",
464
+ "image"
465
+ ]
466
+ },
467
+ {
468
+ "id": 9,
469
+ "type": "ImageScale",
470
+ "pos": [
471
+ 450,
472
+ 50
473
+ ],
474
+ "size": {
475
+ "0": 315,
476
+ "1": 130
477
+ },
478
+ "flags": {},
479
+ "order": 8,
480
+ "mode": 0,
481
+ "inputs": [
482
+ {
483
+ "name": "image",
484
+ "type": "IMAGE",
485
+ "link": null
486
+ }
487
+ ],
488
+ "outputs": [
489
+ {
490
+ "name": "IMAGE",
491
+ "type": "IMAGE",
492
+ "links": [],
493
+ "shape": 3,
494
+ "slot_index": 0
495
+ }
496
+ ],
497
+ "properties": {
498
+ "Node name for S&R": "ImageScale"
499
+ },
500
+ "widgets_values": [
501
+ "nearest-exact",
502
+ 512,
503
+ 512,
504
+ "disabled"
505
+ ]
506
+ },
507
+ {
508
+ "id": 10,
509
+ "type": "ImageBatch",
510
+ "pos": [
511
+ 900,
512
+ 50
513
+ ],
514
+ "size": {
515
+ "0": 210,
516
+ "1": 46
517
+ },
518
+ "flags": {},
519
+ "order": 9,
520
+ "mode": 0,
521
+ "inputs": [
522
+ {
523
+ "name": "image1",
524
+ "type": "IMAGE",
525
+ "link": null
526
+ },
527
+ {
528
+ "name": "image2",
529
+ "type": "IMAGE",
530
+ "link": null
531
+ }
532
+ ],
533
+ "outputs": [
534
+ {
535
+ "name": "IMAGE",
536
+ "type": "IMAGE",
537
+ "links": [],
538
+ "shape": 3,
539
+ "slot_index": 0
540
+ }
541
+ ],
542
+ "properties": {
543
+ "Node name for S&R": "ImageBatch"
544
+ }
545
+ },
546
+ {
547
+ "id": 11,
548
+ "type": "PreviewImage",
549
+ "pos": [
550
+ 1250,
551
+ 50
552
+ ],
553
+ "size": {
554
+ "0": 299.916748046875,
555
+ "1": 327.4180603027344
556
+ },
557
+ "flags": {},
558
+ "order": 10,
559
+ "mode": 0,
560
+ "inputs": [
561
+ {
562
+ "name": "images",
563
+ "type": "IMAGE",
564
+ "link": null
565
+ }
566
+ ],
567
+ "properties": {
568
+ "Node name for S&R": "PreviewImage"
569
+ }
570
+ },
571
+ {
572
+ "id": 12,
573
+ "type": "CLIPSetLastLayer",
574
+ "pos": [
575
+ 50,
576
+ 450
577
+ ],
578
+ "size": {
579
+ "0": 315,
580
+ "1": 58
581
+ },
582
+ "flags": {},
583
+ "order": 11,
584
+ "mode": 0,
585
+ "inputs": [
586
+ {
587
+ "name": "clip",
588
+ "type": "CLIP",
589
+ "link": null
590
+ }
591
+ ],
592
+ "outputs": [
593
+ {
594
+ "name": "CLIP",
595
+ "type": "CLIP",
596
+ "links": [],
597
+ "shape": 3,
598
+ "slot_index": 0
599
+ }
600
+ ],
601
+ "properties": {
602
+ "Node name for S&R": "CLIPSetLastLayer"
603
+ },
604
+ "widgets_values": [
605
+ -2
606
+ ]
607
+ }
608
+ ],
609
+ "links": [
610
+ [
611
+ 1,
612
+ 1,
613
+ 1,
614
+ 2,
615
+ 0,
616
+ "CLIP"
617
+ ],
618
+ [
619
+ 2,
620
+ 1,
621
+ 0,
622
+ 5,
623
+ 0,
624
+ "MODEL"
625
+ ],
626
+ [
627
+ 3,
628
+ 1,
629
+ 2,
630
+ 6,
631
+ 1,
632
+ "VAE"
633
+ ],
634
+ [
635
+ 4,
636
+ 2,
637
+ 0,
638
+ 5,
639
+ 1,
640
+ "CONDITIONING"
641
+ ],
642
+ [
643
+ 5,
644
+ 3,
645
+ 0,
646
+ 5,
647
+ 2,
648
+ "CONDITIONING"
649
+ ],
650
+ [
651
+ 6,
652
+ 4,
653
+ 0,
654
+ 5,
655
+ 3,
656
+ "LATENT"
657
+ ],
658
+ [
659
+ 7,
660
+ 5,
661
+ 0,
662
+ 6,
663
+ 0,
664
+ "LATENT"
665
+ ],
666
+ [
667
+ 8,
668
+ 6,
669
+ 0,
670
+ 7,
671
+ 0,
672
+ "IMAGE"
673
+ ]
674
+ ],
675
+ "groups": [],
676
+ "config": {},
677
+ "extra": {
678
+ "ds": {
679
+ "scale": 1,
680
+ "offset": [
681
+ 0,
682
+ 0
683
+ ]
684
+ }
685
+ },
686
+ "version": 0.4
687
+ }</pre>
688
+ </div>
689
+ </div>
690
+
691
+ <script>
692
+ function copyToClipboard() {
693
+ const jsonContent = document.getElementById('json-content').textContent;
694
+ navigator.clipboard.writeText(jsonContent).then(() => {
695
+ const btn = event.target;
696
+ const originalText = btn.textContent;
697
+ btn.textContent = 'Copied!';
698
+ btn.classList.add('success');
699
+ setTimeout(() => {
700
+ btn.textContent = originalText;
701
+ btn.classList.remove('success');
702
+ }, 2000);
703
+ }).catch(err => {
704
+ alert('Failed to copy to clipboard');
705
+ });
706
+ }
707
+
708
+ function downloadJSON() {
709
+ const jsonContent = document.getElementById('json-content').textContent;
710
+ const blob = new Blob([jsonContent], { type: 'application/json' });
711
+ const url = URL.createObjectURL(blob);
712
+ const a = document.createElement('a');
713
+ a.href = url;
714
+ a.download = 'comfyui_workflow.json';
715
+ document.body.appendChild(a);
716
+ a.click();
717
+ document.body.removeChild(a);
718
+ URL.revokeObjectURL(url);
719
+
720
+ const btn = event.target;
721
+ const originalText = btn.textContent;
722
+ btn.textContent = 'Downloaded!';
723
+ btn.classList.add('success');
724
+ setTimeout(() => {
725
+ btn.textContent = originalText;
726
+ btn.classList.remove('success');
727
+ }, 2000);
728
+ }
729
+
730
+ // Add syntax highlighting
731
+ function highlightJSON() {
732
+ const content = document.getElementById('json-content');
733
+ let html = content.innerHTML;
734
+
735
+ // Highlight different JSON elements
736
+ html = html.replace(/"([^"]+)":/g, '<span class="json-key">"$1":</span>');
737
+ html = html.replace(/: "([^"]*)"/g, ': <span class="json-string">"$1"</span>');
738
+ html = html.replace(/: (-?\d+\.?\d*)/g, ': <span class="json-number">$1</span>');
739
+ html = html.replace(/: (true|false)/g, ': <span class="json-boolean">$1</span>');
740
+ html = html.replace(/: null/g, ': <span class="json-null">null</span>');
741
+
742
+ content.innerHTML = html;
743
+ }
744
+
745
+ // Apply syntax highlighting after page load
746
+ window.addEventListener('load', highlightJSON);
747
+ </script>
748
+ </body>
749
+ </html>