usingvarclient=newStabilityAIClient(apiKey);// Discover available engines before generating imagesvarengines=awaitclient.V1Engines.ListEnginesAsync();foreach(varengineinengines){Console.WriteLine($"{engine.Id}: {engine.Name} ({engine.Type})");Console.WriteLine($" {engine.Description}");}
usingvarclient=newStabilityAIClient(apiKey);varimages=awaitclient.V1Generation.TextToImageAsync(engineId:"stable-diffusion-v1-6",request:newTextToImageRequestBody(value1:newTextToImageRequestBodyVariant1{TextPrompts=[ new TextPrompt { Text = "A beautiful sunset over mountains, digital art", Weight = 1.0f, }, ],Height=512,Width=512,},value2:newGenerationRequestOptionalParams{Samples=1,}));foreach(varimageinimages){Console.WriteLine($"Seed: {image.Seed}, Finish reason: {image.FinishReason}");// image.Base64 contains the generated image datavarbytes=Convert.FromBase64String(image.Base64!);awaitFile.WriteAllBytesAsync($"output_{image.Seed}.png",bytes);}
usingvarclient=newStabilityAIClient(apiKey);// Load the source imagevarinitImageBytes=awaitFile.ReadAllBytesAsync("input.png");varimages=awaitclient.V1Generation.ImageToImageAsync(engineId:"stable-diffusion-v1-6",request:newImageToImageRequestBody{TextPrompts=[ new TextPrompt { Text = "A fantasy castle on a cliff, dramatic lighting", Weight = 1.0f, }, ],InitImage=initImageBytes,InitImagename="input.png",ImageStrength=0.35f,// Lower = closer to original, higher = more creative});foreach(varimageinimages){Console.WriteLine($"Seed: {image.Seed}, Finish reason: {image.FinishReason}");varbytes=Convert.FromBase64String(image.Base64!);awaitFile.WriteAllBytesAsync($"output_{image.Seed}.png",bytes);}
Upscale Image
1 2 3 4 5 6 7 8 9101112131415161718192021
usingvarclient=newStabilityAIClient(apiKey);// Load the image to upscalevarimageBytes=awaitFile.ReadAllBytesAsync("low-res.png");varimages=awaitclient.V1Generation.UpscaleImageAsync(engineId:"esrgan-v1-x2plus",request:newUpscaleImageRequestBody{Image=imageBytes,Imagename="low-res.png",Width=2048,// Only specify width OR height, not both});foreach(varimageinimages){Console.WriteLine($"Seed: {image.Seed}, Finish reason: {image.FinishReason}");varbytes=Convert.FromBase64String(image.Base64!);awaitFile.WriteAllBytesAsync("upscaled.png",bytes);}
usingvarclient=newStabilityAIClient(apiKey);// Load the source image and mask image (must be same dimensions)varinitImageBytes=awaitFile.ReadAllBytesAsync("input.png");varmaskImageBytes=awaitFile.ReadAllBytesAsync("mask.png");varimages=awaitclient.V1Generation.MaskingAsync(engineId:"stable-diffusion-v1-6",request:newMaskingRequestBody{TextPrompts=[ new TextPrompt { Text = "A bright blue sky with fluffy clouds", Weight = 1.0f, }, ],InitImage=initImageBytes,InitImagename="input.png",MaskImage=maskImageBytes,MaskImagename="mask.png",});foreach(varimageinimages){Console.WriteLine($"Seed: {image.Seed}, Finish reason: {image.FinishReason}");varbytes=Convert.FromBase64String(image.Base64!);awaitFile.WriteAllBytesAsync($"masked_{image.Seed}.png",bytes);}