diff --git a/StableDiffusion.NET/Models/DiffusionModel.cs b/StableDiffusion.NET/Models/DiffusionModel.cs index 9b72103..2e74e4f 100644 --- a/StableDiffusion.NET/Models/DiffusionModel.cs +++ b/StableDiffusion.NET/Models/DiffusionModel.cs @@ -61,7 +61,10 @@ public sealed unsafe class DiffusionModel : IDisposable ModelParameter.KeepClipOnCPU, ModelParameter.KeepControlNetOnCPU, ModelParameter.KeepVaeOnCPU, - ModelParameter.FlashAttention); + ModelParameter.FlashAttention, + ModelParameter.ChromaUseDitMap, + ModelParameter.ChromaEnableT5Map, + ModelParameter.ChromaT5MaskPad); if (_ctx == null) throw new NullReferenceException("Failed to initialize diffusion-model."); } diff --git a/StableDiffusion.NET/Models/Parameter/DiffusionModelParameter.cs b/StableDiffusion.NET/Models/Parameter/DiffusionModelParameter.cs index da59ebc..6b5345c 100644 --- a/StableDiffusion.NET/Models/Parameter/DiffusionModelParameter.cs +++ b/StableDiffusion.NET/Models/Parameter/DiffusionModelParameter.cs @@ -109,6 +109,11 @@ public sealed class DiffusionModelParameter : IDiffusionModelParameter, IQuantiz /// public string T5xxlPath { get; set; } = string.Empty; + // Flux Chroma specific + public bool ChromaUseDitMap { get; set; } = true; + public bool ChromaEnableT5Map { get; set; } = false; + public int ChromaT5MaskPad { get; set; } = 1; + // SD3.5 only /// /// path to the clip-g text encoder diff --git a/StableDiffusion.NET/Native/Native.cs b/StableDiffusion.NET/Native/Native.cs index 8466440..757cf86 100644 --- a/StableDiffusion.NET/Native/Native.cs +++ b/StableDiffusion.NET/Native/Native.cs @@ -70,7 +70,10 @@ internal unsafe partial class Native [MarshalAs(UnmanagedType.I1)] bool keep_clip_on_cpu, [MarshalAs(UnmanagedType.I1)] bool keep_control_net_cpu, [MarshalAs(UnmanagedType.I1)] bool keep_vae_on_cpu, - [MarshalAs(UnmanagedType.I1)] bool diffusion_flash_attn); + [MarshalAs(UnmanagedType.I1)] bool diffusion_flash_attn, + [MarshalAs(UnmanagedType.I1)] bool chroma_use_dit_mask, + [MarshalAs(UnmanagedType.I1)] bool chroma_use_t5_mask, + int chroma_t5_mask_pad); [LibraryImport(LIB_NAME, EntryPoint = "free_sd_ctx")] internal static partial void free_sd_ctx(sd_ctx_t* sd_ctx);