mirror of
https://github.com/DarthAffe/StableDiffusion.NET.git
synced 2025-12-13 05:48:40 +00:00
Cleaned Project
This commit is contained in:
parent
e741cc14d1
commit
4cba970697
@ -1,4 +1,6 @@
|
|||||||
namespace StableDiffusion.NET;
|
using System;
|
||||||
|
|
||||||
|
namespace StableDiffusion.NET;
|
||||||
|
|
||||||
[AttributeUsage(AttributeTargets.Field)]
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
internal class NativeName : Attribute
|
internal class NativeName : Attribute
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Reflection;
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace StableDiffusion.NET;
|
namespace StableDiffusion.NET;
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace StableDiffusion.NET;
|
using System;
|
||||||
|
|
||||||
|
namespace StableDiffusion.NET;
|
||||||
|
|
||||||
public sealed unsafe class Image : IDisposable
|
public sealed unsafe class Image : IDisposable
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,66 +0,0 @@
|
|||||||
using System.Drawing;
|
|
||||||
using System.Drawing.Imaging;
|
|
||||||
using StableDiffusion.NET;
|
|
||||||
using Image = StableDiffusion.NET.Image;
|
|
||||||
|
|
||||||
using StableDiffusionModel sd = new(@"N:\StableDiffusion\stable-diffusion-webui\models\Stable-diffusion\ghostmix_v20Bakedvae.safetensors",
|
|
||||||
new ModelParameter
|
|
||||||
{
|
|
||||||
Quantization = Quantization.Q5_1,
|
|
||||||
Schedule = Schedule.Karras
|
|
||||||
});
|
|
||||||
|
|
||||||
using StableDiffusionParameter parameter = new StableDiffusionParameter { SampleMethod = Sampler.DPMPP2M };
|
|
||||||
parameter.Width = 768;
|
|
||||||
|
|
||||||
using Image image = sd.TextToImage("der ohne gesicht wo im aquarium schwimmt", parameter);
|
|
||||||
using Bitmap bitmap = ToBitmap2(image);
|
|
||||||
bitmap.Save("test.jpg");
|
|
||||||
|
|
||||||
|
|
||||||
//unsafe
|
|
||||||
//{
|
|
||||||
// Console.WriteLine(Native.stable_diffusion_get_system_info());
|
|
||||||
|
|
||||||
// Native.stable_diffusion_set_log_level("DEBUG");
|
|
||||||
|
|
||||||
// Native.stable_diffusion_ctx* ctx = Native.stable_diffusion_init(16, false, string.Empty, false, string.Empty, "STD_DEFAULT_RNG");
|
|
||||||
|
|
||||||
// Native.stable_diffusion_load_from_file(ctx, @"N:\StableDiffusion\stable-diffusion-webui\models\Stable-diffusion\ghostmix_v20Bakedvae.safetensors", string.Empty, "Q5_1", "KARRAS");
|
|
||||||
|
|
||||||
// Native.stable_diffusion_full_params* @params = Native.stable_diffusion_full_default_params_ref();
|
|
||||||
|
|
||||||
// Native.stable_diffusion_full_params_set_cfg_scale(@params, 7.5f);
|
|
||||||
// Native.stable_diffusion_full_params_set_width(@params, 512);
|
|
||||||
// Native.stable_diffusion_full_params_set_height(@params, 512);
|
|
||||||
// Native.stable_diffusion_full_params_set_batch_count(@params, 1);
|
|
||||||
// Native.stable_diffusion_full_params_set_sample_steps(@params, 30);
|
|
||||||
// Native.stable_diffusion_full_params_set_sample_method(@params, "DPMPP2M");
|
|
||||||
|
|
||||||
// byte* result = Native.stable_diffusion_predict_image(ctx, @params, "a wizard in a purple t-shirt casting a spell that causes a mountain to explode");
|
|
||||||
|
|
||||||
// Span<byte> image = new(result, 512 * 512 * 3);
|
|
||||||
|
|
||||||
// using Bitmap bitmap = ToBitmap(image, 512, 512);
|
|
||||||
// bitmap.Save("test.jpg");
|
|
||||||
|
|
||||||
// Native.stable_diffusion_free_buffer(result);
|
|
||||||
// Native.stable_diffusion_free_full_params(@params);
|
|
||||||
// Native.stable_diffusion_free(ctx);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
static Bitmap ToBitmap2(Image image) => ToBitmap(image.Data, image.Width, image.Height);
|
|
||||||
|
|
||||||
static unsafe Bitmap ToBitmap(ReadOnlySpan<byte> image, int width, int height)
|
|
||||||
{
|
|
||||||
Bitmap output = new(width, height, PixelFormat.Format24bppRgb);
|
|
||||||
Rectangle rect = new(0, 0, width, height);
|
|
||||||
BitmapData bmpData = output.LockBits(rect, ImageLockMode.ReadWrite, output.PixelFormat);
|
|
||||||
|
|
||||||
nint ptr = bmpData.Scan0;
|
|
||||||
image.CopyTo(new Span<byte>((void*)ptr, width * height * 3));
|
|
||||||
|
|
||||||
output.UnlockBits(bmpData);
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
@ -1,15 +1,9 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
namespace StableDiffusion.NET;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace StableDiffusion.NET;
|
||||||
|
|
||||||
public sealed unsafe class StableDiffusionModel : IDisposable
|
public sealed unsafe class StableDiffusionModel : IDisposable
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace StableDiffusion.NET;
|
using System;
|
||||||
|
|
||||||
|
namespace StableDiffusion.NET;
|
||||||
|
|
||||||
public sealed unsafe class StableDiffusionParameter : IDisposable
|
public sealed unsafe class StableDiffusionParameter : IDisposable
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user