diff --git a/Cargo.lock b/Cargo.lock index 4f914313b3..d0e0eaccb5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -738,6 +738,7 @@ dependencies = [ name = "artcraft_api_defs" version = "0.0.1" dependencies = [ + "anyhow", "chrono", "enums", "enums_public", diff --git a/crates/api_clients/artcraft/artcraft_api_defs/Cargo.toml b/crates/api_clients/artcraft/artcraft_api_defs/Cargo.toml index 758d368610..5524074da2 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/Cargo.toml +++ b/crates/api_clients/artcraft/artcraft_api_defs/Cargo.toml @@ -36,3 +36,4 @@ serde_json.workspace = true utoipa = { version = "4", features = ["chrono", "actix_extras"] } [dev-dependencies] +anyhow.workspace = true \ No newline at end of file diff --git a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs index ef324a2427..8b14c68829 100644 --- a/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs +++ b/crates/api_clients/artcraft/artcraft_api_defs/src/generate/video/multi_function/seedance_2p0_multi_function_video_gen.rs @@ -66,3 +66,20 @@ pub struct Seedance2p0MultiFunctionVideoGenResponse { /// All inference job tokens for the batch (includes `inference_job_token` as the first entry). pub all_inference_job_tokens: Vec, } + +#[cfg(test)] +mod tests { + use super::*; + + fn aspect_to_string(input: Seedance2p0AspectRatio) -> anyhow::Result { + let val = serde_json::to_string(&input)?; + Ok(val.replace("\"", "")) + } + + #[test] + fn just_testing_snake_case() -> anyhow::Result<()> { + // Ugh, not sure what these are... + assert_eq!(aspect_to_string(Seedance2p0AspectRatio::Landscape16x9)?, "landscape16x9"); + Ok(()) + } +} \ No newline at end of file diff --git a/frontend/libs/components/model-selector/src/lib/defaultModelForPage.ts b/frontend/libs/components/model-selector/src/lib/defaultModelForPage.ts index dd99f3f696..31a3a539a1 100644 --- a/frontend/libs/components/model-selector/src/lib/defaultModelForPage.ts +++ b/frontend/libs/components/model-selector/src/lib/defaultModelForPage.ts @@ -9,7 +9,7 @@ export const defaultModelForPage = (models: Model[], page: ModelPage): Model => imageModel = IMAGE_MODELS_BY_ID.get("nano_banana_pro"); break; case ModelPage.ImageToVideo: - imageModel = VIDEO_MODELS_BY_ID.get("seedance_1_0_lite"); + imageModel = VIDEO_MODELS_BY_ID.get("seedance_2p0"); break; case ModelPage.Canvas2D: imageModel = IMAGE_MODELS_BY_ID.get("gpt_image_1p5"); diff --git a/frontend/libs/components/promptbox/src/lib/ImagePromptRow.tsx b/frontend/libs/components/promptbox/src/lib/ImagePromptRow.tsx index d113f0e84b..c92cec101f 100644 --- a/frontend/libs/components/promptbox/src/lib/ImagePromptRow.tsx +++ b/frontend/libs/components/promptbox/src/lib/ImagePromptRow.tsx @@ -60,6 +60,7 @@ interface ImagePromptRowProps { uploadImage?: UploadImageFn; onImageClick?: (image: RefImage) => void; isVideo?: boolean; + isReferenceMode?: boolean; endFrameImage?: RefImage; setEndFrameImage?: (image?: RefImage) => void; allowUploadEnd?: boolean; @@ -77,6 +78,7 @@ export const ImagePromptRow = ({ uploadImage, onImageClick, isVideo, + isReferenceMode, endFrameImage, setEndFrameImage, allowUploadEnd, @@ -116,7 +118,7 @@ export const ImagePromptRow = ({ }) ); - const SortableImage = ({ image }: { image: RefImage }) => { + const SortableImage = ({ image, index }: { image: RefImage; index: number }) => { const { attributes, listeners, @@ -151,6 +153,11 @@ export const ImagePromptRow = ({ alt="Reference" className="h-full w-full object-cover" /> + {isReferenceMode && ( +
+ {index + 1} +
+ )} + ))} + + )} {/* Hide the Add image button for video for now */} {/* */} -