mirror of
https://github.com/DarthAffe/StableDiffusion.NET.git
synced 2025-12-13 05:48:40 +00:00
Compare commits
No commits in common. "06b97ba3d889051537cc6435d40b53d060c305b4" and "b147a7a63e8d4b6f793c172e07f25ec939d5ddbb" have entirely different histories.
06b97ba3d8
...
b147a7a63e
@ -31,39 +31,37 @@ extern "C" {
|
|||||||
enum rng_type_t {
|
enum rng_type_t {
|
||||||
STD_DEFAULT_RNG,
|
STD_DEFAULT_RNG,
|
||||||
CUDA_RNG,
|
CUDA_RNG,
|
||||||
CPU_RNG,
|
|
||||||
RNG_TYPE_COUNT
|
RNG_TYPE_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum sample_method_t {
|
enum sample_method_t {
|
||||||
EULER_SAMPLE_METHOD,
|
SAMPLE_METHOD_DEFAULT,
|
||||||
EULER_A_SAMPLE_METHOD,
|
EULER,
|
||||||
HEUN_SAMPLE_METHOD,
|
HEUN,
|
||||||
DPM2_SAMPLE_METHOD,
|
DPM2,
|
||||||
DPMPP2S_A_SAMPLE_METHOD,
|
DPMPP2S_A,
|
||||||
DPMPP2M_SAMPLE_METHOD,
|
DPMPP2M,
|
||||||
DPMPP2Mv2_SAMPLE_METHOD,
|
DPMPP2Mv2,
|
||||||
IPNDM_SAMPLE_METHOD,
|
IPNDM,
|
||||||
IPNDM_V_SAMPLE_METHOD,
|
IPNDM_V,
|
||||||
LCM_SAMPLE_METHOD,
|
LCM,
|
||||||
DDIM_TRAILING_SAMPLE_METHOD,
|
DDIM_TRAILING,
|
||||||
TCD_SAMPLE_METHOD,
|
TCD,
|
||||||
|
EULER_A,
|
||||||
SAMPLE_METHOD_COUNT
|
SAMPLE_METHOD_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum scheduler_t {
|
enum scheduler_t {
|
||||||
|
DEFAULT,
|
||||||
DISCRETE_SCHEDULER,
|
DISCRETE,
|
||||||
KARRAS_SCHEDULER,
|
KARRAS,
|
||||||
EXPONENTIAL_SCHEDULER,
|
EXPONENTIAL,
|
||||||
AYS_SCHEDULER,
|
AYS,
|
||||||
GITS_SCHEDULER,
|
GITS,
|
||||||
SGM_UNIFORM_SCHEDULER,
|
SGM_UNIFORM,
|
||||||
SIMPLE_SCHEDULER,
|
SIMPLE,
|
||||||
SMOOTHSTEP_SCHEDULER,
|
SMOOTHSTEP,
|
||||||
LCM_SCHEDULER,
|
SCHEDULE_COUNT
|
||||||
SCHEDULER_COUNT
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum prediction_t {
|
enum prediction_t {
|
||||||
@ -168,13 +166,11 @@ typedef struct {
|
|||||||
const char* lora_model_dir;
|
const char* lora_model_dir;
|
||||||
const char* embedding_dir;
|
const char* embedding_dir;
|
||||||
const char* photo_maker_path;
|
const char* photo_maker_path;
|
||||||
const char* tensor_type_rules;
|
|
||||||
bool vae_decode_only;
|
bool vae_decode_only;
|
||||||
bool free_params_immediately;
|
bool free_params_immediately;
|
||||||
int n_threads;
|
int n_threads;
|
||||||
enum sd_type_t wtype;
|
enum sd_type_t wtype;
|
||||||
enum rng_type_t rng_type;
|
enum rng_type_t rng_type;
|
||||||
enum rng_type_t sampler_rng_type;
|
|
||||||
enum prediction_t prediction;
|
enum prediction_t prediction;
|
||||||
enum lora_apply_mode_t lora_apply_mode;
|
enum lora_apply_mode_t lora_apply_mode;
|
||||||
bool offload_params_to_cpu;
|
bool offload_params_to_cpu;
|
||||||
@ -230,13 +226,6 @@ typedef struct {
|
|||||||
float style_strength;
|
float style_strength;
|
||||||
} sd_pm_params_t; // photo maker
|
} sd_pm_params_t; // photo maker
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
bool enabled;
|
|
||||||
float reuse_threshold;
|
|
||||||
float start_percent;
|
|
||||||
float end_percent;
|
|
||||||
} sd_easycache_params_t;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char* prompt;
|
const char* prompt;
|
||||||
const char* negative_prompt;
|
const char* negative_prompt;
|
||||||
@ -257,7 +246,6 @@ typedef struct {
|
|||||||
float control_strength;
|
float control_strength;
|
||||||
sd_pm_params_t pm_params;
|
sd_pm_params_t pm_params;
|
||||||
sd_tiling_params_t vae_tiling_params;
|
sd_tiling_params_t vae_tiling_params;
|
||||||
sd_easycache_params_t easycache;
|
|
||||||
} sd_img_gen_params_t;
|
} sd_img_gen_params_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -277,7 +265,6 @@ typedef struct {
|
|||||||
int64_t seed;
|
int64_t seed;
|
||||||
int video_frames;
|
int video_frames;
|
||||||
float vace_strength;
|
float vace_strength;
|
||||||
sd_easycache_params_t easycache;
|
|
||||||
} sd_vid_gen_params_t;
|
} sd_vid_gen_params_t;
|
||||||
|
|
||||||
typedef struct sd_ctx_t sd_ctx_t;
|
typedef struct sd_ctx_t sd_ctx_t;
|
||||||
@ -298,8 +285,8 @@ SD_API const char* sd_rng_type_name(enum rng_type_t rng_type);
|
|||||||
SD_API enum rng_type_t str_to_rng_type(const char* str);
|
SD_API enum rng_type_t str_to_rng_type(const char* str);
|
||||||
SD_API const char* sd_sample_method_name(enum sample_method_t sample_method);
|
SD_API const char* sd_sample_method_name(enum sample_method_t sample_method);
|
||||||
SD_API enum sample_method_t str_to_sample_method(const char* str);
|
SD_API enum sample_method_t str_to_sample_method(const char* str);
|
||||||
SD_API const char* sd_scheduler_name(enum scheduler_t scheduler);
|
SD_API const char* sd_schedule_name(enum scheduler_t scheduler);
|
||||||
SD_API enum scheduler_t str_to_scheduler(const char* str);
|
SD_API enum scheduler_t str_to_schedule(const char* str);
|
||||||
SD_API const char* sd_prediction_name(enum prediction_t prediction);
|
SD_API const char* sd_prediction_name(enum prediction_t prediction);
|
||||||
SD_API enum prediction_t str_to_prediction(const char* str);
|
SD_API enum prediction_t str_to_prediction(const char* str);
|
||||||
SD_API const char* sd_preview_name(enum preview_t preview);
|
SD_API const char* sd_preview_name(enum preview_t preview);
|
||||||
@ -307,21 +294,16 @@ SD_API enum preview_t str_to_preview(const char* str);
|
|||||||
SD_API const char* sd_lora_apply_mode_name(enum lora_apply_mode_t mode);
|
SD_API const char* sd_lora_apply_mode_name(enum lora_apply_mode_t mode);
|
||||||
SD_API enum lora_apply_mode_t str_to_lora_apply_mode(const char* str);
|
SD_API enum lora_apply_mode_t str_to_lora_apply_mode(const char* str);
|
||||||
|
|
||||||
SD_API void sd_easycache_params_init(sd_easycache_params_t* easycache_params);
|
|
||||||
|
|
||||||
SD_API void sd_ctx_params_init(sd_ctx_params_t* sd_ctx_params);
|
SD_API void sd_ctx_params_init(sd_ctx_params_t* sd_ctx_params);
|
||||||
SD_API char* sd_ctx_params_to_str(const sd_ctx_params_t* sd_ctx_params);
|
SD_API char* sd_ctx_params_to_str(const sd_ctx_params_t* sd_ctx_params);
|
||||||
|
|
||||||
SD_API sd_ctx_t* new_sd_ctx(const sd_ctx_params_t* sd_ctx_params);
|
SD_API sd_ctx_t* new_sd_ctx(const sd_ctx_params_t* sd_ctx_params);
|
||||||
SD_API void free_sd_ctx(sd_ctx_t* sd_ctx);
|
SD_API void free_sd_ctx(sd_ctx_t* sd_ctx);
|
||||||
|
SD_API enum sample_method_t sd_get_default_sample_method(const sd_ctx_t* sd_ctx);
|
||||||
|
|
||||||
SD_API void sd_sample_params_init(sd_sample_params_t* sample_params);
|
SD_API void sd_sample_params_init(sd_sample_params_t* sample_params);
|
||||||
SD_API char* sd_sample_params_to_str(const sd_sample_params_t* sample_params);
|
SD_API char* sd_sample_params_to_str(const sd_sample_params_t* sample_params);
|
||||||
|
|
||||||
SD_API enum sample_method_t sd_get_default_sample_method(const sd_ctx_t* sd_ctx);
|
|
||||||
SD_API enum scheduler_t sd_get_default_scheduler(const sd_ctx_t* sd_ctx);
|
|
||||||
|
|
||||||
SD_API void sd_img_gen_params_init(sd_img_gen_params_t* sd_img_gen_params);
|
SD_API void sd_img_gen_params_init(sd_img_gen_params_t* sd_img_gen_params);
|
||||||
SD_API char* sd_img_gen_params_to_str(const sd_img_gen_params_t* sd_img_gen_params);
|
SD_API char* sd_img_gen_params_to_str(const sd_img_gen_params_t* sd_img_gen_params);
|
||||||
SD_API sd_image_t* generate_image(sd_ctx_t* sd_ctx, const sd_img_gen_params_t* sd_img_gen_params);
|
SD_API sd_image_t* generate_image(sd_ctx_t* sd_ctx, const sd_img_gen_params_t* sd_img_gen_params);
|
||||||
@ -360,4 +342,4 @@ SD_API bool preprocess_canny(sd_image_t image,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // __STABLE_DIFFUSION_H__
|
#endif // __STABLE_DIFFUSION_H__
|
||||||
@ -3,6 +3,5 @@
|
|||||||
public enum RngType
|
public enum RngType
|
||||||
{
|
{
|
||||||
Standard,
|
Standard,
|
||||||
Cuda,
|
Cuda
|
||||||
Cpu
|
|
||||||
}
|
}
|
||||||
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
public enum Sampler
|
public enum Sampler
|
||||||
{
|
{
|
||||||
|
Default,
|
||||||
Euler,
|
Euler,
|
||||||
Euler_A,
|
|
||||||
Heun,
|
Heun,
|
||||||
DPM2,
|
DPM2,
|
||||||
DPMPP2SA,
|
DPMPP2SA,
|
||||||
@ -14,5 +14,5 @@ public enum Sampler
|
|||||||
LCM,
|
LCM,
|
||||||
DDIM_Trailing,
|
DDIM_Trailing,
|
||||||
TCD,
|
TCD,
|
||||||
Default
|
Euler_A,
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
public enum Scheduler
|
public enum Scheduler
|
||||||
{
|
{
|
||||||
|
Default,
|
||||||
Discrete,
|
Discrete,
|
||||||
Karras,
|
Karras,
|
||||||
Exponential,
|
Exponential,
|
||||||
@ -9,7 +10,5 @@ public enum Scheduler
|
|||||||
GITS,
|
GITS,
|
||||||
SGM_Uniform,
|
SGM_Uniform,
|
||||||
Simple,
|
Simple,
|
||||||
Smoothstep,
|
Smoothstep
|
||||||
LCM,
|
|
||||||
Default
|
|
||||||
}
|
}
|
||||||
@ -91,8 +91,6 @@ public sealed class DiffusionModelParameter
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public RngType RngType { get; set; } = RngType.Standard;
|
public RngType RngType { get; set; } = RngType.Standard;
|
||||||
|
|
||||||
public RngType SamplerRngType { get; set; } = RngType.Standard;
|
|
||||||
|
|
||||||
public Prediction Prediction { get; set; } = Prediction.Default;
|
public Prediction Prediction { get; set; } = Prediction.Default;
|
||||||
|
|
||||||
public LoraApplyMode LoraApplyMode { get; set; } = LoraApplyMode.Auto;
|
public LoraApplyMode LoraApplyMode { get; set; } = LoraApplyMode.Auto;
|
||||||
@ -112,8 +110,6 @@ public sealed class DiffusionModelParameter
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string StackedIdEmbeddingsDirectory { get; set; } = string.Empty;
|
public string StackedIdEmbeddingsDirectory { get; set; } = string.Empty;
|
||||||
|
|
||||||
public string TensorTypeRules { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// path to full model
|
/// path to full model
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,11 +0,0 @@
|
|||||||
namespace StableDiffusion.NET;
|
|
||||||
|
|
||||||
public sealed class EasyCache
|
|
||||||
{
|
|
||||||
public bool IsEnabled { get; set; }
|
|
||||||
public float ReuseThreshold { get; set; }
|
|
||||||
public float StartPercent { get; set; }
|
|
||||||
public float EndPercent { get; set; }
|
|
||||||
|
|
||||||
internal EasyCache() { }
|
|
||||||
}
|
|
||||||
@ -59,8 +59,6 @@ public sealed class ImageGenerationParameter
|
|||||||
|
|
||||||
public TilingParameter VaeTiling { get; } = new();
|
public TilingParameter VaeTiling { get; } = new();
|
||||||
|
|
||||||
public EasyCache EasyCache { get; } = new();
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public static ImageGenerationParameter Create() => new();
|
public static ImageGenerationParameter Create() => new();
|
||||||
|
|||||||
@ -38,8 +38,6 @@ public sealed class VideoGenerationParameter
|
|||||||
|
|
||||||
public float VaceStrength { get; set; }
|
public float VaceStrength { get; set; }
|
||||||
|
|
||||||
public EasyCache EasyCache { get; } = new();
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public static VideoGenerationParameter Create() => new();
|
public static VideoGenerationParameter Create() => new();
|
||||||
|
|||||||
@ -24,13 +24,11 @@ internal static unsafe class DiffusionModelParameterMarshaller
|
|||||||
lora_model_dir = AnsiStringMarshaller.ConvertToUnmanaged(managed.LoraModelDirectory),
|
lora_model_dir = AnsiStringMarshaller.ConvertToUnmanaged(managed.LoraModelDirectory),
|
||||||
embedding_dir = AnsiStringMarshaller.ConvertToUnmanaged(managed.EmbeddingsDirectory),
|
embedding_dir = AnsiStringMarshaller.ConvertToUnmanaged(managed.EmbeddingsDirectory),
|
||||||
photo_maker_path = AnsiStringMarshaller.ConvertToUnmanaged(managed.StackedIdEmbeddingsDirectory),
|
photo_maker_path = AnsiStringMarshaller.ConvertToUnmanaged(managed.StackedIdEmbeddingsDirectory),
|
||||||
tensor_type_rules = AnsiStringMarshaller.ConvertToUnmanaged(managed.TensorTypeRules),
|
|
||||||
vae_decode_only = (sbyte)(managed.VaeDecodeOnly ? 1 : 0),
|
vae_decode_only = (sbyte)(managed.VaeDecodeOnly ? 1 : 0),
|
||||||
free_params_immediately = (sbyte)(managed.FreeParamsImmediately ? 1 : 0),
|
free_params_immediately = (sbyte)(managed.FreeParamsImmediately ? 1 : 0),
|
||||||
n_threads = managed.ThreadCount,
|
n_threads = managed.ThreadCount,
|
||||||
wtype = managed.Quantization,
|
wtype = managed.Quantization,
|
||||||
rng_type = managed.RngType,
|
rng_type = managed.RngType,
|
||||||
sampler_rng_type = managed.SamplerRngType,
|
|
||||||
prediction = managed.Prediction,
|
prediction = managed.Prediction,
|
||||||
lora_apply_mode = managed.LoraApplyMode,
|
lora_apply_mode = managed.LoraApplyMode,
|
||||||
offload_params_to_cpu = (sbyte)(managed.OffloadParamsToCPU ? 1 : 0),
|
offload_params_to_cpu = (sbyte)(managed.OffloadParamsToCPU ? 1 : 0),
|
||||||
@ -66,13 +64,11 @@ internal static unsafe class DiffusionModelParameterMarshaller
|
|||||||
LoraModelDirectory = AnsiStringMarshaller.ConvertToManaged(unmanaged.lora_model_dir) ?? string.Empty,
|
LoraModelDirectory = AnsiStringMarshaller.ConvertToManaged(unmanaged.lora_model_dir) ?? string.Empty,
|
||||||
EmbeddingsDirectory = AnsiStringMarshaller.ConvertToManaged(unmanaged.embedding_dir) ?? string.Empty,
|
EmbeddingsDirectory = AnsiStringMarshaller.ConvertToManaged(unmanaged.embedding_dir) ?? string.Empty,
|
||||||
StackedIdEmbeddingsDirectory = AnsiStringMarshaller.ConvertToManaged(unmanaged.photo_maker_path) ?? string.Empty,
|
StackedIdEmbeddingsDirectory = AnsiStringMarshaller.ConvertToManaged(unmanaged.photo_maker_path) ?? string.Empty,
|
||||||
TensorTypeRules = AnsiStringMarshaller.ConvertToManaged(unmanaged.tensor_type_rules) ?? string.Empty,
|
|
||||||
VaeDecodeOnly = unmanaged.vae_decode_only == 1,
|
VaeDecodeOnly = unmanaged.vae_decode_only == 1,
|
||||||
FreeParamsImmediately = unmanaged.free_params_immediately == 1,
|
FreeParamsImmediately = unmanaged.free_params_immediately == 1,
|
||||||
ThreadCount = unmanaged.n_threads,
|
ThreadCount = unmanaged.n_threads,
|
||||||
Quantization = unmanaged.wtype,
|
Quantization = unmanaged.wtype,
|
||||||
RngType = unmanaged.rng_type,
|
RngType = unmanaged.rng_type,
|
||||||
SamplerRngType = unmanaged.sampler_rng_type,
|
|
||||||
Prediction = unmanaged.prediction,
|
Prediction = unmanaged.prediction,
|
||||||
LoraApplyMode = unmanaged.lora_apply_mode,
|
LoraApplyMode = unmanaged.lora_apply_mode,
|
||||||
OffloadParamsToCPU = unmanaged.offload_params_to_cpu == 1,
|
OffloadParamsToCPU = unmanaged.offload_params_to_cpu == 1,
|
||||||
@ -105,6 +101,5 @@ internal static unsafe class DiffusionModelParameterMarshaller
|
|||||||
AnsiStringMarshaller.Free(unmanaged.lora_model_dir);
|
AnsiStringMarshaller.Free(unmanaged.lora_model_dir);
|
||||||
AnsiStringMarshaller.Free(unmanaged.embedding_dir);
|
AnsiStringMarshaller.Free(unmanaged.embedding_dir);
|
||||||
AnsiStringMarshaller.Free(unmanaged.photo_maker_path);
|
AnsiStringMarshaller.Free(unmanaged.photo_maker_path);
|
||||||
AnsiStringMarshaller.Free(unmanaged.tensor_type_rules);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -46,13 +46,6 @@ internal static class ImageGenerationParameterMarshaller
|
|||||||
TargetOverlap = unmanaged.vae_tiling_params.target_overlap,
|
TargetOverlap = unmanaged.vae_tiling_params.target_overlap,
|
||||||
RelSizeX = unmanaged.vae_tiling_params.rel_size_x,
|
RelSizeX = unmanaged.vae_tiling_params.rel_size_x,
|
||||||
RelSizeY = unmanaged.vae_tiling_params.rel_size_y
|
RelSizeY = unmanaged.vae_tiling_params.rel_size_y
|
||||||
},
|
|
||||||
EasyCache =
|
|
||||||
{
|
|
||||||
IsEnabled = unmanaged.easycache.enabled == 1,
|
|
||||||
ReuseThreshold = unmanaged.easycache.reuse_threshold,
|
|
||||||
StartPercent = unmanaged.easycache.start_percent,
|
|
||||||
EndPercent = unmanaged.easycache.end_percent
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -133,14 +126,6 @@ internal static class ImageGenerationParameterMarshaller
|
|||||||
rel_size_y = managed.VaeTiling.RelSizeY
|
rel_size_y = managed.VaeTiling.RelSizeY
|
||||||
};
|
};
|
||||||
|
|
||||||
Native.Types.sd_easycache_params_t easyCache = new()
|
|
||||||
{
|
|
||||||
enabled = (sbyte)(managed.EasyCache.IsEnabled ? 1 : 0),
|
|
||||||
reuse_threshold = managed.EasyCache.ReuseThreshold,
|
|
||||||
start_percent = managed.EasyCache.StartPercent,
|
|
||||||
end_percent = managed.EasyCache.EndPercent,
|
|
||||||
};
|
|
||||||
|
|
||||||
_imgGenParams = new Native.Types.sd_img_gen_params_t
|
_imgGenParams = new Native.Types.sd_img_gen_params_t
|
||||||
{
|
{
|
||||||
prompt = AnsiStringMarshaller.ConvertToUnmanaged(managed.Prompt),
|
prompt = AnsiStringMarshaller.ConvertToUnmanaged(managed.Prompt),
|
||||||
@ -160,8 +145,7 @@ internal static class ImageGenerationParameterMarshaller
|
|||||||
control_image = _controlNetImage,
|
control_image = _controlNetImage,
|
||||||
control_strength = managed.ControlNet.Strength,
|
control_strength = managed.ControlNet.Strength,
|
||||||
pm_params = photoMakerParams,
|
pm_params = photoMakerParams,
|
||||||
vae_tiling_params = tilingParams,
|
vae_tiling_params = tilingParams
|
||||||
easycache = easyCache
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,14 +27,7 @@ internal static class VideoGenerationParameterMarshaller
|
|||||||
Strength = unmanaged.strength,
|
Strength = unmanaged.strength,
|
||||||
Seed = unmanaged.seed,
|
Seed = unmanaged.seed,
|
||||||
FrameCount = unmanaged.video_frames,
|
FrameCount = unmanaged.video_frames,
|
||||||
VaceStrength = unmanaged.vace_strength,
|
VaceStrength = unmanaged.vace_strength
|
||||||
EasyCache =
|
|
||||||
{
|
|
||||||
IsEnabled = unmanaged.easycache.enabled == 1,
|
|
||||||
ReuseThreshold = unmanaged.easycache.reuse_threshold,
|
|
||||||
StartPercent = unmanaged.easycache.start_percent,
|
|
||||||
EndPercent = unmanaged.easycache.end_percent
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return parameter;
|
return parameter;
|
||||||
@ -75,14 +68,6 @@ internal static class VideoGenerationParameterMarshaller
|
|||||||
_initImage = managed.InitImage?.ToSdImage() ?? new Native.Types.sd_image_t();
|
_initImage = managed.InitImage?.ToSdImage() ?? new Native.Types.sd_image_t();
|
||||||
_endImage = managed.EndImage?.ToSdImage() ?? new Native.Types.sd_image_t();
|
_endImage = managed.EndImage?.ToSdImage() ?? new Native.Types.sd_image_t();
|
||||||
_controlFrames = managed.ControlFrames == null ? null : managed.ControlFrames.ToSdImage();
|
_controlFrames = managed.ControlFrames == null ? null : managed.ControlFrames.ToSdImage();
|
||||||
|
|
||||||
Native.Types.sd_easycache_params_t easyCache = new()
|
|
||||||
{
|
|
||||||
enabled = (sbyte)(managed.EasyCache.IsEnabled ? 1 : 0),
|
|
||||||
reuse_threshold = managed.EasyCache.ReuseThreshold,
|
|
||||||
start_percent = managed.EasyCache.StartPercent,
|
|
||||||
end_percent = managed.EasyCache.EndPercent,
|
|
||||||
};
|
|
||||||
|
|
||||||
_vidGenParams = new Native.Types.sd_vid_gen_params_t
|
_vidGenParams = new Native.Types.sd_vid_gen_params_t
|
||||||
{
|
{
|
||||||
@ -102,7 +87,6 @@ internal static class VideoGenerationParameterMarshaller
|
|||||||
seed = managed.Seed,
|
seed = managed.Seed,
|
||||||
video_frames = managed.FrameCount,
|
video_frames = managed.FrameCount,
|
||||||
vace_strength = managed.VaceStrength,
|
vace_strength = managed.VaceStrength,
|
||||||
easycache = easyCache,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,6 @@ using sd_type_t = Quantization;
|
|||||||
using sd_vid_gen_params_t = VideoGenerationParameter;
|
using sd_vid_gen_params_t = VideoGenerationParameter;
|
||||||
using lora_apply_mode_t = LoraApplyMode;
|
using lora_apply_mode_t = LoraApplyMode;
|
||||||
using preview_t = Preview;
|
using preview_t = Preview;
|
||||||
using sd_easycache_params_t = Native.Types.sd_easycache_params_t;
|
|
||||||
using size_t = nuint;
|
using size_t = nuint;
|
||||||
using uint32_t = uint;
|
using uint32_t = uint;
|
||||||
using uint8_t = byte;
|
using uint8_t = byte;
|
||||||
@ -70,13 +69,11 @@ internal unsafe partial class Native
|
|||||||
public byte* lora_model_dir;
|
public byte* lora_model_dir;
|
||||||
public byte* embedding_dir;
|
public byte* embedding_dir;
|
||||||
public byte* photo_maker_path;
|
public byte* photo_maker_path;
|
||||||
public byte* tensor_type_rules;
|
|
||||||
public sbyte vae_decode_only;
|
public sbyte vae_decode_only;
|
||||||
public sbyte free_params_immediately;
|
public sbyte free_params_immediately;
|
||||||
public int n_threads;
|
public int n_threads;
|
||||||
public sd_type_t wtype;
|
public sd_type_t wtype;
|
||||||
public rng_type_t rng_type;
|
public rng_type_t rng_type;
|
||||||
public rng_type_t sampler_rng_type;
|
|
||||||
public prediction_t prediction;
|
public prediction_t prediction;
|
||||||
public lora_apply_mode_t lora_apply_mode;
|
public lora_apply_mode_t lora_apply_mode;
|
||||||
public sbyte offload_params_to_cpu;
|
public sbyte offload_params_to_cpu;
|
||||||
@ -134,7 +131,6 @@ internal unsafe partial class Native
|
|||||||
public int shifted_timestep;
|
public int shifted_timestep;
|
||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
internal struct sd_pm_params_t
|
internal struct sd_pm_params_t
|
||||||
{
|
{
|
||||||
public sd_image_t* id_images;
|
public sd_image_t* id_images;
|
||||||
@ -143,15 +139,6 @@ internal unsafe partial class Native
|
|||||||
public float style_strength;
|
public float style_strength;
|
||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
internal struct sd_easycache_params_t
|
|
||||||
{
|
|
||||||
public sbyte enabled;
|
|
||||||
public float reuse_threshold;
|
|
||||||
public float start_percent;
|
|
||||||
public float end_percent;
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
internal struct sd_img_gen_params_t
|
internal struct sd_img_gen_params_t
|
||||||
{
|
{
|
||||||
@ -174,7 +161,6 @@ internal unsafe partial class Native
|
|||||||
public float control_strength;
|
public float control_strength;
|
||||||
public sd_pm_params_t pm_params;
|
public sd_pm_params_t pm_params;
|
||||||
public sd_tiling_params_t vae_tiling_params;
|
public sd_tiling_params_t vae_tiling_params;
|
||||||
public sd_easycache_params_t easycache;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
@ -196,7 +182,6 @@ internal unsafe partial class Native
|
|||||||
public int64_t seed;
|
public int64_t seed;
|
||||||
public int video_frames;
|
public int video_frames;
|
||||||
public float vace_strength;
|
public float vace_strength;
|
||||||
public sd_easycache_params_t easycache;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal struct sd_ctx_t;
|
internal struct sd_ctx_t;
|
||||||
@ -252,12 +237,12 @@ internal unsafe partial class Native
|
|||||||
[LibraryImport(LIB_NAME, EntryPoint = "str_to_sample_method")]
|
[LibraryImport(LIB_NAME, EntryPoint = "str_to_sample_method")]
|
||||||
internal static partial sample_method_t str_to_sample_method([MarshalAs(UnmanagedType.LPStr)] string str);
|
internal static partial sample_method_t str_to_sample_method([MarshalAs(UnmanagedType.LPStr)] string str);
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_scheduler_name")]
|
[LibraryImport(LIB_NAME, EntryPoint = "sd_schedule_name")]
|
||||||
[return: MarshalAs(UnmanagedType.LPStr)]
|
[return: MarshalAs(UnmanagedType.LPStr)]
|
||||||
internal static partial string sd_scheduler_name(scheduler_t schedule);
|
internal static partial string sd_schedule_name(scheduler_t schedule);
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "str_to_scheduler")]
|
[LibraryImport(LIB_NAME, EntryPoint = "str_to_schedule")]
|
||||||
internal static partial scheduler_t str_to_scheduler([MarshalAs(UnmanagedType.LPStr)] string str);
|
internal static partial scheduler_t str_to_schedule([MarshalAs(UnmanagedType.LPStr)] string str);
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_prediction_name")]
|
[LibraryImport(LIB_NAME, EntryPoint = "sd_prediction_name")]
|
||||||
[return: MarshalAs(UnmanagedType.LPStr)]
|
[return: MarshalAs(UnmanagedType.LPStr)]
|
||||||
@ -280,9 +265,6 @@ internal unsafe partial class Native
|
|||||||
[LibraryImport(LIB_NAME, EntryPoint = "str_to_lora_apply_mode")]
|
[LibraryImport(LIB_NAME, EntryPoint = "str_to_lora_apply_mode")]
|
||||||
internal static partial lora_apply_mode_t str_to_lora_apply_mode([MarshalAs(UnmanagedType.LPStr)] string str);
|
internal static partial lora_apply_mode_t str_to_lora_apply_mode([MarshalAs(UnmanagedType.LPStr)] string str);
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_easycache_params_init")]
|
|
||||||
internal static partial void sd_easycache_params_init(ref sd_easycache_params_t easycache_params);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_ctx_params_init")]
|
[LibraryImport(LIB_NAME, EntryPoint = "sd_ctx_params_init")]
|
||||||
@ -300,6 +282,9 @@ internal unsafe partial class Native
|
|||||||
[LibraryImport(LIB_NAME, EntryPoint = "free_sd_ctx")]
|
[LibraryImport(LIB_NAME, EntryPoint = "free_sd_ctx")]
|
||||||
internal static partial void free_sd_ctx(sd_ctx_t* sd_ctx);
|
internal static partial void free_sd_ctx(sd_ctx_t* sd_ctx);
|
||||||
|
|
||||||
|
[LibraryImport(LIB_NAME, EntryPoint = "sd_get_default_sample_method")]
|
||||||
|
internal static partial sample_method_t sd_get_default_sample_method(sd_ctx_t* sd_ctx);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_sample_params_init")]
|
[LibraryImport(LIB_NAME, EntryPoint = "sd_sample_params_init")]
|
||||||
@ -316,12 +301,6 @@ internal unsafe partial class Native
|
|||||||
[return: MarshalAs(UnmanagedType.LPStr)]
|
[return: MarshalAs(UnmanagedType.LPStr)]
|
||||||
internal static partial string sd_img_gen_params_to_str([MarshalUsing(typeof(ImageGenerationParameterMarshaller))] in sd_img_gen_params_t sd_img_gen_params);
|
internal static partial string sd_img_gen_params_to_str([MarshalUsing(typeof(ImageGenerationParameterMarshaller))] in sd_img_gen_params_t sd_img_gen_params);
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_get_default_sample_method")]
|
|
||||||
internal static partial sample_method_t sd_get_default_sample_method(sd_ctx_t* sd_ctx);
|
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "sd_get_default_scheduler")]
|
|
||||||
internal static partial scheduler_t sd_get_default_scheduler(sd_ctx_t* sd_ctx);
|
|
||||||
|
|
||||||
[LibraryImport(LIB_NAME, EntryPoint = "generate_image")]
|
[LibraryImport(LIB_NAME, EntryPoint = "generate_image")]
|
||||||
internal static partial sd_image_t* generate_image(sd_ctx_t* sd_ctx, [MarshalUsing(typeof(ImageGenerationParameterMarshaller))] in sd_img_gen_params_t sd_img_gen_params);
|
internal static partial sd_image_t* generate_image(sd_ctx_t* sd_ctx, [MarshalUsing(typeof(ImageGenerationParameterMarshaller))] in sd_img_gen_params_t sd_img_gen_params);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user