diff --git a/crates/api_clients/fal_client/src/requests/webhook/image/angle/enqueue_qwen_edit_2511_edit_image_angle_webhook.rs b/crates/api_clients/fal_client/src/requests/webhook/image/angle/enqueue_qwen_edit_2511_edit_image_angle_webhook.rs index 9cdb0e2c83..3d79c572b7 100644 --- a/crates/api_clients/fal_client/src/requests/webhook/image/angle/enqueue_qwen_edit_2511_edit_image_angle_webhook.rs +++ b/crates/api_clients/fal_client/src/requests/webhook/image/angle/enqueue_qwen_edit_2511_edit_image_angle_webhook.rs @@ -118,18 +118,17 @@ mod tests { use crate::requests::webhook::image::angle::enqueue_qwen_edit_2511_edit_image_angle_webhook::{enqueue_qwen_edit_2511_edit_image_angle_webhook, EnqueueQwenEdit2511EditImageAngleArgs, EnqueueQwenEdit2511AngleNumImages, EnqueueQwenEdit2511AngleImageSize}; use errors::AnyhowResult; use std::fs::read_to_string; - use test_data::web::image_urls::GHOST_IMAGE_URL; + use test_data::web::image_urls::JUNO_AT_LAKE_IMAGE_URL; #[tokio::test] #[ignore] - async fn test() -> AnyhowResult<()> { + async fn test_single() -> AnyhowResult<()> { // XXX: Don't commit secrets! let secret = read_to_string("/Users/bt/Artcraft/credentials/fal_api_key.txt")?; - let api_key = FalApiKey::from_str(&secret); let args = EnqueueQwenEdit2511EditImageAngleArgs { - image_urls: vec![GHOST_IMAGE_URL.to_string()], + image_urls: vec![JUNO_AT_LAKE_IMAGE_URL.to_string()], horizontal_angle: Some(45.0), vertical_angle: Some(15.0), zoom: Some(5.0), @@ -144,6 +143,44 @@ mod tests { }; let _result = enqueue_qwen_edit_2511_edit_image_angle_webhook(args).await?; + Ok(()) + } + + /// Enqueues 9 angle combinations: 3 horizontal × 3 vertical × 3 zoom levels. + /// Each combination generates one image, for a total of 27 enqueued requests. + #[tokio::test] + #[ignore] + async fn test_angle_grid() -> AnyhowResult<()> { + let secret = read_to_string("/Users/bt/Artcraft/credentials/fal_api_key.txt")?; + let api_key = FalApiKey::from_str(&secret); + + let horizontal_angles: [f64; 3] = [-45.0, 0.0, 45.0]; + let vertical_angles: [f64; 3] = [-30.0, 0.0, 30.0]; + let zoom_levels: [f64; 3] = [0.0, 1.0, 3.0]; + + for &h in &horizontal_angles { + for &v in &vertical_angles { + for &z in &zoom_levels { + let args = EnqueueQwenEdit2511EditImageAngleArgs { + image_urls: vec![JUNO_AT_LAKE_IMAGE_URL.to_string()], + horizontal_angle: Some(h), + vertical_angle: Some(v), + zoom: Some(z), + additional_prompt: None, + num_images: Some(EnqueueQwenEdit2511AngleNumImages::One), + image_size: Some(EnqueueQwenEdit2511AngleImageSize::SquareHd), + lora_scale: None, + guidance_scale: None, + num_inference_steps: None, + api_key: &api_key, + webhook_url: "https://example.com/webhook", + }; + + let _result = enqueue_qwen_edit_2511_edit_image_angle_webhook(args).await?; + println!("Enqueued: h={}, v={}, z={}", h, v, z); + } + } + } Ok(()) }