Skip to content

A repository of models, textual inversions, and more

License

Notifications You must be signed in to change notification settings

shreeshreee/civitai

This branch is 2804 commits behind civitai/civitai:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

39e7db0 · Sep 25, 2024
Aug 6, 2024
Aug 30, 2024
Aug 16, 2024
Feb 21, 2023
Sep 15, 2024
Sep 10, 2024
Aug 30, 2024
Sep 25, 2024
Jan 25, 2023
Jul 7, 2023
Sep 19, 2024
Mar 24, 2023
May 16, 2024
Oct 12, 2022
Aug 12, 2024
Oct 19, 2023
May 16, 2024
Jul 5, 2024
Nov 9, 2022
Jul 22, 2024
Jul 3, 2023
Apr 12, 2023
Oct 11, 2022
Mar 1, 2024
May 1, 2024
Sep 24, 2024
Sep 24, 2024
May 16, 2024
Sep 3, 2024
Jul 5, 2024

Repository files navigation

Contributors Forks Stargazers Issues Apache License 2.0 Discord


Table of Content

About the Project

Our goal with this project is to create a platform where people can share their stable diffusion models (textual inversions, hypernetworks, aesthetic gradients, VAEs, and any other crazy stuff people do to customize their AI generations), collaborate with others to improve them, and learn from each other's work. The platform allows users to create an account, upload their models, and browse models that have been shared by others. Users can also leave comments and feedback on each other's models to facilitate collaboration and knowledge sharing.

Tech Stack

We've built this project using a combination of modern web technologies, including Next.js for the frontend, TRPC for the API, and Prisma + Postgres for the database. By leveraging these tools, we've been able to create a scalable and maintainable platform that is both user-friendly and powerful.

  • DB: Prisma + Postgres
  • API: tRPC
  • Front-end + Back-end: NextJS
  • UI Kit: Mantine
  • Storage: Cloudflare

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

First, make sure that you have the following installed on your machine:

  • Node.js (version 18 or later)
  • Docker (for running the database)

We recommend you have installed nvm in order to set the right node version to run this project

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

Installation

  1. Clone the repository to your local machine.
  2. Run npm install in the project directory to install the necessary dependencies.
  3. Spin up required services with docker-compose up -d
    • Note: In addition to postgres and redis, this will also run maildev for email and minio for s3 storage with all necessary buckets automatically created, minio and maildev are not strictly needed but are preferred for testing and development purposes.
  4. Create your .env by making a copy of the contents from .env-example file.
    • Most default values are configured to work with the docker-compose setup, with the exception of the S3 upload key and secret. To generate those, navigate to the minio web interface at http://localhost:9000 with the default username and password minioadmin, and then navigate to the "Access Keys" tab. Click "Create Access Key" and copy the generated key and secret into the .env file.
    • Set WEBHOOK_TOKEN to a random string of your choice. This will be used to authenticate requests to the webhook endpoint.
    • Comment out or remove
      • CLICKHOUSE_HOST
      • CLICKHOUSE_USERNAME
      • CLICKHOUSE_PASSWORD
      • CLICKHOUSE_TRACKER_URL
    • Add a random string of your choice to the email properties to allow user registration
      • EMAIL_USER
      • EMAIL_PASS
      • EMAIL_FROM (Valid email format needed)
    • Replace ORCHESTRATOR_ENDPOINT url with http://localhost
    • Set NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY to a random string of your choice. This functions as a bypass as stripe credentials are internal
    • Add http://localhost as the value to the following fields
      • RESOURCE_RECOMMENDER_URL
      • NOTIFICATION_DB_URL
      • NOTIFICATION_DB_REPLICA_URL
  5. Run npm run db:migrate to run all database migrations.
  6. Run npm run db:generate to generate the prisma client.
  7. Start the development server by running npm run dev.
  8. Visit the page http://localhost:3000/api/webhooks/run-jobs?token=WEBHOOK_TOKEN&run=update-metrics to start the metrics update job (make sure to substitute WEBHOOK_TOKEN)
  9. Finally, visit http://localhost:3000 to see the website.
    • Note that account creation will run emails through maildev, which can be accessed at http://localhost:1080.
    • Also note that Cloudflare credentials are necessary in order for image uploads to work.

Important Scripts

docker-compose up -d # Spin up db, redis, maildev, and minio

npm run dev # Start the dev environment

npm run db:migrate -- --name migration-name # Create a database migration with prisma after updating the schema

npm run db:generate # Generates local prisma client

npm run db:ui # Start Prisma Studio to manage the database content

npm run build # Build the NextJS project

Contributing

Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the repository to your own GitHub account.
  2. Create a new branch for your changes.
  3. Make your changes to the code.
  4. Commit your changes and push the branch to your forked repository.
  5. Open a pull request on our repository.

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

License

Apache License 2.0 - Please have a look at the LICENSE for more details.

About

A repository of models, textual inversions, and more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.2%
  • PLpgSQL 1.5%
  • Other 0.3%