gregoWahoo commited on
Commit
c98b53b
·
verified ·
1 Parent(s): edf3539

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +14 -816
index.html CHANGED
@@ -1,820 +1,18 @@
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>NSFW Prompt Generator for ZImage Turbo</title>
7
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
- <style>
9
- :root {
10
- --primary-color: #6c5ce7;
11
- --secondary-color: #a29bfe;
12
- --accent-color: #fd79a8;
13
- --dark-color: #2d3436;
14
- --light-color: #f5f6fa;
15
- --shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
16
- --transition: all 0.3s ease;
17
- }
18
 
19
- * {
20
- margin: 0;
21
- padding: 0;
22
- box-sizing: border-box;
23
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
24
- }
25
 
26
- body {
27
- background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
28
- min-height: 100vh;
29
- display: flex;
30
- flex-direction: column;
31
- align-items: center;
32
- padding: 20px;
33
- }
34
 
35
- header {
36
- width: 100%;
37
- max-width: 1200px;
38
- display: flex;
39
- justify-content: space-between;
40
- align-items: center;
41
- margin-bottom: 30px;
42
- padding: 20px;
43
- background-color: rgba(255, 255, 255, 0.9);
44
- border-radius: 15px;
45
- box-shadow: var(--shadow);
46
- }
47
 
