Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

C# Wrapper for StableDiffusion.cpp

License

NotificationsYou must be signed in to change notification settings

DarthAffe/StableDiffusion.NET

Repository files navigation

GitHub release (latest by date)NugetGitHubGitHub Repo stars

Based onhttps://github.com/leejet/stable-diffusion.cpp

Usage

Setup

Install theStableDiffusion.NET-Nuget and at least one of theBackend-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 staticBackends class.

Example

1. Create a model

stable diffusion:

// Enable the Log- and Progress-eventsStableDiffusionCpp.InitializeEvents();// Register the Log and Progress-events to capture stable-diffusion.cpp outputStableDiffusionCpp.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 createdusing(DiffusionModelsd=new(DiffusionModelParameter.Create().WithModelPath(@"<path to model>")// .WithVae(@"<optional path to vae>").WithMultithreading().WithFlashAttention())){// Create a image from a promptImage<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 creationtreeWithTiger=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 modelusingDiffusionModelqwenContext=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 imageImage<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 theHPPH-extension sets:
HPPH.System.Drawing
HPPH.SkiaSharp


[8]ページ先頭

©2009-2025 Movatter.jp