editImage method
Edit an existing image based on a prompt
Creates an edited or extended image given an original image and a prompt. The original image must have transparent areas that indicate where to edit.
Implementation
@override
Future<ImageGenerationResponse> editImage(ImageEditRequest request) async {
// Prepare multipart form data for image editing
final formData = <String, dynamic>{
'prompt': request.prompt,
if (request.model != null) 'model': request.model,
if (request.count != null) 'n': request.count,
if (request.size != null) 'size': request.size,
if (request.responseFormat != null)
'response_format': request.responseFormat,
if (request.user != null) 'user': request.user,
};
// Add image data
if (request.image.data != null) {
formData['image'] = request.image.data!;
} else {
throw const InvalidRequestError(
'Image data is required for image editing',
);
}
// Add mask data if provided
if (request.mask != null) {
if (request.mask!.data != null) {
formData['mask'] = request.mask!.data!;
}
// Note: filePath support removed for Web platform compatibility
}
final responseData = await _postMultipartForm('images/edits', formData);
return _parseImageResponse(responseData, request.model);
}