API Tutorial

Stable Diffusion API Tutorial: Generate Images with Ease

A developer working on a computer while using the Stable Diffusion API.

Overview of the Stable Diffusion API

This article provides an overview of the Stable Diffusion API that was available for the Stable Diffusion Hackathon. Please note that this API is no longer available!

Introduction to Stable Diffusion

Stable Diffusion is a text-to-image latent diffusion model developed by researchers and engineers from CompVis, Stability AI, and LAION. It has been trained on 512x512 images sourced from a subset of the LAION-5B database. This innovative model employs a frozen CLIP ViT-L/14 text encoder to condition image generation based on text prompts. With its impressive architecture comprising an 860M UNet and a 123M text encoder, the model is relatively lightweight and efficient for generating impressive visuals.

If you want to learn more about the technical aspects of Stable Diffusion, please visit our Stable Diffusion tech page.

Getting Started with the Stable Diffusion API

The following instructions will guide you on how to leverage the Stable Diffusion API for image generation in various programming environments.

Calling the API from Python

You can easily call the API from your Python project using the requests module. Here is a simple example:

import requests

url = 'https://api.yourservice.com/v1/generate'
payload = {'prompt': 'A cat with a hat'}
response = requests.post(url, json=payload)
image_url = response.json()['image_url']
print('Image generated at:', image_url)

Downloading the Image in Python

If you need to save the image to your local disk, you can use the following code:

import requests

image_response = requests.get(image_url)
if image_response.status_code == 200:
    with open('cat_with_hat.png', 'wb') as f:
        f.write(image_response.content)
print('Image downloaded successfully!')

API Call using JavaScript

In JavaScript, you can call the API like this:

fetch('https://api.yourservice.com/v1/generate', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({prompt: 'A cat with a hat'})
})
.then(response => response.json())
.then(data => console.log('Image URL:', data.image_url));

C# API Call

For C# developers, here’s how you can invoke the API:

using System;
using System.Net.Http;
using System.Text;

class Program {
    static async Task Main() {
        using (var client = new HttpClient()) {
            var json = JsonConvert.SerializeObject(new { prompt = "A cat with a hat" });
            var response = await client.PostAsync(
                "https://api.yourservice.com/v1/generate",
                new StringContent(json, Encoding.UTF8, "application/json"));
            var imageUrl = await response.Content.ReadAsStringAsync();
            Console.WriteLine("Image URL: " + imageUrl);
        }
    }
} 

Using Dart for Flutter Apps

If you are developing a Flutter application, you can use Dart to call the API as follows:

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

Future generateImage() async {
    final response = await http.post(
        Uri.parse('https://api.yourservice.com/v1/generate'),
        headers: {"Content-Type": "application/json"},
        body: jsonEncode({"prompt": "A cat with a hat"}),
    );

    if (response.statusCode == 200) {
        print('Image generated successfully!');
    } else {
        throw Exception('Failed to generate image');
    }
} 

Conclusion

We hope this guide helps you get started with using the Stable Diffusion API for your projects. If you have any questions or feedback, please feel free to reach out on our Lablab.ai Discord.

Reading next

A computer screen displaying Python code for summarizing chatbot conversations using Cohere.
A visual guide to building a contextual answers app with AI21 Studio.

Leave a comment

All comments are moderated before being published.

Trang web này được bảo vệ bằng hCaptcha. Ngoài ra, cũng áp dụng Chính sách quyền riêng tưĐiều khoản dịch vụ của hCaptcha.