@howells/motif-sdk 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -146,6 +146,7 @@ var AA_IMAGE_SOURCES = [
146
146
  "https://artificialanalysis.ai/image/leaderboard/editing"
147
147
  ];
148
148
  var FAL_PRICING_CHECKED_AT = "2026-05-12";
149
+ var FAL_PRICING_CHECKED_JUL_2026 = "2026-07-11";
149
150
  var MODELS = {
150
151
  // ─── Generation Models ────────────────────────────────────────
151
152
  gpt2: {
@@ -455,6 +456,58 @@ var MODELS = {
455
456
  supportsSyncMode: true,
456
457
  maxReferenceImages: 10
457
458
  },
459
+ seedream5: {
460
+ name: "Seedream 5.0 Pro",
461
+ endpoint: "bytedance/seedream/v5/pro/text-to-image",
462
+ editEndpoint: "bytedance/seedream/v5/pro/edit",
463
+ type: "generation",
464
+ // fal tiers Seedream v5 Pro by output size: $0.0675 up to 1536², $0.135 up to 2048².
465
+ pricing: "$0.0675 (\u22641536\xB2) / $0.135 (\u22642048\xB2)",
466
+ pricePerImageUsd: 0.0675,
467
+ falPricing: {
468
+ endpointId: "bytedance/seedream/v5/pro/text-to-image",
469
+ unitPrice: 0.0675,
470
+ unit: "images",
471
+ currency: "USD",
472
+ estimatedCostPerImageUsd: 0.0675,
473
+ source: "fal-pricing-api",
474
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
475
+ },
476
+ sizeMode: "image_size_enum",
477
+ supportsAspect: true,
478
+ supportsResolution: false,
479
+ supportsEdit: true,
480
+ supportsNumImages: true,
481
+ supportsSeed: true,
482
+ supportsSyncMode: true,
483
+ maxReferenceImages: 10
484
+ },
485
+ "seedream5-lite": {
486
+ name: "Seedream 5.0 Lite",
487
+ endpoint: "fal-ai/bytedance/seedream/v5/lite/text-to-image",
488
+ editEndpoint: "fal-ai/bytedance/seedream/v5/lite/edit",
489
+ type: "generation",
490
+ // Flat price regardless of resolution; native up to Auto 3K (~9.4MP).
491
+ pricing: "$0.035",
492
+ pricePerImageUsd: 0.035,
493
+ falPricing: {
494
+ endpointId: "fal-ai/bytedance/seedream/v5/lite/text-to-image",
495
+ unitPrice: 0.035,
496
+ unit: "images",
497
+ currency: "USD",
498
+ estimatedCostPerImageUsd: 0.035,
499
+ source: "fal-pricing-api",
500
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
501
+ },
502
+ sizeMode: "image_size_enum",
503
+ supportsAspect: true,
504
+ supportsResolution: false,
505
+ supportsEdit: true,
506
+ supportsNumImages: true,
507
+ supportsSeed: true,
508
+ supportsSyncMode: true,
509
+ maxReferenceImages: 10
510
+ },
458
511
  "flux2-max": {
459
512
  name: "FLUX.2 Max",
460
513
  endpoint: "fal-ai/flux-2-max",
@@ -588,7 +641,7 @@ var MODELS = {
588
641
  maxReferenceImages: 10
589
642
  },
590
643
  "flux2-dev": {
591
- name: "FLUX.2 Dev",
644
+ name: "FLUX.2 [dev]",
592
645
  endpoint: "fal-ai/flux-2",
593
646
  editEndpoint: "fal-ai/flux-2/edit",
594
647
  type: "generation",
@@ -631,6 +684,32 @@ var MODELS = {
631
684
  supportsSyncMode: true,
632
685
  maxReferenceImages: 10
633
686
  },
687
+ "flux2-turbo": {
688
+ name: "FLUX.2 Turbo",
689
+ endpoint: "fal-ai/flux-2/turbo",
690
+ type: "generation",
691
+ pricing: "$0.008/MP",
692
+ pricePerImageUsd: 8e-3,
693
+ falPricing: {
694
+ endpointId: "fal-ai/flux-2/turbo",
695
+ unitPrice: 8e-3,
696
+ unit: "megapixels",
697
+ currency: "USD",
698
+ estimatedCostPerImageUsd: 8e-3,
699
+ source: "fal-pricing-api",
700
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
701
+ },
702
+ sizeMode: "image_size_enum",
703
+ supportsAspect: true,
704
+ supportsResolution: false,
705
+ supportsEdit: false,
706
+ supportsNumImages: true,
707
+ supportsOutputFormat: true,
708
+ supportsSafetyChecker: true,
709
+ supportsSeed: true,
710
+ supportsGuidanceScale: true,
711
+ supportsSyncMode: true
712
+ },
634
713
  flux: {
635
714
  name: "FLUX Pro Ultra",
636
715
  endpoint: "fal-ai/flux-pro/v1.1-ultra",
@@ -709,6 +788,29 @@ var MODELS = {
709
788
  supportsStyle: true,
710
789
  supportsSyncMode: true
711
790
  },
791
+ recraft4: {
792
+ name: "Recraft V4",
793
+ endpoint: "fal-ai/recraft/v4/text-to-image",
794
+ type: "generation",
795
+ pricing: "$0.04",
796
+ pricePerImageUsd: 0.04,
797
+ falPricing: {
798
+ endpointId: "fal-ai/recraft/v4/text-to-image",
799
+ unitPrice: 0.04,
800
+ unit: "images",
801
+ currency: "USD",
802
+ estimatedCostPerImageUsd: 0.04,
803
+ source: "fal-pricing-api",
804
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
805
+ },
806
+ sizeMode: "image_size_enum",
807
+ supportsAspect: true,
808
+ supportsResolution: false,
809
+ supportsEdit: false,
810
+ supportsNumImages: false,
811
+ supportsStyle: true,
812
+ supportsSyncMode: true
813
+ },
712
814
  ideogram: {
713
815
  name: "Ideogram V3",
714
816
  endpoint: "fal-ai/ideogram/v3",
@@ -736,6 +838,36 @@ var MODELS = {
736
838
  supportsStyle: true,
737
839
  supportsSyncMode: true
738
840
  },
841
+ ideogram4: {
842
+ name: "Ideogram V4",
843
+ endpoint: "ideogram/v4",
844
+ type: "generation",
845
+ // fal bills v4 per output megapixel by rendering speed: TURBO $0.03, BALANCED
846
+ // $0.06, QUALITY $0.10 (plus a flat $0.03 when prompt expansion is used).
847
+ // Headline uses the TURBO 1MP rate, matching how ideogram v3 is modeled.
848
+ pricing: "$0.03",
849
+ pricePerImageUsd: 0.03,
850
+ falPricing: {
851
+ endpointId: "ideogram/v4",
852
+ unitPrice: 0.03,
853
+ unit: "megapixels",
854
+ currency: "USD",
855
+ estimatedCostPerImageUsd: 0.03,
856
+ source: "fal-pricing-api",
857
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
858
+ },
859
+ sizeMode: "image_size_enum",
860
+ supportsAspect: true,
861
+ supportsResolution: false,
862
+ supportsEdit: false,
863
+ supportsNumImages: true,
864
+ supportsRenderingSpeed: true,
865
+ supportsSeed: true,
866
+ supportsOutputFormat: true,
867
+ supportedOutputFormats: ["jpeg", "png"],
868
+ supportsSafetyChecker: true,
869
+ supportsSyncMode: true
870
+ },
739
871
  "grok-image": {
740
872
  name: "Grok Imagine Image",
741
873
  endpoint: "xai/grok-imagine-image",
@@ -831,7 +963,7 @@ var MODELS = {
831
963
  name: "Clarity Upscaler",
832
964
  endpoint: "fal-ai/clarity-upscaler",
833
965
  type: "utility",
834
- pricing: "$0.02",
966
+ pricing: "$0.03/MP",
835
967
  supportsAspect: false,
836
968
  supportsResolution: false,
837
969
  supportsEdit: false,
@@ -877,14 +1009,19 @@ var GENERATION_MODELS = [
877
1009
  "gemini3",
878
1010
  "seedream4",
879
1011
  "seedream45",
1012
+ "seedream5",
1013
+ "seedream5-lite",
880
1014
  "flux2-max",
881
1015
  "flux2-pro",
882
1016
  "flux2-flex",
883
1017
  "flux2-dev",
1018
+ "flux2-turbo",
884
1019
  "flux",
885
1020
  "flux-fast",
886
1021
  "recraft",
1022
+ "recraft4",
887
1023
  "ideogram",
1024
+ "ideogram4",
888
1025
  "grok-image",
889
1026
  "qwen"
890
1027
  ];
@@ -945,6 +1082,9 @@ function estimateCost(model, resolution, numImages = 1) {
945
1082
  if ((model === "banana" || model === "gemini3") && resolution === "4K") {
946
1083
  return configuredPrice * 2 * numImages;
947
1084
  }
1085
+ if (model === "seedream5" && (resolution === "2K" || resolution === "4K")) {
1086
+ return configuredPrice * 2 * numImages;
1087
+ }
948
1088
  if (model === "banana2") {
949
1089
  const multiplier = resolution === "4K" ? 2 : resolution === "2K" ? 1.5 : resolution === "0.5K" ? 0.75 : 1;
950
1090
  return configuredPrice * multiplier * numImages;
@@ -969,6 +1109,7 @@ function estimateCost(model, resolution, numImages = 1) {
969
1109
  case "flux-fast":
970
1110
  return 3e-3 * numImages;
971
1111
  case "clarity":
1112
+ return 0.03 * numImages;
972
1113
  case "crystal":
973
1114
  case "rmbg":
974
1115
  case "bria":
package/dist/index.d.cts CHANGED
@@ -463,9 +463,9 @@ declare const VIDEO_TEXT_TO_VIDEO_TOP_15: LeaderboardSnapshot;
463
463
  declare const VIDEO_IMAGE_TO_VIDEO_TOP_15: LeaderboardSnapshot;
464
464
 
465
465
  declare const MODELS: Record<string, ModelConfig>;
466
- declare const GENERATION_MODELS: readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux", "flux-fast", "recraft", "ideogram", "grok-image", "qwen"];
466
+ declare const GENERATION_MODELS: readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "seedream5", "seedream5-lite", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux2-turbo", "flux", "flux-fast", "recraft", "recraft4", "ideogram", "ideogram4", "grok-image", "qwen"];
467
467
  /** Models whose fal endpoints support image editing (vary/edit flows). */
468
- declare const EDIT_CAPABLE_MODELS: ("gpt2" | "gpt" | "banana2" | "banana" | "gemini" | "gemini3" | "seedream4" | "seedream45" | "flux2-max" | "flux2-pro" | "flux2-flex" | "flux2-dev" | "flux" | "flux-fast" | "recraft" | "ideogram" | "grok-image" | "qwen")[];
468
+ declare const EDIT_CAPABLE_MODELS: ("gpt2" | "gpt" | "banana2" | "banana" | "gemini" | "gemini3" | "seedream4" | "seedream45" | "seedream5" | "seedream5-lite" | "flux2-max" | "flux2-pro" | "flux2-flex" | "flux2-dev" | "flux2-turbo" | "flux" | "flux-fast" | "recraft" | "recraft4" | "ideogram" | "ideogram4" | "grok-image" | "qwen")[];
469
469
  declare const UTILITY_MODELS: readonly ["clarity", "crystal", "rmbg", "bria"];
470
470
  declare const VIDEO_MODELS: readonly ["kling"];
471
471
  type GenerationModelName = (typeof GENERATION_MODELS)[number];
@@ -554,7 +554,7 @@ declare class MotifServer {
554
554
  /** Model registry. */
555
555
  get models(): Record<string, ModelConfig>;
556
556
  /** Generation model keys. */
557
- get generationModels(): readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux", "flux-fast", "recraft", "ideogram", "grok-image", "qwen"];
557
+ get generationModels(): readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "seedream5", "seedream5-lite", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux2-turbo", "flux", "flux-fast", "recraft", "recraft4", "ideogram", "ideogram4", "grok-image", "qwen"];
558
558
  /** Utility model keys. */
559
559
  get utilityModels(): readonly ["clarity", "crystal", "rmbg", "bria"];
560
560
  /** Registered fal utility/tool endpoints. */
package/dist/index.d.ts CHANGED
@@ -463,9 +463,9 @@ declare const VIDEO_TEXT_TO_VIDEO_TOP_15: LeaderboardSnapshot;
463
463
  declare const VIDEO_IMAGE_TO_VIDEO_TOP_15: LeaderboardSnapshot;
464
464
 
465
465
  declare const MODELS: Record<string, ModelConfig>;
466
- declare const GENERATION_MODELS: readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux", "flux-fast", "recraft", "ideogram", "grok-image", "qwen"];
466
+ declare const GENERATION_MODELS: readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "seedream5", "seedream5-lite", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux2-turbo", "flux", "flux-fast", "recraft", "recraft4", "ideogram", "ideogram4", "grok-image", "qwen"];
467
467
  /** Models whose fal endpoints support image editing (vary/edit flows). */
468
- declare const EDIT_CAPABLE_MODELS: ("gpt2" | "gpt" | "banana2" | "banana" | "gemini" | "gemini3" | "seedream4" | "seedream45" | "flux2-max" | "flux2-pro" | "flux2-flex" | "flux2-dev" | "flux" | "flux-fast" | "recraft" | "ideogram" | "grok-image" | "qwen")[];
468
+ declare const EDIT_CAPABLE_MODELS: ("gpt2" | "gpt" | "banana2" | "banana" | "gemini" | "gemini3" | "seedream4" | "seedream45" | "seedream5" | "seedream5-lite" | "flux2-max" | "flux2-pro" | "flux2-flex" | "flux2-dev" | "flux2-turbo" | "flux" | "flux-fast" | "recraft" | "recraft4" | "ideogram" | "ideogram4" | "grok-image" | "qwen")[];
469
469
  declare const UTILITY_MODELS: readonly ["clarity", "crystal", "rmbg", "bria"];
470
470
  declare const VIDEO_MODELS: readonly ["kling"];
471
471
  type GenerationModelName = (typeof GENERATION_MODELS)[number];
@@ -554,7 +554,7 @@ declare class MotifServer {
554
554
  /** Model registry. */
555
555
  get models(): Record<string, ModelConfig>;
556
556
  /** Generation model keys. */
557
- get generationModels(): readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux", "flux-fast", "recraft", "ideogram", "grok-image", "qwen"];
557
+ get generationModels(): readonly ["gpt2", "gpt", "banana2", "banana", "gemini", "gemini3", "seedream4", "seedream45", "seedream5", "seedream5-lite", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux2-turbo", "flux", "flux-fast", "recraft", "recraft4", "ideogram", "ideogram4", "grok-image", "qwen"];
558
558
  /** Utility model keys. */
559
559
  get utilityModels(): readonly ["clarity", "crystal", "rmbg", "bria"];
560
560
  /** Registered fal utility/tool endpoints. */
package/dist/index.js CHANGED
@@ -87,6 +87,7 @@ var AA_IMAGE_SOURCES = [
87
87
  "https://artificialanalysis.ai/image/leaderboard/editing"
88
88
  ];
89
89
  var FAL_PRICING_CHECKED_AT = "2026-05-12";
90
+ var FAL_PRICING_CHECKED_JUL_2026 = "2026-07-11";
90
91
  var MODELS = {
91
92
  // ─── Generation Models ────────────────────────────────────────
92
93
  gpt2: {
@@ -396,6 +397,58 @@ var MODELS = {
396
397
  supportsSyncMode: true,
397
398
  maxReferenceImages: 10
398
399
  },
400
+ seedream5: {
401
+ name: "Seedream 5.0 Pro",
402
+ endpoint: "bytedance/seedream/v5/pro/text-to-image",
403
+ editEndpoint: "bytedance/seedream/v5/pro/edit",
404
+ type: "generation",
405
+ // fal tiers Seedream v5 Pro by output size: $0.0675 up to 1536², $0.135 up to 2048².
406
+ pricing: "$0.0675 (\u22641536\xB2) / $0.135 (\u22642048\xB2)",
407
+ pricePerImageUsd: 0.0675,
408
+ falPricing: {
409
+ endpointId: "bytedance/seedream/v5/pro/text-to-image",
410
+ unitPrice: 0.0675,
411
+ unit: "images",
412
+ currency: "USD",
413
+ estimatedCostPerImageUsd: 0.0675,
414
+ source: "fal-pricing-api",
415
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
416
+ },
417
+ sizeMode: "image_size_enum",
418
+ supportsAspect: true,
419
+ supportsResolution: false,
420
+ supportsEdit: true,
421
+ supportsNumImages: true,
422
+ supportsSeed: true,
423
+ supportsSyncMode: true,
424
+ maxReferenceImages: 10
425
+ },
426
+ "seedream5-lite": {
427
+ name: "Seedream 5.0 Lite",
428
+ endpoint: "fal-ai/bytedance/seedream/v5/lite/text-to-image",
429
+ editEndpoint: "fal-ai/bytedance/seedream/v5/lite/edit",
430
+ type: "generation",
431
+ // Flat price regardless of resolution; native up to Auto 3K (~9.4MP).
432
+ pricing: "$0.035",
433
+ pricePerImageUsd: 0.035,
434
+ falPricing: {
435
+ endpointId: "fal-ai/bytedance/seedream/v5/lite/text-to-image",
436
+ unitPrice: 0.035,
437
+ unit: "images",
438
+ currency: "USD",
439
+ estimatedCostPerImageUsd: 0.035,
440
+ source: "fal-pricing-api",
441
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
442
+ },
443
+ sizeMode: "image_size_enum",
444
+ supportsAspect: true,
445
+ supportsResolution: false,
446
+ supportsEdit: true,
447
+ supportsNumImages: true,
448
+ supportsSeed: true,
449
+ supportsSyncMode: true,
450
+ maxReferenceImages: 10
451
+ },
399
452
  "flux2-max": {
400
453
  name: "FLUX.2 Max",
401
454
  endpoint: "fal-ai/flux-2-max",
@@ -529,7 +582,7 @@ var MODELS = {
529
582
  maxReferenceImages: 10
530
583
  },
531
584
  "flux2-dev": {
532
- name: "FLUX.2 Dev",
585
+ name: "FLUX.2 [dev]",
533
586
  endpoint: "fal-ai/flux-2",
534
587
  editEndpoint: "fal-ai/flux-2/edit",
535
588
  type: "generation",
@@ -572,6 +625,32 @@ var MODELS = {
572
625
  supportsSyncMode: true,
573
626
  maxReferenceImages: 10
574
627
  },
628
+ "flux2-turbo": {
629
+ name: "FLUX.2 Turbo",
630
+ endpoint: "fal-ai/flux-2/turbo",
631
+ type: "generation",
632
+ pricing: "$0.008/MP",
633
+ pricePerImageUsd: 8e-3,
634
+ falPricing: {
635
+ endpointId: "fal-ai/flux-2/turbo",
636
+ unitPrice: 8e-3,
637
+ unit: "megapixels",
638
+ currency: "USD",
639
+ estimatedCostPerImageUsd: 8e-3,
640
+ source: "fal-pricing-api",
641
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
642
+ },
643
+ sizeMode: "image_size_enum",
644
+ supportsAspect: true,
645
+ supportsResolution: false,
646
+ supportsEdit: false,
647
+ supportsNumImages: true,
648
+ supportsOutputFormat: true,
649
+ supportsSafetyChecker: true,
650
+ supportsSeed: true,
651
+ supportsGuidanceScale: true,
652
+ supportsSyncMode: true
653
+ },
575
654
  flux: {
576
655
  name: "FLUX Pro Ultra",
577
656
  endpoint: "fal-ai/flux-pro/v1.1-ultra",
@@ -650,6 +729,29 @@ var MODELS = {
650
729
  supportsStyle: true,
651
730
  supportsSyncMode: true
652
731
  },
732
+ recraft4: {
733
+ name: "Recraft V4",
734
+ endpoint: "fal-ai/recraft/v4/text-to-image",
735
+ type: "generation",
736
+ pricing: "$0.04",
737
+ pricePerImageUsd: 0.04,
738
+ falPricing: {
739
+ endpointId: "fal-ai/recraft/v4/text-to-image",
740
+ unitPrice: 0.04,
741
+ unit: "images",
742
+ currency: "USD",
743
+ estimatedCostPerImageUsd: 0.04,
744
+ source: "fal-pricing-api",
745
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
746
+ },
747
+ sizeMode: "image_size_enum",
748
+ supportsAspect: true,
749
+ supportsResolution: false,
750
+ supportsEdit: false,
751
+ supportsNumImages: false,
752
+ supportsStyle: true,
753
+ supportsSyncMode: true
754
+ },
653
755
  ideogram: {
654
756
  name: "Ideogram V3",
655
757
  endpoint: "fal-ai/ideogram/v3",
@@ -677,6 +779,36 @@ var MODELS = {
677
779
  supportsStyle: true,
678
780
  supportsSyncMode: true
679
781
  },
782
+ ideogram4: {
783
+ name: "Ideogram V4",
784
+ endpoint: "ideogram/v4",
785
+ type: "generation",
786
+ // fal bills v4 per output megapixel by rendering speed: TURBO $0.03, BALANCED
787
+ // $0.06, QUALITY $0.10 (plus a flat $0.03 when prompt expansion is used).
788
+ // Headline uses the TURBO 1MP rate, matching how ideogram v3 is modeled.
789
+ pricing: "$0.03",
790
+ pricePerImageUsd: 0.03,
791
+ falPricing: {
792
+ endpointId: "ideogram/v4",
793
+ unitPrice: 0.03,
794
+ unit: "megapixels",
795
+ currency: "USD",
796
+ estimatedCostPerImageUsd: 0.03,
797
+ source: "fal-pricing-api",
798
+ checkedAt: FAL_PRICING_CHECKED_JUL_2026
799
+ },
800
+ sizeMode: "image_size_enum",
801
+ supportsAspect: true,
802
+ supportsResolution: false,
803
+ supportsEdit: false,
804
+ supportsNumImages: true,
805
+ supportsRenderingSpeed: true,
806
+ supportsSeed: true,
807
+ supportsOutputFormat: true,
808
+ supportedOutputFormats: ["jpeg", "png"],
809
+ supportsSafetyChecker: true,
810
+ supportsSyncMode: true
811
+ },
680
812
  "grok-image": {
681
813
  name: "Grok Imagine Image",
682
814
  endpoint: "xai/grok-imagine-image",
@@ -772,7 +904,7 @@ var MODELS = {
772
904
  name: "Clarity Upscaler",
773
905
  endpoint: "fal-ai/clarity-upscaler",
774
906
  type: "utility",
775
- pricing: "$0.02",
907
+ pricing: "$0.03/MP",
776
908
  supportsAspect: false,
777
909
  supportsResolution: false,
778
910
  supportsEdit: false,
@@ -818,14 +950,19 @@ var GENERATION_MODELS = [
818
950
  "gemini3",
819
951
  "seedream4",
820
952
  "seedream45",
953
+ "seedream5",
954
+ "seedream5-lite",
821
955
  "flux2-max",
822
956
  "flux2-pro",
823
957
  "flux2-flex",
824
958
  "flux2-dev",
959
+ "flux2-turbo",
825
960
  "flux",
826
961
  "flux-fast",
827
962
  "recraft",
963
+ "recraft4",
828
964
  "ideogram",
965
+ "ideogram4",
829
966
  "grok-image",
830
967
  "qwen"
831
968
  ];
@@ -886,6 +1023,9 @@ function estimateCost(model, resolution, numImages = 1) {
886
1023
  if ((model === "banana" || model === "gemini3") && resolution === "4K") {
887
1024
  return configuredPrice * 2 * numImages;
888
1025
  }
1026
+ if (model === "seedream5" && (resolution === "2K" || resolution === "4K")) {
1027
+ return configuredPrice * 2 * numImages;
1028
+ }
889
1029
  if (model === "banana2") {
890
1030
  const multiplier = resolution === "4K" ? 2 : resolution === "2K" ? 1.5 : resolution === "0.5K" ? 0.75 : 1;
891
1031
  return configuredPrice * multiplier * numImages;
@@ -910,6 +1050,7 @@ function estimateCost(model, resolution, numImages = 1) {
910
1050
  case "flux-fast":
911
1051
  return 3e-3 * numImages;
912
1052
  case "clarity":
1053
+ return 0.03 * numImages;
913
1054
  case "crystal":
914
1055
  case "rmbg":
915
1056
  case "bria":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@howells/motif-sdk",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Public Node SDK for Motif fal.ai generation, editing, utility tools, and model metadata.",
5
5
  "license": "MIT",
6
6
  "author": "Daniel Howells",