* Updated nav to be in new order prioritizing more commonuly used tabs * Added set nav in mkdocs.yaml
5.2 KiB
Development
What do I need to know to help?
If you are looking to help to with a code contribution, InvokeAI uses several different technologies under the hood: Python (Pydantic, FastAPI, diffusers) and Typescript (React, Redux Toolkit, ChakraUI, Mantine, Konva). Familiarity with StableDiffusion and image generation concepts is helpful, but not essential.
For more information, please review our area specific documentation:
If you don't feel ready to make a code contribution yet, no problem! You can also help out in other ways, such as documentation or translation.
There are two paths to making a development contribution:
- Choosing an open issue to address. Open issues can be found in the Issues section of the InvokeAI repository. These are tagged by the issue type (bug, enhancement, etc.) along with the “good first issues” tag denoting if they are suitable for first time contributors.
- Additional items can be found on our roadmap <link to roadmap>. The roadmap is organized in terms of priority, and contains features of varying size and complexity. If there is an inflight item you’d like to help with, reach out to the contributor assigned to the item to see how you can help.
- Opening a new issue or feature to add. Please make sure you have searched through existing issues before creating new ones.
Regardless of what you choose, please post in the #dev-chat channel of the Discord before you start development in order to confirm that the issue or feature is aligned with the current direction of the project. We value our contributors time and effort and want to ensure that no one’s time is being misspent.
How do I make a contribution?
Never made an open source contribution before? Wondering how contributions work in our project? Here's a quick rundown!
- Find a good first issue that you are interested in addressing or a feature that you would like to add. Then, reach out to our team in the #dev-chat channel of the Discord to ensure you are setup for success.
- Fork the InvokeAI repository to your GitHub profile. This means that you will have a copy of the repository under your-GitHub-username/InvokeAI.
- Clone the repository to your local machine using:
**git clone** https://github.com/your-GitHub-username/InvokeAI.git
- Create a new branch for your fix using:
**git checkout -b branch-name-here**
- Make the appropriate changes for the issue you are trying to address or the feature that you want to add.
- Add the file contents of the changed files to the "snapshot" git uses to manage the state of the project, also known as the index:
**git add insert-paths-of-changed-files-here**
- Store the contents of the index with a descriptive message.
**git commit -m "Insert a short message of the changes made here"**
- Push the changes to the remote repository using
**git push origin branch-name-here**
- Submit a pull request to the main branch of the InvokeAI repository.
- Title the pull request with a short description of the changes made and the issue or bug number associated with your change. For example, you can title an issue like so "Added more log outputting to resolve #1234".
- In the description of the pull request, explain the changes that you made, any issues you think exist with the pull request you made, and any questions you have for the maintainer. It's OK if your pull request is not perfect (no pull request is), the reviewer will be able to help you fix any problems and improve it!
- Wait for the pull request to be reviewed by other collaborators.
- Make changes to the pull request if the reviewer(s) recommend them.
- Celebrate your success after your pull request is merged!
If you’d like to learn more about contributing to Open Source projects, here is a Getting Started Guide.
Where can I go for help?
If you need help, you can ask questions in the #dev-chat channel of the Discord.
For frontend related work, @pyschedelicious is the best person to reach out to.
For backend related work, please reach out to @pyschedelicious, @blessedcoolant or @lstein.
What does the Code of Conduct mean for me?
Our Code of Conduct means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.