Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wwakabobik/leonardo_api
Leonardo.ai API
https://github.com/wwakabobik/leonardo_api
ai api async-api leonardo leonardo-ai leonardo-api python python3 requests-apis
Last synced: 5 days ago
JSON representation
Leonardo.ai API
- Host: GitHub
- URL: https://github.com/wwakabobik/leonardo_api
- Owner: wwakabobik
- License: mit
- Created: 2023-08-29T16:08:31.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-03T13:50:15.000Z (5 months ago)
- Last Synced: 2024-06-12T16:25:18.137Z (5 months ago)
- Topics: ai, api, async-api, leonardo, leonardo-ai, leonardo-api, python, python3, requests-apis
- Language: Python
- Homepage: https://pypi.org/project/leonardo-api/
- Size: 852 KB
- Stars: 3
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
## This is Leonardo.ai API.
[![PyPI version](https://badge.fury.io/py/leonardo-api.svg)](https://badge.fury.io/py/leonardo-api) [![Linters](https://github.com/wwakabobik/leonardo_api/actions/workflows/master-linters.yml/badge.svg?branch=master)](https://github.com/wwakabobik/leonardo_api/actions/workflows/master-linters.yml)
This package contains Python API for [Leonardo.ai](https://leonardo.ai/) based on official [API documentation](https://docs.leonardo.ai/reference).
![Leonardo.ai interface](https://raw.githubusercontent.com/wwakabobik/leonardo_api/master/src/assets/leonardo_interface.jpg)
To install the package, please use package from [pypi](https://pypi.org/project/leonardo-api/):
```bash
pip install leonardo-api
```This Python API provides access to Leonardo API using synchronous methods (based on requests library) as well as asynchronous (aiohttp). You can choose one of them - `Leonardo` or `LeonardoAsync`.
To start, you must have paid subscription and create an API access token from you [settings page](https://app.leonardo.ai/settings)->User API. Then, init manager class with using your access_token:
```python
from leonardo_api import Leonardoleonardo = Leonardo(auth_token='abcd-1234-5678-90ef-deadbeef00000')
```Now you can use all API methods, provided by Leonardo.ai API, i.e. starting getting user info and generating your first image:
```python
response = leonardo.get_user_info() # get your user info
response = leonardo.post_generations(prompt="The quick brown fox jumps over the lazy dog", num_images=1,
negative_prompt='schrodinger cat paradox',
model_id='e316348f-7773-490e-adcd-46757c738eb7', width=1024, height=768,
guidance_scale=7)
```In according to API reference, you will get the json answer with content about pending job like following:
```json
{"sdGenerationJob": {"generationId": "123456-0987-aaaa-bbbb-01010101010"}}
```To obtain your image you need to use additional method:
```python
response = leonardo.get_single_generation(generation_id) # get it using response['sdGenerationJob']['generationId']
```Or, optionally, you may wait for job completion using following method:
```python
response = leonardo.wait_for_image_generation(generation_id=response['sdGenerationJob']['generationId'])
```Finally, you'll get your array of images:
```python
[{'url': 'https://cdn.leonardo.ai/users/abcd-1234-5678-90ef-deadbeef00000/generations/123456-0987-aaaa-bbbb-01010101010/Absolute_Reality_v16_The_quick_brown_fox_jumps_0.jpg', 'nsfw': False, 'id': 'aaaaaa-bbbb-cccc-dddd-ffffffffff', 'likeCount': 0, 'generated_image_variation_generics': []}]
```![The quick brown fox jumps over the lazy dog](https://raw.githubusercontent.com/wwakabobik/leonardo_api/master/src/assets/fox.jpeg)
You'll find descriptions for rest of the methods in official [API reference](https://docs.leonardo.ai/reference).
---
As option, you may want to use preloaded dicts with models (nsfw/community/platform):
```python
from leonardo_api import platform_models, custom_models, nsfw_models
```Which contains details of models like following:
```python
{
"data": {
"custom_models": [
{
"id": "f1929ea3-b169-4c18-a16c-5d58b4292c69",
"name": "RPG v5",
# rest of the model data
}
# rest models
]
}
}
```Have fun and enjoy!
## Donations
If you like this project, you can support it by donating via [DonationAlerts](https://www.donationalerts.com/r/rocketsciencegeek).