mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-31 23:47:51 +00:00
wire up model
This commit is contained in:
1 parent
b94ce8943a
commit
4f8a79148a
3 files changed
+40
-6
No files matched your search
+18
-4
@@ -13,13 +13,11 @@ use crate::state::server_state::ServerState;
|
||||
pub fn build_router_client(
|
||||
provider: Provider,
|
||||
server_state: &ServerState,
|
||||
use_alternate_kinovi: bool,
|
||||
) -> Result<RouterClient, AdvancedCommonWebError> {
|
||||
match provider {
|
||||
Provider::Seedance2Pro => {
|
||||
let session = Seedance2ProSession::from_cookies_string(
|
||||
server_state.seedance2pro.cookies.clone()
|
||||
);
|
||||
Ok(RouterClient::Seedance2Pro(RouterSeedance2ProClient::new(session)))
|
||||
kinovi_provider(server_state, use_alternate_kinovi)
|
||||
}
|
||||
Provider::Fal => {
|
||||
let fal_client = RouterFalClient::new(
|
||||
@@ -40,3 +38,19 @@ pub fn build_router_client(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn kinovi_provider(server_state: &ServerState, use_alternate_kinovi: bool) -> Result<RouterClient, AdvancedCommonWebError> {
|
||||
let session = if use_alternate_kinovi {
|
||||
// Standard Kinovi
|
||||
Seedance2ProSession::from_cookies_string(
|
||||
server_state.seedance2pro.cookies_whitelist.clone()
|
||||
)
|
||||
} else {
|
||||
// Standard Kinovi
|
||||
Seedance2ProSession::from_cookies_string(
|
||||
server_state.seedance2pro.cookies.clone()
|
||||
)
|
||||
};
|
||||
|
||||
Ok(RouterClient::Seedance2Pro(RouterSeedance2ProClient::new(session)))
|
||||
}
|
||||
+3
-1
@@ -15,7 +15,9 @@ pub(crate) async fn execute_generation_fal(
|
||||
plan: &VideoGenerationPlan,
|
||||
server_state: &ServerState,
|
||||
) -> Result<GenerateVideoResponse, AdvancedCommonWebError> {
|
||||
let router_client = build_router_client(Provider::Fal, server_state)?;
|
||||
const USE_ALTERNATE_KINOVI: bool = false;
|
||||
|
||||
let router_client = build_router_client(Provider::Fal, server_state, USE_ALTERNATE_KINOVI)?;
|
||||
|
||||
let response = plan.generate_video(&router_client)
|
||||
.await
|
||||
|
||||
+19
-1
@@ -39,6 +39,22 @@ pub async fn run_pipeline_v2(args: RunPipelineV2Args<'_>) -> Result<PipelineResu
|
||||
kinovi_character_id_map,
|
||||
} = args;
|
||||
|
||||
let mut router_builder = router_builder.clone();
|
||||
|
||||
let mut use_alternate_kinovi = false;
|
||||
|
||||
match router_builder.model {
|
||||
CommonVideoModel::PreviewModel => {
|
||||
router_builder.model = CommonVideoModel::Seedance2p0;
|
||||
use_alternate_kinovi = true;
|
||||
},
|
||||
CommonVideoModel::PreviewModelFast => {
|
||||
router_builder.model = CommonVideoModel::Seedance2p0Fast;
|
||||
use_alternate_kinovi = true;
|
||||
},
|
||||
_ => {}, // Fall-through
|
||||
}
|
||||
|
||||
let provider = match router_builder.model {
|
||||
CommonVideoModel::HappyHorse1p0 => Provider::Seedance2Pro,
|
||||
CommonVideoModel::Seedance2p0 => Provider::Seedance2Pro,
|
||||
@@ -97,6 +113,7 @@ pub async fn run_pipeline_v2(args: RunPipelineV2Args<'_>) -> Result<PipelineResu
|
||||
server_state,
|
||||
media_file_to_url_map.as_ref(),
|
||||
kinovi_character_id_map.as_ref(),
|
||||
use_alternate_kinovi,
|
||||
).await;
|
||||
|
||||
// 5. On failure, refund wallet for Kinovi requests.
|
||||
@@ -129,10 +146,11 @@ async fn upload_and_generate(
|
||||
server_state: &ServerState,
|
||||
media_file_urls_by_token: Option<&HashMap<MediaFileToken, String>>,
|
||||
kinovi_character_ids: Option<&HashMap<CharacterToken, String>>,
|
||||
use_alternate_kinovi: bool,
|
||||
) -> Result<GenerateVideoResponse, AdvancedCommonWebError> {
|
||||
|
||||
let provider = draft_or_request.get_provider();
|
||||
let client = build_router_client(provider, server_state)?;
|
||||
let client = build_router_client(provider, server_state, use_alternate_kinovi)?;
|
||||
|
||||
let video_request = match draft_or_request {
|
||||
VideoGenerationDraftOrRequest::Request(request) => request,
|
||||
|
||||
Reference in new issue
Block a user