Falconbridge commited on
Commit
426c52e
·
verified ·
1 Parent(s): 37174b8

Make the person dance in realistic video

Browse files
Files changed (2) hide show
  1. dance-styles.html +161 -0
  2. index.html +68 -9
dance-styles.html ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>Dance Styles - StripAI Magic</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/feather-icons"></script>
9
+ </head>
10
+ <body class="bg-gray-50 min-h-screen">
11
+ <div class="gradient-bg text-white py-6 shadow-lg">
12
+ <div class="container mx-auto px-4">
13
+ <div class="flex items-center justify-between">
14
+ <div class="flex items-center space-x-2">
15
+ <i data-feather="magic" class="w-8 h-8"></i>
16
+ <h1 class="text-2xl font-bold">StripAI Magic</h1>
17
+ </div>
18
+ <nav>
19
+ <ul class="flex space-x-6">
20
+ <li><a href="index.html" class="hover:underline">Home</a></li>
21
+ <li><a href="#" class="hover:underline">Pricing</a></li>
22
+ <li><a href="dance-styles.html" class="hover:underline font-bold">Dance Styles</a></li>
23
+ <li><a href="#" class="hover:underline">FAQ</a></li>
24
+ </ul>
25
+ </nav>
26
+ </div>
27
+ </div>
28
+ </div>
29
+
30
+ <main class="container mx-auto px-4 py-12">
31
+ <h2 class="text-3xl font-bold text-center text-gray-800 mb-8">Available Dance Styles</h2>
32
+
33
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
34
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
35
+ <div class="relative h-48 overflow-hidden">
36
+ <video autoplay loop muted class="w-full h-full object-cover">
37
+ <source src="https://dance-ai-demo.s3.amazonaws.com/hiphop.mp4" type="video/mp4">
38
+ </video>
39
+ </div>
40
+ <div class="p-6">
41
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Hip Hop</h3>
42
+ <p class="text-gray-600 mb-4">Urban street dance style with popping, locking and breaking moves.</p>
43
+ <button class="w-full bg-purple-600 hover:bg-purple-700 text-white py-2 px-4 rounded-lg transition">
44
+ Try This Style
45
+ </button>
46
+ </div>
47
+ </div>
48
+
49
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
50
+ <div class="relative h-48 overflow-hidden">
51
+ <video autoplay loop muted class="w-full h-full object-cover">
52
+ <source src="https://dance-ai-demo.s3.amazonaws.com/salsa.mp4" type="video/mp4">
53
+ </video>
54
+ </div>
55
+ <div class="p-6">
56
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Salsa</h3>
57
+ <p class="text-gray-600 mb-4">Latin dance with flowing movements and quick footwork patterns.</p>
58
+ <button class="w-full bg-purple-600 hover:bg-purple-700 text-white py-2 px-4 rounded-lg transition">
59
+ Try This Style
60
+ </button>
61
+ </div>
62
+ </div>
63
+
64
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
65
+ <div class="relative h-48 overflow-hidden">
66
+ <video autoplay loop muted class="w-full h-full object-cover">
67
+ <source src="https://dance-ai-demo.s3.amazonaws.com/ballet.mp4" type="video/mp4">
68
+ </video>
69
+ </div>
70
+ <div class="p-6">
71
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Ballet</h3>
72
+ <p class="text-gray-600 mb-4">Classical dance form with graceful, flowing movements and precise technique.</p>
73
+ <button class="w-full bg-purple-600 hover:bg-purple-700 text-white py-2 px-4 rounded-lg transition">
74
+ Try This Style
75
+ </button>
76
+ </div>
77
+ </div>
78
+
79
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
80
+ <div class="relative h-48 overflow-hidden">
81
+ <video autoplay loop muted class="w-full h-full object-cover">
82
+ <source src="https://dance-ai-demo.s3.amazonaws.com/breakdance.mp4" type="video/mp4">
83
+ </video>
84
+ </div>
85
+ <div class="p-6">
86
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Breakdance</h3>
87
+ <p class="text-gray-600 mb-4">Energetic street dance with power moves, freezes and floor work.</p>
88
+ <button class="w-full bg-purple-600 hover:bg-purple-700 text-white py-2 px-4 rounded-lg transition">
89
+ Try This Style
90
+ </button>
91
+ </div>
92
+ </div>
93
+
94
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
95
+ <div class="relative h-48 overflow-hidden">
96
+ <video autoplay loop muted class="w-full h-full object-cover">
97
+ <source src="https://dance-ai-demo.s3.amazonaws.com/twerk.mp4" type="video/mp4">
98
+ </video>
99
+ </div>
100
+ <div class="p-6">
101
+ <h3 class="text-xl font-bold text-gray-800 mb-2">Twerk</h3>
102
+ <p class="text-gray-600 mb-4">Booty-shaking dance style focusing on hip and butt movements.</p>
103
+ <button class="w-full bg-purple-600 hover:bg-purple-700 text-white py-2 px-4 rounded-lg transition">
104
+ Try This Style
105
+ </button>
106
+ </div>
107
+ </div>
108
+
109
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
110
+ <div class="relative h-48 overflow-hidden">
111
+ <video autoplay loop muted class="w-full h-full object-cover">
112
+ <source src="https://dance-ai-demo.s3.amazonaws.com/kpop.mp4" type="video/mp4">
113
+ </video>
114
+ </div>
115
+ <div class="p-6">
116
+ <h3 class="text-xl font-bold text-gray-800 mb-2">K-Pop</h3>
117
+ <p class="text-gray-600 mb-4">Energetic Korean pop dance with synchronized group formations.</p>
118
+ <button class="w-full bg-purple-600 hover:bg-purple-700 text-white py-2 px-4 rounded-lg transition">
119
+ Try This Style
120
+ </button>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ </main>
125
+
126
+ <footer class="bg-gray-800 text-white py-8 mt-16">
127
+ <div class="container mx-auto px-4">
128
+ <div class="flex flex-col md:flex-row justify-between items-center">
129
+ <div class="mb-4 md:mb-0">
130
+ <div class="flex items-center space-x-2">
131
+ <i data-feather="magic" class="w-6 h-6"></i>
132
+ <span class="text-xl font-bold">StripAI Magic</span>
133
+ </div>
134
+ <p class="text-gray-400 mt-2">The future of image and video AI processing</p>
135
+ </div>
136
+ <div class="text-center md:text-right">
137
+ <p class="text-gray-400">© 2023 StripAI Magic. All rights reserved.</p>
138
+ <div class="flex justify-center md:justify-end space-x-4 mt-2">
139
+ <a href="#" class="text-gray-400 hover:text-white">Privacy Policy</a>
140
+ <a href="#" class="text-gray-400 hover:text-white">Terms of Service</a>
141
+ <a href="#" class="text-gray-400 hover:text-white">Contact</a>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ </footer>
147
+
148
+ <script>
149
+ document.addEventListener('DOMContentLoaded', function() {
150
+ feather.replace();
151
+
152
+ // Make "Try This Style" buttons link back to main page
153
+ document.querySelectorAll('button').forEach(btn => {
154
+ btn.addEventListener('click', () => {
155
+ window.location.href = 'index.html';
156
+ });
157
+ });
158
+ });
159
+ </script>
160
+ </body>
161
+ </html>
index.html CHANGED
@@ -41,10 +41,11 @@
41
  </div>
