mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-14 05:42:32 +00:00
enum variant and saving correct state
This commit is contained in:
1 parent
764a6e1c8d
commit
fca66a7902
2 files changed
+34
-6
No files matched your search
+23
-5
@@ -70,28 +70,46 @@ pub async fn insert_generic_inference_job_for_seedance2pro_queue_with_apriori_jo
|
||||
) -> Result<InferenceJobToken, DatabaseQueryError>
|
||||
where E: 'e + Executor<'c, Database = MySql>
|
||||
{
|
||||
let is_image_model = match args.maybe_model_type {
|
||||
Some(CommonModelType::Midjourney7) |
|
||||
Some(CommonModelType::Midjourney7Niji) |
|
||||
Some(CommonModelType::Midjourney8) => true,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
let (
|
||||
job_type,
|
||||
external_third_party,
|
||||
product_category
|
||||
) = match args.kinovi_version {
|
||||
KinoviVersion::Volcengine => (
|
||||
) = match (args.kinovi_version, is_image_model) {
|
||||
(KinoviVersion::Volcengine, true) => (
|
||||
InferenceJobType::Seedance2ProQueue,
|
||||
InferenceJobExternalThirdParty::Seedance2Pro,
|
||||
InferenceJobProductCategory::Seedance2ProVideo,
|
||||
),
|
||||
KinoviVersion::BytePlus => (
|
||||
(KinoviVersion::Volcengine, false) => (
|
||||
InferenceJobType::Seedance2ProQueue,
|
||||
InferenceJobExternalThirdParty::Seedance2Pro,
|
||||
InferenceJobProductCategory::Seedance2ProImage,
|
||||
),
|
||||
(KinoviVersion::BytePlus, _) => (
|
||||
InferenceJobType::Seedance2ProAltQueue,
|
||||
InferenceJobExternalThirdParty::Seedance2ProAlt,
|
||||
InferenceJobProductCategory::Seedance2ProVideoAlt,
|
||||
),
|
||||
KinoviVersion::BytePlusUltra => (
|
||||
(KinoviVersion::BytePlusUltra, _) => (
|
||||
InferenceJobType::Seedance2ProBytePlusUltraQueue,
|
||||
InferenceJobExternalThirdParty::Seedance2ProBytePlusUltra,
|
||||
InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra,
|
||||
),
|
||||
};
|
||||
|
||||
let inference_category = if is_image_model {
|
||||
InferenceCategory::ImageGeneration
|
||||
} else {
|
||||
InferenceCategory::VideoGeneration
|
||||
};
|
||||
|
||||
let record_id = insert_generic_inference_job_for_provider(InsertGenericInferenceJobForProviderArgs {
|
||||
apriori_job_token: args.apriori_job_token,
|
||||
uuid_idempotency_token: args.uuid_idempotency_token,
|
||||
@@ -99,7 +117,7 @@ pub async fn insert_generic_inference_job_for_seedance2pro_queue_with_apriori_jo
|
||||
external_third_party,
|
||||
external_third_party_id: args.maybe_external_third_party_id,
|
||||
product_category,
|
||||
inference_category: InferenceCategory::VideoGeneration,
|
||||
inference_category,
|
||||
maybe_model_type: args.maybe_model_type,
|
||||
maybe_prompt_token: args.maybe_prompt_token,
|
||||
maybe_wallet_ledger_entry_token: args.maybe_wallet_ledger_entry_token,
|
||||
|
||||
+11
-1
@@ -53,6 +53,10 @@ pub enum InferenceJobProductCategory {
|
||||
#[serde(rename = "seedance2pro_character")]
|
||||
Seedance2ProCharacter,
|
||||
|
||||
/// Seedance 2 Pro / Kinovi: Midjourney image generation.
|
||||
#[serde(rename = "seedance2pro_image")]
|
||||
Seedance2ProImage,
|
||||
|
||||
// =============== SEEDANCE 2 PRO ALT ===============
|
||||
|
||||
#[serde(rename = "seedance2pro_video_alt")]
|
||||
@@ -169,6 +173,7 @@ impl InferenceJobProductCategory {
|
||||
Self::BeebleVideo => "beeble_video",
|
||||
Self::Seedance2ProVideo => "seedance2pro_video",
|
||||
Self::Seedance2ProCharacter => "seedance2pro_character",
|
||||
Self::Seedance2ProImage => "seedance2pro_image",
|
||||
Self::Seedance2ProVideoAlt => "seedance2pro_video_alt",
|
||||
Self::Seedance2ProVideoBytePlusUltra => "seedance2pro_video_bpu",
|
||||
Self::WorldlabsSplat => "worldlabs_splat",
|
||||
@@ -209,6 +214,7 @@ impl InferenceJobProductCategory {
|
||||
"beeble_video" => Ok(Self::BeebleVideo),
|
||||
"seedance2pro_video" => Ok(Self::Seedance2ProVideo),
|
||||
"seedance2pro_character" => Ok(Self::Seedance2ProCharacter),
|
||||
"seedance2pro_image" => Ok(Self::Seedance2ProImage),
|
||||
"seedance2pro_video_alt" => Ok(Self::Seedance2ProVideoAlt),
|
||||
"seedance2pro_video_bpu" => Ok(Self::Seedance2ProVideoBytePlusUltra),
|
||||
"worldlabs_splat" => Ok(Self::WorldlabsSplat),
|
||||
@@ -252,6 +258,7 @@ impl InferenceJobProductCategory {
|
||||
Self::BeebleVideo,
|
||||
Self::Seedance2ProVideo,
|
||||
Self::Seedance2ProCharacter,
|
||||
Self::Seedance2ProImage,
|
||||
Self::Seedance2ProVideoAlt,
|
||||
Self::Seedance2ProVideoBytePlusUltra,
|
||||
Self::WorldlabsSplat,
|
||||
@@ -301,6 +308,7 @@ mod tests {
|
||||
assert_serialization(InferenceJobProductCategory::BeebleVideo, "beeble_video");
|
||||
assert_serialization(InferenceJobProductCategory::Seedance2ProVideo, "seedance2pro_video");
|
||||
assert_serialization(InferenceJobProductCategory::Seedance2ProCharacter, "seedance2pro_character");
|
||||
assert_serialization(InferenceJobProductCategory::Seedance2ProImage, "seedance2pro_image");
|
||||
assert_serialization(InferenceJobProductCategory::Seedance2ProVideoAlt, "seedance2pro_video_alt");
|
||||
assert_serialization(InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra, "seedance2pro_video_bpu");
|
||||
assert_serialization(InferenceJobProductCategory::WorldlabsSplat, "worldlabs_splat");
|
||||
@@ -340,6 +348,7 @@ mod tests {
|
||||
assert_eq!(InferenceJobProductCategory::BeebleVideo.to_str(), "beeble_video");
|
||||
assert_eq!(InferenceJobProductCategory::Seedance2ProVideo.to_str(), "seedance2pro_video");
|
||||
assert_eq!(InferenceJobProductCategory::Seedance2ProCharacter.to_str(), "seedance2pro_character");
|
||||
assert_eq!(InferenceJobProductCategory::Seedance2ProImage.to_str(), "seedance2pro_image");
|
||||
assert_eq!(InferenceJobProductCategory::Seedance2ProVideoAlt.to_str(), "seedance2pro_video_alt");
|
||||
assert_eq!(InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra.to_str(), "seedance2pro_video_bpu");
|
||||
assert_eq!(InferenceJobProductCategory::WorldlabsSplat.to_str(), "worldlabs_splat");
|
||||
@@ -378,6 +387,7 @@ mod tests {
|
||||
assert_eq!(InferenceJobProductCategory::from_str("beeble_video").unwrap(), InferenceJobProductCategory::BeebleVideo);
|
||||
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_video").unwrap(), InferenceJobProductCategory::Seedance2ProVideo);
|
||||
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_character").unwrap(), InferenceJobProductCategory::Seedance2ProCharacter);
|
||||
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_image").unwrap(), InferenceJobProductCategory::Seedance2ProImage);
|
||||
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_video_alt").unwrap(), InferenceJobProductCategory::Seedance2ProVideoAlt);
|
||||
assert_eq!(InferenceJobProductCategory::from_str("seedance2pro_video_bpu").unwrap(), InferenceJobProductCategory::Seedance2ProVideoBytePlusUltra);
|
||||
assert_eq!(InferenceJobProductCategory::from_str("worldlabs_splat").unwrap(), InferenceJobProductCategory::WorldlabsSplat);
|
||||
@@ -407,7 +417,7 @@ mod tests {
|
||||
#[test]
|
||||
fn all_variants() {
|
||||
// Static check
|
||||
const EXPECTED_COUNT : usize = 35;
|
||||
const EXPECTED_COUNT : usize = 36;
|
||||
|
||||
assert_eq!(InferenceJobProductCategory::all_variants().len(), EXPECTED_COUNT);
|
||||
assert_eq!(InferenceJobProductCategory::iter().len(), EXPECTED_COUNT);
|
||||
|
||||
Reference in new issue
Block a user