Generator obrazów OpenAI dla Delphi (5/5)

· Funkcje

API OpenAI umożliwia, podając prompt i/lub obraz wejściowy, wygenerowanie nowego obrazu przez model. API Images udostępnia trzy metody interakcji z obrazami:

1. Tworzenie obrazów od podstaw na podstawie promptu tekstowego
2. Tworzenie edycji istniejącego obrazu na podstawie nowego promptu
3. Tworzenie wariacji istniejącego obrazu

Image Generator Delphi Example

API OpenAI udostępnia następujące metody tworzenia nowego obrazu za pomocą promptu.

- prompt: (Wymagany) Tekstowy opis pożądanego obrazu/obrazów. Maksymalna długość to 1000 znaków.

- n: Liczba obrazów do wygenerowania. Musi wynosić od 1 do 10.

- size: Rozmiar wygenerowanych obrazów. Musi być jednym z: 256x256, 512x512 lub 1024x1024.

- response_format: Format, w którym zwracane są wygenerowane obrazy. Musi być jednym z: url lub b64_json.

user: Unikalny identyfikator reprezentujący Twojego użytkownika końcowego, który może pomóc OpenAI monitorować i wykrywać nadużycia.


Poniżej znajdziesz prosty przykład w Delphi, który generuje obraz na podstawie promptu.

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; 

Poniżej znajdziesz skompilowane demo dla Windows zbudowane z biblioteką sgcWebSockets.