diff --git a/Assemblies/AIImages.dll b/Assemblies/AIImages.dll index c014e8e..f4f83f8 100644 Binary files a/Assemblies/AIImages.dll and b/Assemblies/AIImages.dll differ diff --git a/Assemblies/StableDiffusionNet.Core.dll b/Assemblies/StableDiffusionNet.Core.dll index b44c8c0..6fb1590 100644 Binary files a/Assemblies/StableDiffusionNet.Core.dll and b/Assemblies/StableDiffusionNet.Core.dll differ diff --git a/Languages/English/Keyed/AIImages.xml b/Languages/English/Keyed/AIImages.xml index e3211d3..4a99787 100644 --- a/Languages/English/Keyed/AIImages.xml +++ b/Languages/English/Keyed/AIImages.xml @@ -79,6 +79,8 @@ Auto-load models on startup Show technical information Save generation history + Save images to server + When enabled, images will also be saved to the Stable Diffusion server's output folder (in addition to the local save folder) Save Path Clear All Generated Images Are you sure you want to delete all generated portrait images? This action cannot be undone. diff --git a/Languages/Russian/Keyed/AIImages.xml b/Languages/Russian/Keyed/AIImages.xml index f2f2d64..5d8467e 100644 --- a/Languages/Russian/Keyed/AIImages.xml +++ b/Languages/Russian/Keyed/AIImages.xml @@ -79,6 +79,8 @@ Автоматически загружать модели при запуске Показывать техническую информацию Сохранять историю генераций + Сохранять изображения на сервере + Если включено, изображения также будут сохранены в папке вывода сервера Stable Diffusion (помимо локальной папки сохранения) Путь для сохранения Очистить все сгенерированные изображения Вы уверены, что хотите удалить все сгенерированные портреты? Это действие нельзя отменить. diff --git a/Source/AIImages/AIImages.csproj b/Source/AIImages/AIImages.csproj index eec9089..fc76b77 100644 --- a/Source/AIImages/AIImages.csproj +++ b/Source/AIImages/AIImages.csproj @@ -18,6 +18,6 @@ - + diff --git a/Source/AIImages/Models/GenerationRequest.cs b/Source/AIImages/Models/GenerationRequest.cs index eec40e2..a8e0e4f 100644 --- a/Source/AIImages/Models/GenerationRequest.cs +++ b/Source/AIImages/Models/GenerationRequest.cs @@ -15,6 +15,7 @@ namespace AIImages.Models public string Scheduler { get; set; } public int Seed { get; set; } public string Model { get; set; } + public bool SaveImagesToServer { get; set; } } /// diff --git a/Source/AIImages/Services/StableDiffusionNetAdapter.cs b/Source/AIImages/Services/StableDiffusionNetAdapter.cs index cd8fc8c..1755791 100644 --- a/Source/AIImages/Services/StableDiffusionNetAdapter.cs +++ b/Source/AIImages/Services/StableDiffusionNetAdapter.cs @@ -84,7 +84,7 @@ namespace AIImages.Services SamplerName = request.Sampler, Scheduler = request.Scheduler, Seed = request.Seed, - // SaveImages и SendImages не нужны - библиотека всегда возвращает изображения + SaveImages = request.SaveImagesToServer, // Сохранять ли изображения на сервере }; // Выполняем запрос через библиотеку (с встроенной retry логикой) diff --git a/Source/AIImages/Settings/AIImagesModSettings.cs b/Source/AIImages/Settings/AIImagesModSettings.cs index e081f14..b9600e6 100644 --- a/Source/AIImages/Settings/AIImagesModSettings.cs +++ b/Source/AIImages/Settings/AIImagesModSettings.cs @@ -48,6 +48,7 @@ namespace AIImages.Settings public bool autoLoadModels = true; public bool showTechnicalInfo = true; public bool saveGenerationHistory = true; + public bool saveImagesToServer = false; public override void ExposeData() { @@ -76,6 +77,7 @@ namespace AIImages.Settings Scribe_Values.Look(ref autoLoadModels, "autoLoadModels", true); Scribe_Values.Look(ref showTechnicalInfo, "showTechnicalInfo", true); Scribe_Values.Look(ref saveGenerationHistory, "saveGenerationHistory", true); + Scribe_Values.Look(ref saveImagesToServer, "saveImagesToServer", false); base.ExposeData(); } diff --git a/Source/AIImages/UI/AIImagesSettingsUI.cs b/Source/AIImages/UI/AIImagesSettingsUI.cs index 8db4884..1d4be27 100644 --- a/Source/AIImages/UI/AIImagesSettingsUI.cs +++ b/Source/AIImages/UI/AIImagesSettingsUI.cs @@ -30,7 +30,7 @@ namespace AIImages InitializeBuffers(settings); Listing_Standard listingStandard = new Listing_Standard(); - Rect viewRect = new Rect(0f, 0f, inRect.width - 20f, 1200f); + Rect viewRect = new Rect(0f, 0f, inRect.width - 20f, 1250f); Widgets.BeginScrollView(inRect, ref scrollPosition, viewRect); listingStandard.Begin(viewRect); @@ -361,6 +361,11 @@ namespace AIImages "AIImages.Settings.SaveHistory".Translate(), ref settings.saveGenerationHistory ); + listingStandard.CheckboxLabeled( + "AIImages.Settings.SaveImagesToServer".Translate(), + ref settings.saveImagesToServer, + "AIImages.Settings.SaveImagesToServerTooltip".Translate() + ); listingStandard.Gap(12f); diff --git a/Source/AIImages/Window_AIImage.cs b/Source/AIImages/Window_AIImage.cs index 0aca3d5..011a3ac 100644 --- a/Source/AIImages/Window_AIImage.cs +++ b/Source/AIImages/Window_AIImage.cs @@ -204,6 +204,7 @@ namespace AIImages Scheduler = generationSettings.Scheduler, Seed = generationSettings.Seed, Model = AIImagesMod.Settings.apiEndpoint, + SaveImagesToServer = AIImagesMod.Settings.saveImagesToServer, }; // Создаем отдельный CancellationTokenSource для мониторинга прогресса