@howells/motif-sdk 1.0.0 → 1.1.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/image.js CHANGED
@@ -812,6 +812,35 @@ var MODELS = {
812
812
  supportsSyncMode: true,
813
813
  type: "generation"
814
814
  },
815
+ qwen3: {
816
+ benchmark: {
817
+ tiers: { price: "budget", quality: "better", speed: "unknown" },
818
+ useCase: "Qwen Image 3 - successor to qwen; no leaderboard data yet"
819
+ },
820
+ endpoint: "fal-ai/qwen-image-3/text-to-image",
821
+ falPricing: {
822
+ checkedAt: "2026-08-05",
823
+ currency: "USD",
824
+ endpointId: "fal-ai/qwen-image-3/text-to-image",
825
+ estimatedCostPerImageUsd: 0.02,
826
+ source: "fal-pricing-api",
827
+ unit: "megapixels",
828
+ unitPrice: 0.02
829
+ },
830
+ name: "Qwen Image 3",
831
+ pricePerImageUsd: 0.02,
832
+ pricing: "$0.02/MP (assumed from qwen v1; fal pricing page bot-gated at check time)",
833
+ sizeMode: "image_size_enum",
834
+ supportsAspect: true,
835
+ supportsEdit: false,
836
+ supportsNegativePrompt: true,
837
+ supportsNumImages: true,
838
+ supportsOutputFormat: true,
839
+ supportsResolution: false,
840
+ supportsSafetyChecker: true,
841
+ supportsSeed: true,
842
+ type: "generation"
843
+ },
815
844
  // ─── Video Models ─────────────────────────────────────────────
