Skip to main content
POST
POST /v1/images/generations

Overview

Generate images from text descriptions using the loaded diffusion model. This endpoint is compatible with OpenAI’s image generation API.

Authentication

string
required
Bearer token with your API key (if server started with --api-key)Format: Bearer YOUR_API_KEY

Request Body

string
required
Text description of the image to generate. Can be detailed and descriptive.Example: "A professional portrait of a person in natural lighting, photorealistic, high detail"
string
Model identifier (optional, ignored by HyperGen as server uses preloaded model)Note: Unlike OpenAI, HyperGen uses the model specified when starting the server.
integer
default:"1"
Number of images to generate (1-10)Range: 1 to 10
string
default:"1024x1024"
Image dimensions in format WIDTHxHEIGHT. Must be divisible by 8.Common sizes:
  • "512x512" - Fast, lower quality
  • "768x768" - Balanced
  • "1024x1024" - High quality (recommended for SDXL)
  • "1024x768" - Landscape
  • "768x1024" - Portrait
Custom sizes: Any dimensions divisible by 8 (e.g., "1920x1080", "2048x2048")
string
default:"standard"
Image quality setting (OpenAI compatibility parameter)Options: "standard" or "hd"Note: This parameter is accepted for OpenAI compatibility but doesn’t affect HyperGen output. Use num_inference_steps instead.
string
default:"url"
Response format for imagesOptions:
  • "url" - Returns image URL (placeholder, not fully implemented)
  • "b64_json" - Returns base64-encoded PNG image data

HyperGen Extensions

string
Description of what to avoid in the image. Helps improve quality by specifying undesired elements.Example: "blurry, low quality, distorted, watermark, text"
integer
default:"50"
Number of denoising steps. More steps = higher quality but slower generation.Range: 1 to 150Recommended:
  • SDXL: 30-50 steps
  • SDXL Turbo: 1-4 steps
  • SD 1.5/2.1: 20-50 steps
float
default:"7.5"
Classifier-free guidance scale. Controls how closely the image follows the prompt.Range: 1.0 to 20.0Recommended:
  • 7.5 - Standard, balanced
  • 5.0-6.0 - More creative, less literal
  • 10.0-15.0 - Very literal, strict adherence to prompt
Note: SDXL Turbo should use lower values (1.0-2.0)
integer
Random seed for reproducible generation. Use the same seed with the same prompt to get identical results.Example: 42, 12345, 999999
string
Path to LoRA weights to use for this request. Overrides server default.Example: "/path/to/custom_lora.safetensors"
float
default:"1.0"
LoRA influence strengthRange: 0.0 to 2.0
  • 0.0 - No LoRA influence (base model only)
  • 1.0 - Full LoRA influence (default)
  • >1.0 - Amplified LoRA influence

Response

integer
Unix timestamp when the images were generated
array
Array of generated image objects

Examples

Basic Request

Response


Advanced Request with All Parameters


Using OpenAI Python Client


Batch Generation

Generate multiple variations of the same prompt:

Reproducible Generation

Use seeds for consistent results:

Error Responses

400 Bad Request

Invalid request parameters:
Common causes:
  • Invalid size format (not in WIDTHxHEIGHT format)
  • Dimensions not divisible by 8
  • n parameter out of range (must be 1-10)
  • Invalid parameter types

401 Unauthorized

Missing or invalid API key:
Causes:
  • Missing Authorization header
  • Incorrect API key
  • Wrong authorization format

500 Internal Server Error

Generation failed:
Common causes:
  • Out of GPU memory (try smaller image size or fewer images)
  • Model loading error
  • Invalid LoRA path
  • Hardware issues

Performance Tips

  • Use SDXL Turbo with num_inference_steps=4 for 10x faster generation
  • Reduce image size (512x512 instead of 1024x1024)
  • Lower num_inference_steps (25-30 for SDXL)
  • Generate single images (n=1)
  • Increase num_inference_steps (50-100)
  • Use larger image sizes (1024x1024 or larger)
  • Use negative prompts to avoid unwanted elements
  • Adjust guidance_scale (7.5-10.0 for SDXL)
  • Generate fewer images per request (reduce n)
  • Use smaller image sizes
  • Use float16 dtype (default)
  • Clear GPU cache between large batches
  • Always set seed for consistent results
  • Keep all parameters identical
  • Note that different hardware may produce slight variations

Model-Specific Recommendations

SDXL (Stable Diffusion XL)

SDXL Turbo

Stable Diffusion 1.5/2.1


Rate Limiting

Requests are queued and processed sequentially:
  • Queue size visible via /health endpoint
  • Maximum queue size configurable via --max-queue-size (default: 100)
  • Requests block until completed
  • No explicit rate limit, limited by processing speed
Monitor the /health endpoint to check queue status and server load