Jenna

Jenna is an intelligent content generator application. The name Jenna is a play on the term GenAI or Generative Artificial Intelligence.

Inspiration

Jenna was inspired by the developer's love for both technology and the arts. Generative AI serves as a bridge to connect the two worlds, and thus Jenna was born.

What it does

Jenna generates both literature and artistic images for a given user input prompt. A user may generate literature in the form of a story, play, poem or song with the aid of a text prompt and an optional accompanying image. A user is also able to generate up to three artistic images for a provided text prompt in the styles of photography, oil, acrylic, watercolour, digital or sketch in either a square ratio, portrait or landscape mode.

Users also have the option to authenticate their browser session with Google before generating content in order to have them saved automatically.

How we built it

The first step to building Jenna was to test both the Vertex AI and Gemini APIs. This project called for the use of both APIs as Vertex AI allows for text prompts whereas mulitimodal prompts that use both text and images call for Gemini.

These tests were first executed in a FastAPI environment. Later, a Next.js application was built to design the frontend to send a user prompt payload to the backend where the Google APIs were executed in order to return an HTTP response with the generated content. It was soon discovered that the backend used to call the APIs could be executed in the Next.js api folder where Node.js runs. This move allowed for hosting of the entire application in a single application environment, although the FastAPI application still exists in a GitHub repository for reference.

User authentication was carried out with NextAuth's Google provider. Authenticated users had their content metadata and generated literature text saved in a PostgreSQL database. Images used in prompts as well as generated images were saved in a Google Cloud Storage bucket.

Challenges we ran into

Given that the developer lived in Spain at the time of completing this project, the Gemini API was unavailable. However, the use of a VPN fixed this issue.

Furthermore, the developer initially planned to make Jenna only focus on producing literature as Google's Imagen tool used to generate images had restricted access. Fortunately, the developer contacted Google and requested access to Imagen, citing this Google AI Hackathon as a motive, and access was granted.

Accomplishments that we're proud of

Jenna successfully works as a full-stack application, implementing a frontend, backend, authentication service, database and cloud blob storage to provide a fully integrated platform. The actual usage of the tool is fun, particularly image generation.

What we learned

The main takeaway from this challenge is the importance of perseverance, experimenting with new tools and taking a chance on one's self. The application development process was arduous with several bugs appearing a long the way. A developer's job is to never give up and to keep moving forward.

What's next for Jenna

For the future, Jenna would like to integrate multimodality into its interface, allowing for voice-to-text input prompts.

Built With

Share this project:

Updates