816
845
  kling: {
817
846
  endpoint: "fal-ai/kling-video/v3/pro/image-to-video",
@@ -889,7 +918,8 @@ var GENERATION_MODELS = [
889
918
  "ideogram",
890
919
  "ideogram4",
891
920
  "grok-image",
892
- "qwen"
921
+ "qwen",
922
+ "qwen3"
893
923
  ];
894
924
  var EDIT_CAPABLE_MODELS = GENERATION_MODELS.filter(
895
925
  (id) => MODELS[id]?.supportsEdit === true
package/dist/index.cjs CHANGED
@@ -964,6 +964,35 @@ var MODELS = {
964
964
  supportsSyncMode: true,
965
965
  type: "generation"
966
966
  },
967
+ qwen3: {
968
+ benchmark: {
969
+ tiers: { price: "budget", quality: "better", speed: "unknown" },
970
+ useCase: "Qwen Image 3 - successor to qwen; no leaderboard data yet"
971
+ },
972
+ endpoint: "fal-ai/qwen-image-3/text-to-image",
973
+ falPricing: {
974
+ checkedAt: "2026-08-05",
975
+ currency: "USD",
976
+ endpointId: "fal-ai/qwen-image-3/text-to-image",
977
+ estimatedCostPerImageUsd: 0.02,
978
+ source: "fal-pricing-api",
979
+ unit: "megapixels",
980
+ unitPrice: 0.02
981
+ },
982
+ name: "Qwen Image 3",
983
+ pricePerImageUsd: 0.02,
984
+ pricing: "$0.02/MP (assumed from qwen v1; fal pricing page bot-gated at check time)",
985
+ sizeMode: "image_size_enum",
986
+ supportsAspect: true,
987
+ supportsEdit: false,
988
+ supportsNegativePrompt: true,
989
+ supportsNumImages: true,
990
+ supportsOutputFormat: true,
991
+ supportsResolution: false,
992
+ supportsSafetyChecker: true,
993
+ supportsSeed: true,
994
+ type: "generation"
995
+ },
967
996
  // ─── Video Models ─────────────────────────────────────────────
968
997
  kling: {
969
998
  endpoint: "fal-ai/kling-video/v3/pro/image-to-video",
@@ -1041,7 +1070,8 @@ var GENERATION_MODELS = [
1041
1070
  "ideogram",
1042
1071
  "ideogram4",
1043
1072
  "grok-image",
1044
- "qwen"
1073
+ "qwen",
1074
+ "qwen3"
1045
1075
  ];
1046
1076
  var EDIT_CAPABLE_MODELS = GENERATION_MODELS.filter(
1047
1077
  (id) => MODELS[id]?.supportsEdit === true
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", "seedream5", "seedream5-lite", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux2-turbo", "flux", "flux-fast", "recraft", "recraft4", "ideogram", "ideogram4", "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", "qwen3"];
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" | "seedream5" | "seedream5-lite" | "flux2-max" | "flux2-pro" | "flux2-flex" | "flux2-dev" | "flux2-turbo" | "flux" | "flux-fast" | "recraft" | "recraft4" | "ideogram" | "ideogram4" | "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" | "qwen3")[];
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];
@@ -558,7 +558,7 @@ declare class FalClient {
558
558
  /** Model registry. */
559
559
  get models(): Record<string, ModelConfig>;
560
560
  /** Generation model keys. */
561
- 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"];
561
+ 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", "qwen3"];
562
562
  /** Utility model keys. */
563
563
  get utilityModels(): readonly ["clarity", "crystal", "rmbg", "bria"];
564
564
  /** 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", "seedream5", "seedream5-lite", "flux2-max", "flux2-pro", "flux2-flex", "flux2-dev", "flux2-turbo", "flux", "flux-fast", "recraft", "recraft4", "ideogram", "ideogram4", "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", "qwen3"];
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" | "seedream5" | "seedream5-lite" | "flux2-max" | "flux2-pro" | "flux2-flex" | "flux2-dev" | "flux2-turbo" | "flux" | "flux-fast" | "recraft" | "recraft4" | "ideogram" | "ideogram4" | "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" | "qwen3")[];
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];
@@ -558,7 +558,7 @@ declare class FalClient {
558
558
  /** Model registry. */
559
559
  get models(): Record<string, ModelConfig>;
560
560
  /** Generation model keys. */
561
- 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"];
561
+ 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", "qwen3"];
562
562
  /** Utility model keys. */
563
563
  get utilityModels(): readonly ["clarity", "crystal", "rmbg", "bria"];
564
564
  /** Registered fal utility/tool endpoints. */
package/dist/index.js CHANGED
@@ -905,6 +905,35 @@ var MODELS = {
905
905
  supportsSyncMode: true,
906
906
  type: "generation"
907
907
  },
908
+ qwen3: {
909
+ benchmark: {
910
+ tiers: { price: "budget", quality: "better", speed: "unknown" },
911
+ useCase: "Qwen Image 3 - successor to qwen; no leaderboard data yet"
912
+ },
913
+ endpoint: "fal-ai/qwen-image-3/text-to-image",
914
+ falPricing: {
915
+ checkedAt: "2026-08-05",
916
+ currency: "USD",
917
+ endpointId: "fal-ai/qwen-image-3/text-to-image",
918
+ estimatedCostPerImageUsd: 0.02,
919
+ source: "fal-pricing-api",
920
+ unit: "megapixels",
921
+ unitPrice: 0.02
922
+ },
923
+ name: "Qwen Image 3",
924
+ pricePerImageUsd: 0.02,
925
+ pricing: "$0.02/MP (assumed from qwen v1; fal pricing page bot-gated at check time)",
926
+ sizeMode: "image_size_enum",
927
+ supportsAspect: true,
928
+ supportsEdit: false,
929
+ supportsNegativePrompt: true,
930
+ supportsNumImages: true,
931
+ supportsOutputFormat: true,
932
+ supportsResolution: false,
933
+ supportsSafetyChecker: true,
934
+ supportsSeed: true,
935
+ type: "generation"
936
+ },
908
937
  // ─── Video Models ─────────────────────────────────────────────
909
938
  kling: {
910
939
  endpoint: "fal-ai/kling-video/v3/pro/image-to-video",
@@ -982,7 +1011,8 @@ var GENERATION_MODELS = [
982
1011
  "ideogram",
983
1012
  "ideogram4",
984
1013
  "grok-image",
985
- "qwen"
1014
+ "qwen",
1015
+ "qwen3"
986
1016
  ];
987
1017
  var EDIT_CAPABLE_MODELS = GENERATION_MODELS.filter(
988
1018
  (id) => MODELS[id]?.supportsEdit === true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@howells/motif-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Public Node SDK for Motif fal.ai generation, editing, utility tools, and model metadata.",
5
5
  "keywords": [
6
6
  "fal",