> ## Documentation Index
> Fetch the complete documentation index at: https://runcrate.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Stable Diffusion API

> Generate images with Stability AI's Stable Diffusion 3.5 Large and 3 Medium models via the Runcrate API.

export const RuncrateStyles = () => {
  if (typeof document !== 'undefined' && !document.getElementById('runcrate-overrides')) {
    const s = document.createElement('style');
    s.id = 'runcrate-overrides';
    s.textContent = `
      /* Match Runcrate's rounding scale (--radius: 0.75rem) */
      .rounded-sm { border-radius: 0.5rem !important; }   /* 8px */
      .rounded-md { border-radius: 0.625rem !important; } /* 10px */
      .rounded-lg { border-radius: 0.75rem !important; }  /* 12px */
      .rounded-l-sm { border-top-left-radius: 0.5rem !important; border-bottom-left-radius: 0.5rem !important; }
      .rounded-r-sm { border-top-right-radius: 0.5rem !important; border-bottom-right-radius: 0.5rem !important; }
      .rounded-l-md { border-top-left-radius: 0.625rem !important; border-bottom-left-radius: 0.625rem !important; }
      .rounded-r-md { border-top-right-radius: 0.625rem !important; border-bottom-right-radius: 0.625rem !important; }
      .rounded-l-lg { border-top-left-radius: 0.75rem !important; border-bottom-left-radius: 0.75rem !important; }
      .rounded-r-lg { border-top-right-radius: 0.75rem !important; border-bottom-right-radius: 0.75rem !important; }

      /* Cards: never pure white in light mode */
      .card { background-color: #fcfcfc !important; border-radius: 0.75rem !important; }
      html.dark .card { background-color: #141414 !important; }

      /* Docs hero box */
      .rc-hero { background-color: #fcfcfc; border: 1px solid #e0e0e0; }
      html.dark .rc-hero { background-color: #141414; border-color: #242424; }
      html.dark .rc-hero h1 { color: #f5f5f5; }

      /* Runcrate scrollbar — thin, transparent track, hide-until-hover thumb */
      ::-webkit-scrollbar { width: 6px; height: 6px; background-color: transparent; }
      ::-webkit-scrollbar-track { background-color: transparent; }
      ::-webkit-scrollbar-thumb { background-color: rgba(155, 155, 155, 0.5); border-radius: 10px; transition: opacity 0.3s ease; opacity: 0; }
      ::-webkit-scrollbar-thumb:hover { background-color: rgba(155, 155, 155, 0.7); }
      *:hover::-webkit-scrollbar-thumb,
      *:focus::-webkit-scrollbar-thumb,
      *:active::-webkit-scrollbar-thumb { opacity: 1; }
      * { scrollbar-width: thin; scrollbar-color: rgba(155, 155, 155, 0.5) transparent; }
    `;
    document.head.appendChild(s);
  }
  return null;
};

<RuncrateStyles />

Generate images using Stability AI's Stable Diffusion models through the Runcrate API. No GPU setup, no model hosting — one API call, one image.

## Available models

| Model            | Quality | Speed  | Best for                            |
| ---------------- | ------- | ------ | ----------------------------------- |
| **SD 3.5 Large** | High    | Medium | Production images, detailed scenes  |
| **SD 3 Medium**  | Good    | Fast   | Prototyping, high-volume generation |

***

## Basic image generation

<CodeGroup>
  ```python Python theme={"theme":"github-dark"}
  from runcrate import Runcrate

  client = Runcrate(api_key="rc_live_YOUR_API_KEY")

  image = client.models.generate_image(
      model="stabilityai/stable-diffusion-3-5-large",
      prompt="A serene Japanese garden in autumn, koi pond with stone bridge, "
             "golden maple leaves, soft morning mist, photorealistic",
      aspect_ratio="16:9",
  )

  image.data[0].save("japanese-garden.png")
  ```

  ```typescript TypeScript theme={"theme":"github-dark"}
  import Runcrate from '@runcrate/sdk';

  const rc = new Runcrate({ apiKey: 'rc_live_YOUR_API_KEY' });

  const image = await rc.models.generateImage({
    model: 'stabilityai/stable-diffusion-3-5-large',
    prompt: 'A serene Japanese garden in autumn, koi pond, golden maple leaves, photorealistic',
    aspectRatio: '16:9',
  });

  await image.save('japanese-garden.png');
  ```

  ```bash curl theme={"theme":"github-dark"}
  curl https://api.runcrate.ai/v1/images/generations \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer rc_live_YOUR_API_KEY" \
    -d '{
      "model": "stabilityai/stable-diffusion-3-5-large",
      "prompt": "A serene Japanese garden in autumn, golden maple leaves, photorealistic",
      "aspect_ratio": "16:9"
    }'
  ```
</CodeGroup>

***

## Using negative prompts

```python theme={"theme":"github-dark"}
from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

image = client.models.generate_image(
    model="stabilityai/stable-diffusion-3-5-large",
    prompt="Professional headshot of a business executive, studio lighting, neutral background",
    negative_prompt="cartoon, illustration, anime, blurry, low quality, deformed",
    aspect_ratio="1:1",
)

image.data[0].save("headshot.png")
```

***

## Controlling generation parameters

```python theme={"theme":"github-dark"}
from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

image = client.models.generate_image(
    model="stabilityai/stable-diffusion-3-5-large",
    prompt="Detailed architectural blueprint of a modern house, clean lines, cross-section view",
    num_inference_steps=40,   # default ~28, higher = more detail
    guidance=7.5,             # how closely to follow the prompt
    seed=42,                  # reproducible results
)

image.data[0].save("blueprint.png")
```

***

## Batch generation

```python theme={"theme":"github-dark"}
from runcrate import Runcrate
from concurrent.futures import ThreadPoolExecutor

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

products = [
    {"name": "candle", "prompt": "Luxury scented candle in matte black jar, warm lighting, product photography"},
    {"name": "notebook", "prompt": "Premium leather notebook on wooden desk, fountain pen, natural light"},
    {"name": "mug", "prompt": "Ceramic coffee mug with steam, dark moody background, product shot"},
]

def generate(p):
    image = client.models.generate_image(
        model="stabilityai/stable-diffusion-3-5-large",
        prompt=p["prompt"], aspect_ratio="1:1",
    )
    image.data[0].save(f"{p['name']}.png")
    print(f"Saved {p['name']}.png")

with ThreadPoolExecutor(max_workers=4) as pool:
    pool.map(generate, products)
```

***

## SD 3.5 Large vs. SD 3 Medium

|              | SD 3.5 Large                      | SD 3 Medium              |
| ------------ | --------------------------------- | ------------------------ |
| **Detail**   | Fine textures, realistic lighting | Sufficient for most uses |
| **Speed**    | Medium                            | Fast                     |
| **Best for** | Final production assets           | Prototyping, high-volume |

***

## Tips

* **Negative prompts** significantly improve quality — exclude common artifacts.
* **Seed parameter** makes results reproducible. Save it for prompt iteration.
* **SD 3.5 Large** for customer-facing images. SD 3 Medium for internal/prototype.
* **Aspect ratio** options: `1:1`, `16:9`, `9:16`, `4:3`, `3:2`.

## Next steps

* [Image generation reference](/models/image-generation)
* [AI Image Generation API](/examples/image-generation-api) — FLUX and multi-model comparison
* [Ideogram 3 API](/examples/ideogram-api) — best text rendering in images