48
- .logo {
49
- display: flex;
50
- align-items: center;
51
- gap: 10px;
52
- text-decoration: none;
53
- color: var(--dark-color);
54
- }
55
-
56
- .logo i {
57
- font-size: 24px;
58
- color: var(--primary-color);
59
- }
60
-
61
- .logo span {
62
- font-weight: 700;
63
- font-size: 18px;
64
- }
65
-
66
- .anycoder-link {
67
- color: var(--primary-color);
68
- text-decoration: none;
69
- font-weight: 600;
70
- font-size: 14px;
71
- transition: var(--transition);
72
- }
73
-
74
- .anycoder-link:hover {
75
- color: var(--accent-color);
76
- }
77
-
78
- .container {
79
- width: 100%;
80
- max-width: 1200px;
81
- background-color: white;
82
- border-radius: 20px;
83
- box-shadow: var(--shadow);
84
- padding: 30px;
85
- margin-bottom: 30px;
86
- }
87
-
88
- h1 {
89
- text-align: center;
90
- color: var(--dark-color);
91
- margin-bottom: 30px;
92
- font-size: 28px;
93
- font-weight: 700;
94
- background: linear-gradient(to right, var(--primary-color), var(--accent-color));
95
- -webkit-background-clip: text;
96
- -webkit-text-fill-color: transparent;
97
- }
98
-
99
- .controls {
100
- display: grid;
101
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
102
- gap: 20px;
103
- margin-bottom: 30px;
104
- }
105
-
106
- .control-group {
107
- background-color: var(--light-color);
108
- padding: 20px;
109
- border-radius: 10px;
110
- border: 2px solid transparent;
111
- transition: var(--transition);
112
- }
113
-
114
- .control-group:hover {
115
- border-color: var(--secondary-color);
116
- }
117
-
118
- .control-group h3 {
119
- margin-bottom: 15px;
120
- color: var(--primary-color);
121
- font-size: 16px;
122
- font-weight: 600;
123
- }
124
-
125
- .options {
126
- display: flex;
127
- flex-direction: column;
128
- gap: 10px;
129
- }
130
-
131
- .option {
132
- display: flex;
133
- align-items: center;
134
- gap: 10px;
135
- padding: 10px;
136
- background-color: white;
137
- border-radius: 8px;
138
- cursor: pointer;
139
- transition: var(--transition);
140
- border: 2px solid transparent;
141
- }
142
-
143
- .option:hover {
144
- background-color: #e8e8e8;
145
- }
146
-
147
- .option input[type="radio"],
148
- .option input[type="checkbox"] {
149
- width: 18px;
150
- height: 18px;
151
- cursor: pointer;
152
- }
153
-
154
- .option label {
155
- cursor: pointer;
156
- font-size: 14px;
157
- color: var(--dark-color);
158
- }
159
-
160
- .slider-container {
161
- margin-top: 15px;
162
- }
163
-
164
- .slider-container label {
165
- display: block;
166
- margin-bottom: 8px;
167
- font-size: 14px;
168
- color: var(--dark-color);
169
- }
170
-
171
- .slider {
172
- width: 100%;
173
- height: 8px;
174
- border-radius: 4px;
175
- background: linear-gradient(to right, var(--secondary-color), var(--primary-color));
176
- outline: none;
177
- -webkit-appearance: none;
178
- }
179
-
180
- .slider::-webkit-slider-thumb {
181
- -webkit-appearance: none;
182
- appearance: none;
183
- width: 20px;
184
- height: 20px;
185
- border-radius: 50%;
186
- background: var(--accent-color);
187
- cursor: pointer;
188
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
189
- }
190
-
191
- .slider::-moz-range-thumb {
192
- width: 20px;
193
- height: 20px;
194
- border-radius: 50%;
195
- background: var(--accent-color);
196
- cursor: pointer;
197
- border: none;
198
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
199
- }
200
-
201
- .buttons {
202
- display: flex;
203
- justify-content: center;
204
- gap: 15px;
205
- margin-top: 30px;
206
- }
207
-
208
- button {
209
- padding: 12px 25px;
210
- border: none;
211
- border-radius: 8px;
212
- font-size: 16px;
213
- font-weight: 600;
214
- cursor: pointer;
215
- transition: var(--transition);
216
- display: flex;
217
- align-items: center;
218
- gap: 8px;
219
- }
220
-
221
- .generate-btn {
222
- background: linear-gradient(to right, var(--primary-color), var(--accent-color));
223
- color: white;
224
- }
225
-
226
- .generate-btn:hover {
227
- transform: translateY(-2px);
228
- box-shadow: 0 5px 15px rgba(108, 92, 231, 0.4);
229
- }
230
-
231
- .copy-btn {
232
- background-color: var(--light-color);
233
- color: var(--primary-color);
234
- border: 2px solid var(--primary-color);
235
- }
236
-
237
- .copy-btn:hover {
238
- background-color: var(--primary-color);
239
- color: white;
240
- }
241
-
242
- .result {
243
- margin-top: 30px;
244
- padding: 20px;
245
- background-color: var(--light-color);
246
- border-radius: 10px;
247
- min-height: 100px;
248
- border: 2px dashed var(--secondary-color);
249
- position: relative;
250
- }
251
-
252
- .result h3 {
253
- margin-bottom: 15px;
254
- color: var(--primary-color);
255
- font-size: 18px;
256
- }
257
-
258
- .prompt-text {
259
- font-size: 16px;
260
- line-height: 1.6;
261
- color: var(--dark-color);
262
- white-space: pre-wrap;
263
- word-wrap: break-word;
264
- }
265
-
266
- .copy-notification {
267
- position: fixed;
268
- bottom: 20px;
269
- right: 20px;
270
- background-color: var(--primary-color);
271
- color: white;
272
- padding: 12px 20px;
273
- border-radius: 8px;
274
- box-shadow: var(--shadow);
275
- display: none;
276
- align-items: center;
277
- gap: 8px;
278
- z-index: 1000;
279
- }
280
-
281
- .loading {
282
- display: none;
283
- justify-content: center;
284
- align-items: center;
285
- gap: 10px;
286
- margin-top: 20px;
287
- }
288
-
289
- .spinner {
290
- width: 20px;
291
- height: 20px;
292
- border: 3px solid rgba(255, 255, 255, 0.3);
293
- border-radius: 50%;
294
- border-top-color: var(--accent-color);
295
- animation: spin 1s ease-in-out infinite;
296
- }
297
-
298
- @keyframes spin {
299
- to { transform: rotate(360deg); }
300
- }
301
-
302
- .additional-options {
303
- margin-top: 20px;
304
- padding-top: 20px;
305
- border-top: 1px solid #ddd;
306
- }
307
-
308
- .additional-options h3 {
309
- margin-bottom: 15px;
310
- color: var(--primary-color);
311
- font-size: 16px;
312
- font-weight: 600;
313
- }
314
-
315
- .tags-container {
316
- display: flex;
317
- flex-wrap: wrap;
318
- gap: 8px;
319
- margin-bottom: 15px;
320
- }
321
-
322
- .tag {
323
- background-color: white;
324
- padding: 5px 12px;
325
- border-radius: 20px;
326
- font-size: 12px;
327
- color: var(--dark-color);
328
- border: 1px solid #ddd;
329
- cursor: pointer;
330
- transition: var(--transition);
331
- }
332
-
333
- .tag:hover {
334
- background-color: var(--primary-color);
335
- color: white;
336
- border-color: var(--primary-color);
337
- }
338
-
339
- .tag.active {
340
- background-color: var(--primary-color);
341
- color: white;
342
- border-color: var(--primary-color);
343
- }
344
-
345
- .custom-input {
346
- width: 100%;
347
- padding: 10px;
348
- border: 2px solid #ddd;
349
- border-radius: 8px;
350
- font-size: 14px;
351
- margin-top: 10px;
352
- resize: vertical;
353
- min-height: 60px;
354
- font-family: inherit;
355
- }
356
-
357
- .custom-input:focus {
358
- outline: none;
359
- border-color: var(--primary-color);
360
- }
361
-
362
- @media (max-width: 768px) {
363
- .container {
364
- padding: 20px;
365
- }
366
-
367
- .controls {
368
- grid-template-columns: 1fr;
369
- }
370
-
371
- header {
372
- flex-direction: column;
373
- gap: 15px;
374
- text-align: center;
375
- }
376
-
377
- .buttons {
378
- flex-direction: column;
379
- }
380
-
381
- button {
382
- width: 100%;
383
- justify-content: center;
384
- }
385
- }
386
-
387
- @media (max-width: 480px) {
388
- h1 {
389
- font-size: 22px;
390
- }
391
-
392
- .container {
393
- padding: 15px;
394
- }
395
-
396
- .control-group {
397
- padding: 15px;
398
- }
399
- }
400
- </style>
401
- </head>
402
- <body>
403
- <header>
404
- <a href="#" class="logo">
405
- <i class="fas fa-magic"></i>
406
- <span>NSFW Prompt Generator</span>
407
- </a>
408
- <a href="https://huggingface.co/spaces/akhaliq/anycoder" class="anycoder-link" target="_blank">
409
- <i class="fas fa-code"></i> Built with anycoder
410
- </a>
411
- </header>
412
-
413
- <div class="container">
414
- <h1>Generate Detailed NSFW Prompts for ZImage Turbo</h1>
415
-
416
- <div class="controls">
417
- <div class="control-group">
418
- <h3><i class="fas fa-layer-group"></i> Content Categories</h3>
419
- <div class="options">
420
- <div class="option">
421
- <input type="checkbox" id="category-fantasy" checked>
422
- <label for="category-fantasy">Fantasy/Sci-Fi</label>
423
- </div>
424
- <div class="option">
425
- <input type="checkbox" id="category-realistic" checked>
426
- <label for="category-realistic">Realistic</label>
427
- </div>
428
- <div class="option">
429
- <input type="checkbox" id="category-anime" checked>
430
- <label for="category-anime">Anime/Comic</label>
431
- </div>
432
- <div class="option">
433
- <input type="checkbox" id="category-hentai">
434
- <label for="category-hentai">Hentai</label>
435
- </div>
436
- <div class="option">
437
- <input type="checkbox" id="category-cosplay">
438
- <label for="category-cosplay">Cosplay</label>
439
- </div>
440
- </div>
441
- </div>
442
-
443
- <div class="control-group">
444
- <h3><i class="fas fa-palette"></i> Art Style</h3>
445
- <div class="options">
446
- <div class="option">
447
- <input type="radio" name="style" id="style-detailed" value="detailed" checked>
448
- <label for="style-detailed">Highly Detailed</label>
449
- </div>
450
- <div class="option">
451
- <input type="radio" name="style" id="style-artistic" value="artistic">
452
- <label for="style-artistic">Artistic</label>
453
- </div>
454
- <div class="option">
455
- <input type="radio" name="style" id="style-photorealistic" value="photorealistic">
456
- <label for="style-photorealistic">Photorealistic</label>
457
- </div>
458
- <div class="option">
459
- <input type="radio" name="style" id="style-sketch" value="sketch">
460
- <label for="style-sketch">Sketch/Line Art</label>
461
- </div>
462
- <div class="option">
463
- <input type="radio" name="style" id="style-cyberpunk" value="cyberpunk">
464
- <label for="style-cyberpunk">Cyberpunk</label>
465
- </div>
466
- </div>
467
- </div>
468
-
469
- <div class="control-group">
470
- <h3><i class="fas fa-sliders-h"></i> Intensity Level</h3>
471
- <div class="slider-container">
472
- <label for="intensity">NSFW Intensity: <span id="intensity-value">5</span>/10</label>
473
- <input type="range" id="intensity" class="slider" min="1" max="10" value="5">
474
- </div>
475
- </div>
476
-
477
- <div class="control-group">
478
- <h3><i class="fas fa-lightbulb"></i> Special Features</h3>
479
- <div class="options">
480
- <div class="option">
481
- <input type="checkbox" id="feature-multiple" checked>
482
- <label for="feature-multiple">Multiple Characters</label>
483
- </div>
484
- <div class="option">
485
- <input type="checkbox" id="feature-detailed-background">
486
- <label for="feature-detailed-background">Detailed Background</label>
487
- </div>
488
- <div class="option">
489
- <input type="checkbox" id="feature-special-effects">
490
- <label for="feature-special-effects">Special Effects</label>
491
- </div>
492
- <div class="option">
493
- <input type="checkbox" id="feature-close-up">
494
- <label for="feature-close-up">Close-up Focus</label>
495
- </div>
496
- <div class="option">
497
- <input type="checkbox" id="feature-outdoor">
498
- <label for="feature-outdoor">Outdoor Setting</label>
499
- </div>
500
- </div>
501
- </div>
502
- </div>
503
-
504
- <div class="additional-options">
505
- <h3><i class="fas fa-tags"></i> Additional Tags</h3>
506
- <p style="margin-bottom: 10px; color: #666; font-size: 14px;">Click tags to include them in your prompt</p>
507
- <div class="tags-container">
508
- <div class="tag" data-tag="ultra-detailed">Ultra Detailed</div>
509
- <div class="tag" data-tag="8k resolution">8K Resolution</div>
510
- <div class="tag" data-tag="cinematic lighting">Cinematic Lighting</div>
511
- <div class="tag" data-tag="volumetric lighting">Volumetric Lighting</div>
512
- <div class="tag" data-tag="hyper-realistic">Hyper Realistic</div>
513
- <div class="tag" data-tag="dynamic pose">Dynamic Pose</div>
514
- <div class="tag" data-tag="intricate details">Intricate Details</div>
515
- <div class="tag" data-tag="vibrant colors">Vibrant Colors</div>
516
- <div class="tag" data-tag="moody atmosphere">Moody Atmosphere</div>
517
- <div class="tag" data-tag="fantasy setting">Fantasy Setting</div>
518
- <div class="tag" data-tag="sci-fi elements">Sci-Fi Elements</div>
519
- <div class="tag" data-tag="magical effects">Magical Effects</div>
520
- </div>
521
-
522
- <h3 style="margin-top: 20px;"><i class="fas fa-edit"></i> Custom Prompt Elements</h3>
523
- <textarea class="custom-input" id="custom-prompt" placeholder="Add any specific elements you want to include in the prompt..."></textarea>
524
- </div>
525
-
526
- <div class="buttons">
527
- <button class="generate-btn" id="generate-btn">
528
- <i class="fas fa-magic"></i> Generate Prompt
529
- </button>
530
- <button class="copy-btn" id="copy-btn">
531
- <i class="fas fa-copy"></i> Copy to Clipboard
532
- </button>
533
- </div>
534
-
535
- <div class="loading" id="loading">
536
- <div class="spinner"></div>
537
- <span>Generating your NSFW prompt...</span>
538
- </div>
539
-
540
- <div class="result">
541
- <h3><i class="fas fa-file-alt"></i> Generated Prompt</h3>
542
- <div class="prompt-text" id="prompt-result">
543
- Click "Generate Prompt" to create a detailed NSFW prompt for ZImage Turbo.
544
- </div>
545
- </div>
546
- </div>
547
-
548
- <div class="copy-notification" id="copy-notification">
549
- <i class="fas fa-check-circle"></i>
550
- <span>Prompt copied to clipboard!</span>
551
- </div>
552
-
553
- <script>
554
- // DOM Elements
555
- const generateBtn = document.getElementById('generate-btn');
556
- const copyBtn = document.getElementById('copy-btn');
557
- const promptResult = document.getElementById('prompt-result');
558
- const copyNotification = document.getElementById('copy-notification');
559
- const loading = document.getElementById('loading');
560
- const intensitySlider = document.getElementById('intensity');
561
- const intensityValue = document.getElementById('intensity-value');
562
- const customPrompt = document.getElementById('custom-prompt');
563
- const tags = document.querySelectorAll('.tag');
564
-
565
- // Data for prompt generation
566
- const categories = {
567
- fantasy: [
568
- "fantasy realm", "magical kingdom", "enchanted forest", "dragon's lair",
569
- "elven city", "dwarven fortress", "ancient ruins", "mystical landscape",
570
- "otherworldly dimension", "celestial palace"
571
- ],
572
- realistic: [
573
- "modern apartment", "luxury bedroom", "beach house", "penthouse suite",
574
- "hotel room", "studio apartment", "villa", "mansion", "yacht", "private jet"
575
- ],
576
- anime: [
577
- "anime-style", "manga-inspired", "chibi proportions", "anime aesthetics",
578
- "Japanese animation style", "cel-shaded", "anime character design"
579
- ],
580
- hentai: [
581
- "hentai-style", "Japanese adult anime", "ecchi aesthetics", "hentai proportions",
582
- "adult manga style", "explicit anime", "hentai character design"
583
- ],
584
- cosplay: [
585
- "cosplay outfit", "character costume", "roleplay attire", "themed clothing",
586
- "fantasy costume", "anime cosplay", "game character outfit"
587
- ]
588
- };
589
-
590
- const styles = {
591
- detailed: [
592
- "hyper-detailed", "ultra-detailed", "intricate details", "highly detailed",
593
- "meticulously detailed", "exquisitely detailed", "richly detailed"
594
- ],
595
- artistic: [
596
- "artistic rendering", "painterly style", "watercolor texture", "oil painting style",
597
- "digital painting", "artistic composition", "masterpiece quality"
598
- ],
599
- photorealistic: [
600
- "photorealistic", "lifelike", "realistic textures", "true-to-life",
601
- "hyper-realistic", "photo-quality", "realistic rendering"
602
- ],
603
- sketch: [
604
- "sketch style", "line art", "pencil drawing", "ink sketch",
605
- "charcoal drawing", "rough sketch", "detailed linework"
606
- ],
607
- cyberpunk: [
608
- "cyberpunk aesthetic", "neon-lit", "futuristic cityscape", "high-tech environment",
609
- "cybernetic enhancements", "digital rain", "holographic elements"
610
- ]
611
- };
612
-
613
- const intensityDescriptors = {
614
- 1: ["subtle", "suggestive", "implied", "hinted", "mild"],
615
- 2: ["light", "gentle", "soft", "moderate", "tasteful"],
616
- 3: ["moderate", "balanced", "standard", "typical", "average"],
617
- 4: ["explicit", "detailed", "clear", "direct", "unambiguous"],
618
- 5: ["intense", "graphic", "detailed", "explicit", "vivid"],
619
- 6: ["very explicit", "highly detailed", "graphic", "intense", "detailed"],
620
- 7: ["extremely explicit", "highly graphic", "very detailed", "intense", "explicit"],
621
- 8: ["ultra-explicit", "extremely graphic", "highly detailed", "very intense", "explicit"],
622
- 9: ["maximum explicit", "ultra-graphic", "extremely detailed", "highly intense", "explicit"],
623
- 10: ["ultra-maximum explicit", "extremely graphic", "highly detailed", "very intense", "explicit"]
624
- };
625
-
626
- const features = {
627
- multiple: [
628
- "multiple characters", "group scene", "several people", "multiple figures",
629
- "crowd of characters", "various individuals"
630
- ],
631
- background: [
632
- "detailed background", "elaborate setting", "rich environment", "complex backdrop",
633
- "intricate scenery", "detailed surroundings"
634
- ],
635
- effects: [
636
- "special effects", "magical effects", "lighting effects", "visual effects",
637
- "atmospheric effects", "dynamic effects"
638
- ],
639
- closeup: [
640
- "close-up shot", "detailed focus", "intimate framing", "tight composition",
641
- "detailed viewpoint", "focused perspective"
642
- ],
643
- outdoor: [
644
- "outdoor setting", "natural environment", "open-air location", "exterior scene",
645
- "outside setting", "al fresco environment"
646
- ]
647
- };
648
-
649
- const additionalTags = [
650
- "ultra-detailed", "8k resolution", "cinematic lighting", "volumetric lighting",
651
- "hyper-realistic", "dynamic pose", "intricate details", "vibrant colors",
652
- "moody atmosphere", "fantasy setting", "sci-fi elements", "magical effects"
653
- ];
654
-
655
- // Selected options
656
- let selectedCategories = ['fantasy', 'realistic', 'anime'];
657
- let selectedStyle = 'detailed';
658
- let selectedFeatures = ['multiple'];
659
- let selectedTags = [];
660
- let intensityLevel = 5;
661
-
662
- // Event Listeners
663
- intensitySlider.addEventListener('input', function() {
664
- intensityLevel = parseInt(this.value);
665
- intensityValue.textContent = intensityLevel;
666
- });
667
-
668
- // Category checkboxes
669
- document.querySelectorAll('input[type="checkbox"][id^="category-"]').forEach(checkbox => {
670
- checkbox.addEventListener('change', function() {
671
- const category = this.id.replace('category-', '');
672
- if (this.checked) {
673
- if (!selectedCategories.includes(category)) {
674
- selectedCategories.push(category);
675
- }
676
- } else {
677
- selectedCategories = selectedCategories.filter(c => c !== category);
678
- }
679
- });
680
- });
681
-
682
- // Style radio buttons
683
- document.querySelectorAll('input[type="radio"][name="style"]').forEach(radio => {
684
- radio.addEventListener('change', function() {
685
- if (this.checked) {
686
- selectedStyle = this.value;
687
- }
688
- });
689
- });
690
-
691
- // Feature checkboxes
692
- document.querySelectorAll('input[type="checkbox"][id^="feature-"]').forEach(checkbox => {
693
- checkbox.addEventListener('change', function() {
694
- const feature = this.id.replace('feature-', '');
695
- if (this.checked) {
696
- if (!selectedFeatures.includes(feature)) {
697
- selectedFeatures.push(feature);
698
- }
699
- } else {
700
- selectedFeatures = selectedFeatures.filter(f => f !== feature);
701
- }
702
- });
703
- });
704
-
705
- // Tag selection
706
- tags.forEach(tag => {
707
- tag.addEventListener('click', function() {
708
- this.classList.toggle('active');
709
- const tagText = this.dataset.tag;
710
-
711
- if (this.classList.contains('active')) {
712
- if (!selectedTags.includes(tagText)) {
713
- selectedTags.push(tagText);
714
- }
715
- } else {
716
- selectedTags = selectedTags.filter(t => t !== tagText);
717
- }
718
- });
719
- });
720
-
721
- // Generate prompt
722
- generateBtn.addEventListener('click', generatePrompt);
723
-
724
- // Copy to clipboard
725
- copyBtn.addEventListener('click', function() {
726
- const promptText = promptResult.textContent;
727
-
728
- if (promptText && promptText !== "Click \"Generate Prompt\" to create a detailed NSFW prompt for ZImage Turbo.") {
729
- navigator.clipboard.writeText(promptText).then(function() {
730
- // Show notification
731
- copyNotification.style.display = 'flex';
732
-
733
- // Hide notification after 3 seconds
734
- setTimeout(function() {
735
- copyNotification.style.display = 'none';
736
- }, 3000);
737
- }).catch(function(err) {
738
- console.error('Could not copy text: ', err);
739
- });
740
- }
741
- });
742
-
743
- // Generate prompt function
744
- function generatePrompt() {
745
- loading.style.display = 'flex';
746
- promptResult.textContent = "";
747
-
748
- setTimeout(() => {
749
- // Get random elements from each selected category
750
- const categoryDescriptions = selectedCategories.map(category => {
751
- const options = categories[category];
752
- return options[Math.floor(Math.random() * options.length)];
753
- });
754
-
755
- // Get style description
756
- const styleOptions = styles[selectedStyle];
757
- const styleDescription = styleOptions[Math.floor(Math.random() * styleOptions.length)];
758
-
759
- // Get intensity descriptors
760
- const intensityDesc = intensityDescriptors[intensityLevel];
761
- const intensityAdjective = intensityDesc[Math.floor(Math.random() * intensityDesc.length)];
762
-
763
- // Get feature descriptions
764
- const featureDescriptions = selectedFeatures.map(feature => {
765
- const options = features[feature];
766
- return options[Math.floor(Math.random() * options.length)];
767
- });
768
-
769
- // Build the prompt
770
- let prompt = `Create a ${intensityAdjective} NSFW image featuring `;
771
-
772
- // Add category descriptions
773
- if (categoryDescriptions.length > 0) {
774
- prompt += categoryDescriptions.join(", ") + ", ";
775
- }
776
-
777
- // Add style description
778
- prompt += `with a ${styleDescription} art style, `;
779
-
780
- // Add feature descriptions
781
- if (featureDescriptions.length > 0) {
782
- prompt += featureDescriptions.join(", ") + ", ";
783
- }
784
-
785
- // Add intensity level
786
- prompt += `intensity level ${intensityLevel}/10, `;
787
-
788
- // Add selected tags
789
- if (selectedTags.length > 0) {
790
- prompt += selectedTags.join(", ") + ", ";
791
- }
792
-
793
- // Add custom prompt elements
794
- const customText = customPrompt.value.trim();
795
- if (customText) {
796
- prompt += customText + ", ";
797
- }
798
-
799
- // Add common NSFW prompt elements
800
- prompt += `highly detailed, ultra HD, 8K resolution, cinematic composition, professional lighting, realistic textures, `;
801
- prompt += `dynamic poses, intricate details, vibrant colors, moody atmosphere, ZImage Turbo optimized, `;
802
- prompt += `masterpiece quality, award-winning composition, photorealistic rendering`;
803
-
804
- // Clean up the prompt
805
- prompt = prompt.replace(/,\s*,/g, ', ');
806
- prompt = prompt.replace(/,\s*$/g, '');
807
- prompt = prompt.replace(/\s+,/g, ',');
808
- prompt = prompt.replace(/,\s*\./g, '.');
809
-
810
- // Display the result
811
- promptResult.textContent = prompt;
812
- loading.style.display = 'none';
813
- }, 1000);
814
- }
815
-
816
- // Initialize
817
- intensityValue.textContent = intensityLevel;
818
- </script>
819
- </body>
820
- </html>
 
1
+ I understand you're asking for clarification about my previous response. Let me explain what I meant:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ In my previous message, I provided a complete HTML file for an NSFW Prompt Generator web application. This was my interpretation of what would be most suitable based on the context of creating a tool for generating detailed prompts for ZImage Turbo.
 
 
 
 
 
4
 
5
+ The application includes:
6
+ 1. A modern, responsive UI with various customization options
7
+ 2. Multiple categories and styles to choose from
8
+ 3. An intensity slider for NSFW content
9
+ 4. Additional tags and custom input fields
10
+ 5. The ability to generate and copy prompts
 
 
11
 
12
+ If you're asking about modifying this existing code, please let me know specifically what changes you'd like to make. For example:
13
+ - Do you want to add new features?
14
+ - Should I change the styling or layout?
15
+ - Would you like different functionality?
16
+ - Are there specific elements you want to remove or modify?
 
 
 
 
 
 
 
17
 
18
+ Please provide more details about what modifications you'd like to see, and I'll be happy to update the code accordingly.