deddytoyota commited on
Commit
2fc9571
·
verified ·
1 Parent(s): c4d48a2

Update frontend/index.html

Browse files
Files changed (1) hide show
  1. frontend/index.html +49 -55
frontend/index.html CHANGED
@@ -1,5 +1,5 @@
1
  <!DOCTYPE html>
2
- <html lang="zh-CN">
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -13,72 +13,68 @@
13
  <header class="app-header">
14
  <h1>VEO Video Generator</h1>
15
  <div class="header-actions">
16
- <button id="sound-toggle-btn" class="sound-toggle-button" title="提示音开关">
17
  <i data-feather="volume-2"></i>
18
  </button>
19
  <button id="save-video-btn" class="save-button" disabled>
20
  <i data-feather="save"></i>
21
- <span>Halo</span>
22
  </button>
23
  <button id="generate-btn" class="generate-button">
24
  <i data-feather="play"></i>
25
- <span>生成视频</span>
26
  </button>
27
  </div>
28
  </header>
29
  <main class="main-content" id="video-form">
30
  <div class="settings-panel-left">
31
  <div class="panel">
32
- <h2 class="panel-title">核心参数</h2>
33
  <div class="form-group">
34
  <label for="api-key">Vertex Key</label>
35
  <div class="key-input-container">
36
- <input type="password" id="api-key" name="api-key" class="form-input" placeholder="选择或输入您的 Key">
37
  <div class="key-actions">
38
- <button id="save-key-btn" class="icon-btn" title="保存当前 Key">
39
  <i data-feather="plus-circle"></i>
40
  </button>
41
  <div class="saved-keys-dropdown">
42
- <button id="saved-keys-toggle" class="icon-btn" title="查看已保存的 Key">
43
  <i data-feather="key"></i>
44
  </button>
45
- <div id="saved-keys-list" class="saved-prompts-list hidden">
46
- <!-- Saved keys will be dynamically inserted here -->
47
- </div>
48
  </div>
49
  </div>
50
  </div>
51
  </div>
52
  <div class="form-group">
53
  <div class="prompt-header">
54
- <label for="prompt">正向提示词 (Prompt)</label>
55
  <div class="prompt-actions">
56
- <button id="save-prompt-btn" class="icon-btn" title="保存当前提示词">
57
  <i data-feather="plus-circle"></i>
58
  </button>
59
  <div class="saved-prompts-dropdown">
60
- <button id="saved-prompts-toggle" class="icon-btn" title="查看已保存的提示词">
61
  <i data-feather="bookmark"></i>
62
  </button>
63
- <div id="saved-prompts-list" class="saved-prompts-list hidden">
64
- <!-- Saved prompts will be dynamically inserted here -->
65
- </div>
66
  </div>
67
  </div>
68
  </div>
69
- <textarea id="prompt" name="prompt" rows="5" class="form-input" placeholder="例如:一只穿着宇航服的猫在月球上行走"></textarea>
70
  </div>
71
  <div class="form-group">
72
- <label for="negative-prompt">反向提示词 (Negative Prompt)</label>
73
- <textarea id="negative-prompt" name="negative-prompt" rows="3" class="form-input" placeholder="例如:模糊, 低质量, 水印"></textarea>
74
  </div>
75
  </div>
76
 
77
  <div class="panel">
78
- <h2 class="panel-title">模型与画面</h2>
79
  <div class="grid-2-col" style="grid-template-columns: repeat(2, 1fr); align-items: end;">
80
  <div class="form-group">
81
- <label for="model">模型 (Model)</label>
82
  <select id="model" name="model" class="form-select">
83
  <option value="veo-3.0-generate-preview" selected>veo-3.0-generate-preview</option>
84
  <option value="veo-3.0-fast-generate-preview">veo-3.0-fast-generate-preview</option>
@@ -88,38 +84,38 @@
88
  </select>
89
  </div>
90
  <div class="form-group">
91
- <label for="resolution">分辨率 (Resolution)</label>
92
  <select id="resolution" name="resolution" class="form-select">
93
  <option value="1080p">1080p</option>
94
  <option value="720p">720p</option>
95
  </select>
96
  </div>
97
  <div class="form-group">
98
- <label for="aspect-ratio">宽高比 (Aspect Ratio)</label>
99
  <select id="aspect-ratio" name="aspect-ratio" class="form-select">
100
- <option value="16:9">16:9 (横屏)</option>
101
- <option value="9:16">9:16 (竖屏)</option>
102
  </select>
103
  </div>
104
  <div class="form-group">
105
- <label for="image-process-mode">图片处理 (16:9)</label>
106
  <select id="image-process-mode" name="image-process-mode" class="form-select">