42
  <nav>
43
  <ul class="flex space-x-6">
44
- <li><a href="#" class="hover:underline">Home</a></li>
45
- <li><a href="#" class="hover:underline">Pricing</a></li>
46
- <li><a href="#" class="hover:underline">FAQ</a></li>
47
- </ul>
 
48
  </nav>
49
  </div>
50
  </div>
@@ -97,8 +98,26 @@
97
  </div>
98
  </div>
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  <div class="text-center">
101
- <button id="processBtn" class="bg-pink-600 hover:bg-pink-700 text-white font-bold py-3 px-8 rounded-lg text-lg transition transform hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed" disabled>
102
  <span id="btnText">Process Image</span>
103
  <i data-feather="loader" class="w-5 h-5 ml-2 animate-spin hidden" id="spinner"></i>
104
  </button>
@@ -194,8 +213,10 @@
194
 
195
  const uploadArea = document.getElementById('uploadArea');
196
  const fileInput = document.getElementById('fileInput');
197
- const processBtn = document.getElementById('processBtn');
198
- const originalImage = document.getElementById('originalImage');
 
 
199
  const resultImage = document.getElementById('resultImage');
200
  const placeholderText = document.getElementById('placeholderText');
201
  const resultContainer = document.getElementById('resultContainer');
@@ -215,6 +236,40 @@
215
  `;
216
  document.querySelector('main').insertBefore(warningDiv, document.querySelector('main').firstChild);
217
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  uploadArea.addEventListener('dragover', function(e) {
219
  e.preventDefault();
220
  this.classList.add('border-pink-500', 'bg-pink-50');
@@ -242,8 +297,12 @@ uploadArea.addEventListener('dragover', function(e) {
242
 
243
  reader.onload = function(e) {
244
  originalImage.src = e.target.result;
245
- processBtn.disabled = false;
246
- uploadArea.innerHTML = `
 
 
 
 
247
  <div class="flex items-center justify-center space-x-4">
248
  <img src="${e.target.result}" alt="Preview" class="h-16 w-16 object-cover rounded-lg">
249
  <div class="text-left">
 
41
  </div>
42
  <nav>
43
  <ul class="flex space-x-6">
