Skip to content

OpenAI

The OpenAI plugin provides DALL-E image generation, GPT-4 Vision analysis, and AI-powered image editing.

Terminal window
pnpm add @teamflojo/floimg-openai
import createClient from '@teamflojo/floimg';
import openai, { openaiTransform } from '@teamflojo/floimg-openai';
const floimg = createClient();
// Register generator (for DALL-E generation)
floimg.registerGenerator(openai({
apiKey: process.env.OPENAI_API_KEY
}));
// Register transform provider (for edit/variations)
floimg.registerTransformProvider(openaiTransform({
apiKey: process.env.OPENAI_API_KEY
}));

Generate images using DALL-E 2 or DALL-E 3.

const image = await floimg.generate({
generator: 'openai',
params: {
prompt: 'A serene Japanese garden with cherry blossoms',
model: 'dall-e-3',
size: '1024x1024',
quality: 'hd'
}
});
ParameterTypeRequiredDescription
promptstringYesText description of the image
modelstringNodall-e-2, dall-e-3 (default: dall-e-3)
sizestringNoImage size (see below)
qualitystringNostandard, hd (DALL-E 3 only)
stylestringNonatural, vivid (DALL-E 3 only)
nnumberNoNumber of images (DALL-E 2: 1-10, DALL-E 3: 1)
ModelAvailable Sizes
DALL-E 2256x256, 512x512, 1024x1024
DALL-E 31024x1024, 1024x1792, 1792x1024

Analyze images using GPT-4 Vision.

const analysis = await floimg.analyzeImage({
blob: image,
prompt: 'Describe this image in detail'
});
console.log(analysis.text);
// "The image shows a serene Japanese garden..."

The OpenAI transform provider offers two operations.

Modify specific areas of an image using a mask.

const edited = await floimg.transform({
blob: image,
op: 'edit',
provider: 'openai-transform',
params: {
prompt: 'a sunlit indoor lounge area with a pool',
mask: maskBlob // Transparent areas = edit region
}
});
ParameterTypeRequiredDescription
promptstringYesDescription of the desired edit
maskImageBlobNoMask image (transparent = edit area)
modelstringNodall-e-2 (default)
sizestringNo256x256, 512x512, 1024x1024
nnumberNoNumber of variations (1-10)

Generate variations of an existing image.

const variation = await floimg.transform({
blob: image,
op: 'variations',
provider: 'openai-transform',
params: {
n: 1,
size: '1024x1024'
}
});
ParameterTypeRequiredDescription
nnumberNoNumber of variations 1-10 (default: 1)
sizestringNo256x256, 512x512, 1024x1024

Generate text using GPT-4.

const result = await floimg.generateText({
prompt: 'Write alt text for an image of a sunset over mountains',
model: 'gpt-4o'
});
console.log(result.text);
// "A breathtaking sunset casts golden and pink hues..."

Get your API key from OpenAI Platform.

Set the environment variable:

Terminal window
export OPENAI_API_KEY=sk-...