Implement "Save Images to Server" feature in AIImages mod, allowing users to save generated images to the Stable Diffusion server. Update UI with new settings option and localized strings in English and Russian. Upgrade StableDiffusionNet.Core dependency to version 1.1.2. Update AIImages.dll to reflect these changes.

This commit is contained in:
Leonid Pershin
2025-10-27 00:03:26 +03:00
parent 9fb05e4e7e
commit 379865a6aa
10 changed files with 16 additions and 3 deletions

Binary file not shown.

View File

@@ -79,6 +79,8 @@
<AIImages.Settings.AutoLoadModels>Auto-load models on startup</AIImages.Settings.AutoLoadModels> <AIImages.Settings.AutoLoadModels>Auto-load models on startup</AIImages.Settings.AutoLoadModels>
<AIImages.Settings.ShowTechnicalInfo>Show technical information</AIImages.Settings.ShowTechnicalInfo> <AIImages.Settings.ShowTechnicalInfo>Show technical information</AIImages.Settings.ShowTechnicalInfo>
<AIImages.Settings.SaveHistory>Save generation history</AIImages.Settings.SaveHistory> <AIImages.Settings.SaveHistory>Save generation history</AIImages.Settings.SaveHistory>
<AIImages.Settings.SaveImagesToServer>Save images to server</AIImages.Settings.SaveImagesToServer>
<AIImages.Settings.SaveImagesToServerTooltip>When enabled, images will also be saved to the Stable Diffusion server's output folder (in addition to the local save folder)</AIImages.Settings.SaveImagesToServerTooltip>
<AIImages.Settings.SavePath>Save Path</AIImages.Settings.SavePath> <AIImages.Settings.SavePath>Save Path</AIImages.Settings.SavePath>
<AIImages.Settings.ClearAllImages>Clear All Generated Images</AIImages.Settings.ClearAllImages> <AIImages.Settings.ClearAllImages>Clear All Generated Images</AIImages.Settings.ClearAllImages>
<AIImages.Settings.ClearAllImagesConfirm>Are you sure you want to delete all generated portrait images? This action cannot be undone.</AIImages.Settings.ClearAllImagesConfirm> <AIImages.Settings.ClearAllImagesConfirm>Are you sure you want to delete all generated portrait images? This action cannot be undone.</AIImages.Settings.ClearAllImagesConfirm>

View File

@@ -79,6 +79,8 @@
<AIImages.Settings.AutoLoadModels>Автоматически загружать модели при запуске</AIImages.Settings.AutoLoadModels> <AIImages.Settings.AutoLoadModels>Автоматически загружать модели при запуске</AIImages.Settings.AutoLoadModels>
<AIImages.Settings.ShowTechnicalInfo>Показывать техническую информацию</AIImages.Settings.ShowTechnicalInfo> <AIImages.Settings.ShowTechnicalInfo>Показывать техническую информацию</AIImages.Settings.ShowTechnicalInfo>
<AIImages.Settings.SaveHistory>Сохранять историю генераций</AIImages.Settings.SaveHistory> <AIImages.Settings.SaveHistory>Сохранять историю генераций</AIImages.Settings.SaveHistory>
<AIImages.Settings.SaveImagesToServer>Сохранять изображения на сервере</AIImages.Settings.SaveImagesToServer>
<AIImages.Settings.SaveImagesToServerTooltip>Если включено, изображения также будут сохранены в папке вывода сервера Stable Diffusion (помимо локальной папки сохранения)</AIImages.Settings.SaveImagesToServerTooltip>
<AIImages.Settings.SavePath>Путь для сохранения</AIImages.Settings.SavePath> <AIImages.Settings.SavePath>Путь для сохранения</AIImages.Settings.SavePath>
<AIImages.Settings.ClearAllImages>Очистить все сгенерированные изображения</AIImages.Settings.ClearAllImages> <AIImages.Settings.ClearAllImages>Очистить все сгенерированные изображения</AIImages.Settings.ClearAllImages>
<AIImages.Settings.ClearAllImagesConfirm>Вы уверены, что хотите удалить все сгенерированные портреты? Это действие нельзя отменить.</AIImages.Settings.ClearAllImagesConfirm> <AIImages.Settings.ClearAllImagesConfirm>Вы уверены, что хотите удалить все сгенерированные портреты? Это действие нельзя отменить.</AIImages.Settings.ClearAllImagesConfirm>