107
- <option value="none" selected>不作处理</option>
108
- <option value="fill">颜色填充</option>
109
- <option value="stretch_to_fill">拉伸填充 (仅放大)</option>
110
- <option value="compress_to_fit">压缩填充 (仅缩小)</option>
111
  </select>
112
  </div>
113
  <div class="form-group">
114
- <label for="person-generation">人物生成</label>
115
  <select id="person-generation" name="person-generation" class="form-select">
116
- <option value="allow_all">允许所有</option>
117
- <option value="allow_adult">仅成人</option>
118
- <option value="dont_allow">不允许</option>
119
  </select>
120
  </div>
121
  <div class="form-group" id="image-fill-color-group">
122
- <label for="image-fill-color">填充颜色</label>
123
  <div class="color-picker-wrapper">
124
  <input type="color" id="image-fill-color-picker" value="#000000">
125
  <input type="text" id="image-fill-color" name="image-fill-color" class="form-input color-input" value="#000000">
@@ -128,35 +124,35 @@
128
  </div>
129
  </div>
130
  <div class="panel">
131
- <h2 class="panel-title">高级设置</h2>
132
  <div class="grid-3-col">
133
  <div class="form-group">
134
- <label for="seed">随机种子 (Seed)</label>
135
- <input type="number" id="seed" name="seed" class="form-input" placeholder="留空则随机" min="0" max="4294967295">
136
  </div>
137
  <div class="form-group">
138
- <label for="sample-count">单个线程生成数量</label>
139
  <input type="number" id="sample-count" name="sample-count" class="form-input" value="1" min="1" max="4">
140
  </div>
141
  <div class="form-group">
142
- <label for="duration">时长 ()</label>
143
  <input type="number" id="duration" name="duration" class="form-input" value="8" min="5" max="8">
144
  </div>
145
  </div>
146
  <div class="grid-3-col" style="margin-top: 16px;">
147
  <div class="form-group switch-group">
148
- <label for="generate-audio">生成音频</label>
149
  <label class="switch">
150
  <input type="checkbox" id="generate-audio" name="generate-audio" checked>
151
  <span class="switch-slider"></span>
152
  </label>
153
  </div>
154
  <div class="form-group switch-group">
155
- <label for="thread-count">线程数</label>
156
  <input type="number" id="thread-count" name="thread-count" class="form-input" value="1" min="1" step="1">
157
  </div>
158
  <div class="form-group switch-group">
159
- <label for="enhance-prompt">增强提示词</label>
160
  <label class="switch">
161
  <input type="checkbox" id="enhance-prompt" name="enhance-prompt" checked>
162
  <span class="switch-slider"></span>
@@ -168,16 +164,14 @@
168
  <div class="content-area">
169
  <div class="video-panel">
170
  <div id="video-container" class="video-container">
171
- <div id="video-carousel" class="carousel">
172
- <!-- Dynamically generated video items will go here -->
173
- </div>
174
  <div id="loader" class="loader hidden">
175
  <div class="spinner"></div>
176
- <p>正在生成视频...</p>
177
  </div>
178
  <div id="placeholder" class="placeholder">
179
  <i data-feather="film" style="width: 64px; height: 64px;"></i>
180
- <p>生成的视频将在此处显示</p>
181
  </div>
182
  <button id="prev-btn" class="carousel-btn prev hidden"><i data-feather="chevron-left"></i></button>
183
  <button id="next-btn" class="carousel-btn next hidden"><i data-feather="chevron-right"></i></button>
@@ -187,25 +181,25 @@
187
  </div>
188
  <div class="settings-panel-bottom">
189
  <div class="panel">
190
- <h2 class="panel-title">输入文件 (可选)</h2>
191
  <div class="grid-2-col">
192
  <div class="form-group file-drop-group">
193
- <label for="image-prompt">图像提示 (Image Prompt)</label>
194
  <div class="file-drop-zone" id="image-drop-zone">
195
  <div class="file-drop-prompt">
196
  <i data-feather="image"></i>
197
- <p>拖放、粘贴图片文件至此或点击选择</p>
198
  </div>
199
  <div class="file-preview" id="image-preview"></div>
200
  <input type="file" id="image-prompt" name="image-prompt" accept="image/jpeg,image/png" class="file-input">
201
  </div>
202
  </div>
203
  <div class="form-group file-drop-group">
204
- <label for="video-prompt">视频提示 (Video Prompt)</label>
205
  <div class="file-drop-zone" id="video-drop-zone">
206
  <div class="file-drop-prompt">
207
  <i data-feather="video"></i>
