import { ASSET_API_PATHS, postApiJson, } from '../editor/shared/editorApiClient'; const QWEN_SPRITE_MASTER_API_PATH = ASSET_API_PATHS.qwenSpriteMaster; const QWEN_SPRITE_SHEET_API_PATH = ASSET_API_PATHS.qwenSpriteSheet; const QWEN_SPRITE_FRAME_REPAIR_API_PATH = ASSET_API_PATHS.qwenSpriteFrameRepair; const QWEN_SPRITE_SAVE_API_PATH = ASSET_API_PATHS.qwenSpriteSave; export type QwenSpriteImageDraft = { id: string; label: string; imageSrc: string; remoteUrl?: string; }; export type GenerateQwenSpritePayload = { promptText: string; negativePrompt: string; model: string; size: string; promptExtend: boolean; candidateCount: number; seed?: number; referenceImages: string[]; }; export type RepairQwenSpriteFramePayload = { promptText: string; negativePrompt: string; model: string; size: string; promptExtend: boolean; seed?: number; referenceImages: string[]; }; export type SaveQwenSpriteAssetPayload = { assetKey: string; actionKey: string; masterSource: string; sheetSource: string; framesDataUrls: string[]; metadata: Record; prompts: Record; }; async function postJson( url: string, payload: Record, fallbackMessage: string, ) { return postApiJson(url, payload, fallbackMessage); } export async function generateQwenSpriteMaster( payload: GenerateQwenSpritePayload, ) { return postJson<{ ok: true; draftId: string; drafts: QwenSpriteImageDraft[]; model: string; size: string; promptText: string; negativePrompt: string; }>(QWEN_SPRITE_MASTER_API_PATH, payload, '生成主图失败'); } export async function generateQwenSpriteSheet( payload: GenerateQwenSpritePayload, ) { return postJson<{ ok: true; draftId: string; drafts: QwenSpriteImageDraft[]; model: string; size: string; promptText: string; negativePrompt: string; }>(QWEN_SPRITE_SHEET_API_PATH, payload, '生成精灵表失败'); } export async function repairQwenSpriteFrame( payload: RepairQwenSpriteFramePayload, ) { return postJson<{ ok: true; draftId: string; drafts: QwenSpriteImageDraft[]; repairedFrame: QwenSpriteImageDraft | null; model: string; size: string; promptText: string; negativePrompt: string; }>(QWEN_SPRITE_FRAME_REPAIR_API_PATH, payload, '修复帧失败'); } export async function saveQwenSpriteAsset( payload: SaveQwenSpriteAssetPayload, ) { return postJson<{ ok: true; assetId: string; assetDir: string; masterImagePath: string | null; sheetImagePath: string; framePaths: string[]; saveMessage: string; }>(QWEN_SPRITE_SAVE_API_PATH, payload, '保存精灵表失败'); }