使用 OpenAI 和 Delphi 生成图像(5 / 5)

· 功能

OpenAI API 允许根据提示词和/或输入图片让模型生成新图像。Images API 提供三种与图像交互的方法:

1. 根据文本提示词从零生成图像
2. 根据新文本提示词对现有图像进行编辑
3. 对现有图像生成变体

Delphi 图像生成示例

OpenAI API 提供以下参数来根据提示词生成新图像:

- prompt:(必填)所需图像的文本描述,最大长度为 1000 个字符。

- n:要生成的图像数量,必须在 1 到 10 之间。

- size:生成图像的尺寸,必须为 256x256、512x512 或 1024x1024 之一。

- response_format:返回生成图像的格式,必须为 url 或 b64_json 之一。

- user:代表终端用户的唯一标识符,可帮助 OpenAI 监控和检测滥用行为。


以下是一个根据提示词生成图像的简单 Delphi 示例。

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; 

以下是使用 sgcWebSockets 库构建的已编译 Windows 演示程序。