44
+ <li><a href="#" class="hover:underline">Home</a></li>
45
+ <li><a href="#" class="hover:underline">Pricing</a></li>
46
+ <li><a href="#" class="hover:underline">Dance Styles</a></li>
47
+ <li><a href="#" class="hover:underline">FAQ</a></li>
48
+ </ul>
49
  </nav>
50
  </div>
51
  </div>
 
98
  </div>
99
  </div>
100
 
101
+ <div class="text-center mb-6">
102
+ <h4 class="text-lg font-medium text-gray-700 mb-3">AI Dance Mode</h4>
103
+ <div class="flex justify-center space-x-4">
104
+ <button id="danceBtn" class="bg-green-600 hover:bg-green-700 text-white font-medium py-2 px-6 rounded-lg transition transform hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed" disabled>
105
+ <i data-feather="activity" class="w-4 h-4 mr-2"></i>
106
+ Make Me Dance
107
+ </button>
108
+ <select id="danceStyle" class="p-2 border rounded-lg" disabled>
109
+ <option>Select Dance Style</option>
110
+ <option>Hip Hop</option>
111
+ <option>Salsa</option>
112
+ <option>Ballet</option>
113
+ <option>Breakdance</option>
114
+ <option>Twerk</option>
115
+ </select>
116
+ </div>
117
+ </div>
118
+
119
  <div class="text-center">
120
+ <button id="processBtn" class="bg-pink-600 hover:bg-pink-700 text-white font-bold py-3 px-8 rounded-lg text-lg transition transform hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed" disabled>
121
  <span id="btnText">Process Image</span>
122
  <i data-feather="loader" class="w-5 h-5 ml-2 animate-spin hidden" id="spinner"></i>
123
  </button>
 
213
 
214
  const uploadArea = document.getElementById('uploadArea');
215
  const fileInput = document.getElementById('fileInput');
216
+ const processBtn = document.getElementById('processBtn');
217
+ const danceBtn = document.getElementById('danceBtn');
218
+ const danceStyle = document.getElementById('danceStyle');
219
+ const originalImage = document.getElementById('originalImage');
220
  const resultImage = document.getElementById('resultImage');
221
  const placeholderText = document.getElementById('placeholderText');
222
  const resultContainer = document.getElementById('resultContainer');
 
236
  `;
237
  document.querySelector('main').insertBefore(warningDiv, document.querySelector('main').firstChild);
238
  });
239
+
240
+ // Dance functionality
241
+ danceBtn.addEventListener('click', function() {
242
+ if (!fileInput.files[0]) return;
243
+
244
+ danceBtn.innerHTML = '<i data-feather="loader" class="w-4 h-4 mr-2 animate-spin"></i> Generating Dance Video';
245
+ danceBtn.disabled = true;
246
+
247
+ // Simulate dance video generation
248
+ setTimeout(() => {
249
+ const videoContainer = document.createElement('div');
250
+ videoContainer.className = 'mt-6 border rounded-lg overflow-hidden bg-gray-100';
251
+ videoContainer.innerHTML = `
252
+ <video controls autoplay loop class="w-full" id="danceVideo">
253
+ <source src="https://dance-ai-demo.s3.amazonaws.com/${danceStyle.value.toLowerCase()}.mp4" type="video/mp4">
254
+ Your browser does not support the video tag.
255
+ </video>
256
+ <div class="p-4 bg-gray-800 text-white text-center">
257
+ <p>Your AI-generated ${danceStyle.value} dance video</p>
258
+ <button class="mt-2 bg-green-600 hover:bg-green-700 text-white font-medium py-2 px-6 rounded-lg transition">
259
+ <i data-feather="download" class="w-4 h-4 mr-2"></i>
260
+ Download Video
261
+ </button>
262
+ </div>
263
+ `;
264
+
265
+ // Insert after result container
266
+ resultContainer.parentNode.insertBefore(videoContainer, resultContainer.nextSibling);
267
+
268
+ danceBtn.innerHTML = '<i data-feather="activity" class="w-4 h-4 mr-2"></i> Make Me Dance';
269
+ danceBtn.disabled = false;
270
+ feather.replace();
271
+ }, 4000);
272
+ });
273
  uploadArea.addEventListener('dragover', function(e) {
274
  e.preventDefault();
275
  this.classList.add('border-pink-500', 'bg-pink-50');
 
297
 
298
  reader.onload = function(e) {
299
  originalImage.src = e.target.result;
300
+ processBtn.disabled = false;
301
+ danceBtn.disabled = false;
302
+ danceStyle.disabled = false;
303
+ danceBtn.disabled = false;
304
+ danceStyle.disabled = false;
305
+ uploadArea.innerHTML = `
306
  <div class="flex items-center justify-center space-x-4">
307
  <img src="${e.target.result}" alt="Preview" class="h-16 w-16 object-cover rounded-lg">
308
  <div class="text-left">