Imagine Examples
Examples
This guide provides practical examples of using the Imagine service.
Using cURL
Basic Image Generation
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 Examplesasync 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); }}