208
- <p>拖放、粘贴视频文件至此或点击选择</p>
209
  </div>
210
  <div class="file-preview" id="video-preview"></div>
211
  <input type="file" id="video-prompt" name="video-prompt" accept="video/mp4" class="file-input">
@@ -222,4 +216,4 @@
222
  feather.replace()
223
  </script>
224
  </body>
225
- </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">
 
13
  <header class="app-header">
14
  <h1>VEO Video Generator</h1>
15
  <div class="header-actions">
16
+ <button id="sound-toggle-btn" class="sound-toggle-button" title="Sound On/Off">
17
  <i data-feather="volume-2"></i>
18
  </button>
19
  <button id="save-video-btn" class="save-button" disabled>
20
  <i data-feather="save"></i>
21
+ <span>Hello</span>
22
  </button>
23
  <button id="generate-btn" class="generate-button">
24
  <i data-feather="play"></i>
25
+ <span>Generate Video</span>
26
  </button>
27
  </div>
28
  </header>
29
  <main class="main-content" id="video-form">
30
  <div class="settings-panel-left">
31
  <div class="panel">
32
+ <h2 class="panel-title">Core Parameters</h2>
33
  <div class="form-group">
34
  <label for="api-key">Vertex Key</label>
35
  <div class="key-input-container">
36
+ <input type="password" id="api-key" name="api-key" class="form-input" placeholder="Select or enter your key">
37
  <div class="key-actions">
38
+ <button id="save-key-btn" class="icon-btn" title="Save current key">
39
  <i data-feather="plus-circle"></i>
40
  </button>
41
  <div class="saved-keys-dropdown">
42
+ <button id="saved-keys-toggle" class="icon-btn" title="View saved keys">
43
  <i data-feather="key"></i>
44
  </button>
45
+ <div id="saved-keys-list" class="saved-prompts-list hidden"></div>
 
 
46
  </div>
47
  </div>
48
  </div>
49
  </div>
50
  <div class="form-group">
51
  <div class="prompt-header">
52
+ <label for="prompt">Positive Prompt</label>
53
  <div class="prompt-actions">
54
+ <button id="save-prompt-btn" class="icon-btn" title="Save current prompt">
55
  <i data-feather="plus-circle"></i>
56
  </button>
57
  <div class="saved-prompts-dropdown">
58
+ <button id="saved-prompts-toggle" class="icon-btn" title="View saved prompts">
59
  <i data-feather="bookmark"></i>
60
  </button>
61
+ <div id="saved-prompts-list" class="saved-prompts-list hidden"></div>
 
 
62
  </div>
63
  </div>
64
  </div>
65
+ <textarea id="prompt" name="prompt" rows="5" class="form-input" placeholder="e.g. A cat in a spacesuit walking on the moon"></textarea>
66
  </div>
67
  <div class="form-group">
68
+ <label for="negative-prompt">Negative Prompt</label>
69
+ <textarea id="negative-prompt" name="negative-prompt" rows="3" class="form-input" placeholder="e.g. blurry, low quality, watermark"></textarea>
70
  </div>
71
  </div>
72
 
73
  <div class="panel">
74
+ <h2 class="panel-title">Model & Frame</h2>
75
  <div class="grid-2-col" style="grid-template-columns: repeat(2, 1fr); align-items: end;">
76
  <div class="form-group">
77
+ <label for="model">Model</label>
78
  <select id="model" name="model" class="form-select">
79
  <option value="veo-3.0-generate-preview" selected>veo-3.0-generate-preview</option>
80
  <option value="veo-3.0-fast-generate-preview">veo-3.0-fast-generate-preview</option>
 
84
  </select>
85
  </div>
86
  <div class="form-group">
87
+ <label for="resolution">Resolution</label>
88
  <select id="resolution" name="resolution" class="form-select">
89
  <option value="1080p">1080p</option>
90
  <option value="720p">720p</option>
91
  </select>
92
  </div>
93
  <div class="form-group">
94
+ <label for="aspect-ratio">Aspect Ratio</label>
95
  <select id="aspect-ratio" name="aspect-ratio" class="form-select">
96
+ <option value="16:9">16:9 (Landscape)</option>
97
+ <option value="9:16">9:16 (Portrait)</option>
98
  </select>
99
  </div>
100
  <div class="form-group">
101
+ <label for="image-process-mode">Image Processing (16:9)</label>
102
  <select id="image-process-mode" name="image-process-mode" class="form-select">
103
+ <option value="none" selected>No Processing</option>
104
+ <option value="fill">Color Fill</option>
105
+ <option value="stretch_to_fill">Stretch to Fill (only enlarge)</option>
106
+ <option value="compress_to_fit">Compress to Fit (only shrink)</option>
107
  </select>
