Skip to content

Latest commit

 

History

History
90 lines (54 loc) · 3.16 KB

CONTRIBUTING.md

File metadata and controls

90 lines (54 loc) · 3.16 KB

How to run AI Horde locally.

  • Git clone this repository
  • copy .env_template into .env and edit it according to its comments. The horde should start if you leave it unedited
  • install python requirements with python -m pip install -r requirements.txt --user
  • start server with python server.py -vvvvi --horde stable
  • You can now connect to http://localhost:7001

To run the AI Horde with Docker or Docker Compose, see the README_docker.md.

How to contribute to the AI Horde code

We are happy you have ideas to improve this service and we welcome all contributors.

Once you have an idea you want to work on, we suggest you first open a feature request as the AI Horde has a lot of moving pieces in multiple components which might need to be adjusted, such as the AI Horde API, the reGen worker or the horde-engine library.

Our codebase makes use of multiple tools to keep our work standardized. We typically use pre-commit to ensure that all linting and code checking is performed.

You can install all the dev tools we're using by using requirements.dev.txt and then the pre-commit hook

python -m pip install -r requirements.dev.txt
pre-commit install

This will ensure that the project will prevent you from commiting changes which will not pass our CI checks.

The tools we're using are the following

black

To format all files as necessary, simply run:

black .

ruff

To adjust all files as necessary, simply run:

ruff . --fix

Ruff might request extra manual fixes

reuse

Reuse ensures that all license and contribution info is maintained. You usually don't need to do anything about this unless you add a new file, or you make significant changes in an existing one.

New file

If you add a new file, you need to ensure that it has the copyright and license information with a command like this:

reuse annotate  --copyright db0 --license="AGPL-3.0-or-later"  horde/my_new_code.py

Simply replace the copyright with your own username and optionally email.

The license to choose is based on the file.

  • For normal code contributions, use AGPL-3.0-or-later
  • For non-GenAI art and other such creative contributions, use CC-BY-SA-4.0
  • For trivial files such as .gitignore and Generative AI art, use CC0-1.0

Existing file

If you did some significant contributions to the code (i.e. not things like syntax, spelling. linting etc), then just add your own copyrights to an existing file. For example:

reuse annotate  --copyright db0 horde/existing_code.py

Simply replace the copyright with your own username and optionally email.

Note that the pre-commit will not complain if you forget to add your copyright notice to an existing file.

Code of Conduct

We expect all contributors to follow the Anarchist code of conduct. Do not drive away other contributors due to intended or unintended on bigotry.