StableDiffusion.NET
4.4.0
See the version list below for details.
dotnet add package StableDiffusion.NET --version 4.4.0
NuGet\Install-Package StableDiffusion.NET -Version 4.4.0
<PackageReference Include="StableDiffusion.NET" Version="4.4.0" />
<PackageVersion Include="StableDiffusion.NET" Version="4.4.0" />
<PackageReference Include="StableDiffusion.NET" />
paket add StableDiffusion.NET --version 4.4.0
#r "nuget: StableDiffusion.NET, 4.4.0"
#:package StableDiffusion.NET@4.4.0
#addin nuget:?package=StableDiffusion.NET&version=4.4.0
#tool nuget:?package=StableDiffusion.NET&version=4.4.0
StableDiffusion.NET
Based on https://github.com/leejet/stable-diffusion.cpp
Usage
Setup
Install the StableDiffusion.NET-Nuget and at least one of the Backend-Packages.
StableDiffusion.NET is using semantic versioning. Backend-packages are compatible as long as the version does only differ in the last digit.
If GPU-support is available it will prefer this over CPU.
If you want to add your own native-libraries or need more control over which backend to load, check the static Backends class.
Example
1. Create a model
stable diffusion:
// Enable the Log- and Progress-events
StableDiffusionCpp.InitializeEvents();
// Register the Log and Progress-events to capture stable-diffusion.cpp output
StableDiffusionCpp.Log += (_, args) => Console.WriteLine($"LOG [{args.Level}]: {args.Text}");
StableDiffusionCpp.Progress += (_, args) => Console.WriteLine($"PROGRESS {args.Step} / {args.Steps} ({(args.Progress * 100):N2} %) {args.IterationsPerSecond:N2} it/s ({args.Time})");
Image<ColorRGB>? treeWithTiger;
// Load a StableDiffusion model in a using block to unload it again after the two images are created
using (DiffusionModel sd = new(DiffusionModelParameter.Create()
.WithModelPath(@"<path to model>")
// .WithVae(@"<optional path to vae>")
.WithMultithreading()
.WithFlashAttention()))
{
// Create a image from a prompt
Image<ColorRGB>? tree = sd.GenerateImage(ImageGenerationParameter.TextToImage("A beautiful tree standing on a small hill").WithSDXLDefaults());
// (optional) Save the image (requires the HPPH System.Dawing or SkiaSharp extension)
File.WriteAllBytes("image1.png", tree.ToPng());
// Use the previously created image for an image-to-image creation
treeWithTiger = sd.GenerateImage(ImageGenerationParameter.ImageToImage("A cute tiger in front of a tree on a small hill", tree).WithSDXLDefaults());
File.WriteAllBytes("image2.png", treeWithTiger.ToPng());
}
// Load the qwen image edit model
using DiffusionModel qwenContext = new(DiffusionModelParameter.Create()
.WithDiffusionModelPath(@"<Qwen-Image-Edit-2509-path>")
.WithQwen2VLPath(@"<Qwen2.5-VL-7B-Instruct-path>")
.WithQwen2VLVisionPath(@"<Qwen2.5-VL-7B-Instruct.mmproj-path>")
.WithVae(@"<qwen_image_vae-path>")
.WithMultithreading()
.WithFlashAttention()
.WithFlowShift(3)
.WithOffloadedParamsToCPU()
.WithImmediatelyFreedParams());
// Perform an edit on the previously created image
Image<ColorRGB>? tigerOnMoon = qwenContext.GenerateImage(ImageGenerationParameter.TextToImage("Remove the background and place the tree and the tiger on the moon.")
.WithSize(1024, 1024)
.WithCfg(2.5f)
.WithSampler(Sampler.Euler)
.WithRefImages(treeWithTiger));
File.WriteAllBytes("image3.png", tigerOnMoon.ToPng());
To process the resulting image further you can write your own extensions or install one of the HPPH-extension sets:
HPPH.System.Drawing
HPPH.SkiaSharp
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HPPH (>= 1.0.0)
- JetBrains.Annotations (>= 2025.2.0)
-
net8.0
- HPPH (>= 1.0.0)
- JetBrains.Annotations (>= 2025.2.0)
-
net9.0
- HPPH (>= 1.0.0)
- JetBrains.Annotations (>= 2025.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on StableDiffusion.NET:
| Repository | Stars |
|---|---|
|
lindexi/lindexi_gd
博客用到的代码
|
| Version | Downloads | Last Updated |
|---|---|---|
| 4.5.0 | 212 | 12/7/2025 |
| 4.4.0 | 335 | 11/30/2025 |
| 4.3.0 | 238 | 11/30/2025 |
| 4.2.0 | 232 | 11/16/2025 |
| 4.0.0 | 221 | 10/31/2025 |
| 3.6.0 | 274 | 6/30/2025 |
| 3.5.0 | 177 | 6/30/2025 |
| 3.4.1 | 248 | 3/2/2025 |
| 3.4.0 | 277 | 1/5/2025 |
| 3.3.0 | 184 | 1/3/2025 |
| 3.2.0 | 359 | 10/24/2024 |
| 3.1.1 | 173 | 10/17/2024 |
| 3.1.0 | 303 | 8/28/2024 |
| 3.0.0 | 180 | 8/25/2024 |
| 2.2.1 | 179 | 8/10/2024 |
| 2.2.0 | 165 | 8/1/2024 |
| 2.1.0 | 141 | 7/28/2024 |
| 2.0.0 | 345 | 7/22/2024 |
| 1.2.0 | 315 | 4/29/2024 |
| 1.1.0 | 205 | 4/14/2024 |
| 1.0.0 | 247 | 3/24/2024 |