Stability.ai هي منظمة راسخة في الذكاء الاصطناعي ، والمعروفة بنماذجها التي تولد الصور والنص من الأوصاف. فيما يلي ملخص للنماذج الرئيسية التي طورتها ، معروضة بالترتيب الزمني للإصدار:
نماذج توليد الصور:
Stable Diffusion (أغسطس 2022) نموذج الانتشار الكامن الأول ، قادر على توليد الصور بناءً على الأوصاف النصية.
Stable Diffusion 2.0 (نوفمبر 2022) نسخة محدثة مع جودة الصورة المحسنة ، ودعم الدقة العليا ، والميزات الإضافية.
ركز هذا الإصدار على Stable Diffusion XL (SDXL) (أبريل 2023) على الواقعية ، تحسينات في تكوين الصور وتوليد الوجه.
Stable Diffusion 3.0 (فبراير 2024) يضم بنية جديدة تجمع بين محولات الانتشار ومطابقة التدفق ، ويعزز هذا الإصدار أداء لاستعلام متعدد الموضوعات وجودة الصورة الإجمالية.
Stable Cascade (فبراير 2024) مبني على بنية Würstchen ، يحسن هذا النموذج الدقة والكفاءة في توليد النص إلى صورة.
يشمل Stable Diffusion 3.5 (أكتوبر 2024) متغيرات مثل الانتشار المستقر 3.5 كبير ومتوسط 3.5 ، مما يوفر المزيد من الخيارات لمهام التوليد المتنوعة مع كفاءة محسنة.
مهم
هذه مكتبة غير رسمية. الاستقرار. لا يوفر أي مكتبة رسمية لـ Delphi . يحتوي هذا المستودع على تطبيق Delphi على الاستقرار. API العام.
يمكنك الوصول إلى وحدة التحكم في الاستقرار. لاستكشاف الاحتمالات المتاحة.
للحصول على مفتاح API ، تحتاج إلى إنشاء حساب. سيتم منح رصيد 25 لك ، وسيتم إنشاء مفتاح أولي تلقائيًا. يمكنك العثور على هذا المفتاح هنا.
بمجرد حصولك على رمز رمزي ، يمكنك تهيئة واجهة 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>; اسم كل خاصية محفوظ ذاتيًا ؛ إذا لزم الأمر ، راجع الوثائق الداخلية لمزيد من التفاصيل.
ملحوظة
في بقية البرنامج التعليمي ، سنستخدم أساليب مجهولة في المقام الأول ما لم ينص على خلاف ذلك ، حيث أن العمل مع واجهات برمجة التطبيقات يتطلب ذلك بسبب أوقات المعالجة التي يمكن أن تكون طويلة جدًا في بعض الأحيان.
صورة مستقرة استخدم نموذج الانتشار 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 و FMX.Stability.Tutorial . اعتمادًا على الخيار الذي تختاره لاختبار الرمز المصدر المقدم ، ستحتاج إلى إنشاء إنشاء فئة TVCLStabilitySender أو TFMXStabilitySender في حدث OnCreate للتطبيق ، على النحو التالي:
نصيحة
// 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 × 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 ، مما يعني أنه تم إنشاء ثلاث صور. يتم عرض أول واحد فقط. تم حفظ الاثنين الآخرين بأسماء الملفات المفهرسة على النحو التالي: Lighthouse701.png و Lighthouse702.png.
إعدادات مفصلة على الوثائق الرسمية
تعديل أجزاء محددة من صورة باستخدام قناع. يجب أن يتطابق القناع مع أبعاد وشكل الصورة الأصلية. تدعم هذه الوظيفة أيضًا الصور باستخدام قنوات ألفا.
استخدم métode:
ImageToImageWithMask( const Model: string; ParamProc: TProc<TPayloadMask>;
CallBacks: TFunc<TAsynArtifacts>);أدوات لتعزيز حجم وحل صورك
upscaler المحافظ
upscaler الإبداعية
سريع upscaler
يقبل الصور التي تتراوح حجمها من 64 × 64 بكسل حتى 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 );إعدادات مفصلة على الوثائق الرسمية
يقبل الصور التي تتراوح من 64 × 64 بكسل إلى 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 );إعدادات مفصلة على الوثائق الرسمية
نحن نرجع معرف الوظيفة ، وفي الخطوة التالية ، نحتاج إلى تحميل الصورة ما لم تكن الحالة التي تم استردادها "قيد التشغيل". في هذه الحالة ، يجب إعادة تشغيل العملية.
// 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 );إعدادات مفصلة على الوثائق الرسمية
دقة صورة Serviceincrease السريعة بنسبة 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 معين ، فسيتم إنشاء قناع تلقائيًا بناءً على قناة ألفا للصورة. ستخضع المناطق الشفافة للاتصالات ، في حين أن المناطق غير المعتمة ستبقى دون تغيير.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 بطريقتين:
// 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 and Relive Service شكلاً متخصصًا من التشويش الذي يلغي الحاجة إلى قناع. بدلاً من ذلك ، يمكن للمستخدمين تحديد كائن لاستبداله بوصفه بلغة عادي باستخدام 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 );إعدادات مفصلة على الوثائق الرسمية
من خلال الاستفادة من خدمة البحث وإعادة الحل ، يمكنك تغيير لون كائن معين في صورة من خلال موجه بسيط. هذا الشكل المتخصص من inpainting لا يتطلب قناع. بدلاً من ذلك ، تقوم الخدمة تلقائيًا بتقسيم الكائن وتطبق الألوان الجديدة كما هو محدد في المطالبة.
// 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 );إعدادات مفصلة على الوثائق الرسمية
تتيح خدمة REPLICE BECTRATE و RELIight Adate Service لتغيير الخلفيات دون عناء باستخدام الصور التي تم إنشاؤها من الذكاء الاصطناعى أو تحميلاتها الخاصة ، مع ضبط الإضاءة بسلاسة لاستكمال الموضوع. توفر واجهة برمجة التطبيقات هذه حلًا فعالًا لتحرير الصور مصمم خصيصًا لمختلف الصناعات ، بما في ذلك التجارة الإلكترونية والعقارات والتصوير الفوتوغرافي والمساعي الإبداعية.
تشمل الميزات الرئيسية:
تحذير
تم تصنيف هذه الوظيفة على أنها غير متزامنة من قبل المحرر ، ولكن في الواقع ، لا تتصرف على هذا النحو لتطبيق الطرف الثالث الذي يستخدمه. إنه يعمل أشبه بآلية التخزين المؤقت للمعالجة المتأخرة قليلاً.
// 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 Fetch ، كما ذكرنا سابقًا.
إعدادات مفصلة على الوثائق الرسمية
أدوات لإنشاء اختلافات محكومة من الصور والرسومات
تم تصميم هذه الأداة لتنمية مهام سير العمل التي تنطوي على تصميم تكراري وعصف ذهني. إنه يحول الرسومات المرسومة باليد إلى صور مصقولة مع تعديلات دقيقة. بالإضافة إلى ذلك ، فإنه يتيح تحكمًا دقيقًا في المظهر النهائي للصور غير المتقنة من خلال استخدام ملامح الصورة وحوافها.
// 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
يولد Fast Fast 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 ثوان لتجنب الأخطاء أو المشكلات في الحد من الأسعار. // 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 );في النهاية ، نقوم باسترداد المعرف ( مثل D4FB4AA8301AEE0B368A41B3C0A78018DFC28F1F959A366BE2E6951408FB8E3 ) لمهمة إنشاء الفيديو. ثم ، نقوم ببساطة باسترداد النتيجة بهذه الطريقة.
إعدادات مفصلة على الوثائق الرسمية
// 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 );إعدادات مفصلة على الوثائق الرسمية
اذكر المحركات المتوافقة مع نقاط نهاية API REST Version 1 .
// 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 ;إعدادات مفصلة على الوثائق الرسمية
أعلنت الاستقرار .
Stable LLM 12B Stable LLM 1.6B .Audio Stable 2.0 . يمكنك الاتصال بـ "الاستقرار". لاختبار هذا النموذج عن طريق إرسال رسالة.طلبات السحب موضع ترحيب. إذا كنت تخطط لإجراء تغيير كبير ، فيرجى فتح مشكلة أولاً لمناقشة التغييرات المقترحة.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.