Switch to VectorEngine gpt-image-2 and edits
Replace uses of the legacy `gpt-image-2-all` model with `gpt-image-2` and standardize image workflows: no-reference generation uses POST /v1/images/generations, any-reference flows use POST /v1/images/edits with multipart `image` parts. Update SKILLs, generation scripts, decision logs, and docs to reflect the contract change and edits-vs-generations guidance. Apply corresponding changes across backend (api-server match3d/puzzle modules, openai image adapter, mappers, telemetry, spacetime client/module), frontend components and services (Match3D, Puzzle, CreativeImageInputPanel, runtime shells), and add new spritesheet/parser files and tests. Also add media/logo.png. These changes align repository code and documentation with the VectorEngine image API contract and update generation/upload handling (green-screen -> alpha processing, spritesheet handling, and related tests).
This commit is contained in:
@@ -161,7 +161,11 @@ fn map_jump_hop_work_snapshot(
|
||||
path: map_jump_hop_path(snapshot.path),
|
||||
character_asset,
|
||||
tile_atlas_asset,
|
||||
tile_assets: snapshot.tile_assets.into_iter().map(map_tile_asset).collect(),
|
||||
tile_assets: snapshot
|
||||
.tile_assets
|
||||
.into_iter()
|
||||
.map(map_tile_asset)
|
||||
.collect(),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -180,7 +184,11 @@ fn map_jump_hop_draft_snapshot(snapshot: JumpHopDraftSnapshot) -> JumpHopDraftRe
|
||||
end_mood_prompt: snapshot.end_mood_prompt,
|
||||
character_asset: snapshot.character_asset.map(map_character_asset),
|
||||
tile_atlas_asset: snapshot.tile_atlas_asset.map(map_character_asset),
|
||||
tile_assets: snapshot.tile_assets.into_iter().map(map_tile_asset).collect(),
|
||||
tile_assets: snapshot
|
||||
.tile_assets
|
||||
.into_iter()
|
||||
.map(map_tile_asset)
|
||||
.collect(),
|
||||
path: snapshot.path.map(map_jump_hop_path),
|
||||
cover_composite: snapshot.cover_composite,
|
||||
generation_status: parse_generation_status(&snapshot.generation_status),
|
||||
@@ -268,7 +276,9 @@ fn map_jump_hop_run_snapshot(snapshot: JumpHopRunSnapshot) -> JumpHopRuntimeRunS
|
||||
crate::module_bindings::JumpHopJumpResultKind::Miss => JumpHopJumpResult::Miss,
|
||||
crate::module_bindings::JumpHopJumpResultKind::Hit => JumpHopJumpResult::Hit,
|
||||
crate::module_bindings::JumpHopJumpResultKind::Finish => JumpHopJumpResult::Finish,
|
||||
crate::module_bindings::JumpHopJumpResultKind::Perfect => JumpHopJumpResult::Perfect,
|
||||
crate::module_bindings::JumpHopJumpResultKind::Perfect => {
|
||||
JumpHopJumpResult::Perfect
|
||||
}
|
||||
},
|
||||
}),
|
||||
started_at_ms: snapshot.started_at_ms,
|
||||
|
||||
@@ -145,6 +145,12 @@ pub(crate) fn map_puzzle_draft_level(snapshot: PuzzleDraftLevel) -> PuzzleDraftL
|
||||
ui_background_prompt: snapshot.ui_background_prompt,
|
||||
ui_background_image_src: snapshot.ui_background_image_src,
|
||||
ui_background_image_object_key: snapshot.ui_background_image_object_key,
|
||||
level_scene_image_src: snapshot.level_scene_image_src,
|
||||
level_scene_image_object_key: snapshot.level_scene_image_object_key,
|
||||
ui_spritesheet_image_src: snapshot.ui_spritesheet_image_src,
|
||||
ui_spritesheet_image_object_key: snapshot.ui_spritesheet_image_object_key,
|
||||
level_background_image_src: snapshot.level_background_image_src,
|
||||
level_background_image_object_key: snapshot.level_background_image_object_key,
|
||||
background_music: snapshot.background_music.map(map_puzzle_audio_asset),
|
||||
candidates: snapshot
|
||||
.candidates
|
||||
@@ -392,6 +398,10 @@ pub(crate) fn map_puzzle_runtime_level_snapshot(
|
||||
cover_image_src: snapshot.cover_image_src,
|
||||
ui_background_image_src: snapshot.ui_background_image_src,
|
||||
ui_background_image_object_key: snapshot.ui_background_image_object_key,
|
||||
level_background_image_src: snapshot.level_background_image_src,
|
||||
level_background_image_object_key: snapshot.level_background_image_object_key,
|
||||
ui_spritesheet_image_src: snapshot.ui_spritesheet_image_src,
|
||||
ui_spritesheet_image_object_key: snapshot.ui_spritesheet_image_object_key,
|
||||
background_music: snapshot.background_music.map(map_puzzle_audio_asset),
|
||||
board: map_puzzle_board_snapshot(snapshot.board),
|
||||
status: format_puzzle_runtime_level_status(snapshot.status).to_string(),
|
||||
@@ -835,6 +845,12 @@ pub struct PuzzleDraftLevelRecord {
|
||||
pub ui_background_prompt: Option<String>,
|
||||
pub ui_background_image_src: Option<String>,
|
||||
pub ui_background_image_object_key: Option<String>,
|
||||
pub level_scene_image_src: Option<String>,
|
||||
pub level_scene_image_object_key: Option<String>,
|
||||
pub ui_spritesheet_image_src: Option<String>,
|
||||
pub ui_spritesheet_image_object_key: Option<String>,
|
||||
pub level_background_image_src: Option<String>,
|
||||
pub level_background_image_object_key: Option<String>,
|
||||
pub background_music: Option<PuzzleAudioAssetRecord>,
|
||||
pub candidates: Vec<PuzzleGeneratedImageCandidateRecord>,
|
||||
pub selected_candidate_id: Option<String>,
|
||||
@@ -1038,6 +1054,10 @@ pub struct PuzzleRuntimeLevelRecord {
|
||||
pub cover_image_src: Option<String>,
|
||||
pub ui_background_image_src: Option<String>,
|
||||
pub ui_background_image_object_key: Option<String>,
|
||||
pub level_background_image_src: Option<String>,
|
||||
pub level_background_image_object_key: Option<String>,
|
||||
pub ui_spritesheet_image_src: Option<String>,
|
||||
pub ui_spritesheet_image_object_key: Option<String>,
|
||||
pub background_music: Option<PuzzleAudioAssetRecord>,
|
||||
pub board: PuzzleBoardRecord,
|
||||
pub status: String,
|
||||
|
||||
Reference in New Issue
Block a user