Skip to content

Imagine Examples

Examples

This guide provides practical examples of using the Imagine service.

Using cURL

Basic Image Generation

Terminal window
curl -X POST https://imagine.genstack.app/ \
-H "Content-Type: application/json" \
-d '{
"prompt": "A beautiful sunset over mountains",
"genstackToken": "YOUR_GENSTACK_TOKEN",
"applicationId": "app.genstack.docs.imagine",
"overrideGrossMarginPercent": 20
}'

Using TypeScript/JavaScript

Complete Image Generation Client

interface ImageGenerationOptions {
prompt: string;
genstackToken: string;
developerId?: string;
applicationId?: string;
negativePrompt?: string;
seed?: number;
steps?: number;
width?: number;
height?: number;
overrideGrossMarginPercent?: number;
}
interface GenerationMetadata {
seed: number;
steps: number;
width: number;
height: number;
negativePrompt?: string;
}
interface GenerationResponse {
imageUrl: string;
prompt: string;
model: string;
metadata: GenerationMetadata;
usage: {
type: string;
cost: string;
};
balanceBefore: string;
balanceAfter: string;
}
class ImagineClient {
private baseUrl: string;
constructor(baseUrl: string) {
this.baseUrl = baseUrl;
}
async generateImage(options: ImageGenerationOptions): Promise<GenerationResponse> {
const response = await fetch(this.baseUrl, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(options),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.message);
}
return response.json();
}
async checkHealth(): Promise<{ status: string; env: string; ui: string }> {
const response = await fetch(this.baseUrl);
if (!response.ok) {
throw new Error("Service health check failed");
}
return response.json();
}
}
// Usage Examples
async function imagineExamples() {
const client = new ImagineClient("https://imagine.genstack.app");
try {
// Basic generation
const basicResult = await client.generateImage({
prompt: "A beautiful sunset over mountains",
genstackToken: "your_token_here",
});
console.log("Generated image URL:", basicResult.imageUrl);
// Advanced generation
const advancedResult = await client.generateImage({
prompt: "A beautiful sunset over mountains",
genstackToken: "your_token_here",
negativePrompt: "blur, haze, clouds",
seed: 12345,
steps: 20,
width: 1024,
height: 1024,
developerId: "dev_123",
applicationId: "app_456",
});
console.log("Advanced generation result:", advancedResult);
} catch (error) {
console.error("Generation failed:", error);
}
}

Error Handling Examples

Handling Common Errors

async function handleImageGeneration(options: ImageGenerationOptions) {
try {
const response = await fetch("https://imagine.genstack.app/", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(options),
});
if (!response.ok) {
const error = await response.json();
switch (error.error.type) {
case "InsufficientFunds":
console.error("Insufficient balance for generation");
// Handle insufficient funds
break;
case "InvalidCredentials":
console.error("Invalid or expired token");
// Handle authentication error
break;
case "InvalidRequest":
console.error("Invalid request parameters:", error.error.details);
// Handle validation errors
break;
default:
console.error("Unexpected error:", error.error.message);
}
return;
}
const result = await response.json();
// Process successful generation...
} catch (error) {
console.error("Request failed:", error);
}
}