UltronBasecamp commited on
Commit
4cbacf7
·
verified ·
1 Parent(s): 9e46bf0

모든것을 초기화 하고, veo3를 이용한 영상제작툴을 만들어보자 - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +301 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Veo3
3
- emoji: 👀
4
- colorFrom: red
5
- colorTo: pink
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: veo3
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: red
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,301 @@
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="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Veo3 영상 제작 스튜디오</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/lucide@latest/dist/umd/lucide.js"></script>
9
+ <style>
10
+ @keyframes float {
11
+ 0%, 100% { transform: translateY(0px); }
12
+ 50% { transform: translateY(-10px); }
13
+ }
14
+ @keyframes pulse-glow {
15
+ 0%, 100% { box-shadow: 0 0 5px rgba(59, 130, 246, 0.5); }
16
+ 50% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.8); }
17
+ }
18
+ .float-animation {
19
+ animation: float 3s ease-in-out infinite;
20
+ }
21
+ .pulse-glow {
22
+ animation: pulse-glow 2s ease-in-out infinite;
23
+ }
24
+ .glass-effect {
25
+ background: rgba(255, 255, 255, 0.1);
26
+ backdrop-filter: blur(10px);
27
+ border: 1px solid rgba(255, 255, 255, 0.2);
28
+ }
29
+ .gradient-bg {
30
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
31
+ }
32
+ .progress-bar {
33
+ transition: width 0.3s ease;
34
+ }
35
+ .drag-area {
36
+ border: 2px dashed rgba(59, 130, 246, 0.5);
37
+ transition: all 0.3s ease;
38
+ }
39
+ .drag-area:hover {
40
+ border-color: rgba(59, 130, 246, 1);
41
+ background: rgba(59, 130, 246, 0.05);
42
+ }
43
+ .drag-area.active {
44
+ border-color: #10b981;
45
+ background: rgba(16, 185, 129, 0.1);
46
+ }
47
+ .timeline-item {
48
+ transition: all 0.3s ease;
49
+ }
50
+ .timeline-item:hover {
51
+ transform: translateY(-2px);
52
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
53
+ }
54
+ </style>
55
+ </head>
56
+ <body class="bg-gray-900 text-white min-h-screen">
57
+ <!-- 헤더 -->
58
+ <header class="glass-effect p-4">
59
+ <div class="max-w-7xl mx-auto flex items-center justify-between">
60
+ <div class="flex items-center space-x-3">
61
+ <div class="w-10 h-10 bg-blue-500 rounded-lg flex items-center justify-center">
62
+ <i data-lucide="video" class="w-6 h-6"></i>
63
+ </div>
64
+ <h1 class="text-2xl font-bold">Veo3 영상 제작 스튜디오</h1>
65
+ </div>
66
+ <div class="flex items-center space-x-4">
67
+ <button class="px-4 py-2 bg-blue-600 rounded-lg hover:bg-blue-700 transition">
68
+ <i data-lucide="save" class="w-4 h-4 inline mr-2"></i>저장
69
+ </button>
70
+ <button class="px-4 py-2 bg-green-600 rounded-lg hover:bg-green-700 transition">
71
+ <i data-lucide="play" class="w-4 h-4 inline mr-2"></i>내보내기
72
+ </button>
73
+ </div>
74
+ </div>
75
+ </header>
76
+
77
+ <!-- 메인 콘텐츠 -->
78
+ <main class="max-w-7xl mx-auto p-6 grid grid-cols-1 lg:grid-cols-3 gap-6">
79
+ <!-- 왼쪽 패널 - 프로젝트 설정 -->
80
+ <div class="glass-effect rounded-xl p-6">
81
+ <h2 class="text-xl font-semibold mb-4 flex items-center">
82
+ <i data-lucide="settings" class="w-5 h-5 mr-2"></i>프로젝트 설정
83
+ </h2>
84
+
85
+ <div class="space-y-4">
86
+ <div>
87
+ <label class="block text-sm font-medium mb-2">프로젝트 이름</label>
88
+ <input type="text" class="w-full px-3 py-2 bg-gray-800 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="나의 멋진 영상">
89
+ </div>
90
+
91
+ <div>
92
+ <label class="block text-sm font-medium mb-2">비디오 제목</label>
93
+ <input type="text" class="w-full px-3 py-2 bg-gray-800 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="AI의 놀라운 미래">
94
+ </div>
95
+
96
+ <div>
97
+ <label class="block text-sm font-medium mb-2">스타일 선택</label>
98
+ <select class="w-full px-3 py-2 bg-gray-800 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500">
99
+ <option>영화적</option>
100
+ <option>다큐멘터리</option>
101
+ <option>광고</option>
102
+ <option>교육</option>
103
+ </select>
104
+ </div>
105
+
106
+ <div>
107
+ <label class="block text-sm font-medium mb-2">길이 (초)</label>
108
+ <input type="range" min="15" max="300" value="60" class="w-full">
109
+ <span class="text-sm text-gray-400">60초</span>
110
+ </div>
111
+
112
+ <div>
113
+ <label class="block text-sm font-medium mb-2">화질</label>
114
+ <select class="w-full px-3 py-2 bg-gray-800 rounded-lg">
115
+ <option>HD (720p)</option>
116
+ <option>FHD (1080p)</option>
117
+ <option>4K (2160p)</option>
118
+ </select>
119
+ </div>
120
+ </div>
121
+ </div>
122
+
123
+ <!-- 중앙 패널 - 프롬프트 입력 -->
124
+ <div class="glass-effect rounded-xl p-6">
125
+ <h2 class="text-xl font-semibold mb-4 flex items-center">
126
+ <i data-lucide="edit-3" class="w-5 h-5 mr-2"></i>영상 프롬프트
127
+ </h2>
128
+
129
+ <div class="space-y-4">
130
+ <div>
131
+ <label class="block text-sm font-medium mb-2">메인 프롬프트</label>
132
+ <textarea class="w-full px-3 py-2 bg-gray-800 rounded-lg h-32 resize-none focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="예: 미래 도시의 하늘에서 내려다보는 드론 뷰, 네온 불빛이 반짝이는 사이버펑크 세계..."></textarea>
133
+ </div>
134
+
135
+ <div>
136
+ <label class="block text-sm font-medium mb-2">장면 설명</label>
137
+ <textarea class="w-full px-3 py-2 bg-gray-800 rounded-lg h-24 resize-none focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="특정 장면이나 순서를 설명하세요..."></textarea>
138
+ </div>
139
+
140
+ <div>
141
+ <label class="block text-sm font-medium mb-2">음악 스타일</label>
142
+ <select class="w-full px-3 py-2 bg-gray-800 rounded-lg">
143
+ <option>에픽 오케스트라</option>
144
+ <option>일렉트로닉</option>
145
+ <option>재즈</option>
146
+ <option>팝</option>
147
+ <option>힙합</option>
148
+ </select>
149
+ </div>
150
+
151
+ <button class="w-full py-3 bg-gradient-to-r from-purple-600 to-blue-600 rounded-lg hover:from-purple-700 hover:to-blue-700 transition font-semibold">
152
+ <i data-lucide="wand-2" class="w-5 h-5 inline mr-2"></i>AI로 영상 생성하기
153
+ </button>
154
+ </div>
155
+ </div>
156
+
157
+ <!-- 오른쪽 패널 - 미리보기 & 타임라인 -->
158
+ <div class="glass-effect rounded-xl p-6">
159
+ <h2 class="text-xl font-semibold mb-4 flex items-center">
160
+ <i data-lucide="eye" class="w-5 h-5 mr-2"></i>미리보기
161
+ </h2>
162
+
163
+ <!-- 비디오 미리보어 -->
164
+ <div class="aspect-video bg-gray-800 rounded-lg mb-4 flex items-center justify-center relative">
165
+ <div class="absolute inset-0 bg-gradient-to-br from-purple-900/20 to-blue-900/20 rounded-lg"></div>
166
+ <div class="text-center z-10">
167
+ <i data-lucide="play-circle" class="w-16 h-16 mx-auto mb-2 text-gray-400"></i>
168
+ <p class="text-gray-400">미리보기 준비중...</p>
169
+ </div>
170
+ </div>
171
+
172
+ <!-- 진행률 -->
173
+ <div class="mb-4">
174
+ <div class="flex justify-between text-sm mb-1">
175
+ <span>생성 진행률</span>
176
+ <span id="progressText">0%</span>
177
+ </div>
178
+ <div class="w-full bg-gray-700 rounded-full h-2">
179
+ <div id="progressBar" class="bg-blue-500 h-2 rounded-full progress-bar" style="width: 0%"></div>
180
+ </div>
181
+ </div>
182
+
183
+ <!-- 타임라인 -->
184
+ <div class="space-y-2">
185
+ <h3 class="text-sm font-medium">타임라인</h3>
186
+ <div class="space-y-2 max-h-64 overflow-y-auto">
187
+ <div class="timeline-item bg-gray-800 rounded-lg p-3">
188
+ <div class="flex items-center justify-between">
189
+ <span class="text-sm">도시의 새벽 장면</span>
190
+ <span class="text-xs text-gray-400">0-15초</span>
191
+ </div>
192
+ </div>
193
+ <div class="timeline-item bg-gray-800 rounded-lg p-3">
194
+ <div class="flex items-center justify-between">
195
+ <span class="text-sm">드론이 날아가는 장면</span>
196
+ <span class="text-xs text-gray-400">15-30초</span>
197
+ </div>
198
+ </div>
199
+ <div class="timeline-item bg-gray-800 rounded-lg p-3">
200
+ <div class="flex items-center justify-between">
201
+ <span class="text-sm">네온 불빛의 교차로</span>
202
+ <span class="text-xs text-gray-400">30-45초</span>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </main>
209
+
210
+ <!-- 하단 드래그 앤 드롭 영역 -->
211
+ <footer class="max-w-7xl mx-auto px-6 pb-6">
212
+ <div class="glass-effect rounded-xl p-6">
213
+ <h3 class="text-lg font-semibold mb-4 flex items-center">
214
+ <i data-lucide="upload-cloud" class="w-5 h-5 mr-2"></i>리소스 업로드
215
+ </h3>
216
+ <div class="drag-area rounded-lg p-8 text-center">
217
+ <i data-lucide="cloud-upload" class="w-12 h-12 mx-auto mb-3 text-gray-400"></i>
218
+ <p class="text-gray-400 mb-2">이미지, 비디오, 오디오 파일을 드래그하거나 클릭하여 업로드</p>
219
+ <p class="text-sm text-gray-500">지원 형식: JPG, PNG, MP4, MP3</p>
220
+ <input type="file" multiple class="hidden" id="fileInput" accept="image/*,video/*,audio/*">
221
+ </div>
222
+ </div>
223
+ </footer>
224
+
225
+ <!-- 모달 -->
226
+ <div id="modal" class="fixed inset-0 bg-black bg-opacity-50 hidden items-center justify-center">
227
+ <div class="glass-effect rounded-xl p-6 max-w-md">
228
+ <h3 class="text-lg font-semibold mb-4">생성 완료!</h3>
229
+ <p class="text-gray-400 mb-4">영상 생성이 완료되었습니다. 다운로드하시겠습니까?</p>
230
+ <div class="flex space-x-3">
231
+ <button class="flex-1 py-2 bg-blue-600 rounded-lg hover:bg-blue-700">다운로드</button>
232
+ <button class="flex-1 py-2 bg-gray-700 rounded-lg hover:bg-gray-600" onclick="closeModal()">닫기</button>
233
+ </div>
234
+ </div>
235
+ </div>
236
+
237
+ <script>
238
+ // Lucide 아이콘 초기화
239
+ lucide.createIcons();
240
+
241
+ // 진행률 시뮬레이션
242
+ let progress = 0;
243
+ const progressBar = document.getElementById('progressBar');
244
+ const progressText = document.getElementById('progressText');
245
+
246
+ function simulateProgress() {
247
+ const interval = setInterval(() => {
248
+ progress += Math.random() * 10;
249
+ if (progress >= 100) {
250
+ progress = 100;
251
+ clearInterval(interval);
252
+ setTimeout(() => {
253
+ document.getElementById('modal').classList.remove('hidden');
254
+ document.getElementById('modal').classList.add('flex');
255
+ }, 500);
256
+ }
257
+ progressBar.style.width = progress + '%';
258
+ progressText.textContent = Math.floor(progress) + '%';
259
+ }, 500);
260
+ }
261
+
262
+ // 드래그 앤 드롭
263
+ const dragArea = document.querySelector('.drag-area');
264
+ const fileInput = document.getElementById('fileInput');
265
+
266
+ dragArea.addEventListener('click', () => fileInput.click());
267
+
268
+ dragArea.addEventListener('dragover', (e) => {
269
+ e.preventDefault();
270
+ dragArea.classList.add('active');
271
+ });
272
+
273
+ dragArea.addEventListener('dragleave', () => {
274
+ dragArea.classList.remove('active');
275
+ });
276
+
277
+ dragArea.addEventListener('drop', (e) => {
278
+ e.preventDefault();
279
+ dragArea.classList.remove('active');
280
+ console.log('파일 업로드:', e.dataTransfer.files);
281
+ });
282
+
283
+ // AI 생성 버튼 클릭
284
+ document.querySelector('button').addEventListener('click', simulateProgress);
285
+
286
+ // 모달 닫기
287
+ function closeModal() {
288
+ document.getElementById('modal').classList.add('hidden');
289
+ document.getElementById('modal').classList.remove('flex');
290
+ }
291
+
292
+ // 반응형 메뉴
293
+ const rangeInput = document.querySelector('input[type="range"]');
294
+ const rangeValue = document.querySelector('.text-sm.text-gray-400');
295
+
296
+ rangeInput.addEventListener('input', (e) => {
297
+ rangeValue.textContent = e.target.value + '초';
298
+ });
299
+ </script>
300
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=UltronBasecamp/veo3" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
301
+ </html>