background dots

A look at the Stable Diffusion models and versions available on Tiyaro as API.

blog thumbnail

Generative AI

Generative AI is taking the tech and non-tech world by storm. ChatGPT anyone? To that end we started providing APIs for Stable diffusion in September. Stable diffusion image generation models are a type of machine learning model that can be used to generate images based on a given set of input data. These models have become increasingly popular due to their ability to create highly realistic and detailed images that can be used for a variety of purposes. Our stable of stable diffusion models (pun intended) has grown from a single model to multiple models for various tasks like text to image, image to image and inpainting. We also provide multiple versions of these models to our users.

Our goal is to enable developers to ‘consume’ these latest innovations in AI as a service. By using stable diffusion image generation models as APIs, developers can significantly reduce the time and effort required to build and deploy their applications. This allows them to focus on building the core features and functionality of their applications, rather than spending time and resources on building and maintaining the underlying image generation infrastructure.

We have diffusion models for

  • Text To Image
  • Image to Image
  • Inpainting

The following versions of the above models are available

Text To ImageImage to ImageInpainting
1.41.41.4
1.51.51.5
2.02.02.0
2.12.1-

Stable Diffusion API

Before we get into the details of the diffusion models I would like to mention that all models that are offered as an API on Tiyaro are documented with Swagger or OpenAPI specification. This allows you to find out all the input parameters that are supported by these API endpoints along with the supported values for those parameters. This is especially useful for Stable Diffusion models because each version supports its own schedulers and you can quickly find those out from the swagger spec (see the gif below). We also provide working code samples in the model card for each model as well as a code samples git repo .

1s.gif

Stable Diffusion Models

Text To Image

This text to image API takes a user prompt and generates an image based on the input prompt. Here is a sample Python program that inovkes the 2.0 version of this API. You can also clone the following code from our code sample repo .

import requests
import os
import sys
import io
from PIL import Image
import json
import base64

#
# You can generate your Tiyaro API Key from here
# https://console.tiyaro.ai/apikeys
#
apikey = os.getenv("TIYARO_API_KEY")
if apikey is None:
    print("Please set env variable TIYARO_API_KEY")
    print("You can generate your API key from https://console.tiyaro.ai/apikeys")
    sys.exit(1)

headers = {
    "Authorization": f"Bearer {apikey}",
    "content-type": "application/json"
}
url = "https://api.tiyaro.ai/v1/ent/huggingface/1/stabilityai/stable-diffusion-2-base"
querystring = {"serviceTier": "gpuflex"}

#
# Credit for the prompt goes to this reddit post
# https://www.reddit.com/r/StableDiffusion/comments/z4r2oo/v2_makes_really_nice_birds/?utm_source=share&utm_medium=web2x&context=3
#
payload = {"input": {
    "prompt": "Cinematic shot of taxidermy bird inside an antique shop, glass, crystal, flowers, loxurious,",
    "negative_prompt": "Photoshop, video game, ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, mutation, mutated, extra limbs, extra legs, extra arms, disfigured, deformed, cross-eye, body out of frame, blurry, bad art, bad anatomy, 3d render,",
    "scheduler": "dpm",
    "disable_safety_checker": False,
    "seed": 3813511178,
    "steps": 20,
    "guidance_scale": 12.1,
    "width": 512,
    "height": 512
}}

response = requests.request(
    "POST", url, json=payload, headers=headers, params=querystring)

resp = json.loads(response.text)
imgB64 = resp["response"]["images"][0]
imgData = base64.b64decode(imgB64)

im = Image.open(io.BytesIO(imgData))
im.show()

Here is the image generated by the above code. The credit for the prompt goes to this reddit post

text2img.png

Image to Image

This is image to image API exposed the model that does image to image translation guided by the user prompts. Here is an example of that model in use from the Tiyaro UI.

img2img.png

Inpainting

This method takes an image and an image mask, the model is then able to place the masked part of the image into a setting described by the text. See following example.

inpaint.png

Find Stable Diffusion on Tiyaro

You can simply search for 'stable diffusion' in Search and you will get a listing of all the above 3 types of models for each version.

Dreambooth - Customize diffusion models for your needs

In addition to the models described above, we also provide Dreambooth training as a service. Dreambooth allows users to train diffusion models for their specific use case. We offer Dreambooth training in 2 ways

  • From the UI
  • Dreambooth API for training

You can refere to the step-by-step blog on how to train diffusion models using our UI.

A much requested feature, the Dreambooth API for training is documented here . This is the goto option for developers who are trying to use training in their applications or workflows.

Conclusion

There are a variety of ready to use diffusion models exposed as Stable Diffusion API available for developers to both use and train Diffusion models on Tiyaro. Simply signup and give it a go!

Start Today.

© 2023 Tiyaro, Inc.