feat(ai-studio): export final selections

This commit is contained in:
chengma
2026-07-11 14:26:01 +08:00
parent 5754e4831a
commit cddadf6364
9 changed files with 539 additions and 8 deletions
+39 -1
View File
@@ -6,7 +6,7 @@ import datetime as _dt
import re
import threading
from .. import image_studio, image_studio_generation, image_studio_images
from .. import image_studio, image_studio_export, image_studio_generation, image_studio_images
from .widgets import *
@@ -192,6 +192,44 @@ class ImageStudioGenerateJobsWorker(BaseWorker):
return summary
class ImageStudioExportWorker(BaseWorker):
"""Export AI studio final selections to local JPEG files."""
def __init__(
self,
project_id,
parent_dir,
*,
existing_mode=image_studio_export.EXISTING_FAIL,
db_path=None,
config=None,
):
super().__init__()
self.project_id = int(project_id)
self.parent_dir = parent_dir
self.existing_mode = existing_mode
self.db_path = db_path
self.config = config
def execute(self):
self.log.emit("[AI工场] 导出终选:开始")
result = image_studio_export.export_project_selection(
self.project_id,
self.parent_dir,
existing_mode=self.existing_mode,
path=self.db_path,
config=self.config,
)
self.log.emit("[AI工场] 导出终选:成功")
return {
"target_dir": result.target_dir,
"main_count": result.main_count,
"detail_count": result.detail_count,
"file_count": len(result.files),
"existing_mode": result.existing_mode,
}
def _generation_mode_label(mode):
mode = appconfig.normalize_generate_mode(mode)
return {