Gerador de Imagens OpenAI no Delphi (5 / 5)

· Recursos

A OpenAI API permite que, dado um prompt e/ou uma imagem de entrada, o modelo gere uma nova imagem. A Images API oferece três métodos para interagir com imagens:

1. Criar imagens do zero a partir de um prompt de texto
2. Criar edições de uma imagem existente com base em um novo prompt de texto
3. Criar variações de uma imagem existente

Exemplo Delphi de gerador de imagens

A OpenAI API possui os seguintes parâmetros para criar uma nova imagem a partir de um prompt.

- prompt: (obrigatório) Descrição em texto da(s) imagem(ns) desejada(s). O comprimento máximo é de 1000 caracteres.

- n: O número de imagens a gerar. Deve estar entre 1 e 10.

- size: O tamanho das imagens geradas. Deve ser um de: 256x256, 512x512 ou 1024x1024.

- response_format: O formato em que as imagens geradas são retornadas. Deve ser url ou b64_json.

user: Um identificador único que representa seu usuário final, podendo ajudar a OpenAI a monitorar e detectar abusos.


Veja abaixo um exemplo simples em Delphi que gera uma imagem a partir de um 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; 

Veja abaixo a demo compilada para Windows, criada com a biblioteca sgcWebSockets.