mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-13 21:32:18 +00:00
rename struct to better enable a state machine flow
This commit is contained in:
1 parent
0d235bfe27
commit
b296924550
56 files changed
+185
-185
No files matched your search
+2
-2
@@ -58,10 +58,10 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(duration_seconds: u16) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Kling3p0Pro,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
|
||||
+2
-2
@@ -58,10 +58,10 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(duration_seconds: u16) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Kling3p0Standard,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
|
||||
+2
-2
@@ -61,10 +61,10 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(duration_seconds: u16) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance1p5Pro,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
|
||||
+2
-2
@@ -66,14 +66,14 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(
|
||||
duration_seconds: u16,
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
|
||||
+5
-5
@@ -66,14 +66,14 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(
|
||||
duration_seconds: u16,
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0Fast,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
@@ -104,7 +104,7 @@ mod tests {
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0Fast,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
@@ -135,7 +135,7 @@ mod tests {
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
@@ -213,7 +213,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn fast_1080p_error_out_rejects() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0Fast,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: None,
|
||||
|
||||
+2
-2
@@ -23,14 +23,14 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(
|
||||
duration_seconds: u16,
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0,
|
||||
provider: Provider::Seedance2Pro,
|
||||
prompt: None,
|
||||
|
||||
+3
-3
@@ -23,14 +23,14 @@ mod tests {
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::provider::Provider;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
|
||||
fn estimate_usd_cents(
|
||||
duration_seconds: u16,
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0Fast,
|
||||
provider: Provider::Seedance2Pro,
|
||||
prompt: None,
|
||||
@@ -61,7 +61,7 @@ mod tests {
|
||||
video_batch_count: u16,
|
||||
resolution: Option<CommonResolution>,
|
||||
) -> u64 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0,
|
||||
provider: Provider::Seedance2Pro,
|
||||
prompt: None,
|
||||
|
||||
+2
-2
@@ -61,7 +61,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_text_to_video_seedance_2p0() {
|
||||
let client = get_artcraft_client();
|
||||
let request = crate::generate::generate_video::generate_video_request::GenerateVideoRequest {
|
||||
let request = crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
video_batch_count: Some(1),
|
||||
prompt: Some("a cat walking through a cyberpunk city at night".to_string()),
|
||||
@@ -84,7 +84,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_text_to_video_seedance_2p0_batch_two() {
|
||||
let client = get_artcraft_client();
|
||||
let request = crate::generate::generate_video::generate_video_request::GenerateVideoRequest {
|
||||
let request = crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::Square),
|
||||
video_batch_count: Some(2),
|
||||
prompt: Some("a dog surfing a wave, cinematic".to_string()),
|
||||
|
||||
+10
-10
@@ -84,13 +84,13 @@ mod tests {
|
||||
use crate::api::common_resolution::CommonResolution;
|
||||
use crate::api::common_video_model::CommonVideoModel;
|
||||
use crate::api::image_ref::ImageRef;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use crate::test_helpers::{base_video_request, get_artcraft_client};
|
||||
use tokens::tokens::media_files::MediaFileToken;
|
||||
|
||||
fn fast_request() -> GenerateVideoRequest {
|
||||
GenerateVideoRequest {
|
||||
fn fast_request() -> GenerateVideoRequestBuilder {
|
||||
GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0Fast,
|
||||
prompt: Some("a corgi walking through a cyberpunk city at night".to_string()),
|
||||
..base_video_request()
|
||||
@@ -101,7 +101,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_text_to_video_fast_720p_wide() {
|
||||
let client = get_artcraft_client();
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
resolution: Some(CommonResolution::SevenTwentyP),
|
||||
video_batch_count: Some(1),
|
||||
@@ -121,7 +121,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_text_to_video_fast_480p_square() {
|
||||
let client = get_artcraft_client();
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::Square),
|
||||
resolution: Some(CommonResolution::FourEightyP),
|
||||
video_batch_count: Some(1),
|
||||
@@ -141,7 +141,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_image_to_video_fast_with_start_keyframe() {
|
||||
let client = get_artcraft_client();
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
start_frame: Some(ImageRef::MediaFileToken(
|
||||
MediaFileToken::new("mf_test_keyframe_placeholder".to_string()),
|
||||
)),
|
||||
@@ -164,7 +164,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_text_to_video_fast_batch_2() {
|
||||
let client = get_artcraft_client();
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::TallNineBySixteen),
|
||||
resolution: Some(CommonResolution::SevenTwentyP),
|
||||
video_batch_count: Some(2),
|
||||
@@ -187,7 +187,7 @@ mod tests {
|
||||
#[ignore] // manually run — fires a real API request and incurs cost
|
||||
async fn test_text_to_video_fast_with_reference_images() {
|
||||
let client = get_artcraft_client();
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
reference_images: Some(crate::api::image_list_ref::ImageListRef::MediaFileTokens(vec![
|
||||
MediaFileToken::new("mf_test_ref_image_placeholder".to_string()),
|
||||
])),
|
||||
@@ -208,7 +208,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn plan_includes_resolution() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
resolution: Some(CommonResolution::FourEightyP),
|
||||
..fast_request()
|
||||
};
|
||||
@@ -222,7 +222,7 @@ mod tests {
|
||||
use crate::api::character_list_ref::CharacterListRef;
|
||||
use tokens::tokens::characters::CharacterToken;
|
||||
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
reference_character_tokens: Some(CharacterListRef::CharacterTokens(vec![
|
||||
CharacterToken::new("char_test123".to_string()),
|
||||
])),
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@ use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
/// This works across multiple providers by shaping a generic "GenerateVideoRequest" into a provider-specific plan.
|
||||
/// That plan can then be used to return a cost estimate for that given provider or return a struct that can be used to send a real generation request.
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct GenerateVideoRequest {
|
||||
pub struct GenerateVideoRequestBuilder {
|
||||
/// Which model to use.
|
||||
pub model: CommonVideoModel,
|
||||
|
||||
@@ -109,7 +109,7 @@ pub struct GenerateVideoRequest {
|
||||
pub idempotency_token: Option<String>,
|
||||
}
|
||||
|
||||
impl GenerateVideoRequest {
|
||||
impl GenerateVideoRequestBuilder {
|
||||
/// Read the video generation request, construct a plan, then yield a means to execute it.
|
||||
pub fn build(&self) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
match self.provider {
|
||||
@@ -1,6 +1,6 @@
|
||||
pub mod cost;
|
||||
pub mod execute;
|
||||
pub mod generate_video_request;
|
||||
pub mod generate_video_request_builder;
|
||||
pub mod generate_video_response;
|
||||
pub mod plan;
|
||||
pub mod video_generation_cost_estimate;
|
||||
|
||||
+12
-12
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::kling_3p0_pro_multi_function_video_gen::{
|
||||
Kling3p0ProMultiFunctionVideoGenAspectRatio,
|
||||
@@ -24,7 +24,7 @@ pub struct PlanArtcraftKling3p0Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling3p0_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
@@ -166,11 +166,11 @@ mod tests {
|
||||
use crate::api::provider::Provider;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
fn base_request() -> GenerateVideoRequest {
|
||||
GenerateVideoRequest {
|
||||
fn base_request() -> GenerateVideoRequestBuilder {
|
||||
GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Kling3p0Pro,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: Some("a cat in space".to_string()),
|
||||
@@ -193,7 +193,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_16x9() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
..base_request()
|
||||
};
|
||||
@@ -203,7 +203,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_9x16() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::TallNineBySixteen),
|
||||
..base_request()
|
||||
};
|
||||
@@ -213,7 +213,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_square() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::Square),
|
||||
..base_request()
|
||||
};
|
||||
@@ -223,7 +223,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_error_out_on_unsupported() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideThreeByTwo),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_request()
|
||||
@@ -238,7 +238,7 @@ mod tests {
|
||||
#[test]
|
||||
fn duration_valid_range() {
|
||||
for d in 3..=15 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
duration_seconds: Some(d),
|
||||
..base_request()
|
||||
};
|
||||
@@ -249,7 +249,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn duration_out_of_range_error_out() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
duration_seconds: Some(16),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_request()
|
||||
@@ -263,7 +263,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn url_image_ref_returns_error() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
start_frame: Some(ImageRef::Url("https://example.com/image.jpg".to_string())),
|
||||
..base_request()
|
||||
};
|
||||
|
||||
+12
-12
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::kling_3p0_standard_multi_function_video_gen::{
|
||||
Kling3p0StandardMultiFunctionVideoGenAspectRatio,
|
||||
@@ -24,7 +24,7 @@ pub struct PlanArtcraftKling3p0Standard {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling3p0_standard(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
@@ -166,11 +166,11 @@ mod tests {
|
||||
use crate::api::provider::Provider;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
fn base_request() -> GenerateVideoRequest {
|
||||
GenerateVideoRequest {
|
||||
fn base_request() -> GenerateVideoRequestBuilder {
|
||||
GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Kling3p0Standard,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: Some("a cat in space".to_string()),
|
||||
@@ -193,7 +193,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_16x9() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
..base_request()
|
||||
};
|
||||
@@ -203,7 +203,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_9x16() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::TallNineBySixteen),
|
||||
..base_request()
|
||||
};
|
||||
@@ -213,7 +213,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_square() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::Square),
|
||||
..base_request()
|
||||
};
|
||||
@@ -223,7 +223,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_error_out_on_unsupported() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideThreeByTwo),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_request()
|
||||
@@ -238,7 +238,7 @@ mod tests {
|
||||
#[test]
|
||||
fn duration_valid_range() {
|
||||
for d in 3..=15 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
duration_seconds: Some(d),
|
||||
..base_request()
|
||||
};
|
||||
@@ -249,7 +249,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn duration_out_of_range_error_out() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
duration_seconds: Some(16),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_request()
|
||||
@@ -263,7 +263,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn url_image_ref_returns_error() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
start_frame: Some(ImageRef::Url("https://example.com/image.jpg".to_string())),
|
||||
..base_request()
|
||||
};
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_kling_1_6_pro_image_to_video::{
|
||||
GenerateKling16ProAspectRatio, GenerateKling16ProDuration,
|
||||
@@ -21,7 +21,7 @@ pub struct PlanArtcraftKling16Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling_1_6_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_kling_2_1_master_image_to_video::{
|
||||
GenerateKling21MasterAspectRatio, GenerateKling21MasterDuration,
|
||||
@@ -20,7 +20,7 @@ pub struct PlanArtcraftKling21Master {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling_2_1_master(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_kling_2_1_pro_image_to_video::{
|
||||
GenerateKling21ProAspectRatio, GenerateKling21ProDuration,
|
||||
@@ -21,7 +21,7 @@ pub struct PlanArtcraftKling21Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling_2_1_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::kling_2_5_turbo_multi_function_video_gen::{
|
||||
Kling2p5TurboProMultiFunctionVideoGenAspectRatio, Kling2p5TurboProMultiFunctionVideoGenDuration,
|
||||
@@ -22,7 +22,7 @@ pub struct PlanArtcraftKling2p5TurboPro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling_2_5_turbo_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::kling_2_6_multi_function_video_gen::{
|
||||
Kling2p6ProMultiFunctionVideoGenAspectRatio, Kling2p6ProMultiFunctionVideoGenDuration,
|
||||
@@ -22,7 +22,7 @@ pub struct PlanArtcraftKling2p6Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_kling_2_6_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+12
-12
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::seedance_1p5_pro_multi_function_video_gen::{
|
||||
Seedance1p5ProMultiFunctionVideoGenAspectRatio,
|
||||
@@ -25,7 +25,7 @@ pub struct PlanArtcraftSeedance1p5Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_seedance1p5_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
@@ -184,11 +184,11 @@ mod tests {
|
||||
use crate::api::provider::Provider;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
fn base_seedance_1p5_pro_request() -> GenerateVideoRequest {
|
||||
GenerateVideoRequest {
|
||||
fn base_seedance_1p5_pro_request() -> GenerateVideoRequestBuilder {
|
||||
GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance1p5Pro,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: Some("a cat in space".to_string()),
|
||||
@@ -211,7 +211,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_16x9() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
..base_seedance_1p5_pro_request()
|
||||
};
|
||||
@@ -221,7 +221,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_9x16() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::TallNineBySixteen),
|
||||
..base_seedance_1p5_pro_request()
|
||||
};
|
||||
@@ -231,7 +231,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_21x9() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideTwentyOneByNine),
|
||||
..base_seedance_1p5_pro_request()
|
||||
};
|
||||
@@ -241,7 +241,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_error_out_on_unsupported() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideThreeByTwo),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_seedance_1p5_pro_request()
|
||||
@@ -256,7 +256,7 @@ mod tests {
|
||||
#[test]
|
||||
fn duration_valid_range() {
|
||||
for d in 4..=12 {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
duration_seconds: Some(d),
|
||||
..base_seedance_1p5_pro_request()
|
||||
};
|
||||
@@ -267,7 +267,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn duration_out_of_range_error_out() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
duration_seconds: Some(13),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_seedance_1p5_pro_request()
|
||||
@@ -281,7 +281,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn url_image_ref_accepted_for_cost_path() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
start_frame: Some(ImageRef::Url("https://example.com/image.jpg".to_string())),
|
||||
..base_seedance_1p5_pro_request()
|
||||
};
|
||||
|
||||
+14
-14
@@ -7,7 +7,7 @@ use crate::api::video_list_ref::VideoListRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::seedance_2p0_multi_function_video_gen::{
|
||||
Seedance2p0AspectRatio, Seedance2p0BatchCount,
|
||||
@@ -32,7 +32,7 @@ pub struct PlanArtcraftSeedance2p0 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_seedance2p0(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
@@ -286,7 +286,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_16x9() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
..base_video_request()
|
||||
};
|
||||
@@ -296,7 +296,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_9x16() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::TallNineBySixteen),
|
||||
..base_video_request()
|
||||
};
|
||||
@@ -306,7 +306,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_direct_square() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::Square),
|
||||
..base_video_request()
|
||||
};
|
||||
@@ -321,7 +321,7 @@ mod tests {
|
||||
RequestMismatchMitigationStrategy::PayMoreUpgrade,
|
||||
RequestMismatchMitigationStrategy::PayLessDowngrade,
|
||||
] {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideThreeByTwo),
|
||||
request_mismatch_mitigation_strategy: strategy,
|
||||
..base_video_request()
|
||||
@@ -336,7 +336,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_error_out_on_unsupported() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideThreeByTwo),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::ErrorOut,
|
||||
..base_video_request()
|
||||
@@ -355,7 +355,7 @@ mod tests {
|
||||
RequestMismatchMitigationStrategy::PayMoreUpgrade,
|
||||
RequestMismatchMitigationStrategy::PayLessDowngrade,
|
||||
] {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
video_batch_count: Some(0),
|
||||
request_mismatch_mitigation_strategy: strategy,
|
||||
..base_video_request()
|
||||
@@ -370,22 +370,22 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn batch_count_direct_mapping() {
|
||||
let req = GenerateVideoRequest { video_batch_count: Some(1), ..base_video_request() };
|
||||
let req = GenerateVideoRequestBuilder { video_batch_count: Some(1), ..base_video_request() };
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0(plan) = req.build().unwrap() else { panic!("wrong variant") };
|
||||
assert!(matches!(plan.batch_count, Seedance2p0BatchCount::One));
|
||||
|
||||
let req = GenerateVideoRequest { video_batch_count: Some(2), ..base_video_request() };
|
||||
let req = GenerateVideoRequestBuilder { video_batch_count: Some(2), ..base_video_request() };
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0(plan) = req.build().unwrap() else { panic!("wrong variant") };
|
||||
assert!(matches!(plan.batch_count, Seedance2p0BatchCount::Two));
|
||||
|
||||
let req = GenerateVideoRequest { video_batch_count: Some(4), ..base_video_request() };
|
||||
let req = GenerateVideoRequestBuilder { video_batch_count: Some(4), ..base_video_request() };
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0(plan) = req.build().unwrap() else { panic!("wrong variant") };
|
||||
assert!(matches!(plan.batch_count, Seedance2p0BatchCount::Four));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn batch_count_three_upgrade_rounds_to_four() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
video_batch_count: Some(3),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::PayMoreUpgrade,
|
||||
..base_video_request()
|
||||
@@ -396,7 +396,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn batch_count_three_downgrade_rounds_to_two() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
video_batch_count: Some(3),
|
||||
request_mismatch_mitigation_strategy: RequestMismatchMitigationStrategy::PayLessDowngrade,
|
||||
..base_video_request()
|
||||
@@ -407,7 +407,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn url_image_ref_returns_error() {
|
||||
let request = GenerateVideoRequest {
|
||||
let request = GenerateVideoRequestBuilder {
|
||||
start_frame: Some(ImageRef::Url("https://example.com/image.jpg".to_string())),
|
||||
..base_video_request()
|
||||
};
|
||||
|
||||
+13
-13
@@ -7,7 +7,7 @@ use crate::api::video_list_ref::VideoListRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::artcraft::plan_generate_video_artcraft_seedance2p0::PlanArtcraftSeedance2p0;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::seedance_2p0_multi_function_video_gen::{
|
||||
@@ -17,7 +17,7 @@ use tokens::tokens::characters::CharacterToken;
|
||||
use tokens::tokens::media_files::MediaFileToken;
|
||||
|
||||
pub fn plan_generate_video_artcraft_seedance2p0_fast(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
@@ -249,14 +249,14 @@ mod tests {
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::seedance_2p0_multi_function_video_gen::{
|
||||
Seedance2p0AspectRatio, Seedance2p0BatchCount,
|
||||
};
|
||||
|
||||
fn base_request() -> GenerateVideoRequest {
|
||||
GenerateVideoRequest {
|
||||
fn base_request() -> GenerateVideoRequestBuilder {
|
||||
GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0Fast,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: Some("a cat in space".to_string()),
|
||||
@@ -295,7 +295,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_16x9() {
|
||||
let req = GenerateVideoRequest {
|
||||
let req = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::WideSixteenByNine),
|
||||
..base_request()
|
||||
};
|
||||
@@ -306,7 +306,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_9x16() {
|
||||
let req = GenerateVideoRequest {
|
||||
let req = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::TallNineBySixteen),
|
||||
..base_request()
|
||||
};
|
||||
@@ -317,7 +317,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn aspect_ratio_square() {
|
||||
let req = GenerateVideoRequest {
|
||||
let req = GenerateVideoRequestBuilder {
|
||||
aspect_ratio: Some(CommonAspectRatio::Square),
|
||||
..base_request()
|
||||
};
|
||||
@@ -336,7 +336,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn batch_count_2() {
|
||||
let req = GenerateVideoRequest { video_batch_count: Some(2), ..base_request() };
|
||||
let req = GenerateVideoRequestBuilder { video_batch_count: Some(2), ..base_request() };
|
||||
let plan = req.build().unwrap();
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0Fast(p) = plan else { panic!("wrong variant") };
|
||||
assert!(matches!(p.batch_count, Seedance2p0BatchCount::Two));
|
||||
@@ -344,7 +344,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn batch_count_4() {
|
||||
let req = GenerateVideoRequest { video_batch_count: Some(4), ..base_request() };
|
||||
let req = GenerateVideoRequestBuilder { video_batch_count: Some(4), ..base_request() };
|
||||
let plan = req.build().unwrap();
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0Fast(p) = plan else { panic!("wrong variant") };
|
||||
assert!(matches!(p.batch_count, Seedance2p0BatchCount::Four));
|
||||
@@ -352,7 +352,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn duration_in_range() {
|
||||
let req = GenerateVideoRequest { duration_seconds: Some(10), ..base_request() };
|
||||
let req = GenerateVideoRequestBuilder { duration_seconds: Some(10), ..base_request() };
|
||||
let plan = req.build().unwrap();
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0Fast(p) = plan else { panic!("wrong variant") };
|
||||
assert_eq!(p.duration_seconds, Some(10));
|
||||
@@ -360,7 +360,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn duration_clamped_to_max() {
|
||||
let req = GenerateVideoRequest { duration_seconds: Some(99), ..base_request() };
|
||||
let req = GenerateVideoRequestBuilder { duration_seconds: Some(99), ..base_request() };
|
||||
let plan = req.build().unwrap();
|
||||
let VideoGenerationPlan::ArtcraftSeedance2p0Fast(p) = plan else { panic!("wrong variant") };
|
||||
assert_eq!(p.duration_seconds, Some(15));
|
||||
@@ -368,7 +368,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn url_image_ref_returns_error() {
|
||||
let req = GenerateVideoRequest {
|
||||
let req = GenerateVideoRequestBuilder {
|
||||
start_frame: Some(ImageRef::Url("https://example.com/image.jpg".to_string())),
|
||||
..base_request()
|
||||
};
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_seedance_1_0_lite_image_to_video::{
|
||||
GenerateSeedance10LiteAspectRatio, GenerateSeedance10LiteDuration,
|
||||
@@ -24,7 +24,7 @@ pub struct PlanArtcraftSeedance10Lite {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_seedance_1_0_lite(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::sora_2_multi_function_video_gen::{
|
||||
Sora2MultiFunctionVideoGenAspectRatio, Sora2MultiFunctionVideoGenDuration,
|
||||
@@ -23,7 +23,7 @@ pub struct PlanArtcraftSora2 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_sora_2(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::sora_2_pro_multi_function_video_gen::{
|
||||
Sora2ProMultiFunctionVideoGenAspectRatio, Sora2ProMultiFunctionVideoGenDuration,
|
||||
@@ -23,7 +23,7 @@ pub struct PlanArtcraftSora2Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_sora_2_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_veo_2_image_to_video::{
|
||||
GenerateVeo2AspectRatio, GenerateVeo2Duration,
|
||||
@@ -23,7 +23,7 @@ pub struct PlanArtcraftVeo2 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_veo_2(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_veo_3_image_to_video::{
|
||||
GenerateVeo3AspectRatio, GenerateVeo3Duration, GenerateVeo3Resolution,
|
||||
@@ -29,7 +29,7 @@ pub struct PlanArtcraftVeo3 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_veo_3(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::generate_veo_3_fast_image_to_video::{
|
||||
GenerateVeo3FastAspectRatio, GenerateVeo3FastDuration, GenerateVeo3FastResolution,
|
||||
@@ -23,7 +23,7 @@ pub struct PlanArtcraftVeo3Fast {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_veo_3_fast(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::veo_3p1_multi_function_video_gen::{
|
||||
Veo3p1MultiFunctionVideoGenAspectRatio, Veo3p1MultiFunctionVideoGenDuration,
|
||||
@@ -26,14 +26,14 @@ pub struct PlanArtcraftVeo3p1 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_veo_3p1(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let plan = build_plan_artcraft_veo_3p1(request)?;
|
||||
Ok(VideoGenerationPlan::ArtcraftVeo3p1(plan))
|
||||
}
|
||||
|
||||
pub(crate) fn build_plan_artcraft_veo_3p1(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<PlanArtcraftVeo3p1, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use artcraft_api_defs::generate::video::multi_function::veo_3p1_fast_multi_function_video_gen::{
|
||||
Veo3p1FastMultiFunctionVideoGenAspectRatio, Veo3p1FastMultiFunctionVideoGenDuration,
|
||||
@@ -26,7 +26,7 @@ pub struct PlanArtcraftVeo3p1Fast {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_artcraft_veo_3p1_fast(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use fal_client::requests::webhook::video::image::enqueue_kling_v1p6_pro_image_to_video_webhook::{
|
||||
Kling1p6ProAspectRatio, Kling1p6ProDuration,
|
||||
@@ -19,7 +19,7 @@ pub struct PlanFalKling16Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_1_6_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ use crate::api::common_aspect_ratio::CommonAspectRatio;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::require_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use fal_client::requests::webhook::video::image::enqueue_kling_v2p1_master_image_to_video_webhook::{
|
||||
@@ -18,7 +18,7 @@ pub struct PlanFalKling21Master {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_2_1_master(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ use crate::api::common_aspect_ratio::CommonAspectRatio;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::{optional_url, require_url};
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use fal_client::requests::webhook::video::image::enqueue_kling_v2p1_pro_image_to_video_webhook::{
|
||||
@@ -19,7 +19,7 @@ pub struct PlanFalKling21Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_2_1_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ use crate::api::common_aspect_ratio::CommonAspectRatio;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::optional_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
@@ -38,7 +38,7 @@ pub struct PlanFalKling2p5TurboPro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_2_5_turbo_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ use crate::api::common_aspect_ratio::CommonAspectRatio;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::optional_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
@@ -36,7 +36,7 @@ pub struct PlanFalKling2p6Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_2_6_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+3
-3
@@ -2,7 +2,7 @@ use crate::api::common_aspect_ratio::CommonAspectRatio;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::optional_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
@@ -37,7 +37,7 @@ pub struct PlanFalKling3p0Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_3p0_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let inner = build_kling_3p0_plan(request, "Kling 3.0 Pro")?;
|
||||
Ok(VideoGenerationPlan::FalKling3p0Pro(PlanFalKling3p0Pro {
|
||||
@@ -60,7 +60,7 @@ pub(crate) struct Kling3p0Common {
|
||||
}
|
||||
|
||||
pub(crate) fn build_kling_3p0_plan(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
_model_label: &'static str,
|
||||
) -> Result<Kling3p0Common, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_3p0_pro::{
|
||||
build_kling_3p0_plan, FalKling3p0AspectRatio, FalKling3p0Duration, FalKling3p0Mode,
|
||||
};
|
||||
@@ -16,7 +16,7 @@ pub struct PlanFalKling3p0Standard {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_kling_3p0_standard(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let inner = build_kling_3p0_plan(request, "Kling 3.0 Standard")?;
|
||||
Ok(VideoGenerationPlan::FalKling3p0Standard(PlanFalKling3p0Standard {
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::common_resolution::CommonResolution;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::{optional_url, require_url};
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use fal_client::requests::webhook::video::image::enqueue_seedance_1_lite_image_to_video_webhook::{
|
||||
@@ -21,7 +21,7 @@ pub struct PlanFalSeedance10Lite {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_seedance_1_0_lite(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::common_resolution::CommonResolution;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::optional_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
@@ -58,7 +58,7 @@ pub struct PlanFalSeedance1p5Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_seedance_1p5_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::common_resolution::CommonResolution;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::optional_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
@@ -44,7 +44,7 @@ pub struct PlanFalSora2 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_sora_2(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::common_resolution::CommonResolution;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_kling_1_6_pro::optional_url;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
@@ -44,7 +44,7 @@ pub struct PlanFalSora2Pro {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_sora_2_pro(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use fal_client::requests::webhook::video::image::enqueue_veo_2_image_to_video_webhook::{
|
||||
Veo2AspectRatio, Veo2Duration,
|
||||
@@ -29,7 +29,7 @@ pub struct PlanFalVeo2 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_veo_2(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use fal_client::requests::webhook::video::image::enqueue_veo_3_image_to_video_webhook::{
|
||||
Veo3I2vAspectRatio, Veo3I2vDuration, Veo3I2vResolution,
|
||||
@@ -70,7 +70,7 @@ pub struct PlanFalVeo3 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_veo_3(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use crate::api::common_aspect_ratio::CommonAspectRatio;
|
||||
use fal_client::requests::webhook::video::image::enqueue_veo_3_fast_image_to_video_webhook::{
|
||||
@@ -21,7 +21,7 @@ pub struct PlanFalVeo3Fast {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_veo_3_fast(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@ use crate::api::image_ref::ImageRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
|
||||
/// Three-way internal selection of which Fal Veo 3.1 endpoint to call.
|
||||
@@ -49,14 +49,14 @@ pub struct PlanFalVeo3p1 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_veo_3p1(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let plan = build_plan_fal_veo_3p1(request, "Veo 3.1")?;
|
||||
Ok(VideoGenerationPlan::FalVeo3p1(plan))
|
||||
}
|
||||
|
||||
pub(crate) fn build_plan_fal_veo_3p1(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
model_label: &'static str,
|
||||
) -> Result<PlanFalVeo3p1, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::plan::fal::plan_generate_video_fal_veo_3p1::{
|
||||
build_plan_fal_veo_3p1, PlanFalVeo3p1,
|
||||
};
|
||||
@@ -14,7 +14,7 @@ pub struct PlanFalVeo3p1Fast {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_fal_veo_3p1_fast(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let inner = build_plan_fal_veo_3p1(request, "Veo 3.1 Fast")?;
|
||||
Ok(VideoGenerationPlan::FalVeo3p1Fast(PlanFalVeo3p1Fast { inner }))
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ use crate::api::image_list_ref::ImageListRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use muapi_client::requests::seedance_2p0_image_to_video::seedance_2p0_image_to_video::{
|
||||
AspectRatio as I2vAspectRatio,
|
||||
@@ -41,7 +41,7 @@ pub struct PlanMuapiSeedance2p0 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_muapi_seedance2p0(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ use crate::api::video_list_ref::VideoListRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{
|
||||
KinoviGenerateVideoRequest as SeedanceGenerateVideoRequest,
|
||||
@@ -21,7 +21,7 @@ pub struct PlanSeedance2proSeedance2p0 {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_seedance2pro_seedance2p0(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ use crate::api::video_list_ref::VideoListRef;
|
||||
use crate::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{
|
||||
KinoviGenerateVideoRequest as SeedanceGenerateVideoRequest,
|
||||
@@ -21,7 +21,7 @@ pub struct PlanSeedance2proSeedance2p0Fast {
|
||||
}
|
||||
|
||||
pub fn plan_generate_video_seedance2pro_seedance2p0_fast(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, ArtcraftRouterError> {
|
||||
let strategy = request.request_mismatch_mitigation_strategy;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ use crate::client::router_artcraft_client::RouterArtcraftClient;
|
||||
use crate::client::router_client::RouterClient;
|
||||
use crate::client::router_fal_client::RouterFalClient;
|
||||
use crate::generate::generate_image::generate_image_request::GenerateImageRequest;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use artcraft_client::credentials::storyteller_credential_set::StorytellerCredentialSet;
|
||||
use artcraft_client::utils::api_host::ApiHost;
|
||||
use fal_client::creds::fal_api_key::FalApiKey;
|
||||
@@ -314,8 +314,8 @@ pub fn base_flux_pro_1p1_ultra_image_request() -> GenerateImageRequest {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn base_video_request() -> GenerateVideoRequest {
|
||||
GenerateVideoRequest {
|
||||
pub fn base_video_request() -> GenerateVideoRequestBuilder {
|
||||
GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: Some("a cat in space".to_string()),
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ use artcraft_router::api::video_list_ref::VideoListRef;
|
||||
use artcraft_router::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use artcraft_router::client::router_artcraft_client::RouterArtcraftClient;
|
||||
use artcraft_router::client::router_client::RouterClient;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use enums::common::generation_provider::GenerationProvider;
|
||||
use enums::tauri::tasks::task_type::TaskType;
|
||||
use log::{error, info};
|
||||
@@ -33,7 +33,7 @@ pub(super) async fn handle_artcraft_seedance_2p0(
|
||||
let end_frame = request.end_frame_image_media_token.clone().map(ImageRef::MediaFileToken);
|
||||
let reference_images = request.reference_image_media_tokens.clone().map(ImageListRef::MediaFileTokens);
|
||||
|
||||
let router_request = GenerateVideoRequest {
|
||||
let router_request = GenerateVideoRequestBuilder {
|
||||
model: CommonVideoModel::Seedance2p0,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: request.prompt.clone(),
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ use artcraft_router::api::provider::Provider;
|
||||
use artcraft_router::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use artcraft_router::client::router_artcraft_client::RouterArtcraftClient;
|
||||
use artcraft_router::client::router_client::RouterClient;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use enums::common::generation_provider::GenerationProvider;
|
||||
use enums::tauri::tasks::task_type::TaskType;
|
||||
use log::{error, info};
|
||||
@@ -31,7 +31,7 @@ pub(super) async fn handle_artcraft_video_via_router(
|
||||
let start_frame = request.image_media_token.clone().map(ImageRef::MediaFileToken);
|
||||
let end_frame = request.end_frame_image_media_token.clone().map(ImageRef::MediaFileToken);
|
||||
|
||||
let router_request = GenerateVideoRequest {
|
||||
let router_request = GenerateVideoRequestBuilder {
|
||||
model,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: request.prompt.clone(),
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ use artcraft_router::api::common_resolution::CommonResolution as RouterResolutio
|
||||
use artcraft_router::api::common_video_model::CommonVideoModel as RouterVideoModel;
|
||||
use artcraft_router::api::provider::Provider as RouterProvider;
|
||||
use artcraft_router::client::request_mismatch_mitigation_strategy::RequestMismatchMitigationStrategy;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use enums::common::generation::common_aspect_ratio::CommonAspectRatio;
|
||||
use enums::common::generation::common_video_model::CommonVideoModel;
|
||||
use enums::common::generation::common_resolution::CommonResolution;
|
||||
@@ -38,7 +38,7 @@ pub async fn estimate_video_cost_handler(
|
||||
let router_aspect_ratio = request.aspect_ratio.map(map_aspect_ratio);
|
||||
let router_resolution = request.resolution.map(map_resolution);
|
||||
|
||||
let router_request = GenerateVideoRequest {
|
||||
let router_request = GenerateVideoRequestBuilder {
|
||||
model: router_model,
|
||||
provider: router_provider,
|
||||
prompt: None,
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ use artcraft_router::api::image_ref::ImageRef;
|
||||
use artcraft_router::api::provider::Provider;
|
||||
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::GenerateVideoRequest;
|
||||
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_resolution::CommonResolution as CommonResolutionEnum;
|
||||
use enums::common::generation::common_video_model::CommonVideoModel as CommonVideoModelEnum;
|
||||
@@ -49,7 +49,7 @@ fn convert_resolution(
|
||||
|
||||
pub fn hydrate_to_router_request(
|
||||
request: &OmniGenVideoCostAndGenerateRequest,
|
||||
) -> Result<GenerateVideoRequest, AdvancedCommonWebError> {
|
||||
) -> Result<GenerateVideoRequestBuilder, AdvancedCommonWebError> {
|
||||
let api_model = request.model.as_ref()
|
||||
.ok_or_else(|| AdvancedCommonWebError::BadInputWithSimpleMessage(
|
||||
"model is required".to_string(),
|
||||
@@ -65,7 +65,7 @@ pub fn hydrate_to_router_request(
|
||||
.map(convert_resolution)
|
||||
.transpose()?;
|
||||
|
||||
Ok(GenerateVideoRequest {
|
||||
Ok(GenerateVideoRequestBuilder {
|
||||
model,
|
||||
provider: Provider::Artcraft,
|
||||
prompt: request.prompt.clone(),
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
use artcraft_router::api::provider::Provider;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use artcraft_router::generate::generate_video::video_generation_cost_estimate::VideoGenerationCostEstimate;
|
||||
use log::warn;
|
||||
|
||||
@@ -9,9 +9,9 @@ use crate::http_server::common_responses::advanced_common_web_error::AdvancedCom
|
||||
/// Always uses the Artcraft provider for costing regardless of the execution provider.
|
||||
/// (Because we're the ones doing the billing.)
|
||||
pub fn request_to_costs(
|
||||
request: &GenerateVideoRequest,
|
||||
request: &GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationCostEstimate, AdvancedCommonWebError> {
|
||||
let cost_request = GenerateVideoRequest {
|
||||
let cost_request = GenerateVideoRequestBuilder {
|
||||
provider: Provider::Artcraft,
|
||||
..(*request).clone()
|
||||
};
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
use artcraft_router::api::provider::Provider;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use artcraft_router::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use log::warn;
|
||||
|
||||
@@ -8,7 +8,7 @@ use crate::http_server::common_responses::advanced_common_web_error::AdvancedCom
|
||||
/// Build a video generation plan from a transformed request.
|
||||
/// Overrides the provider to Fal for execution (costing uses Artcraft separately).
|
||||
pub fn request_to_plan(
|
||||
request: &mut GenerateVideoRequest,
|
||||
request: &mut GenerateVideoRequestBuilder,
|
||||
) -> Result<VideoGenerationPlan, AdvancedCommonWebError> {
|
||||
request.provider = Provider::Fal;
|
||||
|
||||
|
||||
+5
-5
@@ -18,7 +18,7 @@ use artcraft_router::api::image_list_ref::ImageListRef;
|
||||
use artcraft_router::api::image_ref::ImageRef;
|
||||
use artcraft_router::api::provider::Provider;
|
||||
use artcraft_router::api::video_list_ref::VideoListRef;
|
||||
use artcraft_router::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use artcraft_router::generate::generate_video::generate_video_request_builder::GenerateVideoRequestBuilder;
|
||||
use artcraft_router::generate::generate_video::video_generation_cost_estimate::VideoGenerationCostEstimate;
|
||||
use artcraft_router::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use tokens::tokens::media_files::MediaFileToken;
|
||||
@@ -31,7 +31,7 @@ use super::distill_helper::hydrate_to_router_request::hydrate_to_router_request;
|
||||
/// request: the router request, the bill-on cost estimate, and the executable
|
||||
/// plan, all in one place.
|
||||
pub struct DistilledVideoRequest {
|
||||
request: GenerateVideoRequest,
|
||||
request: GenerateVideoRequestBuilder,
|
||||
|
||||
/// Cost estimate as computed by the Artcraft provider — this is what we bill on.
|
||||
pub cost: VideoGenerationCostEstimate,
|
||||
@@ -51,7 +51,7 @@ impl DistilledVideoRequest {
|
||||
|
||||
/// Borrow the underlying router request. Useful for tests / debugging.
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn request(&self) -> &GenerateVideoRequest {
|
||||
pub(crate) fn request(&self) -> &GenerateVideoRequestBuilder {
|
||||
&self.request
|
||||
}
|
||||
}
|
||||
@@ -70,7 +70,7 @@ pub fn distill_video_request(
|
||||
// `initial` already has media fields in token form (from hydrate_to_router_request),
|
||||
// which is exactly what the Artcraft cost builder needs. Just swap the provider.
|
||||
let cost: VideoGenerationCostEstimate = {
|
||||
let cost_request = GenerateVideoRequest {
|
||||
let cost_request = GenerateVideoRequestBuilder {
|
||||
provider: Provider::Artcraft,
|
||||
..initial.clone()
|
||||
};
|
||||
@@ -104,7 +104,7 @@ pub fn distill_video_request(
|
||||
)?;
|
||||
|
||||
// 4. Build the execution request with resolved URLs.
|
||||
let exec_request = GenerateVideoRequest {
|
||||
let exec_request = GenerateVideoRequestBuilder {
|
||||
model: initial.model,
|
||||
provider: execution_provider,
|
||||
prompt: initial.prompt,
|
||||
|
||||
Reference in new issue
Block a user