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 매체와 같은 변형이 포함되어 있으며 최적화 된 효율성을 가진 다양한 세대 작업을위한 더 많은 옵션을 제공합니다.
중요한
이것은 비공식 도서관입니다. 안정성 .ai는 Delphi 의 공식 도서관을 제공하지 않습니다. 이 저장소에는 안정성에 대한 Delphi 구현이 포함되어 있습니다.
사용 가능한 가능성을 탐색하려면 안정성에 액세스 할 수 있습니다.
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 );공식 문서의 자세한 설정
이 튜토리얼에서 제공된 예제 코드를 단순화하기 위해 소스 코드에 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 : "Image-to-Image"로 설정해야합니다.비동기 코드 예제
// 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 Large , SD3 Large Turbo 또는 SD3 매체 와 같이 사용할 모델을 지정합니다.output_format : 결과 이미지의 원하는 형식을 결정합니다.seed : 생성 과정의 임의성 종자를 설정합니다.negative_prompt : 생성 된 이미지에서 제외 할 키워드를 정의합니다.cfg_scale : 확산 과정에서 프롬프트 텍스트에 대한 준수 수준을 조정합니다. SDXL 1.0 사용 : 요청에 대해 engine_id 로 stable-diffusion-xl-1024-v1-0 사용하고 다음 조합 중 하나를 사용하여 치수 ( height 및 width )를 지정하십시오.
SD 1.6 사용 : SD 1.6은 비표준 종횡비를 가진 이미지를 생성하도록 설계된 유연한 해상도 기본 모델입니다. 이 모델은 512 x 512 픽셀의 해상도에 최적화되었습니다. 1 메가 픽셀의 해상도로 출력을 생성하려면 동일한 가격으로 제공되는 SDXL 1.0을 사용하는 것이 좋습니다.
이 모델을 사용하려면 요청에서 engine_id 로 stable-diffusion-v1-6 설정하고 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 로 설정하거나 step_schedule_start=0.65 사용하여 init_image_mode=STEP_SCHEDULE 사용하십시오. 두 방법 모두 비슷한 결과를 산출하지만 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 개의 이미지가 생성되었음을 의미합니다. 첫 번째는 표시됩니다. 다른 두 개는 다음과 같이 색인화 된 파일 이름으로 저장되었습니다 : Lighthouse701.png 및 Lighthouse702.png.
공식 문서의 자세한 설정
마스크를 사용하여 이미지의 특정 부분을 수정하십시오. 마스크는 원본 이미지의 치수와 모양과 일치해야합니다. 이 기능은 또한 알파 채널이있는 이미지도 지원합니다.
métode 사용 :
ImageToImageWithMask( const Model: string; ParamProc: TProc<TPayloadMask>;
CallBacks: TFunc<TAsynArtifacts>);이미지의 크기와 해상도를 향상시키는 도구
보수적 인 업 스칼러
창조적 인 업 스칼러
빠른 업 스칼러
최대 1 메가 픽셀의 64x64 픽셀 크기의 이미지를 허용하고 해상도를 4K로 향상시킵니다. 보다 광범위하게, 원래 세부 사항을 유지하면서 약 20 ~ 40 번 씩 이미지를 고급 할 수 있습니다. 보수적 인 고급 옵션은 최소한의 수정으로 이미지의 무결성을 보존하는 데 중점을두고 이미지의 내용을 재 해석하기위한 것이 아닙니다.
비동기 코드 예제
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Upscale;
StabilityResult.FileName := ' Upscalelighthouse1.png ' ;
Stability.StableImage.Upscale.Conservative(
procedure (Params: TUpscaleConservative)
begin
Params.Image( ' lighthouse.png ' );
Params.Prompt( ' The light house ' );
Params.OutputFormat(png);
end ,
function : TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
64x64 픽셀에서 최대 1 메가 픽셀까지의 이미지를 허용하여 해상도를 최대 4K로 향상시킵니다. 보다 광범위하게, 그것은 품질을 유지하고 종종 개선하는 동안 약 20 ~ 40 배까지 이미지를 고급화 할 수 있습니다. 창의적 고급 기능은 특히 악화 된 이미지에 효과적이지만, 상당한 재 해석 (창의성 척도를 통해 조절 가능)을 적용하기 때문에 1 메가 픽셀보다 큰 사진에는 적합하지 않습니다.
경고
이 함수는 편집기에 의해 비동기로 표시되지만 실제로는이를 사용하는 타사 응용 프로그램의 경우와 같이 작동하지 않습니다. 약간 지연된 처리를 위해 캐싱 메커니즘과 비슷합니다.
비동기 코드 예제
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Upscale;
Stability.StableImage.Upscale.Creative(
procedure (Params: TUpscaleCreative)
begin
Params.Image( ' lighthouse.png ' );
Params.Prompt( ' The gray light house ' );
Params.OutputFormat(png);
end ,
function : TAsynResults
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
우리는 작업 ID를 검색하고 다음 단계에서 검색 된 상태가 "진행 중"이 아닌 한 이미지를로드해야합니다. 이 경우 작업이 재조정되어야합니다.
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Results,
// e.g. Id ---> ea771536f066b7fd03d62384581982ecd8b54a932a6378d5809d43f6e5aa789a
StabilityResult.FileName := ' Upscalelighthouse2.png ' ;
Stability.StableImage.Results.Fetch(StabilityResult.Id,
function : TAsynResults
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
빠른 업 스칼러 서비스는 이미지 해상도를 400%증가시킵니다. 속도와 효율성을 위해 설계된이 IT는 약 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 Service는 마스킹 기술을 사용하여 얼굴의 결함이나 표면의 객체와 같은 이미지에서 원치 않는 요소를 제거하도록 설계되었습니다.
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 의 사용은 Erase API에 설명 된 것과 동일합니다.
공식 문서의 자세한 설정
아웃 페인트 서비스는 주변 공간을 채우기 위해 어떤 방향 으로든 컨텐츠를 추가하여 이미지의 완벽한 확장을 허용합니다. 자동화 또는 매뉴얼이든 다른 방법과 달리이 서비스는 가시 아티팩트를 줄이고 이미지 편집의 눈에 띄는 표시를 피하도록 설계되었습니다.
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' OutpaintLighthouse.png ' ;
Stability.StableImage.Edit.Outpaint(
procedure (Params: TOutpaint)
begin
Params.Image( ' Lighthouse.png ' );
Params.Right( 200 );
Params.Down( 400 );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
검색 및 교체 서비스는 마스크의 필요성을 제거하는 특수 형태의 입학 형태를 제공합니다. 대신, 사용자는 search_prompt를 사용하여 일반 언어로 설명하여 대체 할 객체를 지정할 수 있습니다. 그런 다음 서비스는 지정된 객체를 자동으로 감지하고 세분화하여 프롬프트에 설명 된 것과 완벽하게 대체합니다.
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' SearchReplaceLighthouse.png ' ;
Stability.StableImage.Edit.SearchAndReplace(
procedure (Params: TSearchAndReplace)
begin
Params.Image( ' Lighthouse.png ' );
Params.Prompt( ' Replace the lighthouse ' );
Params.SearchPrompt( ' Lighthouse ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
검색 및 레콜러 서비스를 사용하면 간단한 프롬프트를 통해 이미지에서 특정 객체의 색상을 변경할 수 있습니다. 이 전문화 된 형태의 인파에 마스크가 필요하지 않습니다. 대신 서비스는 자동으로 객체를 세그어링하고 프롬프트에 지정된 새 색상을 적용합니다.
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' SearchRecolorLighthouse.png ' ;
Stability.StableImage.Edit.SearchAndRecolor(
procedure (Params: TSearchAndRecolor)
begin
Params.Image( ' Lighthouse.png ' );
Params.Prompt( ' The lighthouse is pink ' );
Params.SelectPrompt( ' Lighthouse ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
배경 서비스 제거는 이미지에서 전경을 정확하게 식별하고 분리하여 배경을 필요에 따라 제거하거나 교체 할 수 있습니다.
// uses
// StabilityAI, StabilityAI.Types, StabilityAI.Common, FMX.Stability.Tutorial,
// StabilityAI.StableImage.Edit;
StabilityResult.FileName := ' RemoveBackgroundLighthouse.png ' ;
Stability.StableImage.Edit.RemoveBackground(
procedure (Params: TRemoveBackground)
begin
Params.Image( ' Lighthouse.png ' );
Params.OutputFormat(png);
end ,
function: TAsynStableImage
begin
Result.Sender := StabilityResult;
Result.OnStart := Start;
Result.OnSuccess := Display;
Result.OnError := Display;
end );공식 문서의 자세한 설정
교체 배경 및 relight 편집 서비스를 사용하면 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는 고급 Creative 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 );공식 문서의 자세한 설정
비동기 세대의 결과를 가져 오는 도구.
사용하려면 비동기 생성 결과를 참조하십시오
안정적인 빠른 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 초마다 두 번 이상 투표하지 마십시오. // 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 ( 예 : 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 );공식 문서의 자세한 설정
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는 다가오는 두 가지 기능을 발표했습니다.
Stable LLM 12B 및 Stable LLM 1.6B .Audio Stable 2.0 . Stability.ai에 연락하여 메시지를 보내서이 모델을 테스트 할 수 있습니다.풀 요청을 환영합니다. 큰 변화를 계획하고 있다면 먼저 제안 된 변경 사항에 대해 논의하십시오.
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다.