stability-ai-provider
v0.1.0
Published
Stability AI provider for the Vercel AI SDK
Maintainers
Readme
Stability AI Provider for Vercel AI SDK
A custom Vercel AI SDK provider for Stability AI image generation models.
Installation
npm install stability-ai-provider ai
# or
bun add stability-ai-provider ai
# or
pnpm add stability-ai-provider aiSetup
Set your Stability AI API key as an environment variable:
export STABILITYAI_API_KEY="your-api-key"Or pass it directly when creating the provider:
import { createStabilityAI } from "stability-ai-provider";
const stabilityai = createStabilityAI({
apiKey: "your-api-key",
});Usage
Basic Image Generation
import { stabilityai } from "stability-ai-provider";
import { generateImage } from "ai";
const { image } = await generateImage({
model: stabilityai.image("sd3.5-large"),
prompt: "A serene mountain landscape at sunset with vibrant colors",
});
console.log(image.base64); // Base64-encoded image dataWith Options
import { stabilityai } from "stability-ai-provider";
import { generateImage } from "ai";
const { images } = await generateImage({
model: stabilityai.image("sd3.5-large"),
prompt: "A cyberpunk city at night",
n: 2, // Generate 2 images
aspectRatio: "16:9",
seed: 12345, // For reproducible results
providerOptions: {
"stability-ai": {
stylePreset: "neon-punk",
cfgScale: 8,
steps: 50,
negativePrompt: "blurry, low quality",
},
},
});Custom Provider Instance
import { createStabilityAI } from "stability-ai-provider";
import { generateImage } from "ai";
const stabilityai = createStabilityAI({
apiKey: process.env.MY_STABILITY_KEY,
headers: {
"X-Custom-Header": "value",
},
});
const { image } = await generateImage({
model: stabilityai.image("core"),
prompt: "A beautiful forest",
});Supported Models
| Model ID | Description |
|----------|-------------|
| sd3.5-large | Stable Diffusion 3.5 Large - Highest quality |
| sd3.5-large-turbo | Stable Diffusion 3.5 Large Turbo - Fast generation |
| sd3.5-medium | Stable Diffusion 3.5 Medium - Balanced |
| sd3-large | Stable Diffusion 3 Large |
| sd3-large-turbo | Stable Diffusion 3 Large Turbo |
| sd3-medium | Stable Diffusion 3 Medium |
| core | Stable Image Core - General purpose |
Provider Options
Pass these in providerOptions["stability-ai"]:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| stylePreset | string | - | Style preset (see below) |
| cfgScale | number | 7 | Prompt adherence (1-35) |
| steps | number | 50 | Inference steps (10-150) |
| outputFormat | string | "png" | Output format: "png", "jpeg", "webp" |
| negativePrompt | string | - | What to avoid in generation |
Style Presets
Available style presets:
enhance- General enhancementanime- Anime stylephotographic- Photorealisticdigital-art- Digital art stylecomic-book- Comic book stylefantasy-art- Fantasy artline-art- Line artanalog-film- Film photography lookneon-punk- Neon/cyberpunk styleisometric- Isometric viewlow-poly- Low polygon styleorigami- Paper craft stylemodeling-compound- Clay/modeling lookcinematic- Cinematic style3d-model- 3D rendered lookpixel-art- Pixel art styletile-texture- Seamless texture
API Reference
createStabilityAI(options?)
Creates a new Stability AI provider instance.
Options:
apiKey?: string- API key (defaults toSTABILITYAI_API_KEYenv var)baseURL?: string- Custom API base URLheaders?: Record<string, string>- Custom headersfetch?: typeof fetch- Custom fetch implementation
stabilityai.image(modelId, settings?)
Creates an image model instance.
Parameters:
modelId: string- The model ID to usesettings?: StabilityAIImageSettings- Default settings for this model
Requirements
- Node.js 18+
- Stability AI API key
aipackage (peer dependency)
License
MIT
