/comic-cult

Transform your stories into captivating comic art with dialogue effortlessly! this project harnesses the power of GeminiAI and stable diffusion for processing and generating stunning images and dialogues

Primary LanguageJavaScript

Comic-cult

Red Bull gives you wings 💸 We give you comics 🖼️

banner

ℹ️ Project Description

Transform your stories into captivating comic art with dialogue effortlessly! Our project harnesses the power of GemeiAI and Stable Diffusion for processing and generating stunning images and dialogues. Utilizing feature flags, you can seamlessly toggle environment variables on and off as needed. The final masterpiece is delivered straight to your inbox as a beautifully crafted comic PDF. Enjoy the magic of storytelling in a whole new visual dimension! 📧💬🖼️

Demo 💻

comic-cult.mov

⚒️ Features:

Feature Name Feature Description
gemini 🗣️ Dialogue Generation With advanced dialogue generation capabilities, your characters come to life on the comic pages. Using sophisticated summaries, Gemini generates natural and dynamic dialogues that complement the visuals, enhancing the overall storytelling experience.
dream studio 🎨 Comic Art Generation Leveraging Stability AI and DreamStudio API keys, our Comic Art Generation process is infused with stability and creativity. Stability AI ensures consistent and reliable image processing, while DreamStudio API keys unlock a world of artistic possibilities, allowing us to create captivating comic art with ease.
flagsmith ⚙️ Flagsmith Feature Flags Integration We've implemented Flagsmith feature flags into our project, providing you with ultimate control over its functionalities. Whether you need to toggle specific features on or off, our feature flags make it effortless to customize the comic generation process according to your preferences and requirements.
nodemailer 📧 Email Delivery of Comic PDF Seamlessly integrating Nodemailer into our workflow, we've streamlined the process of delivering your comic PDF straight to your inbox. Nodemailer provides a robust and reliable solution for sending emails programmatically, ensuring that your comic masterpiece reaches its destination efficiently and securely.

🎨✍✨ Design Links

Design Link
Design 1 🔗 Link to Design 1

🤔 What Challenges I Ran Into

🖼️ Comic Art Generation I wanted to create something fun that also provided a lot of learning opportunities. I used OpenAI's APIs and even utilized LangChain for some instances, but I wanted to take my project to the next level. I wanted to work with images, which led me to use Stable Diffusion models (which I had no idea how to use). I tried running the model locally and using Google Colab, but these approaches made me more perplexed. Eventually, I needed a Stable Diffusion API and key, which DreamStudio and Stability AI provided.
🔧 Workflow/Pipeline Creation Developing the workflow was probably the most challenging part. This pipeline is the backbone of the project. At one point, I was so confused that I wanted to abandon the project. However, I slowly worked on creating a streamlined flow for generating dialogues (with Gemini's help), obtaining images (using Stability API), and adding dialogues onto images (using Canvas). Ensuring that all these steps were reliable and smooth was crucial for providing a good user experience.
💬 Using Promises I had only heard and learned about promises but never utilized them in any of my projects until now. They were a lifesaver, helping me make the workflow better and more workable. Now, I want to use promises everywhere. I really got to understand promises, async/await, .then, and .catch.
🚫 Failure of Express Functions and Integration of Nodemailer I used Express for my backend to serve the front end through various routes. I never thought that res.sendfile and res.download would be so problematic. They are meant to send files from the backend to the frontend but were causing errors. I was considering abandoning this approach, but then Nodemailer came to mind. If Express functions didn't work, I planned to send the PDF to the user's email using Nodemailer, which proved to be extremely useful. In just a few minutes, I had it working.

💻 Tech Stack

  • Next.js - An open-source web development framework.
  • TypeScript - A free and open-source high-level programming language.
  • Tailwind CSS - A utility-first CSS framework for rapidly building modern websites.
  • Daisy UI - Inbuilt Tailwind components.
  • Express - Used to create server endpoints and serve the front end as needed.
  • Flagsmith - Manage feature flags across web, mobile, and server-side applications.
  • Gemini AI - Useful for making prompts and getting output.
  • Nodemailer - Used to send mail or attachments programmatically.
  • Turborepo - Incremental build system used for building monorepo projects.

Setup Guide ✨

Welcome to the Comic Cult project! Follow these steps to set up and run the project on your local machine.

Prerequisites 🛠️

Before you begin, ensure you have the following installed:

  • Node.js (v14 or higher)
  • npm (v6 or higher)

Installation Steps 🚀

  1. Clone the repository:

    git clone https://github.com/Girishbari/comic-cult.git
  2. Navigate to the project directory:

    cd comic-cult
  3. Install all dependencies:

    npm install
  4. Install Turbo globally (if not already installed):

    npm install turbo --global

Configuration ⚙️

Before running the project, you may need to configure certain environment variables or settings. These configurations are typically found in .env files within specific directories. Ensure that you review and update these configurations according to your environment.

Running the Project ▶️

To run the entire project, execute the following command:

turbo dev

This will start both the client and server components.

Running Individual Components 🧩

If you prefer to run individual components separately, follow these steps:

Run the Server Only 🌐

Navigate to the server directory and start the server:

cd apps/server && npm run dev

Run the Client Only 💻

Navigate to the client directory and start the client:

cd apps/client && npm run dev

Troubleshooting 🛠️

If you encounter any issues during setup or while running the project, refer to the project's issue tracker on GitHub or search for solutions online. Common issues and their resolutions may also be documented in the project's README or other documentation files.

Additional Information 📚

For more detailed information about the project and its components, refer to the project's main documentation.

Before you begin, ensure you have the following installed:

  • Node.js (v14 or higher)
  • npm (v6 or higher)

Installation Steps 🚀

  1. Clone the repository:

    git clone https://github.com/Girishbari/comic-cult.git
  2. Navigate to the project directory:

    cd comic-cult
  3. Install all dependencies:

    npm install
  4. Install Turbo globally (if not already installed):

    npm install turbo --global

Configuration ⚙️

Before running the project, you may need to configure certain environment variables or settings. These configurations are typically found in .env files within specific directories. Ensure that you review and update these configurations according to your environment.

Running the Project ▶️

To run the entire project, execute the following command:

turbo dev

This will start both the client and server components.

Running Individual Components 🧩

If you prefer to run individual components separately, follow these steps:

Run the Server Only 🌐

Navigate to the server directory and start the server:

cd apps/server && npm run dev

Run the Client Only 💻

Navigate to the client directory and start the client:

cd apps/client && npm run dev

Troubleshooting 🛠️

If you encounter any issues during setup or while running the project, refer to the project's issue tracker on GitHub or search for solutions online. Common issues and their resolutions may also be documented in the project's README or other documentation files.

Additional Information 📚

For more detailed information about the project and its components, refer to the project's main documentation.

🤔 How to Contribute?

Contributing to open-source software (OSS) projects can be a rewarding and fulfilling experience. Not only can you learn new skills, but you can also help make a valuable contribution to a project that benefits the broader community.

  • Remember to read the [Code of Conduct](

CODE_OF_CONDUCT.md) before contributing.

Message from PA

Thank you for visiting comic-cult! 💝
Feel free to explore the code, contribute, and provide feedback.

📜 License

Distributed under the MIT License. See LICENSE for more information.

Thanks to All the Contributors

A heartfelt thank you to everyone who has contributed to the growth of Comic-cult! Your time and efforts are deeply appreciated. Keep up the amazing work! 🙌