Fadi66 commited on
Commit
f1633e0
·
verified ·
1 Parent(s): 9aee6f3

https://app.klingai.com/global/image-to-video/frame-mode/new?ra=5&klingVersion=2.5

Browse files
Files changed (2) hide show
  1. README.md +8 -5
  2. index.html +285 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Frametoflow Video Wizard
3
- emoji: 🔥
4
- colorFrom: blue
5
- colorTo: yellow
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: FrameToFlow Video Wizard 🎥
3
+ colorFrom: green
4
+ colorTo: purple
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://deepsite.hf.co).
index.html CHANGED
@@ -1,19 +1,286 @@
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>FrameToFlow | Image to Video Conversion</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/feather-icons"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.waves.min.js"></script>
11
+ <style>
12
+ #vanta-bg {
13
+ position: absolute;
14
+ width: 100%;
15
+ height: 100%;
16
+ z-index: -1;
17
+ }
18
+ .dropzone {
19
+ border: 2px dashed rgba(255, 255, 255, 0.3);
20
+ transition: all 0.3s ease;
21
+ }
22
+ .dropzone-active {
23
+ border-color: #4F46E5;
24
+ background-color: rgba(79, 70, 229, 0.1);
25
+ }
26
+ .progress-ring__circle {
27
+ transition: stroke-dashoffset 0.35s;
28
+ transform: rotate(-90deg);
29
+ transform-origin: 50% 50%;
30
+ }
31
+ </style>
32
+ </head>
33
+ <body class="bg-gray-900 text-white min-h-screen flex flex-col">
34
+ <div id="vanta-bg"></div>
35
+
36
+ <header class="py-6 px-4 sm:px-6 lg:px-8">
37
+ <div class="max-w-7xl mx-auto flex justify-between items-center">
38
+ <div class="flex items-center space-x-2">
39
+ <i data-feather="film" class="w-8 h-8 text-indigo-500"></i>
40
+ <h1 class="text-2xl font-bold bg-gradient-to-r from-indigo-400 to-purple-500 bg-clip-text text-transparent">FrameToFlow</h1>
41
+ </div>
42
+ <nav class="hidden md:flex space-x-8">
43
+ <a href="#" class="hover:text-indigo-400 transition">Home</a>
44
+ <a href="#" class="hover:text-indigo-400 transition">Features</a>
45
+ <a href="#" class="hover:text-indigo-400 transition">Pricing</a>
46
+ <a href="#" class="hover:text-indigo-400 transition">Docs</a>
47
+ </nav>
48
+ <button class="bg-indigo-600 hover:bg-indigo-700 px-4 py-2 rounded-lg transition flex items-center space-x-2">
49
+ <span>Get Started</span>
50
+ <i data-feather="arrow-right" class="w-4 h-4"></i>
51
+ </button>
52
+ </div>
53
+ </header>
54
+
55
+ <main class="flex-grow flex items-center justify-center px-4 sm:px-6 lg:px-8">
56
+ <div class="max-w-4xl w-full mx-auto">
57
+ <div class="bg-gray-800 bg-opacity-60 backdrop-blur-lg rounded-2xl p-8 shadow-2xl border border-gray-700">
58
+ <div class="text-center mb-10">
59
+ <h2 class="text-3xl font-bold mb-2">Transform Images into Stunning Videos</h2>
60
+ <p class="text-gray-300 max-w-2xl mx-auto">Upload your frames and let our AI create smooth, professional videos automatically</p>
61
+ </div>
62
+
63
+ <div id="dropzone" class="dropzone rounded-xl p-10 text-center cursor-pointer mb-8">
64
+ <div class="flex flex-col items-center justify-center space-y-4">
65
+ <i data-feather="upload-cloud" class="w-12 h-12 text-indigo-400"></i>
66
+ <h3 class="text-xl font-medium">Drag & Drop your images here</h3>
67
+ <p class="text-gray-400">or click to browse files</p>
68
+ <input type="file" id="fileInput" class="hidden" accept="image/*" multiple>
69
+ </div>
70
+ </div>
71
+
72
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
73
+ <div class="bg-gray-700 bg-opacity-50 p-4 rounded-lg border border-gray-600">
74
+ <div class="flex items-center space-x-3 mb-3">
75
+ <div class="p-2 bg-indigo-900 bg-opacity-40 rounded-lg">
76
+ <i data-feather="settings" class="w-5 h-5 text-indigo-400"></i>
77
+ </div>
78
+ <h4 class="font-medium">Frame Rate</h4>
79
+ </div>
80
+ <select class="w-full bg-gray-800 border border-gray-600 rounded-md px-3 py-2 text-sm">
81
+ <option>24 FPS (Cinematic)</option>
82
+ <option selected>30 FPS (Standard)</option>
83
+ <option>60 FPS (Smooth)</option>
84
+ </select>
85
+ </div>
86
+
87
+ <div class="bg-gray-700 bg-opacity-50 p-4 rounded-lg border border-gray-600">
88
+ <div class="flex items-center space-x-3 mb-3">
89
+ <div class="p-2 bg-indigo-900 bg-opacity-40 rounded-lg">
90
+ <i data-feather="clock" class="w-5 h-5 text-indigo-400"></i>
91
+ </div>
92
+ <h4 class="font-medium">Transition Style</h4>
93
+ </div>
94
+ <select class="w-full bg-gray-800 border border-gray-600 rounded-md px-3 py-2 text-sm">
95
+ <option selected>Smooth Fade</option>
96
+ <option>Slide Left</option>
97
+ <option>Slide Right</option>
98
+ <option>Zoom In</option>
99
+ </select>
100
+ </div>
101
+
102
+ <div class="bg-gray-700 bg-opacity-50 p-4 rounded-lg border border-gray-600">
103
+ <div class="flex items-center space-x-3 mb-3">
104
+ <div class="p-2 bg-indigo-900 bg-opacity-40 rounded-lg">
105
+ <i data-feather="music" class="w-5 h-5 text-indigo-400"></i>
106
+ </div>
107
+ <h4 class="font-medium">Background Music</h4>
108
+ </div>
109
+ <select class="w-full bg-gray-800 border border-gray-600 rounded-md px-3 py-2 text-sm">
110
+ <option selected>None</option>
111
+ <option>Cinematic</option>
112
+ <option>Upbeat</option>
113
+ <option>Calm</option>
114
+ </select>
115
+ </div>
116
+ </div>
117
+
118
+ <div class="flex justify-center">
119
+ <button id="processBtn" class="bg-gradient-to-r from-indigo-500 to-purple-600 px-6 py-3 rounded-lg font-medium flex items-center space-x-2 hover:opacity-90 transition">
120
+ <span>Generate Video</span>
121
+ <i data-feather="play" class="w-4 h-4"></i>
122
+ </button>
123
+ </div>
124
+
125
+ <div id="progressContainer" class="hidden mt-8">
126
+ <div class="flex items-center justify-center mb-4 space-x-4">
127
+ <svg class="w-12 h-12" viewBox="0 0 36 36">
128
+ <path
129
+ d="M18 2.0845
130
+ a 15.9155 15.9155 0 0 1 0 31.831
131
+ a 15.9155 15.9155 0 0 1 0 -31.831"
132
+ fill="none"
133
+ stroke="#333"
134
+ stroke-width="2"
135
+ stroke-dasharray="100, 100"
136
+ />
137
+ <path
138
+ class="progress-ring__circle"
139
+ d="M18 2.0845
140
+ a 15.9155 15.9155 0 0 1 0 31.831
141
+ a 15.9155 15.9155 0 0 1 0 -31.831"
142
+ fill="none"
143
+ stroke="#4F46E5"
144
+ stroke-width="2"
145
+ stroke-dasharray="0, 100"
146
+ />
147
+ </svg>
148
+ <span id="progressText" class="font-medium">Processing...</span>
149
+ </div>
150
+ <p class="text-center text-gray-400 text-sm">Please wait while we create your video masterpiece</p>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </main>
155
+
156
+ <footer class="py-6 px-4 sm:px-6 lg:px-8 text-gray-400 text-sm">
157
+ <div class="max-w-7xl mx-auto flex flex-col md:flex-row justify-between items-center">
158
+ <div class="mb-4 md:mb-0">
159
+ © 2023 FrameToFlow. All rights reserved.
160
+ </div>
161
+ <div class="flex space-x-6">
162
+ <a href="#" class="hover:text-indigo-400 transition">Terms</a>
163
+ <a href="#" class="hover:text-indigo-400 transition">Privacy</a>
164
+ <a href="#" class="hover:text-indigo-400 transition">Contact</a>
165
+ </div>
166
+ </div>
167
+ </footer>
168
+
169
+ <script>
170
+ // Initialize Vanta.js background
171
+ VANTA.WAVES({
172
+ el: "#vanta-bg",
173
+ mouseControls: true,
174
+ touchControls: true,
175
+ gyroControls: false,
176
+ minHeight: 200.00,
177
+ minWidth: 200.00,
178
+ scale: 1.00,
179
+ scaleMobile: 1.00,
180
+ color: 0x3b275f,
181
+ shininess: 35.00,
182
+ waveHeight: 15.00,
183
+ waveSpeed: 0.85,
184
+ zoom: 0.85
185
+ });
186
+
187
+ // Initialize Feather Icons
188
+ feather.replace();
189
+
190
+ // Dropzone functionality
191
+ const dropzone = document.getElementById('dropzone');
192
+ const fileInput = document.getElementById('fileInput');
193
+ const processBtn = document.getElementById('processBtn');
194
+ const progressContainer = document.getElementById('progressContainer');
195
+ const progressText = document.getElementById('progressText');
196
+ const progressCircle = document.querySelector('.progress-ring__circle');
197
+ const radius = progressCircle.r.baseVal.value;
198
+ const circumference = 2 * Math.PI * radius;
199
+
200
+ progressCircle.style.strokeDasharray = `${circumference} ${circumference}`;
201
+ progressCircle.style.strokeDashoffset = circumference;
202
+
203
+ dropzone.addEventListener('click', () => fileInput.click());
204
+
205
+ fileInput.addEventListener('change', () => {
206
+ if (fileInput.files.length > 0) {
207
+ dropzone.classList.add('dropzone-active');
208
+ dropzone.innerHTML = `
209
+ <div class="flex flex-col items-center space-y-3">
210
+ <i data-feather="check-circle" class="w-10 h-10 text-green-400"></i>
211
+ <h3 class="text-lg font-medium">${fileInput.files.length} files selected</h3>
212
+ <p class="text-sm text-gray-400">Ready to process</p>
213
+ </div>
214
+ `;
215
+ feather.replace();
216
+ }
217
+ });
218
+
219
+ dropzone.addEventListener('dragover', (e) => {
220
+ e.preventDefault();
221
+ dropzone.classList.add('dropzone-active');
222
+ });
223
+
224
+ dropzone.addEventListener('dragleave', () => {
225
+ dropzone.classList.remove('dropzone-active');
226
+ });
227
+
228
+ dropzone.addEventListener('drop', (e) => {
229
+ e.preventDefault();
230
+ dropzone.classList.remove('dropzone-active');
231
+ fileInput.files = e.dataTransfer.files;
232
+
233
+ if (fileInput.files.length > 0) {
234
+ dropzone.innerHTML = `
235
+ <div class="flex flex-col items-center space-y-3">
236
+ <i data-feather="check-circle" class="w-10 h-10 text-green-400"></i>
237
+ <h3 class="text-lg font-medium">${fileInput.files.length} files selected</h3>
238
+ <p class="text-sm text-gray-400">Ready to process</p>
239
+ </div>
240
+ `;
241
+ feather.replace();
242
+ }
243
+ });
244
+
245
+ // Process button simulation
246
+ processBtn.addEventListener('click', () => {
247
+ if (!fileInput.files || fileInput.files.length === 0) {
248
+ alert('Please select some images first!');
249
+ return;
250
+ }
251
+
252
+ processBtn.disabled = true;
253
+ progressContainer.classList.remove('hidden');
254
+
255
+ let progress = 0;
256
+ const interval = setInterval(() => {
257
+ progress += Math.random() * 5;
258
+ if (progress > 100) progress = 100;
259
+
260
+ const offset = circumference - (progress / 100) * circumference;
261
+ progressCircle.style.strokeDashoffset = offset;
262
+ progressText.textContent = `Processing ${Math.floor(progress)}%`;
263
+
264
+ if (progress === 100) {
265
+ clearInterval(interval);
266
+ setTimeout(() => {
267
+ progressText.textContent = 'Done! Your video is ready';
268
+ processBtn.disabled = false;
269
+
270
+ // Show download button
271
+ progressContainer.innerHTML += `
272
+ <div class="mt-6 flex justify-center">
273
+ <button class="bg-green-600 hover:bg-green-700 px-6 py-3 rounded-lg font-medium flex items-center space-x-2 transition">
274
+ <span>Download Video</span>
275
+ <i data-feather="download" class="w-4 h-4"></i>
276
+ </button>
277
+ </div>
278
+ `;
279
+ feather.replace();
280
+ }, 500);
281
+ }
282
+ }, 300);
283
+ });
284
+ </script>
285
+ </body>
286
  </html>