Image Generator OpenAI Delphi (5 / 5)

· Functies

Met de OpenAI-API kun je het model een nieuwe afbeelding laten genereren op basis van een prompt en/of een invoerafbeelding. De Images-API biedt drie methoden om met afbeeldingen te werken:

1. afbeeldingen vanaf nul maken op basis van een tekstprompt
2. bewerkingen maken van een bestaande afbeelding op basis van een nieuwe tekstprompt
3. variaties maken van een bestaande afbeelding

Image Generator Delphi-voorbeeld

De OpenAI-API heeft de volgende methoden om een nieuwe afbeelding te maken op basis van een prompt.

- prompt: (verplicht) een tekstbeschrijving van de gewenste afbeelding(en). De maximale lengte is 1000 tekens.

- n: het aantal te genereren afbeeldingen. Moet tussen 1 en 10 liggen.

- size: het formaat van de gegenereerde afbeeldingen. Moet een van 256x256, 512x512 of 1024x1024 zijn.

- response_format: het formaat waarin de gegenereerde afbeeldingen worden teruggegeven. Moet url of b64_json zijn.

user: een unieke identificatie van je eindgebruiker, waarmee OpenAI misbruik kan monitoren en detecteren.


Hieronder vind je een eenvoudig Delphi-voorbeeld dat een afbeelding genereert op basis van een 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; 

Hieronder vind je de gecompileerde demo voor Windows, gebouwd met de sgcWebSockets-bibliotheek.