createVariation method

  1. @override
Future<ImageGenerationResponse> createVariation(
  1. ImageVariationRequest request
)
override

Create variations of an existing image

Creates variations of a given image without requiring a text prompt.

Implementation

@override
Future<ImageGenerationResponse> createVariation(
    ImageVariationRequest request) async {
  // Prepare multipart form data for image variation
  final formData = <String, dynamic>{
    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 variation',
    );
  }

  final responseData =
      await _postMultipartForm('images/variations', formData);
  return _parseImageResponse(responseData, request.model);
}