# **kandinsky-api-requests**
**Асинхронное** api для использования kandinsky 3.1 в своих проектах
## **Как использовать:**
##### Установка:
```
pip install AsyncKandinsky
```
### Для инициализации FusionBrainApi можно использовать keys или данные аккаунта:
+ api_key и secret_key:
+ **!!! Ключи создаются во вкладке api (https://fusionbrain.ai/keys/)**
+ быстрый и простой способ генерации
+ не самое лучше качество генерации
+ почта и пароль - данные от уже созданного аккаунта:
+ **!!! Обязательно нужен уже зарегистрированный аккаунт**
+ в такой версии будет доступна генерация: **видео / анимации / больше стилей**
+ лучшее качество генерации
```
model = FusionBrainApi(ApiApi("Сюда свой api_key", "Сюда свой secret_key"))
# Любой способ на выбор
model = FusionBrainApi(ApiWeb("Ваша почта", "Ваш пароль"))
```
#
###### *Полные примеры можно посмотреть в tests.py (GitHub)*
### 1. text2image
```
async def generate():
try:
result = await model.text2image("котик", style="ANIME", art_gpt=True)
# новый параметр art_gpt - это инструмент для автоматического улучшения промпта => улучшение качества картинки
except ValueError as e:
print(f"Error:\t{e}")
else:
with open("cat_anime_img.png", "wb") as f:
f.write(result.getvalue())
print("Done!")
```
### 2. text2animation
```
async def generate():
# описания для двух сцен
try:
result = await model.text2video("котик бежит по полю")
# заготовленных стилей нет
except ValueError as e:
print(f"Error:\t{e}")
else:
with open("cat_anime_video.mp4", "wb") as f:
f.write(result.getvalue())
print("Done!")
```
### 3. text2video
```
async def generate():
try:
result = await model.text2animation(["котик бежит по полю", "котик пьёт воду из речки"])
# заготовленных стилей нет
except ValueError as e:
print(f"Error:\t{e}")
else:
with open("cat_anime_animation.mp4", "wb") as f:
f.write(result.getvalue())
print("Done!")
```
#
Все стили можно посмотреть в `await FusionBrainApi().get_styles()`:
```
async def read_styles():
for style in await model.get_styles():
print(style)
```
![Пример генерации](https://github.com/s1rne/kandinsky-async-api/blob/main/cat_anime.jpg)
Raw data
{
"_id": null,
"home_page": "https://github.com/s1rne/kandinsky-async-api",
"name": "AsyncKandinsky",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "kandinsky text2img async api",
"author": "s1rne",
"author_email": "s.simaranov8@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/aa/04/f3d7ef51668b468d9ff43cb9c8aeb6a28397ca22fb45fd0ffecfc829d51e/asynckandinsky-2.0.4.tar.gz",
"platform": null,
"description": "# **kandinsky-api-requests**\n\n**\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435** api \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f kandinsky 3.1 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445\n\n## **\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:**\n##### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430: \n```\npip install AsyncKandinsky\n```\n\n### \u0414\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 FusionBrainApi \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c keys \u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430:\n + api_key \u0438 secret_key:\n + **!!! \u041a\u043b\u044e\u0447\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 api (https://fusionbrain.ai/keys/)**\n + \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \n + \u043d\u0435 \u0441\u0430\u043c\u043e\u0435 \u043b\u0443\u0447\u0448\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438\n + \u043f\u043e\u0447\u0442\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044c - \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430:\n + **!!! \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u0435\u043d \u0443\u0436\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442**\n + \u0432 \u0442\u0430\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f: **\u0432\u0438\u0434\u0435\u043e / \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 / \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0442\u0438\u043b\u0435\u0439**\n + \u043b\u0443\u0447\u0448\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438\n\n```\nmodel = FusionBrainApi(ApiApi(\"\u0421\u044e\u0434\u0430 \u0441\u0432\u043e\u0439 api_key\", \"\u0421\u044e\u0434\u0430 \u0441\u0432\u043e\u0439 secret_key\"))\n# \u041b\u044e\u0431\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\nmodel = FusionBrainApi(ApiWeb(\"\u0412\u0430\u0448\u0430 \u043f\u043e\u0447\u0442\u0430\", \"\u0412\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c\"))\n```\n\n#\n###### *\u041f\u043e\u043b\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 tests.py (GitHub)*\n\n\n### 1. text2image\n```\nasync def generate():\n try:\n result = await model.text2image(\"\u043a\u043e\u0442\u0438\u043a\", style=\"ANIME\", art_gpt=True)\n # \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 art_gpt - \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u043f\u0442\u0430 => \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\n except ValueError as e:\n print(f\"Error:\\t{e}\")\n else:\n with open(\"cat_anime_img.png\", \"wb\") as f:\n f.write(result.getvalue())\n print(\"Done!\")\n```\n\n### 2. text2animation\n```\nasync def generate():\n # \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0441\u0446\u0435\u043d\n try:\n result = await model.text2video(\"\u043a\u043e\u0442\u0438\u043a \u0431\u0435\u0436\u0438\u0442 \u043f\u043e \u043f\u043e\u043b\u044e\")\n # \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0438\u043b\u0435\u0439 \u043d\u0435\u0442\n except ValueError as e:\n print(f\"Error:\\t{e}\")\n else:\n with open(\"cat_anime_video.mp4\", \"wb\") as f:\n f.write(result.getvalue())\n print(\"Done!\")\n```\n\n### 3. text2video\n```\nasync def generate():\n try:\n result = await model.text2animation([\"\u043a\u043e\u0442\u0438\u043a \u0431\u0435\u0436\u0438\u0442 \u043f\u043e \u043f\u043e\u043b\u044e\", \"\u043a\u043e\u0442\u0438\u043a \u043f\u044c\u0451\u0442 \u0432\u043e\u0434\u0443 \u0438\u0437 \u0440\u0435\u0447\u043a\u0438\"])\n # \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0438\u043b\u0435\u0439 \u043d\u0435\u0442\n except ValueError as e:\n print(f\"Error:\\t{e}\")\n else:\n with open(\"cat_anime_animation.mp4\", \"wb\") as f:\n f.write(result.getvalue())\n print(\"Done!\")\n```\n\n#\n\u0412\u0441\u0435 \u0441\u0442\u0438\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 `await FusionBrainApi().get_styles()`:\n\n```\nasync def read_styles():\n for style in await model.get_styles():\n print(style)\n```\n\n![\u041f\u0440\u0438\u043c\u0435\u0440 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438](https://github.com/s1rne/kandinsky-async-api/blob/main/cat_anime.jpg)\n",
"bugtrack_url": null,
"license": null,
"summary": "This module is designed for asynchronous use of the kandinsky neural network and easy integration into your project.",
"version": "2.0.4",
"project_urls": {
"GitHub": "https://github.com/s1rne/kandinsky-async-api",
"Homepage": "https://github.com/s1rne/kandinsky-async-api"
},
"split_keywords": [
"kandinsky",
"text2img",
"async",
"api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "082e509e4117d3fdcd291cde4fc9135fd4e809ce9689582cd5fbbcf50d3c432f",
"md5": "eaad5aa22a9f94ec67b850636e33e0ed",
"sha256": "f0818e2dfbd578f9a8b4592018589d8d4b67be1abd5256abd2437d050a6b0aef"
},
"downloads": -1,
"filename": "AsyncKandinsky-2.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "eaad5aa22a9f94ec67b850636e33e0ed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 6721,
"upload_time": "2024-09-06T19:37:36",
"upload_time_iso_8601": "2024-09-06T19:37:36.432757Z",
"url": "https://files.pythonhosted.org/packages/08/2e/509e4117d3fdcd291cde4fc9135fd4e809ce9689582cd5fbbcf50d3c432f/AsyncKandinsky-2.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aa04f3d7ef51668b468d9ff43cb9c8aeb6a28397ca22fb45fd0ffecfc829d51e",
"md5": "06654bc65f9954208014928d171db145",
"sha256": "daec11e706456198234303b412ee9a82a8981716e6a07727169e3e12ecb6d80d"
},
"downloads": -1,
"filename": "asynckandinsky-2.0.4.tar.gz",
"has_sig": false,
"md5_digest": "06654bc65f9954208014928d171db145",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 5758,
"upload_time": "2024-09-06T19:37:37",
"upload_time_iso_8601": "2024-09-06T19:37:37.561568Z",
"url": "https://files.pythonhosted.org/packages/aa/04/f3d7ef51668b468d9ff43cb9c8aeb6a28397ca22fb45fd0ffecfc829d51e/asynckandinsky-2.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-06 19:37:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "s1rne",
"github_project": "kandinsky-async-api",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "asynckandinsky"
}