-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
50 changed files
with
932 additions
and
674 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,60 @@ | ||
# novelai-api | ||
Python API for the NovelAI REST API | ||
|
||
This module is intended to be used by developers as a helper for using NovelAI's REST API. | ||
|
||
[TODO]: # (Add Quality Checking workflows and badges) | ||
|
||
| Category | Badges | | ||
|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| Pypi | [![PyPI](https://img.shields.io/pypi/v/novelai-api)](https://pypi.org/project/novelai-api) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/novelai-api)](https://pypi.org/project/novelai-api) [![PyPI - License](https://img.shields.io/pypi/l/novelai-api)](https://pypi.org/project/novelai-api/) [![PyPI - Format](https://img.shields.io/pypi/format/novelai-api)](https://pypi.org/project/novelai-api/) | | ||
| Quality checking | [![Python package](https://github.com/Aedial/novelai-api/actions/workflows/python-package.yml/badge.svg)](https://github.com/Aedial/novelai-api/actions/workflows/python-package.yml) [![Python package](https://github.com/Aedial/novelai-api/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/Aedial/novelai-api/actions/workflows/codeql-analysis.yml) [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint) [![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) | | ||
| Stats | [![GitHub top language](https://img.shields.io/github/languages/top/Aedial/novelai-api)](https://github.com/Aedial/novelai-api/search?l=python) ![Libraries.io dependency status for GitHub repo](https://img.shields.io/librariesio/github/Aedial/novelai-api) ![GitHub repo size](https://img.shields.io/github/repo-size/Aedial/novelai-api) ![GitHub issues](https://img.shields.io/github/issues-raw/Aedial/novelai-api) ![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/Aedial/novelai-api) | | ||
| Activity | ![GitHub last commit](https://img.shields.io/github/last-commit/Aedial/novelai-api) ![GitHub commits since tagged version](https://img.shields.io/github/commits-since/Aedial/novelai-api/v0.11.2) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/Aedial/novelai-api) | | ||
|
||
|
||
### Prerequisites | ||
Before anything, ensure that nox is installed (pip install nox). | ||
For logging in, credentials are needed (NAI_USERNAME and NAI_PASSWORD). They should be passed via the environment variables (dotenv file supported). | ||
|
||
### Examples | ||
The examples are in the example folder. Each example is standalone and can be used as a test. | ||
Examples should be ran with `nox -s run -- python example/<name>.py`. | ||
|
||
Some tests can act as example. The full list is as follows : | ||
- decryption and re-encryption: tests/test_decrypt_encrypt_integrity_check.py | ||
- diverse generations: tests/test_generate.py | ||
- parallel generations: tests/test_generate_parallel.py | ||
|
||
### Usage | ||
The source and all the required functions are located in the novelai-api folder. | ||
The examples and tests showcase how this API should be used and can be regarded as the "right way" to use it. However, it doesn't mean one can't use the "low level" part, which is a thin implementation of the REST endpoints, while the "high level" part is an abstraction built on that low level. | ||
|
||
### Contributing | ||
You can contribute features and enhancements through PR. Any PR should pass the tests and the pre-commits before submission. | ||
|
||
The tests against the API can be ran with `nox -s test_api`. Note that having node.js installed is required for the test to run properly. | ||
/!\ WIP /!\ The tests against the mocked backend can be ran with `nox -s test_mock`. | ||
|
||
To install and run the pre-commit hook, run `nox -s pre-commit`. This hook should be installed before committing anything. | ||
# novelai-api | ||
Python API for the NovelAI REST API | ||
|
||
This module is intended to be used by developers as a helper for using NovelAI's REST API. | ||
|
||
[TODO]: # (Add Quality Checking workflows and badges) | ||
|
||
| Category | Badges | | ||
|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| Pypi | [![PyPI](https://img.shields.io/pypi/v/novelai-api)](https://pypi.org/project/novelai-api) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/novelai-api)](https://pypi.org/project/novelai-api) [![PyPI - License](https://img.shields.io/pypi/l/novelai-api)](https://pypi.org/project/novelai-api/) [![PyPI - Format](https://img.shields.io/pypi/format/novelai-api)](https://pypi.org/project/novelai-api/) | | ||
| Quality checking | [![Python package](https://github.com/Aedial/novelai-api/actions/workflows/python-package.yml/badge.svg)](https://github.com/Aedial/novelai-api/actions/workflows/python-package.yml) [![Python package](https://github.com/Aedial/novelai-api/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/Aedial/novelai-api/actions/workflows/codeql-analysis.yml) [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint) [![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) | | ||
| Stats | [![GitHub top language](https://img.shields.io/github/languages/top/Aedial/novelai-api)](https://github.com/Aedial/novelai-api/search?l=python) ![Libraries.io dependency status for GitHub repo](https://img.shields.io/librariesio/github/Aedial/novelai-api) ![GitHub repo size](https://img.shields.io/github/repo-size/Aedial/novelai-api) ![GitHub issues](https://img.shields.io/github/issues-raw/Aedial/novelai-api) ![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/Aedial/novelai-api) | | ||
| Activity | ![GitHub last commit](https://img.shields.io/github/last-commit/Aedial/novelai-api) ![GitHub commits since tagged version](https://img.shields.io/github/commits-since/Aedial/novelai-api/v0.10.5) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/Aedial/novelai-api) | | ||
|
||
|
||
# Usage | ||
Download via [pip](https://pypi.org/project/novelai-api): | ||
``` | ||
pip install novelai-api | ||
``` | ||
|
||
A full list of examples is available in the [example](/example) directory | ||
|
||
The API works through the NovelAIAPI object. | ||
It is split in 2 groups: NovelAIAPI.low_level and NovelAIAPI.high_level | ||
|
||
## low_level | ||
The low level interface is a strict implementation of the official API (<https://api.novelai.net/docs>). | ||
It only checks for input types via assert and output schema if NovelAIAPI.low_level.is_schema_validation_enabled is True | ||
|
||
## high_level | ||
The high level interface builds on the low level one for easier handling of complex settings. | ||
It handles many tasks from the frontend | ||
|
||
|
||
# Development | ||
All relevant objects are in the [novelai_api](novelai_api) directory. The [nox](https://pypi.org/project/nox/) package is required (`pip install nox`). | ||
|
||
## Contributing | ||
You can contribute features and enhancements through PR. Any PR should pass the tests and the pre-commits before submission. | ||
The pre-commit hook can be installed via | ||
``` | ||
nox -s pre-commit | ||
``` | ||
|
||
## Testing against the API | ||
[API](tests/api) | ||
|
||
## Testing against the mocked API | ||
| :warning: WIP, does not work yet :warning: | | ||
|--------------------------------------------| | ||
|
||
[Mock](tests/mock) | ||
|
||
## Docs | ||
To build the docs, run | ||
``` | ||
nox -s build-docs | ||
``` | ||
The docs will be locally viewable at docs/build/html/index.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
sphinx==6.1.3 | ||
myst-parser | ||
# patched repo to work with relative links | ||
git+https://github.com/Aedial/MyST-Parser | ||
linkify-it-py | ||
sphinx-copybutton | ||
sphinx_last_updated_by_git | ||
sphinx-hoverxref |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
boilerplate | ||
=========== | ||
|
||
.. automodule:: example.boilerplate | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
example directory | ||
================= | ||
|
||
.. include:: ../../../example/README.md | ||
:parser: myst_parser.sphinx_ | ||
|
||
Content | ||
------- | ||
|
||
.. automodule:: example.download_modules | ||
|
||
.. automodule:: example.download_presets | ||
|
||
.. automodule:: example.download_shelves | ||
|
||
.. automodule:: example.download_stories_and_content | ||
|
||
.. automodule:: example.generate_controlnet_masks | ||
|
||
.. automodule:: example.generate_image | ||
|
||
.. automodule:: example.generate_image_test_samplers | ||
|
||
.. automodule:: example.generate_image_with_controlnet | ||
|
||
.. automodule:: example.generate_image_with_img2img | ||
|
||
.. automodule:: example.generate_text | ||
|
||
.. automodule:: example.generate_voice | ||
|
||
.. automodule:: example.login | ||
|
||
.. automodule:: example.login_with_proxy | ||
|
||
.. automodule:: example.suggest_tags | ||
|
||
.. automodule:: example.upscale_image | ||
|
||
Reference | ||
--------- | ||
|
||
.. toctree:: | ||
:maxdepth: 2 | ||
|
||
example.boilerplate |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.BanList.rst → ...ource/novelai_api/novelai_api.BanList.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.BiasGroup.rst → ...rce/novelai_api/novelai_api.BiasGroup.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.GlobalSettings.rst → ...ovelai_api/novelai_api.GlobalSettings.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.Idstore.rst → ...ource/novelai_api/novelai_api.Idstore.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.ImagePreset.rst → ...e/novelai_api/novelai_api.ImagePreset.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.Keystore.rst → ...urce/novelai_api/novelai_api.Keystore.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.NovelAIError.rst → .../novelai_api/novelai_api.NovelAIError.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.NovelAI_API.rst → ...e/novelai_api/novelai_api.NovelAI_API.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.Preset.rst → ...source/novelai_api/novelai_api.Preset.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.SchemaValidator.rst → ...velai_api/novelai_api.SchemaValidator.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.StoryHandler.rst → .../novelai_api/novelai_api.StoryHandler.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.Tokenizer.rst → ...rce/novelai_api/novelai_api.Tokenizer.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
docs/source/novelai_api.utils.rst → .../source/novelai_api/novelai_api.utils.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.