/Apps.AI.GIF

Primary LanguageTypeScriptMIT LicenseMIT

gif-gen-banner

A Rocket.Chat App that allows users to generate GIFs directly within the chat interface using descriptive prompts.

GSoC'24 Project Link

Features

  • GIF Generation: Generate GIFs directly by providing a descriptive prompt.
  • Customizable Options: Offer a variety of settings like width, height, WebHook URL, negative prompts, etc.
  • History Preview: Display users' previous GIF generations in a horizontal preview menu.
  • Prompt Suggestions: Provide a list of different prompts generated by the NLP for users to choose from.
  • NLP-Enhanced Prompts: Utilize NLP capabilities to enhance prompts and produce better GIFs.
  • NSFW Content Filtering: Identify and deny any NSFW GIF generation requests.
  • Regeneration Feature: Allow users to regenerate a GIF if the previous result is unsatisfactory.
  • A help command: A command that allows users to view how to use this app.
  • Pagination in history: Allow storing more than 10 generations and a way to view past generations.
  • Storage Solutions: Store generated GIFs within the RC Channel using local storage APIs provided by RC.
  • Negative Prompts: Use negative prompts to improve output quality, configurable in the preferences.
  • Searchable History: Implement a search drawer to search through previous generations based on prompts.

Usage

• use `gen-gif q "<yourqueryhere>" to get a few prompt variations based on query and then request for GIF generation selecting one of the suggested prompts.
• use `gen-gif p "<yourprompthere>" to directly use your prompt for GIF generation.
• use `gen-gif history` to view past generations.

Installation Guide

Firstly, ensure you have a Rocket.Chat Server running either locally or you have the URL of a remote running server.

  1. Clone the repository to your local system:

    git clone https://github.com/<yourusername>/apps.ai.gif
  2. Install all dependencies:

    npm i
  3. Deploy the app to your server:

    rc-apps deploy --url <url> --username <username> --password <password>
  4. Once deployed, we need to set the prefences to use all the features. Go to installed apps -> private apps and under settings provide the following settings:

    a. apiKey: Replicate API Key, generate one from here.

    b. webhookUrl: Can be easily found under the details panel, under the API heading. Copy the URL part and paste in this field.

Architecture

architecture

Documentation

Here are some links to examples and documentation: