Stability.ai ist eine etablierte Organisation in künstlicher Intelligenz, die für seine Modelle bekannt ist, die Bilder und Text aus Beschreibungen generieren. Im Folgenden finden Sie eine Zusammenfassung der von ihnen entwickelten Schlüsselmodelle, die in chronologischer Reihenfolge der Freisetzung dargestellt wurden:
Bildgenerierungsmodelle:
Stable Diffusion (August 2022) Das erste latente Diffusionsmodell, das Bilder basierend auf Textbeschreibungen erzeugen kann.
Stable Diffusion 2.0 (November 2022) Eine aktualisierte Version mit verbesserter Bildqualität, Unterstützung höherer Auflösungen und zusätzlichen Funktionen.
Stable Diffusion XL (SDXL) (April 2023) Aus dem Fotorealismus führte diese Version Verbesserungen in der Bildzusammensetzung und der Gesichtserzeugung ein.
Stable Diffusion 3.0 (Februar 2024) mit einer neuen Architektur, die Diffusionstransformatoren und Flussanpassung kombiniert, verbessert die Leistung für Multi-Subject-Abfragen und die Gesamtbildqualität.
Stable Cascade (Februar 2024), die auf der Würstchen-Architektur basiert, verbessert die Genauigkeit und Effizienz bei der Erzeugung von Text-zu-Image.
Stable Diffusion 3.5 (Oktober 2024) umfasst Varianten wie stabile Diffusion 3,5 großes und 3.5 Medium, die mehr Optionen für verschiedene Erzeugungsaufgaben mit optimierter Effizienz bieten.
Wichtig
Dies ist eine inoffizielle Bibliothek. Stability.ai bietet keine offizielle Bibliothek für Delphi . Dieses Repository enthält Delphi -Implementierung gegenüber Stabilität.ai Public API.
Sie können auf die Stability.ai -Konsole zugreifen, um die verfügbaren Möglichkeiten zu erkunden.
Um einen API -Schlüssel zu erhalten, müssen Sie ein Konto erstellen. Ein Kredit von 25 wird Ihnen gewährt und ein anfänglicher Schlüssel wird automatisch generiert. Hier finden Sie diesen Schlüssel.
Sobald Sie ein Token haben, können Sie IStabilityAI -Schnittstelle initialisieren, die ein Einstiegspunkt für die API ist.
Notiz
uses StabilityAI;
var Stability := TStabilityAIFactory.CreateInstance(API_KEY);Warnung
Um die in diesem Tutorial bereitgestellten Beispiele zu verwenden, insbesondere um mit asynchronen Methoden zu arbeiten, empfehle ich, die Stabilitätsschnittstelle mit dem größtmöglichen Bereich zu definieren.
Setzen Sie also Stability := TStabilityAIFactory.CreateInstance(API_KEY); in der OnCreate -Veranstaltung Ihrer Bewerbung.
Wo Stability: IStabilityAI;
Im Zusammenhang mit asynchronen Methoden verwenden Rückrufe für eine Methode, die kein Streaming beinhaltet, den folgenden generischen Datensatz verwenden: TAsynCallBack<T> = record definiert in der Einheit StabilityAI.Async.Support.pas . Dieser Datensatz enthält die folgenden Eigenschaften:
TAsynCallBack<T> = record
...
Sender: TObject;
OnStart: TProc<TObject>;
OnSuccess: TProc<TObject, T>;
OnError: TProc<TObject, string>; Der Name jeder Eigenschaft ist selbsterklärend; Weitere Informationen finden Sie in der internen Dokumentation.
Notiz
Im restlichen Tutorial werden wir hauptsächlich anonyme Methoden anwenden, sofern nicht anders angegeben, da die Arbeit mit APIs dies erfordert, da die Verarbeitungszeiten manchmal ziemlich lang sein können.
Stabiles Bild Ultra Verwenden Sie das Diffusion 3.5 -Modell. Diese Methode unterscheidet sich durch:
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Um die in diesem Tutorial bereitgestellten Beispielcodes zu vereinfachen, habe ich zwei Einheiten in den Quellcode aufgenommen: VCL.Stability.Tutorial und FMX.Stability.Tutorial . Abhängig von der Option, in OnCreate Sie den bereitgestellten Quellcode testen, müssen Sie wie folgt entweder die TVCLStabilitySender oder TFMXStabilitySender -Klasse in der Anwendung instanziieren:
Tipp
// uses VCL.Stability.Tutorial;
StabilityResult := TVCLStabilitySender.Create(Memo1, Image1);oder
// uses FMX.Stability.Tutorial;
StabilityResult := TFMXStabilitySender.Create(Memo1, Image1); Stellen Sie vorab eine TMemo und eine TImage -Komponente in Ihr Formular hin.
Es ist auch möglich, ein Referenzbild bereitzustellen, das als Ausgangspunkt für die Generation verwendet werden soll. In diesem Fall muss der strength angegeben werden, da er den Einfluss des Eingabebildes auf die endgültige Ausgabe bestimmt. Ein strength von 0 erzeugt ein Bild, das mit der Eingabe identisch ist, während ein Wert von 1 keinen Einfluss aus dem anfänglichen Bild angibt.
// 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 );Spezifität:
Stable Image Core ist ein Service-zu-Im-Image-Generierungsservice, der mit Geschwindigkeit eine Prämienqualität liefert. Im Gegensatz zu anderen ähnlichen Tools erfordert es kein Fachwissen in "prompt Engineering". Benutzer beschreiben einfach einen Stil, eine Szene oder einen Charakter, und das Tool erzeugt ein Bild, das mit ihrer Beschreibung übereinstimmt.Schlüsselpunkte:
Anwendungsbestände:
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Sie können das Bildmodell in einen bestimmten Stil führen, indem Sie aus 17 verfügbaren Stilen auswählen.
// 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 );Inventar der verfügbaren Modelle
Stabile Diffusion 3.5
Stabile Diffusion 3.0 (Feuerwerk AI)
Schlüsselpunkte:
Turbo erzeugen Bilder schneller, ohne die Qualität zu beeinträchtigen. Dieser Modus erstellt ein Bild, das ausschließlich auf einer Textbeschreibung basiert. Die prompt ist die einzige obligatorische Eingabe, aber ein optionaler aspect_ratio -Parameter steht zur Anpassung der Abmessungen des resultierenden Bildes zur Verfügung.
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Diese Methode generiert ein Bild basierend auf der Texteingabe, während ein vorhandenes Bild als anfängliche Referenz verwendet wird. Die erforderlichen Parameter sind:
prompt : Der beschreibende Text, der die Bildgenerierung leitet.image : Das Startbild, das als Grundlage für die Ausgabe dient.strength : Bestimmt, inwieweit das Startbild das Endergebnis beeinflusst.mode : sollte auf "Image-to-Image" eingestellt werden.Asynchrones Codebeispiel
// 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 );Notiz
Hinweis: Die maximale Anforderungsgröße beträgt 10 MIB.
Beide Modi ermöglichen die Verwendung dieser optionalen Parameter:
model : Gibt das zu verwendende Modell an, z. B. SD3 Large , SD3 Large Turbo oder SD3 -Medium .output_format : Bestimmt das gewünschte Format des resultierenden Bildes.seed : Legt den Zufallssamen für den Erzeugungsprozess fest.negative_prompt : Definiert Schlüsselwörter, die vom generierten Bild ausgeschlossen werden sollen.cfg_scale : Passen Sie die Einhaltung des Eingabeaufforderungstext während des Diffusionsprozesses an. Verwenden Sie SDXL 1.0: Verwenden Sie stable-diffusion-xl-1024-v1-0 als engine_id für Ihre Anforderung und geben Sie die Abmessungen ( height und width ) mit einer der folgenden Kombinationen an:
Die Verwendung von SD 1.6 : SD 1.6 ist ein flexibles Basismodell, das zum Erstellen von Bildern mit nicht standardmäßigen Seitenverhältnissen entwickelt wurde. Das Modell ist für eine Auflösung von 512 x 512 Pixel optimiert. Um Ausgänge mit einer Auflösung von 1 Megapixel zu erstellen, empfehlen wir, SDXL 1.0 zu verwenden, was zum gleichen Preis erhältlich ist.
Um dieses Modell zu verwenden, setzen Sie stable-diffusion-v1-6 als engine_id in Ihrer Anfrage und stellen Sie sicher, dass die height und width die folgenden Anforderungen erfüllen:
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Anpassung des Transformationsgrades
init_image_mode=IMAGE_STRENGTH mit image_strength=0.35 oder verwenden Sie init_image_mode=STEP_SCHEDULE mit step_schedule_start=0.65 . Beide Methoden liefern ähnliche Ergebnisse, aber der step_schedule -Modus bietet zusätzliche Flexibilität, indem Sie einen Wert step_schedule_end angeben, wodurch bei Bedarf eine nuanciertere Steuerung erfolgt. Weitere Details finden Sie in den folgenden spezifischen Parameterbeschreibungen.Asynchrones Codebeispiel
// 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 );Tipp
In unserem Code -Beispiel beträgt der Wert des Parameters des Samples 3, was bedeutet, dass drei Bilder generiert wurden. Nur der erste wird angezeigt. Die anderen beiden wurden wie folgt mit indizierten Dateinamen gespeichert: Lighthouse701.png und Lighthouse702.png.
Detaillierte Einstellungen zur offiziellen Dokumentation
Ändern Sie bestimmte Teile eines Bildes mit einer Maske. Die Maske muss mit den Abmessungen und Form des Originalbildes übereinstimmen. Diese Funktionalität unterstützt auch Bilder mit Alpha -Kanälen.
Verwenden Sie den Métode:
ImageToImageWithMask( const Model: string; ParamProc: TProc<TPayloadMask>;
CallBacks: TFunc<TAsynArtifacts>);Tools zur Verbesserung der Größe und Auflösung Ihrer Bilder
Konservativer Upscaler
Kreativer Upscaler
Schneller Upscaler
Akzeptiert Bilder mit einer Größe von 64 x 64 Pixel bis zu 1 Megapixel und verbessert ihre Auflösung auf 4K. Im weiteren Sinne kann es Bilder um ungefähr 20- bis 40 Mal geholt und ihre ursprünglichen Details beibehalten. Die konservative gehobene Option konzentriert sich darauf, die Integrität des Bildes mit minimalen Modifikationen zu bewahren, und ist nicht für die Neuinterpretation des Bildinhalts vorgesehen.
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Akzeptiert Bilder von 64x64 Pixel bis maximal 1 Megapixel, wodurch die Auflösung bis zu 4K erhöht wird. Im weiteren Sinne kann es Bilder um ungefähr 20- bis 40 Mal geholt, während sie ihre Qualität aufrechterhalten - und häufig verbessert -. Die kreative, gehobene Funktion ist besonders effektiv für stark verschlechterte Bilder, eignet sich jedoch nicht für Fotos, die größer als 1 Megapixel sind, da sie eine signifikante Neuinterpretation anwendet (einstellbar über die Kreativitätsskala).
Warnung
Diese Funktion wird vom Editor als asynchron bezeichnet, aber in Wirklichkeit verhält sie sich nicht als solche für eine Anwendung von Drittanbietern, die sie verwendet. Es wirkt eher wie ein Caching -Mechanismus für eine leicht verzögerte Verarbeitung.
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Wir holen die Job-ID ab und müssen im nächsten Schritt das Bild laden, es sei denn, der Status ist "im Programm". In diesem Fall sollte die Operation wiedergegeben werden.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Die Fast Upscaler ServiceIncrease -Bildauflösung um 400%. Es wurde für Geschwindigkeit und Effizienz entwickelt und verarbeitet Bilder in ungefähr einer Sekunde und macht es zu einem hervorragenden Werkzeug zur Verbesserung der Klarheit komprimierter Grafiken, perfekt für Social -Media -Beiträge und verschiedene andere Verwendungen.
Asynchrones Codebeispiel
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Feature Inventory
Der ERASE -Service soll unerwünschte Elemente aus Bildern wie Unvollkommenheiten auf Gesichtern oder Objekten auf Oberflächen unter Verwendung von Maskierungstechniken beseitigen.
Masks können in einer von zwei Methoden geliefert werden:
mask .Asynchrones Codebeispiel
Notiz
mask geliefert wird, wird eine Maske automatisch auf der Grundlage des Alpha -Kanals des Bildes generiert. Transparente Gebiete unterliegen der Inpackung, während undurchsichtige Regionen unverändert bleiben.mask bereitgestellt wird, überschreibt die mask den Alpha -Kanal. // 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 );Wenn eine Maske bereitgestellt wird:
Notiz
mask von denen des Bildparameters unterscheiden, wird sie automatisch an die Bildgröße angepasst. Stability.StableImage.Edit.Erase(
procedure (Params: TErase)
begin
Params.Image( ' Lighthouse.png ' );
Params.Mask( ' MyMask01.png ' );
Params.GrowMask( 6 );
Params.OutputFormat(png);
end ,
...Detaillierte Einstellungen zur offiziellen Dokumentation
Ändern Sie die Bilder intelligent, indem Sie bestimmte Abschnitte durch neue Inhalte hinzufügen oder ersetzen, die von einem mask geleitet werden.
Diese mask kann auf zwei Arten geliefert werden:
// 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 ); Die Verwendung der mask ist identisch mit der beschriebenen, die mit der ERASE -API beschrieben wird.
Detaillierte Einstellungen zur offiziellen Dokumentation
Der Outpaint -Dienst ermöglicht die nahtlose Erweiterung eines Bildes, indem Inhalte in eine beliebige Richtung hinzugefügt werden, um den umgebenden Raum zu füllen. Im Gegensatz zu anderen Methoden, ob automatisiert oder manuell, soll dieser Service sichtbare Artefakte reduzieren und bemerkenswerte Hinweise auf die Bildbearbeitung zu vermeiden.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Der Such- und Ersatzdienst bietet eine spezielle Form des Inpackings, die die Notwendigkeit einer Maske beseitigt. Stattdessen können Benutzer ein Objekt angeben, das er ersetzen soll, indem sie es in einer einfachen Sprache mithilfe eines Search_prompt beschreiben. Der Dienst erfasst und segmentiert dann das angegebene Objekt automatisch und ersetzt es nahtlos mit dem in der Eingabeaufforderung beschriebenen.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Durch die Verwendung des Such- und Recolor -Dienstes können Sie die Farbe eines bestimmten Objekts in einem Bild durch eine einfache Eingabeaufforderung ändern. Diese spezielle Form des Inpaintings erfordert keine Maske. Stattdessen segmentiert der Dienst das Objekt automatisch und wendet die neuen Farben wie in Ihrer Eingabeaufforderung angegeben.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Der Entfernen des Hintergrunddienstes identifiziert und isoliert den Vordergrund in einem Bild präzise und isoliert, sodass der Hintergrund entweder entfernt oder nach Bedarf ersetzt wird.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Der Ersatz-Ersatz für Hintergrund- und Relight-Bearbeitungsdienst ermöglicht es, mühelos die Hintergründe mithilfe von AI-generierten Bildern oder ihren eigenen Uploads zu ändern, während die Beleuchtung nahtlos angepasst wird, um das Thema zu ergänzen. Diese API bietet eine effiziente Bildbearbeitungslösung, die auf verschiedene Branchen zugeschnitten ist, darunter E-Commerce, Immobilien, Fotografie und kreative Bemühungen.
Zu den wichtigsten Funktionen gehören:
Warnung
Diese Funktion wird vom Editor als asynchron bezeichnet, aber in Wirklichkeit verhält sie sich nicht als solche für eine Anwendung von Drittanbietern, die sie verwendet. Es wirkt eher wie ein Caching -Mechanismus für eine leicht verzögerte Verarbeitung.
// 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 );Die API gibt die ID der laufenden Aufgabe zurück, genau wie die gehobene kreative API. Sie müssen dann wie bereits erwähnt die Fetch -API verwenden.
Detaillierte Einstellungen zur offiziellen Dokumentation
Tools zum Erstellen kontrollierter Variationen von Bildern und Skizzen
Dieses Tool ist für Entwicklungsworkflows mit iterativem Design und Brainstorming ausgelegt. Es verwandelt handgezeichnete Skizzen in polierte Bilder mit präzisen Anpassungen. Darüber hinaus ermöglicht es eine fein abgestimmte Steuerung über das endgültige Erscheinungsbild von Nicht-Sketch-Bildern, indem die Konturen und Kanten des Bildes verwendet werden.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Dieser Service soll Bilder generieren und gleichzeitig die Struktur eines Eingabebildes erhalten, wodurch es für Aufgaben wie Replikieren von Szenen oder das Rendern von Zeichen auf der Grundlage vordefinierter Modelle besonders nützlich ist.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Dieses Tool analysiert die stilistischen Merkmale eines bestimmten Eingabebildes (Steuerbild) und wendet sie an, um ein neues Bild zu generieren, das von einer bestimmten Eingabeaufforderung geleitet wird. Das Ausgabebild behält den visuellen Stil des Steuerbildes bei, während der angeforderte Inhalt einbezieht.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Tools zum Abholen der Ergebnisse Ihrer asynchronen Generationen.
Weitere Informationen finden Sie unter Fetch Async Generation Ergebnis
Stabiles Fast 3D erzeugt hochwertige 3D-Vermögenswerte aus einem einzelnen 2D-Eingangsbild.
Weitere Informationen finden Sie in der GLB -Dateiformatspezifikation.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Verwenden Sie eine stabile Videodiffusion , ein latentes Videodiffusionsmodell, um ein kurzes Video aus einem ersten Bild zu generieren.
ID aus der Antwort ab, um die Ergebnisse am Endpunkt im image-to-video/result/{id} zu überprüfen. Stellen Sie sicher, dass Sie diesen Endpunkt nicht mehr als einmal alle 10 Sekunden befragen, um Fehler oder zinslimitierende Probleme zu vermeiden. // 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 );Am Ende holen wir die ID ( z. B. D4FB4AA8301AEE0B368A41B3C0A78018DFC28F1F959A3666BE2E6951408FB8E3 ) der Videoerstellung. Dann holen wir das Ergebnis einfach auf diese Weise ab.
Detaillierte Einstellungen zur offiziellen Dokumentation
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Listen Sie die Motoren auf, die mit den REST -API -Endpunkten Version 1 kompatibel sind.
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Abrufen Sie Details zum Konto ab, das mit der angegebenen API -Taste verknüpft ist
// 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 );Detaillierte Einstellungen zur offiziellen Dokumentation
Abrufen Sie den Kreditsaldo für das Konto oder die Organisation ab, die mit dem bereitgestellten API -Schlüssel verknüpft sind.
// 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 ;Detaillierte Einstellungen zur offiziellen Dokumentation
Stability.ai hat zwei bevorstehende Funktionen angekündigt:
Stable LLM 12B und Stable LLM 1.6B .Audio Stable 2.0 . Sie können sich an Stabilität wenden.Pull -Anfragen sind willkommen. Wenn Sie vorhaben, eine große Änderung vorzunehmen, öffnen Sie zuerst ein Problem, um Ihre vorgeschlagenen Änderungen zu besprechen.
Dieses Projekt ist unter der MIT -Lizenz lizenziert.