mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-13 21:32:18 +00:00
cleanup
This commit is contained in:
1 parent
35a7bf5687
commit
6a4b172bc0
2 files changed
+33
-18
No files matched your search
+3
-5
@@ -146,13 +146,13 @@ pub async fn omni_gen_video_generate_handler(
|
||||
}
|
||||
};
|
||||
|
||||
// ==================== RESOLVE MEDIA, CHARACTERS ==================== //
|
||||
|
||||
let media_file_to_url_map: Option<HashMap<MediaFileToken, String>> =
|
||||
media_file_hydration_map.as_ref().map(|map| {
|
||||
map.iter().map(|(k, v)| (k.clone(), v.to_string())).collect()
|
||||
});
|
||||
|
||||
// ==================== RESOLVE CHARACTERS ==================== //
|
||||
|
||||
let kinovi_character_id_map: Option<HashMap<CharacterToken, String>> =
|
||||
resolve_kinovi_character_ids(
|
||||
request.reference_character_tokens.as_deref(),
|
||||
@@ -176,14 +176,12 @@ pub async fn omni_gen_video_generate_handler(
|
||||
kinovi_character_id_map: &kinovi_character_id_map,
|
||||
}).await?
|
||||
} else {
|
||||
let empty_map = HashMap::new();
|
||||
let media_url_map = media_file_hydration_map.as_ref().unwrap_or(&empty_map);
|
||||
run_pipeline_v1(RunPipelineV1Args {
|
||||
request: &request,
|
||||
server_state: &server_state,
|
||||
mysql_connection: &mut mysql_connection,
|
||||
user_token,
|
||||
media_url_map,
|
||||
media_url_map: &media_file_hydration_map,
|
||||
kinovi_character_id_map: &kinovi_character_id_map,
|
||||
}).await?
|
||||
};
|
||||
|
||||
+30
-13
@@ -32,7 +32,7 @@ pub struct RunPipelineV1Args<'a> {
|
||||
pub server_state: &'a ServerState,
|
||||
pub mysql_connection: &'a mut sqlx::pool::PoolConnection<sqlx::MySql>,
|
||||
pub user_token: &'a UserToken,
|
||||
pub media_url_map: &'a HashMap<MediaFileToken, Url>,
|
||||
pub media_url_map: &'a Option<HashMap<MediaFileToken, Url>>,
|
||||
pub kinovi_character_id_map: &'a Option<HashMap<CharacterToken, String>>,
|
||||
}
|
||||
|
||||
@@ -95,18 +95,29 @@ pub async fn run_pipeline_v1(args: RunPipelineV1Args<'_>) -> Result<PipelineResu
|
||||
cost_plan.estimate_costs()
|
||||
};
|
||||
|
||||
// ── Build the execution request (resolve media tokens → URLs from handler map) ──
|
||||
// ── Resolve media tokens → URLs from handler map ──
|
||||
|
||||
let empty_map = HashMap::new();
|
||||
let url_map = media_url_map.as_ref().unwrap_or(&empty_map);
|
||||
|
||||
let start_frame = lookup_url(url_map, request.start_frame_image_media_token.as_ref()).map(ImageRef::Url);
|
||||
let end_frame = lookup_url(url_map, request.end_frame_image_media_token.as_ref()).map(ImageRef::Url);
|
||||
let reference_images = lookup_urls(url_map, request.reference_image_media_tokens.as_ref()).map(ImageListRef::Urls);
|
||||
let reference_videos = lookup_urls(url_map, request.reference_video_media_tokens.as_ref()).map(VideoListRef::Urls);
|
||||
let reference_audio = lookup_urls(url_map, request.reference_audio_media_tokens.as_ref()).map(AudioListRef::Urls);
|
||||
|
||||
// ── Build the execution request ──
|
||||
|
||||
let exec_request = GenerateVideoRequestBuilder {
|
||||
model: initial.model,
|
||||
provider: execution_provider,
|
||||
prompt: initial.prompt,
|
||||
negative_prompt: initial.negative_prompt,
|
||||
start_frame: lookup_url(media_url_map, request.start_frame_image_media_token.as_ref()).map(ImageRef::Url),
|
||||
end_frame: lookup_url(media_url_map, request.end_frame_image_media_token.as_ref()).map(ImageRef::Url),
|
||||
reference_images: lookup_urls(media_url_map, request.reference_image_media_tokens.as_ref()).map(ImageListRef::Urls),
|
||||
reference_videos: lookup_urls(media_url_map, request.reference_video_media_tokens.as_ref()).map(VideoListRef::Urls),
|
||||
reference_audio: lookup_urls(media_url_map, request.reference_audio_media_tokens.as_ref()).map(AudioListRef::Urls),
|
||||
start_frame,
|
||||
end_frame,
|
||||
reference_images,
|
||||
reference_videos,
|
||||
reference_audio,
|
||||
reference_character_tokens: initial.reference_character_tokens.clone(),
|
||||
resolution: initial.resolution,
|
||||
aspect_ratio: initial.aspect_ratio,
|
||||
@@ -135,7 +146,7 @@ pub async fn run_pipeline_v1(args: RunPipelineV1Args<'_>) -> Result<PipelineResu
|
||||
Provider::Seedance2Pro => {
|
||||
execute_generation_kinovi(
|
||||
request, server_state,
|
||||
Some(media_url_map), kinovi_character_ids,
|
||||
media_url_map.as_ref(), kinovi_character_ids,
|
||||
billing.maybe_wallet_ledger_entry_token.as_ref(), mysql_connection,
|
||||
).await?
|
||||
}
|
||||
@@ -180,16 +191,22 @@ pub fn distill_video_request(
|
||||
cost_plan.estimate_costs()
|
||||
};
|
||||
|
||||
let start_frame = lookup_url(media_url_map, request.start_frame_image_media_token.as_ref()).map(ImageRef::Url);
|
||||
let end_frame = lookup_url(media_url_map, request.end_frame_image_media_token.as_ref()).map(ImageRef::Url);
|
||||
let reference_images = lookup_urls(media_url_map, request.reference_image_media_tokens.as_ref()).map(ImageListRef::Urls);
|
||||
let reference_videos = lookup_urls(media_url_map, request.reference_video_media_tokens.as_ref()).map(VideoListRef::Urls);
|
||||
let reference_audio = lookup_urls(media_url_map, request.reference_audio_media_tokens.as_ref()).map(AudioListRef::Urls);
|
||||
|
||||
let exec_request = GenerateVideoRequestBuilder {
|
||||
model: initial.model,
|
||||
provider: execution_provider,
|
||||
prompt: initial.prompt,
|
||||
negative_prompt: initial.negative_prompt,
|
||||
start_frame: lookup_url(media_url_map, request.start_frame_image_media_token.as_ref()).map(ImageRef::Url),
|
||||
end_frame: lookup_url(media_url_map, request.end_frame_image_media_token.as_ref()).map(ImageRef::Url),
|
||||
reference_images: lookup_urls(media_url_map, request.reference_image_media_tokens.as_ref()).map(ImageListRef::Urls),
|
||||
reference_videos: lookup_urls(media_url_map, request.reference_video_media_tokens.as_ref()).map(VideoListRef::Urls),
|
||||
reference_audio: lookup_urls(media_url_map, request.reference_audio_media_tokens.as_ref()).map(AudioListRef::Urls),
|
||||
start_frame,
|
||||
end_frame,
|
||||
reference_images,
|
||||
reference_videos,
|
||||
reference_audio,
|
||||
reference_character_tokens: None,
|
||||
resolution: initial.resolution,
|
||||
aspect_ratio: initial.aspect_ratio,
|
||||
|
||||
Reference in new issue
Block a user