Stability.ai是一个成熟的人工智能组织,以其模型而闻名,该模型从描述中生成图像和文本。以下是他们开发的关键模型的摘要,该模型按时间顺序发布:
图像生成模型:
Stable Diffusion (2022年8月)是第一个潜在扩散模型,能够基于文本描述生成图像。
Stable Diffusion 2.0 (2022年11月)一个更新版本,具有改进的图像质量,对更高分辨率的支持以及其他功能。
Stable Diffusion XL (SDXL) (2023年4月)着重于光真相,此版本引入了图像组成和面部生成的改进。
Stable Diffusion 3.0 (2024年2月)具有结合扩散变压器和流量匹配的新体系结构,此版本可增强多主题查询和整体图像质量的性能。
Stable Cascade (2024年2月)建立在Würstchen架构上,该模型提高了文本到图像生成的准确性和效率。
Stable Diffusion 3.5 (2024年10月)包括稳定扩散3.5大型和3.5培养基等变体,为具有优化效率的不同生成任务提供了更多选择。
重要的
这是一个非正式的图书馆。稳定性。EA不提供Delphi的任何官方图书馆。该存储库包含有关稳定性的Delphi实现。
您可以访问稳定性。Eai控制台以探索可用的可能性。
要获取API密钥,您需要创建一个帐户。将授予您25个信用额度,并将自动生成一个初始密钥。您可以在这里找到此键。
有一个令牌后,您可以初始化IStabilityAI接口,这是API的切入点。
笔记
uses StabilityAI;
var Stability := TStabilityAIFactory.CreateInstance(API_KEY);警告
要使用本教程中提供的示例,尤其是为了使用异步方法,我建议将稳定性接口定义为最宽的范围。
因此,设置Stability := TStabilityAIFactory.CreateInstance(API_KEY);在您申请的OnCreate事件中。
Stability: IStabilityAI;
在异步方法的上下文中,对于不涉及流的方法,回调使用以下通用记录: TAsynCallBack<T> = record在StabilityAI.Async.Support.pas单元中定义的记录。该记录公开了以下属性:
TAsynCallBack<T> = record
...
Sender: TObject;
OnStart: TProc<TObject>;
OnSuccess: TProc<TObject, T>;
OnError: TProc<TObject, string>; 每个属性的名称是自称的;如果需要,请参阅内部文档以获取更多详细信息。
笔记
在本教程的其余部分中,除非另有说明,否则我们将主要使用匿名方法,因为与API一起使用,由于处理时间有时可能很长,因此需要它。
稳定的图像Ultra使用扩散3.5模型。此方法的区分:
异步代码示例
// uses StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate;
Stability.StableImage.Generate.ImageUltra(
procedure (Params: TStableImageUltra)
begin
Params.AspectRatio(ratio16x9);
Params.Prompt( ' Lighthouse on a cliff overlooking the ocean ' );
// A blurb of text describing what you do not wish to see in the output image.
// Params.NegativePrompt('...')
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
// Add a TImage on the form
// Add a TMemo on the form
Result.Sender := Image1;
Result.OnStart :=
procedure (Sender: TObject)
begin
Memo1.Lines.Text := Memo1.Text + ' The generation has started. Please wait... ' + sLineBreak;
end ;
Result.OnSuccess :=
procedure (Sender: TObject; Image: TStableImage)
begin
var Stream := Image.GetStream;
try
Image.SaveToFile( ' lighthouse.png ' );
// for VCL
Image1.Picture.LoadFromStream(Stream);
// for FMX
// Image1.Bitmap.LoadFromStream(Stream);
Memo1.Lines.Text := Memo1.Text + ' Generation ended successfully ' + sLineBreak;
finally
Stream.Free;
end ;
end ;
Result.OnError :=
procedure (Sender: TObject; Error: String)
begin
Memo1.Lines.Text := Memo1.Text + Error + sLineBreak;
end ;
end );官方文档的详细设置
为了简化本教程中提供的示例代码,我在源代码中包含了两个单元: VCL.Stability.Tutorial and FMX.Stability.Tutorial 。根据您选择测试提供的源代码的选项,您需要在应用程序的OnCreate事件中实例化TVCLStabilitySender或TFMXStabilitySender类,如下:
提示
// uses VCL.Stability.Tutorial;
StabilityResult := TVCLStabilitySender.Create(Memo1, Image1);或者
// uses FMX.Stability.Tutorial;
StabilityResult := TFMXStabilitySender.Create(Memo1, Image1);确保事先向您的表格中添加一个TMemo和一个TImage组件。
还可以提供参考图像,以用作生成的起点。在这种情况下,必须指定strength参数,因为它决定了输入图像对最终输出的影响。 strength值为0将产生与输入相同的图像,而1的图像表示初始图像没有影响。
// uses StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse1.png ' ;
Stability.StableImage.Generate.ImageUltra(
procedure (Params: TStableImageUltra)
begin
Params.AspectRatio(ratio16x9);
Params.Prompt( ' There are many birds in the sky ' );
Params.Image( ' lighthouse.png ' );
Params.Strength( 0.3 );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );特异性:
Stable Image Core是一项文本到图像生成服务,旨在以速度提供优质质量。与其他类似工具不同,它不需要“及时工程”的专业知识。用户只需描述样式,场景或角色,该工具会生成与其描述对齐的图像。要点:
应用清单:
异步代码示例
// uses StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse2.png ' ;
Stability.StableImage.Generate.ImageCore(
procedure (Params: TStableImageCore)
begin
Params.AspectRatio(ratio16x9);
Params.Prompt( ' Lighthouse on a cliff overlooking the ocean ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
您可以通过从17种可用样式中选择特定样式来指导图像模型。
// uses StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse3.png ' ;
Stability.StableImage.Generate.ImageCore(
procedure (Params: TStableImageCore)
begin
Params.AspectRatio(ratio16x9);
Params.Prompt( ' Lighthouse on a cliff overlooking the ocean ' );
Params.StylePreset(TStylePreset.digitalArt);
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );可用型号的清单
稳定的扩散3.5
稳定扩散3.0 (烟花AI)
要点:
Turbo版本可以更快地生成图像,而无需牺牲质量。此模式仅基于文本描述创建图像。 prompt是唯一的强制性输入,但是可选的aspect_ratio参数可用于调整所得图像的尺寸。
异步代码示例
// uses StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse4.png ' ;
Stability.StableImage.Generate.Diffusion(
procedure (Params: TStableImageDiffusion)
begin
Params.AspectRatio(ratio16x9);
Params.Prompt( ' Lighthouse on a cliff overlooking the ocean ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
此方法使用现有映像作为初始参考时,基于文本输入生成图像。必要的参数包括:
prompt :指导图像生成的描述性文本。image :作为输出基础的起始图像。strength :确定起始图像影响最终结果的程度。mode :应将其设置为“图像到图像”。异步代码示例
// uses StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse5.png ' ;
Stability.StableImage.Generate.Diffusion(
procedure (Params: TStableImageDiffusion)
begin
Params.Prompt( ' There are many birds in the sky ' );
Params.Mode(imageToImage);
Params.Image( ' lighthouse4.png ' );
Params.Strength( 0.6 );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );笔记
注意:最大请求大小为10MIB。
两种模式都允许使用这些可选参数:
model :指定要使用的模型,例如SD3大, SD3大涡轮增压或SD3介质。output_format :确定所得图像的所需格式。seed :为生成过程设置随机种子。negative_prompt :定义要从生成的图像中排除的关键字。cfg_scale :在扩散过程中调整对及时文本的粘附水平。 使用SDXL 1.0:使用stable-diffusion-xl-1024-v1-0作为请求的engine_id ,并使用以下组合之一指定尺寸( height和width ):
使用SD 1.6 :SD 1.6是一种灵活的分辨率基本模型,旨在生成具有非标准纵横比的图像。该模型针对512 x 512像素的分辨率进行了优化。要创建1兆像素的分辨率的输出,我们建议使用以相同价格获得的SDXL 1.0。
要使用此模型,请在请求中将stable-diffusion-v1-6设置为engine_id ,并确保height和width满足以下要求:
异步代码示例
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate,
// StabilityAI.Version1.SDXL1AndSD1_6, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse6.png ' ;
Stability.Version1.SDXLAndSDL.TextToImage( ' stable-diffusion-xl-1024-v1-0 ' ,
procedure (Params: TPayload)
begin
Params.TextPrompts([TPrompt.New( 1 , ' A lighthouse on a cliff ' ) ]);
Params.CfgScale( 7 );
Params.Height( 1216 );
Params.Width( 832 );
Params.Sampler(TSamplerType.K_DPMPP_2S_ANCESTRAL);
Params.Samples( 1 );
Params.Steps( 30 );
end ,
function : TAsynArtifacts
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
调整转化程度
init_image_mode=IMAGE_STRENGTH with image_strength=0.35 ,或使用init_image_mode=STEP_SCHEDULE step_schedule_start=0.65 。两种方法都会产生相似的结果,但是step_schedule模式通过允许您指定step_schedule_end值来提供额外的灵活性,并在需要时提供更多细微的控件。有关更多详细信息,请参阅下面的特定参数描述。异步代码示例
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, StabilityAI.StableImage.Generate,
// StabilityAI.Version1.SDXL1AndSD1_6, FMX.Stability.Tutorial;
StabilityResult.FileName := ' lighthouse7.png ' ;
Stability.Version1.SDXLAndSDL.ImageToImageWithPrompt( ' stable-diffusion-v1-6 ' ,
procedure (Params: TPayloadPrompt)
begin
Params.TextPrompts([TPromptMultipart.New( 1 , ' A dog space commander ' ) ]);
Params.InitImage( ' lighthouse6.png ' );
Params.ImageStrength( 0.45 );
Params.CfgScale( 7 );
Params.Sampler(TSamplerType.K_DPMPP_2S_ANCESTRAL);
Params.Samples( 3 );
Params.Steps( 30 );
end ,
function : TAsynArtifacts
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );提示
在我们的代码示例中,样本参数的值为3,这意味着生成了三个图像。只显示第一个。另外两个用索引文件名保存如下:Lighthouse701.png和Lighthouse702.png。
官方文档的详细设置
使用掩码修改图像的特定部分。面具必须匹配原始图像的尺寸和形状。此功能还支持带有alpha通道的图像。
使用métode:
ImageToImageWithMask( const Model: string; ParamProc: TProc<TPayloadMask>;
CallBacks: TFunc<TAsynArtifacts>);增强图像的大小和分辨率的工具
保守的高档器
创意高档器
快速上映器
接受尺寸从64x64像素到1兆像素的图像,并将其分辨率提高到4K。更广泛地说,它可以在维护其原始细节的同时将图像提高约20至40倍。保守的高档选项着重于通过最小修改来保存图像的完整性,并且不打算重新解释图像的内容。
异步代码示例
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Upscale;
StabilityResult.FileName := ' Upscalelighthouse1.png ' ;
Stability.StableImage.Upscale.Conservative(
procedure (Params: TUpscaleConservative)
begin
Params.Image( ' lighthouse.png ' );
Params.Prompt( ' The light house ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
接受从64x64像素到最大1兆像素的图像,将其分辨率提高到4K。更广泛地说,它可以在维护和通常提高其质量的同时将图像提高约20至40倍。创意的高档功能对于大量退化的图像特别有效,但它不适合大于1兆像素的照片,因为它应用了重大的重新解释(可通过创造力量表调节)。
警告
此功能被编辑器标记为异步,但实际上,对于使用它的第三方应用程序而言,它的行为并不是这样。它更像是一种稍微延迟处理的缓存机制。
异步代码示例
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Upscale;
Stability.StableImage.Upscale.Creative(
procedure (Params: TUpscaleCreative)
begin
Params.Image( ' lighthouse.png ' );
Params.Prompt( ' The gray light house ' );
Params.OutputFormat(png);
end ,
function : TAsynResults
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
我们检索作业ID,在下一步中,除非检索的状态为“过程中”,否则我们需要加载图像。在这种情况下,应重新进行操作。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Results,
// e.g. Id ---> ea771536f066b7fd03d62384581982ecd8b54a932a6378d5809d43f6e5aa789a
StabilityResult.FileName := ' Upscalelighthouse2.png ' ;
Stability.StableImage.Results.Fetch(StabilityResult.Id,
function : TAsynResults
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
快速上限器服务膜图像分辨率提高了400%。它专为速度和效率而设计,在大约一秒钟内处理图像,使其成为改善压缩视觉效果的绝佳工具,非常适合社交媒体帖子和其他各种用途。
异步代码示例
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Upscale;
StabilityResult.FileName := ' Upscalelighthouse3.png ' ;
Stability.StableImage.Upscale.Fast(
procedure (Params: TUpscaleFast)
begin
Params.Image( ' lighthouse.png ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
功能清单
擦除服务旨在消除图像中的不必要元素,例如使用掩蔽技术在面上的瑕疵或表面上的对象。
可以用两种方法之一提供Masks :
mask参数提供单独的图像。异步代码示例
笔记
mask ,则将根据图像的Alpha通道自动生成掩码。透明区域将受到覆盖,而不透明的区域将保持不变。mask一起提供,则mask将覆盖Alpha通道。 // uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' EraseLighthouse.png ' ;
Stability.StableImage.Edit.Erase(
procedure (Params: TErase)
begin
Params.Image( ' Lighthouse.png ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );提供口罩时:
笔记
mask的尺寸与图像参数的尺寸不同,则将自动调整以匹配图像大小。 Stability.StableImage.Edit.Erase(
procedure (Params: TErase)
begin
Params.Image( ' Lighthouse.png ' );
Params.Mask( ' MyMask01.png ' );
Params.GrowMask( 6 );
Params.OutputFormat(png);
end ,
...官方文档的详细设置
通过添加或替换新内容的特定部分,以mask图像为指导,通过添加或替换特定部分来智能修改图像。
该mask可以通过两种方式提供:
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' InpaintLighthouse.png ' ;
Stability.StableImage.Edit.Inpaint(
procedure (Params: TInpaint)
begin
Params.Image( ' Lighthouse.png ' );
Params.Mask( ' Mask01.png ' );
Params.Prompt( ' The lighthouse is bigger ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end ); mask的使用与擦除API所描述的使用相同。
官方文档的详细设置
支出服务允许通过沿任何方向添加内容填充周围空间的内容来无缝扩展图像。与其他方法,无论是自动化的还是手动的,此服务旨在减少可见的伪影并避免明显的图像编辑指示。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' OutpaintLighthouse.png ' ;
Stability.StableImage.Edit.Outpaint(
procedure (Params: TOutpaint)
begin
Params.Image( ' Lighthouse.png ' );
Params.Right( 200 );
Params.Down( 400 );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
搜索和替换服务提供了一种专门的介入形式,可以消除对掩蔽的需求。相反,用户可以通过使用search_prompt用简单的语言来指定一个对象来替换。然后,该服务将自动检测并分割指定的对象,并用提示中描述的一个无缝代替它。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' SearchReplaceLighthouse.png ' ;
Stability.StableImage.Edit.SearchAndReplace(
procedure (Params: TSearchAndReplace)
begin
Params.Image( ' Lighthouse.png ' );
Params.Prompt( ' Replace the lighthouse ' );
Params.SearchPrompt( ' Lighthouse ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
通过利用搜索和重新着色服务,您可以通过简单的提示更改图像中特定对象的颜色。这种专门的介入形式不需要面罩。相反,该服务自动段落对象并按照提示中指定的新颜色应用。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' SearchRecolorLighthouse.png ' ;
Stability.StableImage.Edit.SearchAndRecolor(
procedure (Params: TSearchAndRecolor)
begin
Params.Image( ' Lighthouse.png ' );
Params.Prompt( ' The lighthouse is pink ' );
Params.SelectPrompt( ' Lighthouse ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
删除背景服务精确地识别并隔离了图像中的前景,从而可以根据需要删除或更换背景。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' RemoveBackgroundLighthouse.png ' ;
Stability.StableImage.Edit.RemoveBackground(
procedure (Params: TRemoveBackground)
begin
Params.Image( ' Lighthouse.png ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
替换背景和Relight Editing Service可以使用AI生成的图像或其自己的上传毫不费力地更改背景,同时无缝调整照明以补充主题。该API提供了针对各种行业的高效图像编辑解决方案,包括电子商务,房地产,摄影和创意努力。
关键功能包括:
警告
此功能被编辑器标记为异步,但实际上,对于使用它的第三方应用程序而言,它的行为并不是这样。它更像是一种稍微延迟处理的缓存机制。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
Stability.StableImage.Edit.ReplaceBackgroundAndRelight(
procedure (Params: TReplaceBackgroundAndRelight)
begin
Params.SubjectImage( ' Lighthouse.png ' );
Params.BackgroundPrompt( ' cinematic lighting ' );
Params.OutputFormat(png);
end ,
function: TAsynResults
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );API返回正在进行的任务的ID,就像高档创意API一样。然后,如前所述,您需要使用获取API。
官方文档的详细设置
创建图像和草图的受控变体的工具
该工具旨在用于涉及迭代设计和头脑风暴的开发工作流程。它通过精确的调整将手绘草图转换为抛光的视觉效果。此外,它通过利用图像的轮廓和边缘来微调对非缝制图像的最终外观的微调控制。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Control;
StabilityResult.FileName := ' Control01.png ' ;
Stability.StableImage.Control.Sketch(
procedure (Params: TSketch)
begin
Params.Image( ' lighthouse.png ' );
Params.ControlStrength( 0.7 );
Params.Prompt( ' a medieval castle on a hill ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
该服务旨在在保留输入图像的结构时生成图像,从而使其对于复制场景或基于预定义的模型渲染字符之类的任务特别有用。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Control;
StabilityResult.FileName := ' Control02.png ' ;
Stability.StableImage.Control.Structure(
procedure (Params: TStructure)
begin
Params.Image( ' lighthouse.png ' );
Params.ControlStrength( 0.7 );
Params.Prompt( ' a well manicured shrub in an english garden ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
该工具分析给定输入图像(控制图像)的风格特征,并将其应用它们以生成由指定提示的新图像。输出图像在合并请求的内容时保留了控制图像的视觉样式。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Control;
StabilityResult.FileName := ' Control03.png ' ;
Stability.StableImage.Control.Style(
procedure (Params: TStyle)
begin
Params.Image( ' lighthouse.png ' );
Params.Prompt( ' a majestic portrait of a chicken ' );
Params.Fidelity( 0.7 );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
获取异步几代结果的工具。
要使用,请参见Fetch async生成结果
稳定的快速3D从单个2D输入图像生成高质量的3D资产。
有关更多详细信息,请参见GLB文件格式规范。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.VideoAnd3D.Stable3D;
StabilityResult.FileName := ' My_Result.gltf ' ;
Stability.VideoAnd3D.Model3D.Fast3D(
procedure (Params: TStable3D)
begin
Params.Image( ' My_ImageTo3D.png ' );
Params.ForegroundRatio( 0.85 );
end ,
function : TAsynModel3D
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
使用稳定的视频扩散,一种潜在的视频扩散模型,从初始图像中生成一个简短的视频。
ID从响应中检索以检查image-to-video/result/{id} endpoint的结果。确保不要每10秒钟一次对此终点进行轮询,以避免错误或限制问题。 // uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.VideoAnd3D.Video;
Stability.VideoAnd3D.ImageToVideo.Generation(
procedure (Params: TVideo)
begin
Params.Image( ' lighthouse1024x576.png ' );
end ,
function : TAsynJobVideo
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );最后,我们检索了视频创建任务的ID( EG D4FB4AA.8301AEE0B368A41B3C0A78018DFC28DFC28F1F959A3666666666666951408FB8E3 )。然后,我们只是以这种方式检索结果。
官方文档的详细设置
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.VideoAnd3D.Video;
var Id := ' d4fb4aa8301aee0b368a41b3c0a78018dfc28f1f959a3666be2e6951408fb8e3 ' ;
StabilityResult.FileName := ' lighthouse1024x576.mp4 ' ;
Stability.VideoAnd3D.ImageToVideo.Fetch(Id,
function : TAsynResults
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
列出与Version 1 REST API端点兼容的引擎。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.Version1.Engines;
Stability.Version1.Engines.List(
function : TAsynEngines
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
检索有关链接到指定API密钥的帐户的详细信息
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.Version1.User;
Stability.Version1.User.AccountDetails(
function : TAsynAccountDetails
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );官方文档的详细设置
检索链接到提供的API密钥的帐户或组织的信用余额。
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.Version1.User;
var Balance := Stability.Version1.User.AccountBalance;
try
Memo1.Lines.Text := Memo1.Text + Balance.Credits.ToString + sLineBreak;
finally
Balance.Free;
end ;官方文档的详细设置
稳定性。EAI已宣布了两个即将到来的功能:
Stable LLM 12B和Stable LLM 1.6B 。Audio Stable 2.0 。您可以通过发送消息联系稳定性。AI来测试此模型。欢迎拉动请求。如果您打算进行重大更改,请先开设一个问题,讨论您建议的更改。
该项目已根据MIT许可获得许可。