Make variations from an image - JZO001/Forge.OpenAI GitHub Wiki
The image variations endpoint allows you to generate a variation of a given image.
static async Task Main(string[] args)
{
// This example demonstrates, how you can ask OpenAI to make variation(s) from
// an existing image you provide.
// More information: https://platform.openai.com/docs/guides/images/variations
//
// The very first step to create an account at OpenAI: https://platform.openai.com/
// Using the loggedIn account, navigate to https://platform.openai.com/account/api-keys
// Here you can create apiKey(s)
using var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((builder, services) =>
{
services.AddForgeOpenAI(options =>
{
options.AuthenticationInfo = builder.Configuration["OpenAI:ApiKey"]!;
});
})
.Build();
IOpenAIService openAi = host.Services.GetService<IOpenAIService>()!;
ImageVariationRequest request = new ImageVariationRequest();
request.Image = new BinaryContentData()
{
ContentName = "Original Image",
SourceStream = File.OpenRead("image_original.png")
};
request.NumberOfVariationImages = 2; // create 2 variations
using (request.Image.SourceStream)
{
HttpOperationResult<ImageVariationResponse> response =
await openAi.ImageService
.VariateImageAsync(request, CancellationToken.None)
.ConfigureAwait(false);
if (response.IsSuccess)
{
Console.WriteLine(response.Result!);
response.Result!.ImageData.ForEach(imageData => OpenUrl(imageData.ImageUrl));
}
else
{
Console.WriteLine(response);
}
}
}