View File

@@ -18,6 +18,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Krafs.Rimworld.Ref" Version="1.6.4566" /> <PackageReference Include="Krafs.Rimworld.Ref" Version="1.6.4566" />
<PackageReference Include="Lib.Harmony" Version="2.4.1" /> <PackageReference Include="Lib.Harmony" Version="2.4.1" />
<PackageReference Include="StableDiffusionNet.Core" Version="1.1.1" /> <PackageReference Include="StableDiffusionNet.Core" Version="1.1.2" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -15,6 +15,7 @@ namespace AIImages.Models
public string Scheduler { get; set; } public string Scheduler { get; set; }
public int Seed { get; set; } public int Seed { get; set; }
public string Model { get; set; } public string Model { get; set; }
public bool SaveImagesToServer { get; set; }
} }
/// <summary> /// <summary>

View File

@@ -84,7 +84,7 @@ namespace AIImages.Services
SamplerName = request.Sampler, SamplerName = request.Sampler,
Scheduler = request.Scheduler, Scheduler = request.Scheduler,
Seed = request.Seed, Seed = request.Seed,
// SaveImages и SendImages не нужны - библиотека всегда возвращает изображения SaveImages = request.SaveImagesToServer, // Сохранять ли изображения на сервере
}; };
// Выполняем запрос через библиотеку (с встроенной retry логикой) // Выполняем запрос через библиотеку (с встроенной retry логикой)

View File

@@ -48,6 +48,7 @@ namespace AIImages.Settings
public bool autoLoadModels = true; public bool autoLoadModels = true;
public bool showTechnicalInfo = true; public bool showTechnicalInfo = true;
public bool saveGenerationHistory = true; public bool saveGenerationHistory = true;
public bool saveImagesToServer = false;
public override void ExposeData() public override void ExposeData()
{ {
@@ -76,6 +77,7 @@ namespace AIImages.Settings
Scribe_Values.Look(ref autoLoadModels, "autoLoadModels", true); Scribe_Values.Look(ref autoLoadModels, "autoLoadModels", true);
Scribe_Values.Look(ref showTechnicalInfo, "showTechnicalInfo", true); Scribe_Values.Look(ref showTechnicalInfo, "showTechnicalInfo", true);
Scribe_Values.Look(ref saveGenerationHistory, "saveGenerationHistory", true); Scribe_Values.Look(ref saveGenerationHistory, "saveGenerationHistory", true);
Scribe_Values.Look(ref saveImagesToServer, "saveImagesToServer", false);
base.ExposeData(); base.ExposeData();
} }

View File

@@ -30,7 +30,7 @@ namespace AIImages
InitializeBuffers(settings); InitializeBuffers(settings);
Listing_Standard listingStandard = new Listing_Standard(); 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); Widgets.BeginScrollView(inRect, ref scrollPosition, viewRect);
listingStandard.Begin(viewRect); listingStandard.Begin(viewRect);
@@ -361,6 +361,11 @@ namespace AIImages
"AIImages.Settings.SaveHistory".Translate(), "AIImages.Settings.SaveHistory".Translate(),
ref settings.saveGenerationHistory ref settings.saveGenerationHistory
); );
listingStandard.CheckboxLabeled(
"AIImages.Settings.SaveImagesToServer".Translate(),
ref settings.saveImagesToServer,
"AIImages.Settings.SaveImagesToServerTooltip".Translate()
);
listingStandard.Gap(12f); listingStandard.Gap(12f);

View File

@@ -204,6 +204,7 @@ namespace AIImages
Scheduler = generationSettings.Scheduler, Scheduler = generationSettings.Scheduler,
Seed = generationSettings.Seed, Seed = generationSettings.Seed,
Model = AIImagesMod.Settings.apiEndpoint, Model = AIImagesMod.Settings.apiEndpoint,
SaveImagesToServer = AIImagesMod.Settings.saveImagesToServer,
}; };
// Создаем отдельный CancellationTokenSource для мониторинга прогресса // Создаем отдельный CancellationTokenSource для мониторинга прогресса