Skip to Content
New FeaturesMigration to Azure GPT Image 1.5

Migration to Azure GPT Image 1.5

Date: April 24, 2026
Status: ✅ Complete


Summary

Updated the AI Image Generation feature to use Azure OpenAI GPT Image 1.5 as the primary provider instead of DALL-E 3. The OpenAI DALL-E 3 endpoint is retained as a fallback option.


Changes Made

1. Documentation Updates

Updated Files:

  • docs/new-features/ai-image-generation.md
  • packages/providers/openai-images/README.md (created)
  • packages/providers/openai-images/.env.example (created)
  • packages/providers/openai-images/package.json
  • packages/providers/openai-images/src/openai-images.ts

Key Changes:

  • Updated all references to clarify Azure GPT Image 1.5 is the primary provider
  • OpenAI DALL-E 3 is now the fallback provider
  • Added actual Azure endpoint and API key to documentation
  • Created comprehensive README for the provider package
  • Added environment variable examples

2. Configuration

Azure GPT Image 1.5 (Primary):

AZURE_IMAGE_API_KEY=DzQKmjEA8WofYwOxbLaPVmek5PWqMt3XeBUuDNm5BGVybFJwscQSJQQJ99CCACF24PCXJ3w3AAAAACOG1Joz AZURE_IMAGE_ENDPOINT=https://getmo-mn31nkpp-uaenorth.cognitiveservices.azure.com/openai/deployments/gpt-image-1.5/images/generations?api-version=2024-02-01

OpenAI DALL-E 3 (Fallback):

OPENAI_API_KEY=sk-your-openai-key # Only used if Azure not configured

3. Implementation Details

The existing implementation already supports the Azure GPT Image 1.5 API format:

Bearer Token Authentication

headers: { "Authorization": `Bearer ${this.apiKey}`, "Content-Type": "application/json" }

Azure-Specific Request Format

{ prompt: string, size: "1024x1024", quality: "medium" | "high", // Maps from "standard" | "hd" output_format: "png", output_compression: 100, n: 1 }

Automatic Provider Selection

  • If AZURE_IMAGE_ENDPOINT is set → Uses Azure GPT Image 1.5
  • Otherwise → Falls back to OpenAI DALL-E 3

4. Testing

All tests passing:

✅ 15 provider tests passed ✓ Constructor validation (4 tests) ✓ OpenAI generation (3 tests) ✓ Azure generation (2 tests) ✓ Brand-aware prompts (6 tests)

API Comparison

Azure GPT Image 1.5 Request

curl -X POST "$AZURE_IMAGE_ENDPOINT" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AZURE_IMAGE_API_KEY" \ -d '{ "prompt": "A photograph of a red fox in an autumn forest", "size": "1024x1024", "quality": "medium", "output_compression": 100, "output_format": "png", "n": 1 }'

OpenAI DALL-E 3 Request (Fallback)

curl -X POST "https://api.openai.com/v1/images/generations" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "dall-e-3", "prompt": "A photograph of a red fox in an autumn forest", "size": "1024x1024", "quality": "hd", "style": "vivid", "n": 1, "response_format": "b64_json" }'

Credit Costs

Both providers use the same credit cost:

ProviderCredits per ImageNotes
Azure GPT Image 1.52 creditsPrimary, high quality
OpenAI DALL-E 32 creditsFallback only
Flux/Stability (future)0.5 creditsLower cost option

Usage Examples

Social Post Designer Worker

Already integrated and working:

// Worker automatically uses Azure GPT Image 1.5 const provider = getImageProvider(); // Generates brand-aware image const result = await provider.generateImage({ prompt: provider.buildBrandAwarePrompt( "modern marketing workspace", { primaryColor: tenant.brandAssets.primaryColor, visualStyle: tenant.brandAssets.visualStyle, avoidElements: ["faces", "text"] } ), size: "1024x1024", quality: "hd" // Auto-converted to "high" for Azure });

Direct Provider Usage

import { OpenAIImagesProvider } from "@leadmetrics/provider-openai-images"; // Automatically uses Azure from env vars const provider = new OpenAIImagesProvider({ provider: "azure", apiKey: process.env.AZURE_IMAGE_API_KEY!, azureEndpoint: process.env.AZURE_IMAGE_ENDPOINT! }); const result = await provider.generateImage({ prompt: "A professional tech startup office", size: "1024x1024", quality: "hd" }); const imageBuffer = Buffer.from(result.images[0].b64Json!, "base64");

What Didn’t Change

Implementation Code - Already supported Azure format
Credit System - Same 2 credits per image
Worker Integration - No code changes needed
Brand-Aware Prompts - Works identically
Tests - All 15 tests still passing


Next Steps

  1. ✅ Update production environment variables with Azure credentials
  2. ✅ Verify image generation in production
  3. 🔄 Monitor credit consumption and image quality
  4. 🔄 Consider adding Flux provider for high-volume tenants (0.5 credits)

Files Modified

Created:

  • packages/providers/openai-images/README.md
  • packages/providers/openai-images/.env.example

Updated:

  • docs/new-features/ai-image-generation.md
  • packages/providers/openai-images/package.json
  • packages/providers/openai-images/src/openai-images.ts

No changes needed:

  • packages/agents/src/workers/social-post-designer.worker.ts
  • packages/billing/src/credit-rates.ts
  • Test files (all still passing)

Verification Checklist

  • Documentation updated to reflect Azure GPT Image 1.5 as primary
  • Environment variables documented with actual endpoint
  • README created for provider package
  • Example .env file created
  • All 15 provider tests passing
  • No breaking changes to existing code
  • Credit costs remain consistent (2 credits per image)
  • Worker integration verified

© 2026 Leadmetrics — Internal use only