Generador de imágenes OpenAI Delphi (5 / 5)

· Características

La API de OpenAI permite que, dado un prompt y/o una imagen de entrada, el modelo genere una nueva imagen. La Images API proporciona tres métodos para interactuar con imágenes:

1. Crear imágenes desde cero a partir de un prompt de texto
2. Crear ediciones de una imagen existente a partir de un nuevo prompt de texto
3. Crear variaciones de una imagen existente

Ejemplo de generador de imágenes en Delphi

La API de OpenAI tiene los siguientes métodos para crear una nueva imagen usando un prompt.

- prompt: (Obligatorio) Una descripción en texto de la(s) imagen(es) deseada(s). La longitud máxima es de 1000 caracteres.

- n: El número de imágenes a generar. Debe estar entre 1 y 10.

- size: El tamaño de las imágenes generadas. Debe ser uno de 256x256, 512x512 o 1024x1024.

- response_format: El formato en el que se devuelven las imágenes generadas. Debe ser uno de url o b64_json.

user: Un identificador único que representa a tu usuario final, lo que puede ayudar a OpenAI a monitorizar y detectar abusos.


A continuación encontrarás un ejemplo simple en Delphi que genera una imagen a partir de un prompt.

procedure TFRMOpenAIImages.DoCreateImage(const aPrompt: string);
var
  oRequest: TsgcOpenAIClass_Request_Image;
  oResponse: TsgcOpenAIClass_Response_Image;
  oStream: TBytesStream;
  oPNG : TPngImage;
begin
  oRequest := TsgcOpenAIClass_Request_Image.Create;
  Try
    oRequest.Prompt := aPrompt;
    oRequest.ResponseFormat := 'b64_json';
    oResponse := OpenAI.CreateImage(oRequest);
    Try
      if Length(oResponse.Data) > 0 then
      begin
        oStream := TBytesStream.Create(DecodeBase64(AnsiString(oResponse.Data[0].B64_json)));
        Try
          oPNG := TPngImage.Create;
          Try
            oPNG.LoadFromStream(oStream);
            Image1.Picture.Assign(oPNG);
          Finally
            oPNG.Free;
          End;
        Finally
          oStream.free;
        End;
      end;
    Finally
      oResponse.Free;
    End;
  Finally
    oRequest.Free;
  End;
end; 

A continuación encontrarás la demo compilada para windows construida con la biblioteca sgcWebSockets.