mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-02 00:18:17 +00:00
map type
This commit is contained in:
1 parent
137acdfdc7
commit
98e4e83f22
2 files changed
+38
-2
No files matched your search
+19
-1
@@ -3,6 +3,7 @@ use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_video_cost
|
||||
use artcraft_router::api::audio_list_ref::AudioListRef;
|
||||
use artcraft_router::api::character_list_ref::CharacterListRef;
|
||||
use artcraft_router::api::router_aspect_ratio::RouterAspectRatio;
|
||||
use artcraft_router::api::router_bitrate::RouterBitrate;
|
||||
use artcraft_router::api::router_resolution::RouterResolution;
|
||||
use artcraft_router::api::router_video_model::RouterVideoModel;
|
||||
use artcraft_router::api::image_list_ref::ImageListRef;
|
||||
@@ -12,6 +13,7 @@ use artcraft_router::api::video_list_ref::VideoListRef;
|
||||
use artcraft_router::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use enums::common::generation::common_aspect_ratio::CommonAspectRatio as CommonAspectRatioEnum;
|
||||
use enums::common::generation::common_bitrate::CommonBitrate as CommonBitrateEnum;
|
||||
use enums::common::generation::common_resolution::CommonResolution as CommonResolutionEnum;
|
||||
use enums::common::generation::common_video_model::CommonVideoModel as CommonVideoModelEnum;
|
||||
|
||||
@@ -36,6 +38,11 @@ pub fn hydrate_to_router_request(
|
||||
.map(convert_resolution)
|
||||
.transpose()?;
|
||||
|
||||
let bitrate = request.bitrate
|
||||
.as_ref()
|
||||
.map(convert_bitrate)
|
||||
.transpose()?;
|
||||
|
||||
Ok(GenerateVideoRequestBuilder {
|
||||
model,
|
||||
provider: RouterProvider::Artcraft,
|
||||
@@ -55,7 +62,7 @@ pub fn hydrate_to_router_request(
|
||||
.map(CharacterListRef::CharacterTokens),
|
||||
resolution,
|
||||
aspect_ratio,
|
||||
bitrate: None,
|
||||
bitrate,
|
||||
duration_seconds: request.duration_seconds,
|
||||
video_batch_count: request.video_batch_count,
|
||||
generate_audio: request.generate_audio,
|
||||
@@ -96,3 +103,14 @@ fn convert_resolution(
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
fn convert_bitrate(
|
||||
bitrate: &CommonBitrateEnum,
|
||||
) -> Result<RouterBitrate, CommonWebError> {
|
||||
let json = serde_json::to_string(bitrate)?;
|
||||
serde_json::from_str(&json).map_err(|e| {
|
||||
CommonWebError::BadInputWithSimpleMessage(
|
||||
format!("Unsupported bitrate: {}", e),
|
||||
)
|
||||
})
|
||||
}
|
||||
+19
-1
@@ -3,6 +3,7 @@ use artcraft_api_defs::omni_gen::cost_and_generate_requests::omni_gen_video_cost
|
||||
use artcraft_router::api::audio_list_ref::AudioListRef;
|
||||
use artcraft_router::api::character_list_ref::CharacterListRef;
|
||||
use artcraft_router::api::router_aspect_ratio::RouterAspectRatio;
|
||||
use artcraft_router::api::router_bitrate::RouterBitrate;
|
||||
use artcraft_router::api::router_resolution::RouterResolution;
|
||||
use artcraft_router::api::router_video_model::RouterVideoModel;
|
||||
use artcraft_router::api::image_list_ref::ImageListRef;
|
||||
@@ -12,6 +13,7 @@ use artcraft_router::api::video_list_ref::VideoListRef;
|
||||
use artcraft_router::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use enums::common::generation::common_aspect_ratio::CommonAspectRatio as CommonAspectRatioEnum;
|
||||
use enums::common::generation::common_bitrate::CommonBitrate as CommonBitrateEnum;
|
||||
use enums::common::generation::common_resolution::CommonResolution as CommonResolutionEnum;
|
||||
use enums::common::generation::common_video_model::CommonVideoModel as CommonVideoModelEnum;
|
||||
|
||||
@@ -36,6 +38,11 @@ pub fn hydrate_to_router_request(
|
||||
.map(convert_resolution)
|
||||
.transpose()?;
|
||||
|
||||
let bitrate = request.bitrate
|
||||
.as_ref()
|
||||
.map(convert_bitrate)
|
||||
.transpose()?;
|
||||
|
||||
Ok(GenerateVideoRequestBuilder {
|
||||
model,
|
||||
provider: RouterProvider::Artcraft,
|
||||
@@ -55,7 +62,7 @@ pub fn hydrate_to_router_request(
|
||||
.map(CharacterListRef::CharacterTokens),
|
||||
resolution,
|
||||
aspect_ratio,
|
||||
bitrate: None,
|
||||
bitrate,
|
||||
duration_seconds: request.duration_seconds,
|
||||
video_batch_count: request.video_batch_count,
|
||||
generate_audio: request.generate_audio,
|
||||
@@ -96,3 +103,14 @@ fn convert_resolution(
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
fn convert_bitrate(
|
||||
bitrate: &CommonBitrateEnum,
|
||||
) -> Result<RouterBitrate, CommonWebError> {
|
||||
let json = serde_json::to_string(bitrate)?;
|
||||
serde_json::from_str(&json).map_err(|e| {
|
||||
CommonWebError::BadInputWithSimpleMessage(
|
||||
format!("Unsupported bitrate: {}", e),
|
||||
)
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user