SDXL Setup
Stable Diffusion XL (SDXL) is a state-of-the-art text-to-image model producing 1024x1024 images. Running it on your own server gives you unlimited image generation with full privacy.
Requirements
- NVIDIA GPU with 8GB+ VRAM (12GB recommended)
- 16GB+ system RAM
- 30GB+ disk space for models
Installation with Diffusers
pip install diffusers transformers accelerate safetensors
python3 << PYEOF
from diffusers import StableDiffusionXLPipeline
import torch
pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16,
variant="fp16"
).to("cuda")
image = pipe(
prompt="A serene mountain lake at sunset, photorealistic, 8k",
num_inference_steps=30,
guidance_scale=7.5
).images[0]
image.save("output.png")
PYEOF
FastAPI Image Generation Service
from fastapi import FastAPI
from diffusers import StableDiffusionXLPipeline
import torch, io, base64
app = FastAPI()
pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16
).to("cuda")
@app.post("/generate")
async def generate(prompt: str, steps: int = 30):
image = pipe(prompt=prompt, num_inference_steps=steps).images[0]
buf = io.BytesIO()
image.save(buf, format="PNG")
return {"image": base64.b64encode(buf.getvalue()).decode()}
Optimization
- Use torch.float16 to reduce VRAM usage
- Enable xformers for faster inference
- Use SDXL Turbo for 1-4 step generation
- Batch generation for throughput