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 для мониторинга прогресса