API Tutorial

Stable Diffusion API Tutorial: Generate Images in Seconds

A visual guide to using the Stable Diffusion API for image generation.

Overview of the Stable Diffusion API

This article provides an overview of the now-unavailable API that was previously offered for the Stable Diffusion Hackathon. This API allowed users to effortlessly generate images by calling a specific endpoint with text prompts. Although the API is discontinued, understanding its functionalities and usage can still be beneficial for those interested in similar technologies.

Introduction to Stable Diffusion

Stable Diffusion is a remarkable text-to-image latent diffusion model developed by a collaborative effort of researchers and engineers from CompVis, Stability AI, and LAION. This innovative model was trained on the vast LAION-5B database, specifically utilizing 512x512 pixel images.

The architecture employs a frozen CLIP ViT-L/14 text encoder to effectively interpret text prompts. With its efficient design featuring an 860M UNet and a 123M text encoder, Stable Diffusion stands out as a relatively lightweight yet powerful model for generating high-quality images from textual descriptions.

For those looking to gain deeper insights, additional information can be found on our Stable Diffusion technology page.

Getting Started with the Stable Diffusion API

Before diving into coding examples, ensure you have the necessary libraries installed. For Python, you can use the requests module to interact with the API seamlessly.

Python Example

To call the Stable Diffusion API from your Python project, use the following sample code:


import requests

url = "[insert_api_endpoint]"
headers = { 'Content-Type': 'application/json' }

prompt = "A cat with a hat"
data = {"prompt": prompt}

response = requests.post(url, headers=headers, json=data)
image_url = response.json().get('url')
print(image_url)

Downloading Image to Local Disk

If you want the generated image saved on your local disk, you can enhance the above code as follows:


image_data = requests.get(image_url).content
with open('cat_with_hat.png', 'wb') as handler:
    handler.write(image_data)

JavaScript Example

In JavaScript, make an API call using this code snippet:


const axios = require('axios');
const prompt = "A cat with a hat";

axios.post('[insert_api_endpoint]', { prompt: prompt })
    .then(response => {
        console.log(response.data.url);
    });

C# Example

For those building applications in C#, here’s how to call the endpoint:


using (var client = new HttpClient())
{
    var prompt = "A cat with a hat";
    var content = new StringContent(JsonConvert.SerializeObject(new { prompt }), Encoding.UTF8, "application/json");
    var result = await client.PostAsync("[insert_api_endpoint]", content);
    var jsonResult = await result.Content.ReadAsStringAsync();
    Console.WriteLine(jsonResult);
}

Flutter (Dart) Example

If you are developing a Flutter application, you can use Dart to make API calls:


import 'package:http/http.dart' as http;
import 'dart:convert';

final String prompt = "A cat with a hat";
final response = await http.post(
    Uri.parse('[insert_api_endpoint]'),
    headers: {
        'Content-Type': 'application/json; charset=UTF-8',
    },
    body: jsonEncode({
        'prompt': prompt,
    }),
);
print(response.body);

Final Remarks

Though the Stable Diffusion API is no longer available, these examples illustrate how easily developers could integrate image generation capabilities into their projects. For any questions or feedback regarding this guide, feel free to connect with us on Lablab.ai Discord.

Reading next

Illustration of Cohere AI summarizing conversations using Python.
AI21 Labs tutorial for creating a contextual answers app using AI.

Leave a comment

All comments are moderated before being published.

This site is protected by hCaptcha and the hCaptcha Privacy Policy and Terms of Service apply.