![Screenshot 2024-12-21 at 02 51 27](https://private-user-images.githubusercontent.com/122639076/397913425-07ba9802-cd9c-4e3a-9159-bde76ad3d9ba.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODIyNDUsIm5iZiI6MTczOTI4MTk0NSwicGF0aCI6Ii8xMjI2MzkwNzYvMzk3OTEzNDI1LTA3YmE5ODAyLWNkOWMtNGUzYS05MTU5LWJkZTc2YWQzZDliYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxMzUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00N2VhNDgyNDBkNjExYzQ4ODcwZDA1ODI3NTU0ZmEwOTU2NWE3MWNjYzMyN2YxMDllODk2NTFkNjZjYjBiM2M1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.RWxLMKPMaBScHwtlL2ydhYU36Dunbx4Ud1xTE-pKyK4)
![Screenshot 2024-12-21 at 02 51 49](https://private-user-images.githubusercontent.com/122639076/397913432-df2910d0-36b2-4a00-8dff-10fd5eab9c93.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODIyNDUsIm5iZiI6MTczOTI4MTk0NSwicGF0aCI6Ii8xMjI2MzkwNzYvMzk3OTEzNDMyLWRmMjkxMGQwLTM2YjItNGEwMC04ZGZmLTEwZmQ1ZWFiOWM5My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxMzUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02NjgzMDllNDgyY2RkYWRiNWViNjFmZjlmMDhiOTc4MDJiOTJlOGQ0M2M5NzRjZTUzNTJhNjRlYzAzMTMyMDcyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.F-7ayuWtuaCyeFpVOykQzigf9LQ17sIRzYqniThIVf0)
![Screenshot 2024-12-21 at 02 52 20](https://private-user-images.githubusercontent.com/122639076/397913439-8ef58aaf-55f3-475a-bfc2-738bb2963224.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODIyNDUsIm5iZiI6MTczOTI4MTk0NSwicGF0aCI6Ii8xMjI2MzkwNzYvMzk3OTEzNDM5LThlZjU4YWFmLTU1ZjMtNDc1YS1iZmMyLTczOGJiMjk2MzIyNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxMzUyMjVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hOTgwZjhhYzQ2ZDRiYzE2MGZiOTA4YTUxMjEwYzEyYjA3ZDNmYTliYjdlNDYxNGY2ODY4OGViMGM2NWQwMDFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.KkGpV47jOdNWJxc4PeDTs0wz4oQsVbYFS4LoDKMTUBc)
This repository implements a Realtime Image Diffusion Model with a user-friendly web interface. Users can generate AI-powered images in real time by providing text prompts. The application leverages Supabase for database management and real-time updates and includes a robust architecture for generating and displaying content interactively.
- Text-to-Image Generation: Generate custom images using AI models.
- Realtime Updates: New images appear instantly without requiring a page refresh.
- User Accounts: Users can create unique usernames and save their images.
- Likes System: Users can like images to express their preferences.
User | |--[1] Enter name and username | | | v | Frontend (React, TailwindCSS) | | |--[2] Submit username -> Backend | | |--[3] Save username to Supabase -> Supabase Database | | |<--[4] Confirmation of username saved | | |--[5] Enter text prompt (query) | | |--[6] Submit query -> Backend | | |--[7] Use Hugging Face API for Stable Diffusion 3.5 Large Turbo to generate AI image | | |<--[8] Receive generated image | | |--[9] Save image, prompt, and metadata -> Supabase Database | | |<--[10] Confirmation of data saved | | |--[11] Realtime update detected in Supabase -> Frontend | | |<--[12] Display AI-generated image and allow likes | +-> [End]
- Frontend: Built with React and TailwindCSS, providing a responsive UI.
- Backend: Handles image generation requests and integrates with Supabase for database management.
- Database: Supabase stores user information, images, and metadata (e.g., likes).
- Realtime Subscription: Listens to database changes to provide live updates.
-
Clone the repository:
git clone https://github.com/purohitamann/pentagram
-
Install dependencies:
npm install
-
Set up Supabase:
- Create a project on Supabase.
- Add the required tables:
images
with columns:id
,image_url
,prompt
,likes
,username
,created_at
.users
with columns:username
,email
.
- Obtain your Supabase API key and URL.
-
Configure environment variables: Create a
.env.local
file with the following:NEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:3000
.
- Enter a text prompt in the input field and click "Generate" to create an image.
- Like images by clicking on the like button.
- If no username is set, the application will prompt you to create one.
- Frontend: React, TailwindCSS
- Backend: Node.js, Supabase Realtime
- Database: Supabase PostgreSQL
- Add pagination for image gallery.
- Implement authentication for enhanced user security.
- Allow users to download generated images.
For any issues or feature requests, feel free to open an issue on GitHub.