Skip to main content

A community-maintained Python package for wrapping a variety of REST API calls for different AI art models.

Project description

Pycurtain

A community-maintained python package for wrapping REST APIs that interface with a variety of different AI models. Think "curtain", like wizard of oz behind the curtain. This tool lets the developer close the curtains and only focus on implementing one code base for any supported AI models.

Install

pip install pycurtain

Usage

There are tasks (image-related) and sources (AI art models) that are supported. The following is an example of how to use the package to generate an image from a model source.

import pycurtain

print(pycurtain.list_sources())
''' serial output
{'image': ['STABLE_DIFFUSION', 'DEEP_AI', 'DALLE2', 'CRAIYON', 'REPLICATE'], 'text': ['GPT3']}
'''
print(pycurtain.list_tasks())
''' serial output
{'image': ['edit', 'generate', 'vary', 'upscale'], 'text': ['summarize', 'fix_grammar', 'tag']}
'''

# first, set your source
source = pycurtain.source.SourceImageType.CRAIYON
# set task to generate
task = pycurtain.task.Image(source)
# set prompt
prompt = "a wonderful day"
# generate image(s)
img = task.generate(prompt=prompt)
# save image
img[0].save("output.png")

Supported Tasks

image

  • generate (text2img, creation)
  • vary (img2img, style transfer)
  • edit (img2img, with masks)
  • interrogate (img2text, description)

text

  • summarize (tl;dr)
  • fix_grammar (punctuation, spelling, capitalization, etc.)
  • tag (subject matter, genres, subgenres, etc.)

Supported Processes

A process is a way to combine multiple tasks together. For example, you can convert a sequence of images into a video.

  • text_to_video_zoom (zoom_in and_out)
from pycurtain.process import text_to_video_zoom
from pycurtain.source import SourceImageType
text_to_video_zoom.zoom_in(prompts=["A grateful dead poster"], source=SourceImageType.STABLE_DIFFUSION, n_imgs=10, file_name="output.mp4")

AI Model Sources

Currently all but one supported AI Models require an API key generated from the REST API host (Craiyon being the exception). Pycurtain is a third-party (open-source / community driven) python wrapper SDK and is not associated with any of the AI Model providers. Each API key can be generated by signing up from the AI Model hosting site. The current implementation requires each (in-use) API key to be set in the environment variables following the \secrets\stuff.py format.

No API Key or private information is stored by Pycurtain.

Sources Offical Sites

Road Map

  • provide prelimiary wrappers for these AI model sources

  • allow users to adjust common parameters between models

  • provide utility features beyond the model wrapper

    • equirectangluar images (360 degree images)
    • simple inpainting mask creation
  • beyond images... videos, text, audio. All leveraging the available REST API accessible ML models of today.

Developing Pycurtain

To install pycurtain, along with the tools you need to develop and run test, run the following in your virtual environment:

pip install -e .[dev]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycurtain-0.0.9.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

pycurtain-0.0.9-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file pycurtain-0.0.9.tar.gz.

File metadata

  • Download URL: pycurtain-0.0.9.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for pycurtain-0.0.9.tar.gz
Algorithm Hash digest
SHA256 59d5ddc064425a2fc3a5c2739d53cae96c8951aa3159ad01b04df75eb5f5d21c
MD5 05ce982f5e3b2fb88a9e75424c43b809
BLAKE2b-256 b9136290d02ec6a93be8b2eeb49f92447b0205ef7c5fc411eb39aba755cca741

See more details on using hashes here.

File details

Details for the file pycurtain-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: pycurtain-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for pycurtain-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c14e9048836c5162d06713b95634a5be5d95167eff358e7ec5f398db4016b868
MD5 9d57fc9767345b195036cc5e051acdac
BLAKE2b-256 243e0acc10c444f3fa1e26e57a64f69d9641dd35dff1a8e33912fe0aa36dea25

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page