Public/Get-OAIImageGeneration.ps1
<#
Create image POST https://api.openai.com/v1/images/generations Creates an image given a prompt. Request body prompt string Required A text description of the desired image(s). The maximum length is 1000 characters for dall-e-2 and 4000 characters for dall-e-3. model string Optional Defaults to dall-e-2 The model to use for image generation. n integer or null Optional Defaults to 1 The number of images to generate. Must be between 1 and 10. For dall-e-3, only n=1 is supported. quality string Optional Defaults to standard The quality of the image that will be generated. hd creates images with finer details and greater consistency across the image. This param is only supported for dall-e-3. response_format string or null Optional Defaults to url The format in which the generated images are returned. Must be one of url or b64_json. URLs are only valid for 60 minutes after the image has been generated. size string or null Optional Defaults to 1024x1024 The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024 for dall-e-2. Must be one of 1024x1024, 1792x1024, or 1024x1792 for dall-e-3 models. style string or null Optional Defaults to vivid The style of the generated images. Must be one of vivid or natural. Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images. This param is only supported for dall-e-3. user string Optional A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. Learn more. Returns Returns a list of image objects. #> <# .SYNOPSIS Generates an image using the OpenAI API. .DESCRIPTION The Get-OAIImageGeneration function generates an image using the OpenAI API by sending a POST request to the '/images/generations' endpoint. It allows you to specify various parameters such as the prompt, model, number of generations, quality, response format, size, style, and user. .PARAMETER Prompt Specifies the prompt for generating the image. This parameter is mandatory. .PARAMETER Model Specifies the model to use for generating the image. If not specified, the default model will be used. .PARAMETER N The number of images to generate. Must be between 1 and 10. For dall-e-3, only n=1 is supported. .PARAMETER Quality The quality of the image that will be generated. hd creates images with finer details and greater consistency across the image. This param is only supported for dall-e-3. .PARAMETER ResponseFormat The format in which the generated images are returned. Must be one of url or b64_json. URLs are only valid for 60 minutes after the image has been generated. .PARAMETER Size The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024 for dall-e-2. Must be one of 1024x1024, 1792x1024, or 1024x1792 for dall-e-3 models. .PARAMETER Style The style of the generated images. Must be one of vivid or natural. Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images. This param is only supported for dall-e-3. .PARAMETER User Specifies the user for generating the image. If not specified, the default user will be used. .EXAMPLE PS> Get-OAIImageGeneration -Prompt "Generate a beautiful landscape image" Generates an image using the default parameters and the specified prompt. .EXAMPLE PS> Get-OAIImageGeneration -Prompt "Generate a cute cat image" -Model "cat-v1" -N 5 -Quality "high" -ResponseFormat "json" Generates 5 high-quality cat images in JSON format using the specified prompt and model. .LINK https://platform.openai.com/docs/api-reference/images/create #> function Get-OAIImageGeneration { [CmdletBinding()] param ( [Parameter(Mandatory)] $Prompt, [ValidateSet('dall-e-2', 'dall-e-3')] $Model, $N, [ValidateSet('standard', 'hd')] $Quality, [ValidateSet('url', 'b64_json')] $ResponseFormat, [ValidateSet('256x256', '512x512', '1024x1024', '1792x1024', '1024x1792')] $Size, [ValidateSet('vivid', 'natural')] $Style, $User, [Switch]$Show ) $body = @{'prompt' = $Prompt } if ($null -ne $Model) { $body['model'] = $Model } if ($null -ne $N) { $body['n'] = $N } if ($null -ne $Quality) { $body['quality'] = $Quality } if ($null -ne $ResponseFormat) { $body['response_format'] = $ResponseFormat } if ($null -ne $Size) { $body['size'] = $Size } if ($null -ne $Style) { $body['style'] = $Style } if ($null -ne $User) { $body['user'] = $User } $url = $baseUrl + '/images/generations' $Method = 'POST' $response = Invoke-OAIBeta -Uri $url -Method $Method -Body $body if ($Show) { Start-Process $response.data.url } $response } |