Stability.ai adalah organisasi yang mapan dalam kecerdasan buatan, yang dikenal karena modelnya yang menghasilkan gambar dan teks dari deskripsi. Di bawah ini adalah ringkasan model kunci yang telah mereka kembangkan, disajikan dalam urutan rilis kronologis:
Model pembuatan gambar:
Stable Diffusion (Agustus 2022) Model difusi laten pertama, mampu menghasilkan gambar berdasarkan deskripsi tekstual.
Stable Diffusion 2.0 (November 2022) Versi yang diperbarui dengan kualitas gambar yang lebih baik, dukungan untuk resolusi yang lebih tinggi, dan fitur tambahan.
Stable Diffusion XL (SDXL) (April 2023) berfokus pada fotorealisme, versi ini memperkenalkan peningkatan dalam komposisi gambar dan pembuatan wajah.
Stable Diffusion 3.0 (Februari 2024) menampilkan arsitektur baru yang menggabungkan transformator difusi dan pencocokan aliran, versi ini meningkatkan kinerja untuk kueri multi-subjek dan kualitas gambar secara keseluruhan.
Stable Cascade (Februari 2024) dibangun di atas arsitektur Würstchen, model ini meningkatkan akurasi dan efisiensi dalam pembuatan teks-ke-gambar.
Stable Diffusion 3.5 (Oktober 2024) mencakup varian seperti difusi stabil 3.5 besar dan 3,5 media, menawarkan lebih banyak opsi untuk beragam tugas generasi dengan efisiensi yang dioptimalkan.
Penting
Ini adalah perpustakaan tidak resmi. Stability.ai tidak menyediakan perpustakaan resmi untuk Delphi . Repositori ini berisi implementasi Delphi atas stabilitas.ai API publik.
Anda dapat mengakses konsol stabilitas.ai untuk mengeksplorasi kemungkinan yang tersedia.
Untuk mendapatkan kunci API, Anda perlu membuat akun. Kredit 25 akan diberikan kepada Anda, dan kunci awal akan dihasilkan secara otomatis. Anda dapat menemukan kunci ini di sini.
Setelah Anda memiliki token, Anda dapat menginisialisasi antarmuka IStabilityAI , yang merupakan titik masuk ke API.
Catatan
uses StabilityAI;
var Stability := TStabilityAIFactory.CreateInstance(API_KEY);Peringatan
Untuk menggunakan contoh yang disediakan dalam tutorial ini, terutama untuk bekerja dengan metode asinkron, saya sarankan mendefinisikan antarmuka stabilitas dengan ruang lingkup seluas mungkin.
Jadi, atur Stability := TStabilityAIFactory.CreateInstance(API_KEY); Dalam acara OnCreate dari aplikasi Anda.
Dimana Stability: IStabilityAI;
Dalam konteks metode asinkron, untuk metode yang tidak melibatkan streaming, callback menggunakan catatan generik berikut: TAsynCallBack<T> = record yang didefinisikan dalam unit StabilityAI.Async.Support.pas . Catatan ini memperlihatkan properti berikut:
TAsynCallBack<T> = record
...
Sender: TObject;
OnStart: TProc<TObject>;
OnSuccess: TProc<TObject, T>;
OnError: TProc<TObject, string>; Nama masing-masing properti cukup jelas; Jika diperlukan, lihat dokumentasi internal untuk detail lebih lanjut.
Catatan
Di sisa tutorial, kami terutama akan menggunakan metode anonim kecuali ditentukan lain, karena bekerja dengan API memerlukannya karena waktu pemrosesan yang kadang -kadang bisa cukup lama.
Gambar stabil Ultra menggunakan model difusi 3.5. Metode ini dibedakan oleh:
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Untuk menyederhanakan contoh kode yang disediakan dalam tutorial ini, saya telah memasukkan dua unit dalam kode sumber: VCL.Stability.Tutorial dan FMX.Stability.Tutorial . Bergantung pada opsi yang Anda pilih untuk menguji kode sumber yang disediakan, Anda perlu membuat instantiate kelas TVCLStabilitySender atau TFMXStabilitySender di acara OnCreate aplikasi, sebagai berikut:
Tip
// uses VCL.Stability.Tutorial;
StabilityResult := TVCLStabilitySender.Create(Memo1, Image1);atau
// uses FMX.Stability.Tutorial;
StabilityResult := TFMXStabilitySender.Create(Memo1, Image1); Pastikan untuk menambahkan TMemo dan komponen TImage ke formulir Anda sebelumnya.
Dimungkinkan juga untuk memberikan gambar referensi untuk digunakan sebagai titik awal untuk generasi. Dalam hal ini, parameter strength harus ditentukan, karena menentukan pengaruh gambar input pada output akhir. Nilai strength 0 akan menghasilkan gambar yang identik dengan input, sedangkan nilai 1 menunjukkan tidak ada pengaruh dari gambar awal.
// 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 );Kekhususan:
Stable Image Core adalah layanan pembuatan teks-ke-gambar yang dirancang untuk memberikan kualitas premium dengan kecepatan. Tidak seperti alat serupa lainnya, itu tidak memerlukan keahlian dalam "Teknik Prompt." Pengguna cukup menggambarkan gaya, adegan, atau karakter, dan alat menghasilkan gambar yang selaras dengan deskripsi mereka.Poin -Poin Kunci:
Inventarisasi Aplikasi:
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Anda dapat memandu model gambar menuju gaya tertentu dengan memilih dari 17 gaya yang tersedia.
// 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 );Inventaris model yang tersedia
Difusi stabil 3.5
Difusi stabil 3.0 (kembang api AI)
Poin -Poin Kunci:
Turbo menghasilkan gambar lebih cepat tanpa mengorbankan kualitas. Mode ini membuat gambar hanya berdasarkan deskripsi tekstual. prompt adalah satu -satunya input wajib, tetapi parameter aspect_ratio opsional tersedia untuk menyesuaikan dimensi gambar yang dihasilkan.
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Metode ini menghasilkan gambar berdasarkan input teks saat menggunakan gambar yang ada sebagai referensi awal. Parameter yang diperlukan meliputi:
prompt : Teks deskriptif yang memandu pembuatan gambar.image : Gambar awal yang berfungsi sebagai fondasi untuk output.strength : Menentukan sejauh mana gambar awal mempengaruhi hasil akhir.mode : harus diatur ke "gambar-ke-gambar".Contoh Kode Asinkron
// 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 );Catatan
Catatan: Ukuran permintaan maksimum adalah 10mib.
Kedua mode memungkinkan penggunaan parameter opsional ini:
model : Menentukan model untuk memanfaatkan, seperti SD3 besar , SD3 Turbo besar , atau media SD3 .output_format : Menentukan format yang diinginkan dari gambar yang dihasilkan.seed : Mengatur benih keacakan untuk proses pembangkitan.negative_prompt : mendefinisikan kata kunci untuk dikecualikan dari gambar yang dihasilkan.cfg_scale : Menyesuaikan tingkat kepatuhan terhadap teks prompt selama proses difusi. Menggunakan SDXL 1.0: Gunakan stable-diffusion-xl-1024-v1-0 sebagai engine_id untuk permintaan Anda, dan tentukan dimensi ( height dan width ) dengan salah satu kombinasi berikut:
Menggunakan SD 1.6 : SD 1.6 adalah model dasar resolusi fleksibel yang dirancang untuk menghasilkan gambar dengan rasio aspek non-standar. Model ini dioptimalkan untuk resolusi 512 x 512 piksel. Untuk membuat output dengan resolusi 1 megapiksel, kami sarankan menggunakan SDXL 1.0, yang tersedia dengan harga yang sama.
Untuk menggunakan model ini, atur stable-diffusion-v1-6 sebagai engine_id dalam permintaan Anda dan memastikan height dan width memenuhi persyaratan berikut:
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Menyesuaikan tingkat transformasi
init_image_mode=IMAGE_STRENGTH dengan image_strength=0.35 , atau gunakan init_image_mode=STEP_SCHEDULE dengan step_schedule_start=0.65 . Kedua metode menghasilkan hasil yang sama, tetapi mode step_schedule menawarkan fleksibilitas tambahan dengan memungkinkan Anda untuk menentukan nilai step_schedule_end , memberikan kontrol yang lebih bernuansa jika diperlukan. Untuk perincian lebih lanjut, lihat deskripsi parameter spesifik di bawah ini.Contoh Kode Asinkron
// 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 );Tip
Dalam contoh kode kami, nilai parameter sampel adalah 3, yang berarti bahwa tiga gambar dihasilkan. Hanya yang pertama ditampilkan. Dua lainnya disimpan dengan nama file yang diindeks sebagai berikut: lighthouse701.png dan lighthouse702.png.
Pengaturan terperinci pada dokumentasi resmi
Ubah bagian spesifik gambar menggunakan topeng. Topeng harus cocok dengan dimensi dan bentuk gambar asli. Fungsionalitas ini juga mendukung gambar dengan saluran alpha.
Gunakan métode:
ImageToImageWithMask( const Model: string; ParamProc: TProc<TPayloadMask>;
CallBacks: TFunc<TAsynArtifacts>);Alat untuk meningkatkan ukuran dan resolusi gambar Anda
Upscaler konservatif
Upscaler kreatif
Upscaler cepat
Menerima gambar berkisar dari 64x64 piksel hingga 1 megapiksel dan meningkatkan resolusi mereka menjadi 4K. Secara lebih luas, itu dapat meningkatkan gambar sekitar 20 hingga 40 kali sambil mempertahankan detail aslinya. Opsi kelas atas konservatif berfokus pada menjaga integritas gambar dengan modifikasi minimal dan tidak dimaksudkan untuk menafsirkan kembali konten gambar.
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Menerima gambar mulai dari 64x64 piksel hingga maksimum 1 megapiksel, meningkatkan resolusi mereka hingga 4K. Secara lebih luas, itu dapat meningkatkan gambar sekitar 20 hingga 40 kali sambil mempertahankan - dan sering meningkatkan - kualitas mereka. Fitur kelas atas yang kreatif sangat efektif untuk gambar yang sangat terdegradasi, tetapi tidak cocok untuk foto yang lebih besar dari 1 megapiksel, karena menerapkan reinterpretasi yang signifikan (dapat disesuaikan melalui skala kreativitas).
Peringatan
Fungsi ini diberi label asinkron oleh editor, tetapi pada kenyataannya, itu tidak berperilaku seperti itu untuk aplikasi pihak ketiga yang menggunakannya. Ini beroperasi lebih seperti mekanisme caching untuk pemrosesan yang sedikit tertunda.
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Kami mengambil ID pekerjaan, dan pada langkah berikutnya, kami perlu memuat gambar kecuali status yang diambil adalah "dalam proses." Dalam hal ini, operasi harus diceritakan kembali.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Layanan Upscaler Fast Resolusi Gambar sebesar 400%. Dirancang untuk kecepatan dan efisiensi, ia memproses gambar dalam waktu sekitar satu detik, menjadikannya alat yang sangat baik untuk meningkatkan kejelasan visual terkompresi, sempurna untuk posting media sosial dan berbagai kegunaan lainnya.
Contoh Kode Asinkron
// 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 );Pengaturan terperinci pada dokumentasi resmi
Fitur Inventaris
Layanan penghapus dirancang untuk menghilangkan elemen yang tidak diinginkan dari gambar, seperti ketidaksempurnaan pada wajah atau objek pada permukaan, menggunakan teknik masking.
Masks dapat disediakan dalam salah satu dari dua metode:
mask .Contoh Kode Asinkron
Catatan
mask khusus yang disediakan, masker akan secara otomatis dihasilkan berdasarkan saluran alpha gambar. Area transparan akan tunduk pada inpainting, sedangkan daerah buram akan tetap tidak berubah.mask , mask akan mengesampingkan saluran 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 );Saat topeng disediakan:
Catatan
mask berbeda dari yang dari parameter gambar, itu akan secara otomatis disesuaikan agar sesuai dengan ukuran gambar. Stability.StableImage.Edit.Erase(
procedure (Params: TErase)
begin
Params.Image( ' Lighthouse.png ' );
Params.Mask( ' MyMask01.png ' );
Params.GrowMask( 6 );
Params.OutputFormat(png);
end ,
...Pengaturan terperinci pada dokumentasi resmi
Ubah gambar dengan cerdas dengan menambahkan atau mengganti bagian tertentu dengan konten baru, dipandu oleh gambar mask .
mask ini dapat disediakan dengan dua cara:
// 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 ); Penggunaan mask identik dengan yang dijelaskan dengan API Hapus.
Pengaturan terperinci pada dokumentasi resmi
Layanan outpaint memungkinkan ekstensi gambar yang mulus dengan menambahkan konten ke segala arah untuk mengisi ruang di sekitarnya. Tidak seperti metode lain, baik otomatis atau manual, layanan ini dirancang untuk mengurangi artefak yang terlihat dan menghindari indikasi pengeditan gambar yang nyata.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Layanan Pencarian dan Ganti menawarkan bentuk khusus dari inpaining yang menghilangkan kebutuhan akan topeng. Sebagai gantinya, pengguna dapat menentukan objek untuk diganti dengan menggambarkannya dalam bahasa sederhana menggunakan search_prompt. Layanan kemudian akan secara otomatis mendeteksi dan segmen objek yang ditentukan, dengan mulus mengganti dengan yang dijelaskan dalam 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 );Pengaturan terperinci pada dokumentasi resmi
Dengan memanfaatkan layanan pencarian dan recolor, Anda dapat mengubah warna objek tertentu dalam gambar melalui prompt sederhana. Bentuk khusus dari inpaining ini tidak memerlukan topeng. Sebagai gantinya, layanan secara otomatis segmen objek dan menerapkan warna baru sebagaimana ditentukan dalam prompt Anda.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Layanan latar belakang hapus secara tepat mengidentifikasi dan mengisolasi latar depan dalam suatu gambar, memungkinkan latar belakang dilepas atau diganti sesuai kebutuhan.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Layanan pengeditan latar belakang dan penghitungan kembali memungkinkan untuk dengan mudah mengubah latar belakang menggunakan gambar yang dihasilkan AI atau unggahannya sendiri, sementara dengan mulus menyesuaikan pencahayaan untuk melengkapi subjek. API ini menawarkan solusi pengeditan gambar yang efisien yang disesuaikan untuk berbagai industri, termasuk e-commerce, real estat, fotografi, dan upaya kreatif.
Fitur utama meliputi:
Peringatan
Fungsi ini diberi label asinkron oleh editor, tetapi pada kenyataannya, itu tidak berperilaku seperti itu untuk aplikasi pihak ketiga yang menggunakannya. Ini beroperasi lebih seperti mekanisme caching untuk pemrosesan yang sedikit tertunda.
// 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 mengembalikan ID dari tugas yang sedang berlangsung, seperti API kreatif kelas atas. Anda kemudian perlu menggunakan API Fetch, seperti yang disebutkan sebelumnya.
Pengaturan terperinci pada dokumentasi resmi
Alat untuk membuat variasi gambar dan sketsa terkontrol
Alat ini dirancang untuk alur kerja pengembangan yang melibatkan desain berulang dan brainstorming. Ini mengubah sketsa yang digambar tangan menjadi visual yang dipoles dengan penyesuaian yang tepat. Selain itu, ini memungkinkan kontrol yang disesuaikan dengan penampilan akhir gambar non-sketsa dengan memanfaatkan kontur dan tepi gambar.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Layanan ini dirancang untuk menghasilkan gambar sambil melestarikan struktur gambar input, membuatnya sangat berguna untuk tugas -tugas seperti mereplikasi adegan atau rendering karakter berdasarkan model yang telah ditentukan.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Alat ini menganalisis fitur gaya dari gambar input yang diberikan (gambar kontrol) dan menerapkannya untuk menghasilkan gambar baru yang dipandu oleh prompt yang ditentukan. Gambar output mempertahankan gaya visual gambar kontrol sambil memasukkan konten yang diminta.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Alat untuk mengambil hasil generasi async Anda.
Untuk menggunakan, lihat Hasil Fetch Async Generation
3D cepat yang stabil menghasilkan aset 3D berkualitas tinggi dari gambar input 2D tunggal.
Lihat spesifikasi format file GLB untuk detail lebih lanjut.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Gunakan difusi video yang stabil , model difusi video laten, untuk menghasilkan video pendek dari gambar awal.
ID dari respons untuk memeriksa hasil pada titik akhir image-to-video/result/{id} . Pastikan untuk tidak polling titik akhir ini lebih dari sekali setiap 10 detik untuk menghindari kesalahan atau masalah pembatasan tingkat. // 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 );Pada akhirnya, kami mengambil ID ( mis. Kemudian, kami hanya mengambil hasil dengan cara ini.
Pengaturan terperinci pada dokumentasi resmi
// 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 );Pengaturan terperinci pada dokumentasi resmi
Sebutkan mesin yang kompatibel dengan titik akhir API Version 1 REST.
// 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 );Pengaturan terperinci pada dokumentasi resmi
Ambil detail tentang akun yang ditautkan ke kunci API yang ditentukan
// 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 );Pengaturan terperinci pada dokumentasi resmi
Ambil saldo kredit untuk akun atau organisasi yang ditautkan ke kunci API yang disediakan.
// 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 ;Pengaturan terperinci pada dokumentasi resmi
Stability.ai telah mengumumkan dua fitur yang akan datang:
Stable LLM 12B dan Stable LLM 1.6B .Audio Stable 2.0 . Anda dapat menghubungi Stability.ai untuk menguji model ini dengan mengirim pesan.Permintaan tarik dipersilakan. Jika Anda berencana membuat perubahan besar, buka masalah terlebih dahulu untuk membahas perubahan yang Anda usulkan.
Proyek ini dilisensikan di bawah lisensi MIT.