Spaces:
Sleeping
Sleeping
document.getElementById('avatarForm').addEventListener('submit', async (e) => { | |
e.preventDefault(); | |
const formData = new FormData(); | |
formData.append('image', document.getElementById('imageInput').files[0]); | |
formData.append('text', document.getElementById('textInput').value); | |
// Show loading state | |
const btn = document.querySelector('button[type="submit"]'); | |
btn.disabled = true; | |
btn.innerHTML = '<span class="spinner-border spinner-border-sm" role="status"></span> Processing...'; | |
try { | |
const response = await fetch('/generate', { | |
method: 'POST', | |
body: formData | |
}); | |
const data = await response.json(); | |
// Display result | |
const video = document.getElementById('outputVideo'); | |
video.src = data.video; | |
document.getElementById('result').classList.remove('d-none'); | |
// Set up download | |
document.getElementById('downloadBtn').onclick = () => { | |
const a = document.createElement('a'); | |
a.href = data.video; | |
a.download = 'talking_avatar.mp4'; | |
a.click(); | |
}; | |
} catch (error) { | |
alert('Error: ' + error.message); | |
} finally { | |
btn.disabled = false; | |
btn.innerHTML = 'Generate Video'; | |
} | |
}); |