Compare commits

...
Author SHA1 Message Date
Brandon Thomas b65b5d62fa failures refunded info 2026-05-16 19:31:15 -04:00
89 changed files with 112 additions and 3 deletions
@@ -23,4 +23,10 @@ pub struct OmniGenImageCostResponse {
/// Whether the output will have a watermark.
pub has_watermark: bool,
/// Whether failures are refunded.
/// True: 100% yes
/// False: 100% no
/// None: Unknown or variable
pub failures_are_refunded: Option<bool>,
}
@@ -18,9 +18,15 @@ pub struct OmniGenVideoCostResponse {
/// Whether the user has unlimited generations.
pub is_unlimited: bool,
/// Whether the user is rate limited.
/// Whether the user is rate-limited.
pub is_rate_limited: bool,
/// Whether the output will have a watermark.
pub has_watermark: bool,
/// Whether failures are refunded.
/// True: 100% yes
/// False: 100% no
/// None: Unknown or variable
pub failures_are_refunded: Option<bool>,
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_flux_1_dev(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -12,6 +12,7 @@ pub(crate) fn estimate_image_cost_artcraft_flux_1_schnell(
is_unlimited: true,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_flux_2_lora_angles(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -28,6 +28,7 @@ pub(crate) fn estimate_image_cost_artcraft_flux_pro_1p1(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_flux_pro_1p1_ultra(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -48,6 +48,7 @@ pub(crate) fn estimate_image_cost_artcraft_gpt_image_1(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -54,6 +54,7 @@ pub(crate) fn estimate_image_cost_artcraft_gpt_image_1p5(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -47,6 +47,7 @@ pub(crate) fn estimate_image_cost_artcraft_gpt_image_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_nano_banana(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -37,6 +37,7 @@ pub(crate) fn estimate_image_cost_artcraft_nano_banana_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -31,6 +31,7 @@ pub(crate) fn estimate_image_cost_artcraft_nano_banana_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_qwen_edit_2511_angles(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_seedream_4(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_seedream_4p5(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -25,6 +25,7 @@ pub(crate) fn estimate_image_cost_artcraft_seedream_5_lite(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -22,5 +22,6 @@ pub(crate) fn estimate_image_cost_fal_flux_1_dev(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -22,5 +22,6 @@ pub(crate) fn estimate_image_cost_fal_flux_1_schnell(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -17,5 +17,6 @@ pub(crate) fn estimate_image_cost_fal_flux_pro_1p1(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_image_cost_fal_flux_pro_1p1_ultra(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -47,6 +47,7 @@ pub(crate) fn estimate_image_cost_fal_gpt_image_1(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -38,6 +38,7 @@ pub(crate) fn estimate_image_cost_fal_gpt_image_1p5(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -47,6 +47,7 @@ pub(crate) fn estimate_image_cost_fal_gpt_image_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -30,5 +30,6 @@ pub(crate) fn estimate_image_cost_fal_nano_banana(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -40,5 +40,6 @@ pub(crate) fn estimate_image_cost_fal_nano_banana_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -29,6 +29,7 @@ pub(crate) fn estimate_image_cost_fal_nano_banana_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -15,5 +15,6 @@ pub(crate) fn estimate_image_cost_fal_seedream_4(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -15,5 +15,6 @@ pub(crate) fn estimate_image_cost_fal_seedream_4p5(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -15,5 +15,6 @@ pub(crate) fn estimate_image_cost_fal_seedream_5_lite(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -7,4 +7,10 @@ pub struct ImageGenerationCostEstimate {
pub is_unlimited: bool,
pub is_rate_limited: bool,
pub has_watermark: bool,
/// Whether failures are refunded.
/// True: 100% yes
/// False: 100% no
/// None: Unknown or variable
pub failures_are_refunded: Option<bool>,
}
@@ -23,7 +23,8 @@ impl FalFlux1DevCostState {
is_free: false,
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -24,6 +24,7 @@ impl FalFlux1SchnellCostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -26,6 +26,7 @@ impl FalGptImage1CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -26,6 +26,7 @@ impl FalGptImage1p5CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -26,6 +26,7 @@ impl FalGptImage2CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -24,6 +24,7 @@ impl FalNanoBanana2CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -24,6 +24,7 @@ impl FalNanoBananaProCostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -22,6 +22,7 @@ pub(crate) fn estimate_splat_cost_artcraft_marble_0p1_mini(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -22,6 +22,7 @@ pub(crate) fn estimate_splat_cost_artcraft_marble_0p1_plus(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -6,4 +6,5 @@ pub struct SplatGenerationCostEstimate {
pub is_unlimited: bool,
pub is_rate_limited: bool,
pub has_watermark: bool,
pub failures_are_refunded: Option<bool>,
}
@@ -47,6 +47,7 @@ pub(crate) fn estimate_video_cost_artcraft_kling3p0_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -47,6 +47,7 @@ pub(crate) fn estimate_video_cost_artcraft_kling3p0_standard(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_artcraft_kling_1_6_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_artcraft_kling_2_1_master(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_artcraft_kling_2_1_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_artcraft_kling_2_5_turbo_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -22,5 +22,6 @@ pub(crate) fn estimate_video_cost_artcraft_kling_2_6_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -50,6 +50,7 @@ pub(crate) fn estimate_video_cost_artcraft_seedance1p5_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -47,6 +47,7 @@ pub (crate) fn estimate_video_cost_artcraft_seedance2p0(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -47,6 +47,7 @@ pub(crate) fn estimate_video_cost_artcraft_seedance2p0_fast(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -42,5 +42,6 @@ pub(crate) fn estimate_video_cost_artcraft_seedance_1_0_lite(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_artcraft_sora_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -17,5 +17,6 @@ pub(crate) fn estimate_video_cost_artcraft_sora_2_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_artcraft_veo_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -17,5 +17,6 @@ pub(crate) fn estimate_video_cost_artcraft_veo_3(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -17,5 +17,6 @@ pub(crate) fn estimate_video_cost_artcraft_veo_3_fast(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -17,5 +17,6 @@ pub(crate) fn estimate_video_cost_artcraft_veo_3p1(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -17,5 +17,6 @@ pub(crate) fn estimate_video_cost_artcraft_veo_3p1_fast(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_fal_kling_1_6_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_fal_kling_2_1_master(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_fal_kling_2_1_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_fal_kling_2_5_turbo_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -22,5 +22,6 @@ pub(crate) fn estimate_video_cost_fal_kling_2_6_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -19,5 +19,6 @@ pub(crate) fn estimate_video_cost_fal_kling_3p0_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -18,5 +18,6 @@ pub(crate) fn estimate_video_cost_fal_kling_3p0_standard(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -28,5 +28,6 @@ pub(crate) fn estimate_video_cost_fal_seedance_1_0_lite(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -31,6 +31,7 @@ pub(crate) fn estimate_video_cost_fal_seedance_1p5_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,5 +14,6 @@ pub(crate) fn estimate_video_cost_fal_sora_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_fal_sora_2_pro(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_fal_veo_2(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_fal_veo_3(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_fal_veo_3_fast(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_fal_veo_3p1(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -16,5 +16,6 @@ pub(crate) fn estimate_video_cost_fal_veo_3p1_fast(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -55,5 +55,6 @@ pub(crate) fn estimate_video_cost_muapi_seedance2p0(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,6 +14,7 @@ pub(crate) fn estimate_video_cost_seedance2pro_seedance2p0(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -14,6 +14,7 @@ pub(crate) fn estimate_video_cost_seedance2pro_seedance2p0_fast(
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
@@ -7,4 +7,10 @@ pub struct VideoGenerationCostEstimate {
pub is_unlimited: bool,
pub is_rate_limited: bool,
pub has_watermark: bool,
/// Whether failures are refunded.
/// True: 100% yes
/// False: 100% no
/// None: Unknown or variable
pub failures_are_refunded: Option<bool>,
}
@@ -58,7 +58,8 @@ impl ArtcraftHappyHorse1p0CostState {
is_free: false,
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -60,6 +60,7 @@ impl ArtcraftSeedance2p0CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -57,6 +57,7 @@ impl ArtcraftSeedance2p0FastCostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -22,6 +22,7 @@ impl GmiCloudSeedance2p0FastGCostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -22,6 +22,7 @@ impl GmiCloudSeedance2p0GCostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -52,6 +52,7 @@ impl KinoviHappyHorse1p0CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -68,6 +68,7 @@ impl KinoviSeedance2p0CostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -68,6 +68,7 @@ impl KinoviSeedance2p0FastCostState {
is_unlimited: false,
is_rate_limited: false,
has_watermark: false,
failures_are_refunded: None,
}
}
}
@@ -49,6 +49,7 @@ pub async fn omni_gen_image_cost_handler(
is_unlimited: estimate.is_unlimited,
is_rate_limited: estimate.is_rate_limited,
has_watermark: estimate.has_watermark,
failures_are_refunded: estimate.failures_are_refunded,
}))
}
@@ -79,5 +79,6 @@ pub async fn omni_gen_video_cost_handler(
is_unlimited: estimate.is_unlimited,
is_rate_limited: estimate.is_rate_limited,
has_watermark: estimate.has_watermark,
failures_are_refunded: estimate.failures_are_refunded,
}))
}