|
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>Video Re-Generator with Google Veo2 AI</title> |
|
<script src="https://cdn.tailwindcss.com"></script> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
<style> |
|
.gradient-bg { |
|
background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 50%, #1d4ed8 100%); |
|
} |
|
.video-card { |
|
transition: all 0.3s ease; |
|
border: 2px solid transparent; |
|
} |
|
.video-card:hover { |
|
transform: translateY(-5px); |
|
border-color: #3b82f6; |
|
box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.3); |
|
} |
|
.video-card.selected { |
|
border-color: #3b82f6; |
|
background-color: rgba(59, 130, 246, 0.1); |
|
} |
|
.custom-scrollbar::-webkit-scrollbar { |
|
width: 6px; |
|
height: 6px; |
|
} |
|
.custom-scrollbar::-webkit-scrollbar-track { |
|
background: #1e3a8a; |
|
} |
|
.custom-scrollbar::-webkit-scrollbar-thumb { |
|
background-color: #3b82f6; |
|
border-radius: 20px; |
|
} |
|
.video-container { |
|
min-height: 500px; |
|
background: rgba(30, 58, 138, 0.5); |
|
border: 1px dashed #3b82f6; |
|
} |
|
.slider-thumb::-webkit-slider-thumb { |
|
-webkit-appearance: none; |
|
appearance: none; |
|
width: 20px; |
|
height: 20px; |
|
border-radius: 50%; |
|
background: #3b82f6; |
|
cursor: pointer; |
|
} |
|
.age-gate { |
|
backdrop-filter: blur(10px); |
|
} |
|
.upload-area { |
|
border: 2px dashed #3b82f6; |
|
transition: all 0.3s ease; |
|
} |
|
.upload-area:hover { |
|
background: rgba(59, 130, 246, 0.1); |
|
} |
|
.upload-area.dragover { |
|
background: rgba(59, 130, 246, 0.2); |
|
border-color: #93c5fd; |
|
} |
|
.veo-badge { |
|
background: linear-gradient(135deg, #4285F4 0%, #34A853 50%, #FBBC05 100%); |
|
} |
|
</style> |
|
</head> |
|
<body class="gradient-bg min-h-screen text-white"> |
|
|
|
<div id="ageModal" class="fixed inset-0 z-50 flex items-center justify-center age-gate"> |
|
<div class="bg-gray-900/80 p-8 rounded-xl max-w-md w-full mx-4"> |
|
<div class="text-center mb-6"> |
|
<i class="fas fa-video text-4xl text-blue-500 mb-4"></i> |
|
<h2 class="text-2xl font-bold mb-2">Welcome to Video Re-Generator</h2> |
|
<p class="text-gray-300">Powered by Google Veo2 AI for advanced video generation</p> |
|
</div> |
|
<div class="flex flex-col space-y-4"> |
|
<button id="confirmAge" class="bg-blue-600 hover:bg-blue-700 text-white py-3 px-6 rounded-lg font-medium transition"> |
|
Enter Site |
|
</button> |
|
<button id="denyAge" class="bg-gray-700 hover:bg-gray-600 text-white py-3 px-6 rounded-lg font-medium transition"> |
|
Go Back |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="mainContent" class="hidden container mx-auto px-4 py-8"> |
|
|
|
<header class="mb-10 text-center"> |
|
<div class="flex items-center justify-center mb-2"> |
|
<span class="veo-badge text-xs font-bold px-3 py-1 rounded-full inline-flex items-center"> |
|
<i class="fab fa-google mr-1"></i> Powered by Veo2 AI |
|
</span> |
|
</div> |
|
<h1 class="text-4xl md:text-5xl font-bold mb-4 bg-clip-text text-transparent bg-gradient-to-r from-blue-400 to-cyan-500"> |
|
Video Re-Generator |
|
</h1> |
|
<p class="text-lg text-blue-200 max-w-3xl mx-auto"> |
|
Transform your MP4 videos with Google's Veo2 AI for high-quality video generation and enhancement. |
|
</p> |
|
</header> |
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-8"> |
|
|
|
<div class="lg:col-span-1 bg-gray-900/50 p-6 rounded-xl"> |
|
<h2 class="text-xl font-semibold mb-6 flex items-center"> |
|
<i class="fas fa-sliders-h mr-2 text-blue-400"></i> Veo2 AI Settings |
|
</h2> |
|
|
|
|
|
<div class="mb-6"> |
|
<label class="block text-sm font-medium mb-2" for="videoUpload"> |
|
<i class="fas fa-upload mr-1 text-blue-300"></i> Upload MP4 Video |
|
</label> |
|
<div id="uploadArea" class="upload-area rounded-lg p-8 text-center cursor-pointer mb-2"> |
|
<i class="fas fa-cloud-upload-alt text-3xl text-blue-400 mb-2"></i> |
|
<p class="text-sm">Drag & drop your MP4 file here</p> |
|
<p class="text-xs text-blue-300 mt-1">or click to browse</p> |
|
<input type="file" id="videoUpload" class="hidden" accept="video/mp4"> |
|
</div> |
|
<div id="fileInfo" class="text-xs text-blue-300 hidden"> |
|
<span id="fileName"></span> (<span id="fileSize"></span>) |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
<label class="block text-sm font-medium mb-2"> |
|
<i class="fas fa-robot mr-1 text-blue-300"></i> Veo2 Model |
|
</label> |
|
<select id="veoModel" class="w-full bg-gray-800 border border-gray-700 rounded-lg p-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent"> |
|
<option value="veo2-standard">Veo2 Standard</option> |
|
<option value="veo2-creative">Veo2 Creative</option> |
|
<option value="veo2-premium">Veo2 Premium (4K)</option> |
|
</select> |
|
<p class="text-xs text-blue-300 mt-1">Premium models require API credits</p> |
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
<label class="block text-sm font-medium mb-2"> |
|
<i class="fas fa-palette mr-1 text-blue-300"></i> Transformation Style |
|
</label> |
|
<select id="videoStyle" class="w-full bg-gray-800 border border-gray-700 rounded-lg p-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent"> |
|
<option value="enhance">Quality Enhancement</option> |
|
<option value="anime">Anime Style</option> |
|
<option value="cartoon">Cartoon Style</option> |
|
<option value="painting">Oil Painting</option> |
|
<option value="watercolor">Watercolor</option> |
|
<option value="cyberpunk">Cyberpunk</option> |
|
<option value="retro">Retro Film</option> |
|
<option value="blackwhite">Black & White</option> |
|
<option value="sketch">Pencil Sketch</option> |
|
</select> |
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
<label class="block text-sm font-medium mb-2"> |
|
<i class="fas fa-film mr-1 text-blue-300"></i> Video Options |
|
</label> |
|
<div class="grid grid-cols-2 gap-2"> |
|
<div> |
|
<label class="block text-xs mb-1">Resolution</label> |
|
<select id="resolution" class="w-full bg-gray-800 border border-gray-700 rounded-lg p-1 text-xs"> |
|
<option value="original">Original</option> |
|
<option value="480p">480p</option> |
|
<option value="720p">720p</option> |
|
<option value="1080p">1080p</option> |
|
<option value="4k">4K (Premium only)</option> |
|
</select> |
|
</div> |
|
<div> |
|
<label class="block text-xs mb-1">Frame Rate</label> |
|
<select id="framerate" class="w-full bg-gray-800 border border-gray-700 rounded-lg p-1 text-xs"> |
|
<option value="original">Original</option> |
|
<option value="24">24 fps</option> |
|
<option value="30">30 fps</option> |
|
<option value="60">60 fps</option> |
|
</select> |
|
</div> |
|
<div> |
|
<label class="block text-xs mb-1">Stabilization</label> |
|
<select id="stabilization" class="w-full bg-gray-800 border border-gray-700 rounded-lg p-1 text-xs"> |
|
<option value="none">None</option> |
|
<option value="light">Light</option> |
|
<option value="moderate">Moderate</option> |
|
<option value="strong">Strong</option> |
|
</select> |
|
</div> |
|
<div> |
|
<label class="block text-xs mb-1">Color Grade</label> |
|
<select id="colorgrade" class="w-full bg-gray-800 border border-gray-700 rounded-lg p-1 text-xs"> |
|
<option value="none">None</option> |
|
<option value="vibrant">Vibrant</option> |
|
<option value="warm">Warm</option> |
|
<option value="cool">Cool</option> |
|
<option value="cinematic">Cinematic</option> |
|
</select> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
<div class="flex items-center justify-between mb-2 cursor-pointer" onclick="toggleAdvanced()"> |
|
<label class="text-sm font-medium"> |
|
<i class="fas fa-cog mr-1 text-blue-300"></i> Veo2 Advanced Options |
|
</label> |
|
<i id="advancedArrow" class="fas fa-chevron-down text-blue-300 transition-transform"></i> |
|
</div> |
|
<div id="advancedOptions" class="hidden space-y-4 pt-2"> |
|
<div> |
|
<label class="block text-xs mb-1">Style Strength</label> |
|
<input type="range" min="0" max="100" value="70" class="w-full slider-thumb" id="styleStrength"> |
|
</div> |
|
<div> |
|
<label class="block text-xs mb-1">Creativity Level</label> |
|
<input type="range" min="0" max="100" value="50" class="w-full slider-thumb" id="creativity"> |
|
</div> |
|
<div> |
|
<label class="block text-xs mb-1">Temporal Consistency</label> |
|
<input type="range" min="0" max="100" value="80" class="w-full slider-thumb" id="temporalConsistency"> |
|
</div> |
|
<div> |
|
<label class="block text-xs mb-1">Text Prompt (Optional)</label> |
|
<input type="text" placeholder="Describe desired changes..." class="w-full bg-gray-800 border border-gray-700 rounded-lg p-1 text-xs"> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<button id="generateBtn" class="w-full bg-gradient-to-r from-blue-600 to-cyan-600 hover:from-blue-700 hover:to-cyan-700 text-white py-3 px-4 rounded-lg font-medium flex items-center justify-center transition"> |
|
<i class="fab fa-google mr-2"></i> Generate with Veo2 AI |
|
</button> |
|
|
|
<div class="mt-4 text-xs text-blue-300 flex items-center"> |
|
<i class="fas fa-info-circle mr-1"></i> |
|
<span>Each generation uses 1 API credit</span> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="lg:col-span-2"> |
|
<div class="video-container rounded-xl flex items-center justify-center mb-6 relative overflow-hidden"> |
|
<div id="videoPlaceholder" class="text-center p-8"> |
|
<i class="fas fa-video text-5xl text-blue-400 mb-4 opacity-50"></i> |
|
<p class="text-blue-300">Your original and Veo2 generated videos will appear here</p> |
|
</div> |
|
<div id="videoDisplay" class="hidden w-full h-full"> |
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 p-4"> |
|
<div> |
|
<h3 class="text-sm font-medium mb-2 text-center">Original Video</h3> |
|
<video id="originalVideo" controls class="w-full h-auto max-h-80 rounded-lg"></video> |
|
</div> |
|
<div> |
|
<h3 class="text-sm font-medium mb-2 text-center">Veo2 Generated</h3> |
|
<video id="regeneratedVideo" controls class="w-full h-auto max-h-80 rounded-lg"></video> |
|
<div class="mt-2 flex justify-between items-center text-xs"> |
|
<span class="text-blue-300">Generation time: <span id="genTime">0</span>s</span> |
|
<button class="text-blue-400 hover:text-blue-300 flex items-center"> |
|
<i class="fas fa-download mr-1"></i> Download |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<div id="loadingIndicator" class="hidden absolute inset-0 flex items-center justify-center bg-black/50"> |
|
<div class="text-center"> |
|
<div class="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-500 mx-auto mb-4"></div> |
|
<p>Processing with Veo2 AI...</p> |
|
<p class="text-xs text-blue-300 mt-2">This may take several minutes depending on length</p> |
|
<div class="w-full bg-gray-700 rounded-full h-2.5 mt-4 max-w-md mx-auto"> |
|
<div id="progressBar" class="bg-blue-600 h-2.5 rounded-full" style="width: 0%"></div> |
|
</div> |
|
<p id="progressText" class="text-xs mt-2">0% completed</p> |
|
<p class="text-xs text-blue-300 mt-4"> |
|
<i class="fab fa-google mr-1"></i> Using Veo2 <span id="currentModel">Standard</span> model |
|
</p> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="bg-gray-900/50 p-6 rounded-xl"> |
|
<h2 class="text-xl font-semibold mb-4 flex items-center"> |
|
<i class="fas fa-gem mr-2 text-blue-400"></i> Veo2 Style Gallery |
|
</h2> |
|
<p class="text-sm text-blue-200 mb-4">Select a style to preview or click to apply</p> |
|
|
|
<div class="overflow-x-auto pb-2 custom-scrollbar"> |
|
<div class="flex space-x-4" style="min-width: max-content;"> |
|
|
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'enhance')"> |
|
<img src="https://images.unsplash.com/photo-1579783902614-a3fb39268b5b?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Enhance</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'anime')"> |
|
<img src="https://images.unsplash.com/photo-1635070041078-e363dbe005cb?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Anime</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'cartoon')"> |
|
<img src="https://images.unsplash.com/photo-1637858868799-7f26a0640eb6?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Cartoon</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'painting')"> |
|
<img src="https://images.unsplash.com/photo-1579783900882-c0ddfd6c6b14?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Oil Painting</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'watercolor')"> |
|
<img src="https://images.unsplash.com/photo-1579762715458-f5c5f02b9517?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Watercolor</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'cyberpunk')"> |
|
<img src="https://images.unsplash.com/photo-1548092372-44d6dd47c9d3?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Cyberpunk</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'retro')"> |
|
<img src="https://images.unsplash.com/photo-1589254065878-42a9da3a8abe?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Retro Film</p> |
|
</div> |
|
</div> |
|
<div class="video-card flex-shrink-0 w-32 h-32 bg-gray-800 rounded-lg overflow-hidden cursor-pointer" onclick="selectStyle(this, 'sketch')"> |
|
<img src="https://images.unsplash.com/photo-1639762681057-408e52192e55?w=200&h=200&fit=crop" class="w-full h-full object-cover"> |
|
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-2"> |
|
<p class="text-xs font-medium">Pencil Sketch</p> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<footer class="mt-16 text-center text-sm text-blue-300"> |
|
<div class="flex justify-center space-x-6 mb-4"> |
|
<a href="#" class="hover:text-blue-200"><i class="fab fa-twitter"></i></a> |
|
<a href="#" class="hover:text-blue-200"><i class="fab fa-discord"></i></a> |
|
<a href="#" class="hover:text-blue-200"><i class="fab fa-github"></i></a> |
|
<a href="#" class="hover:text-blue-200"><i class="fas fa-envelope"></i></a> |
|
</div> |
|
<p>© 2023 Video Re-Generator with Google Veo2 AI. All rights reserved.</p> |
|
<p class="mt-2 text-xs opacity-70">Supports MP4 files up to 5 minutes in length</p> |
|
</footer> |
|
</div> |
|
|
|
<script> |
|
|
|
document.getElementById('confirmAge').addEventListener('click', function() { |
|
document.getElementById('ageModal').classList.add('hidden'); |
|
document.getElementById('mainContent').classList.remove('hidden'); |
|
localStorage.setItem('ageVerified', 'true'); |
|
}); |
|
|
|
document.getElementById('denyAge').addEventListener('click', function() { |
|
window.location.href = 'https://www.google.com'; |
|
}); |
|
|
|
|
|
if(localStorage.getItem('ageVerified') === 'true') { |
|
document.getElementById('ageModal').classList.add('hidden'); |
|
document.getElementById('mainContent').classList.remove('hidden'); |
|
} |
|
|
|
|
|
function selectStyle(element, style) { |
|
document.querySelectorAll('.video-card').forEach(card => { |
|
card.classList.remove('selected'); |
|
}); |
|
element.classList.add('selected'); |
|
document.getElementById('videoStyle').value = style; |
|
} |
|
|
|
|
|
function toggleAdvanced() { |
|
const options = document.getElementById('advancedOptions'); |
|
const arrow = document.getElementById('advancedArrow'); |
|
|
|
if(options.classList.contains('hidden')) { |
|
options.classList.remove('hidden'); |
|
arrow.classList.remove('fa-chevron-down'); |
|
arrow.classList.add('fa-chevron-up'); |
|
} else { |
|
options.classList.add('hidden'); |
|
arrow.classList.remove('fa-chevron-up'); |
|
arrow.classList.add('fa-chevron-down'); |
|
} |
|
} |
|
|
|
|
|
const uploadArea = document.getElementById('uploadArea'); |
|
const fileInput = document.getElementById('videoUpload'); |
|
const fileInfo = document.getElementById('fileInfo'); |
|
const fileName = document.getElementById('fileName'); |
|
const fileSize = document.getElementById('fileSize'); |
|
|
|
uploadArea.addEventListener('click', () => fileInput.click()); |
|
|
|
fileInput.addEventListener('change', handleFileSelect); |
|
|
|
|
|
uploadArea.addEventListener('dragover', (e) => { |
|
e.preventDefault(); |
|
uploadArea.classList.add('dragover'); |
|
}); |
|
|
|
uploadArea.addEventListener('dragleave', () => { |
|
uploadArea.classList.remove('dragover'); |
|
}); |
|
|
|
uploadArea.addEventListener('drop', (e) => { |
|
e.preventDefault(); |
|
uploadArea.classList.remove('dragover'); |
|
if(e.dataTransfer.files.length) { |
|
fileInput.files = e.dataTransfer.files; |
|
handleFileSelect({ target: fileInput }); |
|
} |
|
}); |
|
|
|
function handleFileSelect(event) { |
|
const file = event.target.files[0]; |
|
if(!file) return; |
|
|
|
|
|
if(!file.type.includes('mp4')) { |
|
alert('Please upload an MP4 video file'); |
|
return; |
|
} |
|
|
|
|
|
if(file.size > 500 * 1024 * 1024) { |
|
alert('File size exceeds 500MB limit'); |
|
return; |
|
} |
|
|
|
|
|
fileName.textContent = file.name; |
|
fileSize.textContent = formatFileSize(file.size); |
|
fileInfo.classList.remove('hidden'); |
|
|
|
|
|
const videoURL = URL.createObjectURL(file); |
|
document.getElementById('videoPlaceholder').classList.add('hidden'); |
|
document.getElementById('videoDisplay').classList.remove('hidden'); |
|
document.getElementById('originalVideo').src = videoURL; |
|
} |
|
|
|
function formatFileSize(bytes) { |
|
if(bytes < 1024) return bytes + ' bytes'; |
|
else if(bytes < 1048576) return (bytes / 1024).toFixed(1) + ' KB'; |
|
else return (bytes / 1048576).toFixed(1) + ' MB'; |
|
} |
|
|
|
|
|
document.getElementById('generateBtn').addEventListener('click', function() { |
|
if(!fileInput.files.length) { |
|
alert('Please upload a video file first'); |
|
return; |
|
} |
|
|
|
|
|
const modelSelect = document.getElementById('veoModel'); |
|
const selectedModel = modelSelect.options[modelSelect.selectedIndex].text; |
|
document.getElementById('currentModel').textContent = selectedModel; |
|
|
|
|
|
document.getElementById('loadingIndicator').classList.remove('hidden'); |
|
|
|
|
|
let progress = 0; |
|
const startTime = new Date().getTime(); |
|
|
|
const progressInterval = setInterval(() => { |
|
progress += Math.random() * 5; |
|
if(progress > 100) progress = 100; |
|
|
|
document.getElementById('progressBar').style.width = progress + '%'; |
|
document.getElementById('progressText').textContent = Math.floor(progress) + '% completed'; |
|
|
|
if(progress === 100) { |
|
clearInterval(progressInterval); |
|
const endTime = new Date().getTime(); |
|
const duration = Math.round((endTime - startTime) / 1000); |
|
document.getElementById('genTime').textContent = duration; |
|
setTimeout(finishProcessing, 1000); |
|
} |
|
}, 500); |
|
|
|
function finishProcessing() { |
|
document.getElementById('loadingIndicator').classList.add('hidden'); |
|
|
|
|
|
const originalSrc = document.getElementById('originalVideo').src; |
|
document.getElementById('regeneratedVideo').src = originalSrc; |
|
|
|
|
|
alert('Veo2 AI video generation completed successfully!'); |
|
} |
|
}); |
|
|
|
|
|
document.getElementById('veoModel').addEventListener('change', function() { |
|
const resolutionSelect = document.getElementById('resolution'); |
|
const selectedModel = this.value; |
|
|
|
|
|
for(let i = 0; i < resolutionSelect.options.length; i++) { |
|
if(resolutionSelect.options[i].value === '4k') { |
|
resolutionSelect.options[i].disabled = selectedModel !== 'veo2-premium'; |
|
if(resolutionSelect.options[i].selected && resolutionSelect.options[i].disabled) { |
|
resolutionSelect.value = 'original'; |
|
} |
|
} |
|
} |
|
}); |
|
</script> |
|
<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=MarcRyan/avgen" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
</html> |