Spaces:
Running
Running
| <html lang="en" class="dark"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>FaceFlick | AI-Powered Face Swapping</title> | |
| <link rel="stylesheet" href="style.css"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> | |
| <script> | |
| tailwind.config = { | |
| darkMode: 'class', | |
| theme: { | |
| extend: { | |
| colors: { | |
| primary: { | |
| 500: '#8b5cf6', | |
| 600: '#7c3aed', | |
| }, | |
| secondary: { | |
| 500: '#06b6d4', | |
| 600: '#0891b2', | |
| } | |
| } | |
| } | |
| } | |
| } | |
| </script> | |
| </head> | |
| <body class="bg-gray-900 text-gray-100 min-h-screen"> | |
| <custom-navbar></custom-navbar> | |
| <main class="container mx-auto px-4 py-8"> | |
| <section class="text-center mb-16"> | |
| <h1 class="text-4xl md:text-6xl font-bold mb-6 bg-gradient-to-r from-primary-500 to-secondary-500 bg-clip-text text-transparent"> | |
| Swap Faces Like Magic | |
| </h1> | |
| <p class="text-xl text-gray-400 max-w-3xl mx-auto"> | |
| Upload any video and replace faces with just a few clicks. Our AI does all the hard work for you! | |
| </p> | |
| </section> | |
| <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-16"> | |
| <div class="bg-gray-800 rounded-2xl p-6 shadow-xl"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-primary-500 p-3 rounded-lg mr-4"> | |
| <i data-feather="upload" class="text-white"></i> | |
| </div> | |
| <h2 class="text-2xl font-semibold">Upload Your Video</h2> | |
| </div> | |
| <div class="relative border-2 border-dashed border-gray-600 rounded-xl h-64 flex flex-col items-center justify-center"> | |
| <i data-feather="video" class="w-12 h-12 mb-4 text-gray-400"></i> | |
| <p class="text-gray-400 mb-4">Drag & drop your video here</p> | |
| <label for="video-upload" class="bg-primary-600 hover:bg-primary-500 text-white px-6 py-2 rounded-lg cursor-pointer transition"> | |
| Select Video | |
| <input id="video-upload" type="file" accept="video/*" class="hidden"> | |
| </label> | |
| </div> | |
| <div class="mt-4 flex items-center space-x-4"> | |
| <div class="flex-1"> | |
| <label class="block text-gray-400 mb-1">Source Face</label> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center"> | |
| <i data-feather="user" class="text-gray-400"></i> | |
| </div> | |
| <select class="bg-gray-700 text-white rounded-lg px-3 py-2 w-full"> | |
| <option>Select face to replace</option> | |
| </select> | |
| </div> | |
| </div> | |
| <i data-feather="arrow-right" class="text-gray-400"></i> | |
| <div class="flex-1"> | |
| <label class="block text-gray-400 mb-1">Target Face</label> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center"> | |
| <i data-feather="user" class="text-gray-400"></i> | |
| </div> | |
| <select class="bg-gray-700 text-white rounded-lg px-3 py-2 w-full"> | |
| <option>Select replacement face</option> | |
| </select> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bg-gray-800 rounded-2xl p-6 shadow-xl"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-secondary-500 p-3 rounded-lg mr-4"> | |
| <i data-feather="eye" class="text-white"></i> | |
| </div> | |
| <h2 class="text-2xl font-semibold">Preview</h2> | |
| </div> | |
| <div class="bg-gray-900 rounded-xl h-64 flex items-center justify-center"> | |
| <div class="text-center"> | |
| <i data-feather="play-circle" class="w-12 h-12 mx-auto mb-2 text-gray-400"></i> | |
| <p class="text-gray-400">Your face-swapped video will appear here</p> | |
| </div> | |
| </div> | |
| <div class="mt-4"> | |
| <button class="w-full bg-secondary-600 hover:bg-secondary-500 text-white py-3 rounded-lg font-medium flex items-center justify-center transition"> | |
| <i data-feather="zap" class="mr-2"></i> Generate Face Swap | |
| </button> | |
| </div> | |
| </div> | |
| </section> | |
| <section class="mb-16"> | |
| <h2 class="text-3xl font-bold mb-8 text-center">How It Works</h2> | |
| <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> | |
| <div class="bg-gray-800 p-6 rounded-xl"> | |
| <div class="bg-primary-500/20 p-4 rounded-lg inline-block mb-4"> | |
| <i data-feather="upload" class="text-primary-500 w-6 h-6"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2">Upload Video</h3> | |
| <p class="text-gray-400">Upload any video from your device or paste a YouTube URL.</p> | |
| </div> | |
| <div class="bg-gray-800 p-6 rounded-xl"> | |
| <div class="bg-secondary-500/20 p-4 rounded-lg inline-block mb-4"> | |
| <i data-feather="user" class="text-secondary-500 w-6 h-6"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2">Select Faces</h3> | |
| <p class="text-gray-400">Choose which faces to replace and what to replace them with.</p> | |
| </div> | |
| <div class="bg-gray-800 p-6 rounded-xl"> | |
| <div class="bg-primary-500/20 p-4 rounded-lg inline-block mb-4"> | |
| <i data-feather="download" class="text-primary-500 w-6 h-6"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2">Download Result</h3> | |
| <p class="text-gray-400">Download your face-swapped video in high quality instantly.</p> | |
| </div> | |
| </div> | |
| </section> | |
| </main> | |
| <custom-footer></custom-footer> | |
| <script src="components/navbar.js"></script> | |
| <script src="components/footer.js"></script> | |
| <script src="script.js"></script> | |
| <script> | |
| feather.replace(); | |
| </script> | |
| <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script> | |
| </body> | |
| </html> |