Stability.ai 、説明から画像とテキストを生成するモデルで知られる人工知能の確立された組織です。以下は、彼らが開発した主要なモデルの要約であり、時系列のリリース順に提示されます。
画像生成モデル:
Stable Diffusion (2022年8月)テキストの説明に基づいて画像を生成できる最初の潜在拡散モデル。
Stable Diffusion 2.0 (2022年11月)改善された画質、より高い解像度のサポート、および追加機能を備えた更新バージョン。
Stable Diffusion XL (SDXL) (2023年4月)が光リアリズムに焦点を当てたこのバージョンは、画像構成と顔の生成の改善を導入しました。
Stable Diffusion 3.0 (2024年2月)拡散トランスとフローマッチングを組み合わせた新しいアーキテクチャを特徴とするこのバージョンは、マルチサブジェクトクエリと全体的な画質のパフォーマンスを向上させます。
Würstchenアーキテクチャに基づいて構築されたStable Cascade (2024年2月)であるこのモデルは、テキストから画像の生成の精度と効率を向上させます。
Stable Diffusion 3.5 (2024年10月)には、安定した拡散3.5大型および3.5培地などのバリアントが含まれており、最適な効率を備えた多様な生成タスクのオプションが増えています。
重要
これは非公式のライブラリです。 stability.aiは、 Delphiに公式ライブラリを提供していません。このリポジトリには、stability.ai public APIを介したDelphi実装が含まれています。
stability.aiコンソールにアクセスして、利用可能な可能性を調べることができます。
APIキーを取得するには、アカウントを作成する必要があります。 25のクレジットが付与され、最初のキーが自動的に生成されます。このキーはここで見つけることができます。
トークンがあると、APIへのエントリポイントであるIStabilityAIインターフェイスを初期化できます。
注記
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を使用すると、非常に長い処理時間がかかるため、APIを使用する必要があるため、特に指定されていない限り、主に匿名の方法を使用します。
安定した画像ウルトラ拡散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 );公式ドキュメントの詳細な設定
このチュートリアルで提供されているサンプルコードを簡素化するために、ソースコードに2つのユニットを含めました: VCL.Stability.Tutorialと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パラメーターを指定する必要があります。 0のstrength値は、入力と同一の画像を生成しますが、値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 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です。つまり、3つの画像が生成されました。最初のもののみが表示されます。他の2つは、次のようにインデックス付きファイル名で保存されました:lighthouse701.pngおよびlighthouse702.png。
公式ドキュメントの詳細な設定
マスクを使用して画像の特定の部分を変更します。マスクは、元の画像の寸法と形状と一致する必要があります。この機能は、アルファチャネルを使用した画像もサポートしています。
métodeを使用してください:
ImageToImageWithMask( const Model: string; ParamProc: TProc<TPayloadMask>;
CallBacks: TFunc<TAsynArtifacts>);画像のサイズと解像度を強化するためのツール
保守的なアップスカラー
クリエイティブアップスカラー
高速Upscaler
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 );公式ドキュメントの詳細な設定
高速Upscaler Serviceの画像解像度は400%増加します。速度と効率のために設計され、約1秒で画像を処理し、ソーシャルメディアの投稿やその他のさまざまな用途に最適な、圧縮ビジュアルの明確さを改善するための優れたツールになります。
非同期コードの例
// 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 );公式ドキュメントの詳細な設定
機能インベントリ
ERASEサービスは、マスキングテクニックを使用して、面の顔や表面のオブジェクトの欠陥など、画像から不要な要素を排除するように設計されています。
Masks 、2つの方法のいずれかで提供できます。
maskパラメーターを介して個別の画像を提供します。非同期コードの例
注記
maskが提供されない場合、画像のアルファチャネルに基づいてマスクが自動的に生成されます。透明な領域は開始の対象となりますが、不透明な地域は変化しません。maskとともに提供されている場合、 maskアルファチャネルをオーバーライドします。 // 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 、2つの方法で提供できます。
// 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 );公式ドキュメントの詳細な設定
交換された背景と再生編集サービスにより、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は、高級なクリエイティブAPIと同様に、進行中のタスクのIDを返します。その後、前述のように、フェッチ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 );公式ドキュメントの詳細な設定
非同期世代の結果を取得するためのツール。
使用については、Async生成の結果を参照してください
Stable Fast 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}への結果を確認してください。エラーやレート制限の問題を避けるために、10秒ごとにこのエンドポイントを1回以上投票しないようにしてください。 // 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(例:d4fb4aa8301aee0b368a41b3c0a78018dfc28f1f959a3666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666年の)を取得します。次に、この方法で結果を取得するだけです。
公式ドキュメントの詳細な設定
// 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 ;公式ドキュメントの詳細な設定
stability.aiは、次の2つの機能を発表しました。
Stable LLM 12BおよびStable LLM 1.6B 。Audio Stable 2.0 。 Stability.AIに連絡して、メッセージを送信してこのモデルをテストできます。プルリクエストは大歓迎です。大きな変更を行うことを計画している場合は、最初に問題を開いて、提案された変更について議論してください。
このプロジェクトは、MITライセンスの下でライセンスされています。