Cloudflare Docs
Workers AI
Edit this page on GitHub
Set theme to dark (⇧+D)

stable-diffusion-v1-5-img2img

Beta

Model ID: @cf/runwayml/stable-diffusion-v1-5-img2img

Stable Diffusion is a latent text-to-image diffusion model capable of generating photo-realistic images. Img2img generate a new image from an input image with Stable Diffusion.

More Information   Terms & License  

​​ Properties

Task Type: Text-to-Image

​​ Code Examples

Workers - TypeScript
import { Ai } from "@cloudflare/ai";
export interface Env {
AI: Ai;
}
export default {
async fetch(request: Request, env: Env) {
const ai = new Ai(env.AI);
// Picture of a dog
const exampleInputImage = await fetch(
"https://pub-1fb693cb11cc46b2b2f656f51e015a2c.r2.dev/dog.png"
);
const inputs = {
prompt: "Change to a lion",
image: [...new Uint8Array(await exampleInputImage.arrayBuffer())],
};
const response = await ai.run(
"@cf/runwayml/stable-diffusion-v1-5-img2img",
inputs
);
return new Response(response, {
headers: {
"content-type": "image/png",
},
});
},
};
curl
$ curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run/@cf/runwayml/stable-diffusion-v1-5-img2img \
-X POST \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-d '{ "prompt": "cyberpunk cat" }'

​​ Response

The response is a binary PNG file.

​​ API Schema

The following schema is based on JSON Schema

Input JSON Schema
{
"type": "object",
"properties": {
"prompt": {
"type": "string"
},
"image": {
"oneOf": [
{
"type": "string",
"format": "binary"
},
{
"type": "object",
"properties": {
"image": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
]
},
"mask": {
"oneOf": [
{
"type": "string",
"format": "binary"
},
{
"type": "object",
"properties": {
"mask": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
]
},
"num_steps": {
"type": "integer",
"default": 20,
"maximum": 20
},
"strength": {
"type": "number",
"default": 1
},
"guidance": {
"type": "number",
"default": 7.5
}
},
"required": [
"prompt"
]
}
Output JSON Schema
{
"type": "string",
"contentType": "image/png",
"format": "binary"
}