Image Generator OpenAI Delphi (5 / 5)

· Fonctionnalités

L'API OpenAI permet, à partir d'un prompt et/ou d'une image d'entrée, de générer une nouvelle image avec le modèle. L'API Images propose trois méthodes pour interagir avec les images :

1. Créer des images à partir de zéro à partir d'un prompt textuel
2. Créer des modifications d'une image existante à partir d'un nouveau prompt textuel
3. Créer des variations d'une image existante

Exemple Delphi Image Generator

L'API OpenAI propose les méthodes suivantes pour créer une nouvelle image à partir d'un prompt.

- prompt : (obligatoire) une description textuelle de la ou des images souhaitées. La longueur maximale est de 1000 caractères.

- n : le nombre d'images à générer. Doit être compris entre 1 et 10.

- size : la taille des images générées. Doit être 256x256, 512x512 ou 1024x1024.

- response_format : le format dans lequel les images générées sont renvoyées. Doit être url ou b64_json.

user : un identifiant unique représentant ton utilisateur final, qui peut aider OpenAI à surveiller et détecter les abus.


Tu trouveras ci-dessous un exemple Delphi simple qui génère une image à partir d'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;

Tu trouveras ci-dessous la démo compilée pour Windows construite avec la bibliothèque sgcWebSockets.