Image Generator OpenAI Delphi (5 / 5)

· Funktionen

Mit der OpenAI-API kann das Modell anhand eines Prompts und/oder eines Eingabebilds ein neues Bild generieren. Die Images-API bietet drei Methoden für die Arbeit mit Bildern:

1. Bilder von Grund auf aus einem Text-Prompt erzeugen
2. Edits eines bestehenden Bildes anhand eines neuen Text-Prompts erstellen
3. Variationen eines bestehenden Bildes erstellen

Image-Generator-Beispiel in Delphi

Die OpenAI-API stellt folgende Parameter bereit, um aus einem Prompt ein neues Bild zu erzeugen.

- prompt: (erforderlich) Eine Textbeschreibung des gewünschten Bildes / der gewünschten Bilder. Maximale Länge: 1000 Zeichen.

- n: Die Anzahl der zu generierenden Bilder. Muss zwischen 1 und 10 liegen.

- size: Die Größe der generierten Bilder. Eines von 256x256, 512x512 oder 1024x1024.

- response_format: Das Format, in dem die generierten Bilder zurückgegeben werden. Eines von url oder b64_json.

user: Eine eindeutige Kennung, die deinen Endbenutzer repräsentiert — hilft OpenAI bei der Überwachung und Erkennung von Missbrauch.


Unten findest du ein einfaches Delphi-Beispiel, das anhand eines Prompts ein Bild erzeugt.

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; 

Unten findest du die kompilierte Demo für Windows, gebaut mit der sgcWebSockets-Bibliothek.