108
  </div>
109
  <div class="form-group">
110
+ <label for="person-generation">Person Generation</label>
111
  <select id="person-generation" name="person-generation" class="form-select">
112
+ <option value="allow_all">Allow All</option>
113
+ <option value="allow_adult">Adults Only</option>
114
+ <option value="dont_allow">Do Not Allow</option>
115
  </select>
116
  </div>
117
  <div class="form-group" id="image-fill-color-group">
118
+ <label for="image-fill-color">Fill Color</label>
119
  <div class="color-picker-wrapper">
120
  <input type="color" id="image-fill-color-picker" value="#000000">
121
  <input type="text" id="image-fill-color" name="image-fill-color" class="form-input color-input" value="#000000">
 
124
  </div>
125
  </div>
126
  <div class="panel">
127
+ <h2 class="panel-title">Advanced Settings</h2>
128
  <div class="grid-3-col">
129
  <div class="form-group">
130
+ <label for="seed">Random Seed</label>
131
+ <input type="number" id="seed" name="seed" class="form-input" placeholder="Leave blank for random" min="0" max="4294967295">
132
  </div>
133
  <div class="form-group">
134
+ <label for="sample-count">Samples per Thread</label>
135
  <input type="number" id="sample-count" name="sample-count" class="form-input" value="1" min="1" max="4">
136
  </div>
137
  <div class="form-group">
138
+ <label for="duration">Duration (Seconds)</label>
139
  <input type="number" id="duration" name="duration" class="form-input" value="8" min="5" max="8">
140
  </div>
141
  </div>
142
  <div class="grid-3-col" style="margin-top: 16px;">
143
  <div class="form-group switch-group">
144
+ <label for="generate-audio">Generate Audio</label>
145
  <label class="switch">
146
  <input type="checkbox" id="generate-audio" name="generate-audio" checked>
147
  <span class="switch-slider"></span>
148
  </label>
149
  </div>
150
  <div class="form-group switch-group">
151
+ <label for="thread-count">Thread Count</label>
152
  <input type="number" id="thread-count" name="thread-count" class="form-input" value="1" min="1" step="1">
153
  </div>
154
  <div class="form-group switch-group">
155
+ <label for="enhance-prompt">Enhance Prompt</label>
156
  <label class="switch">
157
  <input type="checkbox" id="enhance-prompt" name="enhance-prompt" checked>
158
  <span class="switch-slider"></span>
 
164
  <div class="content-area">
165
  <div class="video-panel">
166
  <div id="video-container" class="video-container">
167
+ <div id="video-carousel" class="carousel"></div>
 
 
168
  <div id="loader" class="loader hidden">
169
  <div class="spinner"></div>
170
+ <p>Generating video...</p>
171
  </div>
172
  <div id="placeholder" class="placeholder">
173
  <i data-feather="film" style="width: 64px; height: 64px;"></i>
174
+ <p>The generated video will appear here</p>
175
  </div>
176
  <button id="prev-btn" class="carousel-btn prev hidden"><i data-feather="chevron-left"></i></button>
177
  <button id="next-btn" class="carousel-btn next hidden"><i data-feather="chevron-right"></i></button>
 
181
  </div>
182
  <div class="settings-panel-bottom">
183
  <div class="panel">
184
+ <h2 class="panel-title">Input Files (Optional)</h2>
185
  <div class="grid-2-col">
186
  <div class="form-group file-drop-group">
187
+ <label for="image-prompt">Image Prompt</label>
188
  <div class="file-drop-zone" id="image-drop-zone">
189
  <div class="file-drop-prompt">
190
  <i data-feather="image"></i>
191
+ <p>Drag, paste, or click to select image files</p>
192
  </div>
193
  <div class="file-preview" id="image-preview"></div>
194
  <input type="file" id="image-prompt" name="image-prompt" accept="image/jpeg,image/png" class="file-input">
195
  </div>
196
  </div>
197
  <div class="form-group file-drop-group">
198
+ <label for="video-prompt">Video Prompt</label>
199
  <div class="file-drop-zone" id="video-drop-zone">
200
  <div class="file-drop-prompt">
201
  <i data-feather="video"></i>
202
+ <p>Drag, paste, or click to select video files</p>
203
  </div>
204
  <div class="file-preview" id="video-preview"></div>
205
  <input type="file" id="video-prompt" name="video-prompt" accept="video/mp4" class="file-input">
 
216
  feather.replace()
217
  </script>
218
  </body>
219
+ </html>