@howells/motif-sdk 0.4.0 → 0.5.1

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.d.ts CHANGED
@@ -57,30 +57,6 @@ declare const CREATIVE_FIELDS: readonly ["recipe", "shot", "lighting", "genre",
57
57
  * exact prompt clause that will be appended when selected.
58
58
  */
59
59
  declare const CREATIVE_TAXONOMY: {
60
- readonly recipe: readonly [{
61
- readonly clause: "cinematic scene";
62
- readonly description: "Frames the prompt as a cinematic still or scene.";
63
- readonly id: "cinematic";
64
- readonly label: "Cinematic";
65
- }];
66
- readonly shot: readonly [{
67
- readonly clause: "close-up composition with controlled depth of field";
68
- readonly description: "Tight framing that emphasizes subject detail.";
69
- readonly id: "close-up";
70
- readonly label: "Close-up";
71
- }];
72
- readonly lighting: readonly [{
73
- readonly clause: "rim lighting with defined edge highlights";
74
- readonly description: "Back or side light that separates the subject edge.";
75
- readonly id: "rim";
76
- readonly label: "Rim";
77
- }];
78
- readonly genre: readonly [{
79
- readonly clause: "film noir mood with high contrast shadows";
80
- readonly description: "High-contrast cinematic mood with shadow-forward drama.";
81
- readonly id: "film-noir";
82
- readonly label: "Film noir";
83
- }];
84
60
  readonly camera: readonly [{
85
61
  readonly clause: "macro product photography with crisp surface detail";
86
62
  readonly description: "Product-oriented macro camera language for close detail.";
@@ -93,6 +69,18 @@ declare const CREATIVE_TAXONOMY: {
93
69
  readonly id: "monochrome";
94
70
  readonly label: "Monochrome";
95
71
  }];
72
+ readonly genre: readonly [{
73
+ readonly clause: "film noir mood with high contrast shadows";
74
+ readonly description: "High-contrast cinematic mood with shadow-forward drama.";
75
+ readonly id: "film-noir";
76
+ readonly label: "Film noir";
77
+ }];
78
+ readonly lighting: readonly [{
79
+ readonly clause: "rim lighting with defined edge highlights";
80
+ readonly description: "Back or side light that separates the subject edge.";
81
+ readonly id: "rim";
82
+ readonly label: "Rim";
83
+ }];
96
84
  readonly material: readonly [{
97
85
  readonly clause: "reflective material surfaces with controlled highlights";
98
86
  readonly description: "Emphasizes reflections and highlight control on surfaces.";
@@ -105,6 +93,18 @@ declare const CREATIVE_TAXONOMY: {
105
93
  readonly id: "still";
106
94
  readonly label: "Still";
107
95
  }];
96
+ readonly recipe: readonly [{
97
+ readonly clause: "cinematic scene";
98
+ readonly description: "Frames the prompt as a cinematic still or scene.";
99
+ readonly id: "cinematic";
100
+ readonly label: "Cinematic";
101
+ }];
102
+ readonly shot: readonly [{
103
+ readonly clause: "close-up composition with controlled depth of field";
104
+ readonly description: "Tight framing that emphasizes subject detail.";
105
+ readonly id: "close-up";
106
+ readonly label: "Close-up";
107
+ }];
108
108
  };
109
109
  /** Result of applying creative direction to a base prompt. */
110
110
  interface CreativePromptResult {
@@ -150,10 +150,10 @@ type ImageQuality = "auto" | "low" | "medium" | "high";
150
150
  type ThinkingLevel = "minimal" | "high";
151
151
  type GptImageSize = "auto" | "1024x1024" | "1536x1024" | "1024x1536";
152
152
  type FalImageSizePreset = "auto" | "square_hd" | "square" | "portrait_4_3" | "portrait_16_9" | "landscape_4_3" | "landscape_16_9";
153
- type CustomImageSize = {
153
+ interface CustomImageSize {
154
154
  height: number;
155
155
  width: number;
156
- };
156
+ }
157
157
  type ImageSize = GptImageSize | FalImageSizePreset | CustomImageSize;
158
158
  /** How the model accepts image dimensions */
159
159
  type SizeMode = "aspect_ratio" | "image_size_enum" | "gpt_size" | "none";
@@ -380,10 +380,10 @@ interface QueuedJob {
380
380
  }
381
381
  interface JobStatus {
382
382
  error?: string;
383
- logs?: Array<{
383
+ logs?: {
384
384
  message: string;
385
385
  timestamp: string;
386
- }>;
386
+ }[];
387
387
  queuePosition?: number;
388
388
  status: "queued" | "processing" | "completed" | "failed";
389
389
  }
@@ -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,212 +554,170 @@ 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. */
561
561
  get tools(): {
562
- readonly nsfw: {
563
- readonly name: "NSFW Checker";
564
- readonly endpoint: "fal-ai/x-ailab/nsfw";
565
- readonly task: "vision moderation";
566
- readonly category: "moderation";
567
- readonly description: "Predict whether one or more images contain NSFW concepts.";
568
- readonly inputKind: "images";
569
- readonly inputField: "image_urls";
570
- readonly outputKeys: ["has_nsfw_concepts"];
571
- readonly pricing: "$0.001/image";
572
- readonly sourceUrl: "https://fal.ai/models/fal-ai/x-ailab/nsfw";
573
- };
574
- readonly "topaz-image": {
575
- readonly name: "Topaz Image Upscale";
576
- readonly endpoint: "fal-ai/topaz/upscale/image";
577
- readonly task: "image enhancement";
578
- readonly category: "upscale";
579
- readonly description: "Professional Topaz image enhancement and upscaling.";
580
- readonly inputKind: "image";
581
- readonly inputField: "image_url";
582
- readonly outputKeys: ["image"];
583
- readonly pricing: "$0.08+ by output megapixels";
584
- readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/image";
585
- readonly defaultOptions: {
586
- readonly model: "Standard V2";
587
- readonly output_format: "jpeg";
588
- readonly upscale_factor: 2;
589
- };
590
- };
591
- readonly "topaz-video": {
592
- readonly name: "Topaz Video Upscale";
593
- readonly endpoint: "fal-ai/topaz/upscale/video";
594
- readonly task: "video enhancement";
595
- readonly category: "upscale";
596
- readonly description: "Professional Topaz video enhancement and upscaling.";
597
- readonly inputKind: "video";
598
- readonly inputField: "video_url";
599
- readonly outputKeys: ["video"];
600
- readonly pricing: "$0.01-$0.08/sec by output resolution";
601
- readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/video";
602
- readonly defaultOptions: {
603
- readonly model: "Proteus";
604
- readonly upscale_factor: 2;
605
- };
606
- };
607
- readonly "bria-rmbg": {
608
- readonly name: "Bria RMBG 2.0";
609
- readonly endpoint: "fal-ai/bria/background/remove";
610
- readonly task: "image background removal";
611
- readonly category: "background";
612
- readonly description: "Commercial-safe background removal for images.";
613
- readonly inputKind: "image";
614
- readonly inputField: "image_url";
615
- readonly outputKeys: ["image"];
616
- readonly pricing: "$0.02/image";
617
- readonly sourceUrl: "https://fal.ai/models/fal-ai/bria/background/remove";
618
- };
619
562
  readonly birefnet: {
620
- readonly name: "BirefNet Background Removal";
621
- readonly endpoint: "fal-ai/birefnet/v2";
622
- readonly task: "image background removal";
623
563
  readonly category: "background";
624
- readonly description: "High-resolution dichotomous image segmentation and background removal.";
625
- readonly inputKind: "image";
626
- readonly inputField: "image_url";
627
- readonly outputKeys: ["image", "mask_image"];
628
- readonly pricing: "$0/compute-second listed by fal";
629
- readonly sourceUrl: "https://fal.ai/models/fal-ai/birefnet/v2";
630
564
  readonly defaultOptions: {
631
565
  readonly model: "General Use (Light)";
632
566
  readonly operating_resolution: "1024x1024";
633
567
  readonly output_format: "png";
634
568
  readonly refine_foreground: true;
635
569
  };
636
- };
637
- readonly rembg: {
638
- readonly name: "Remove Background";
639
- readonly endpoint: "fal-ai/imageutils/rembg";
570
+ readonly description: "High-resolution dichotomous image segmentation and background removal.";
571
+ readonly endpoint: "fal-ai/birefnet/v2";
572
+ readonly inputField: "image_url";
573
+ readonly inputKind: "image";
574
+ readonly name: "BirefNet Background Removal";
575
+ readonly outputKeys: ["image", "mask_image"];
576
+ readonly pricing: "$0/compute-second listed by fal";
577
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/birefnet/v2";
640
578
  readonly task: "image background removal";
579
+ };
580
+ readonly "bria-rmbg": {
641
581
  readonly category: "background";
642
- readonly description: "Generic image background removal utility.";
643
- readonly inputKind: "image";
582
+ readonly description: "Commercial-safe background removal for images.";
583
+ readonly endpoint: "fal-ai/bria/background/remove";
644
584
  readonly inputField: "image_url";
585
+ readonly inputKind: "image";
586
+ readonly name: "Bria RMBG 2.0";
645
587
  readonly outputKeys: ["image"];
646
- readonly pricing: "$0/compute-second listed by fal";
647
- readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/rembg";
648
- readonly defaultOptions: {
649
- readonly crop_to_bbox: false;
650
- };
588
+ readonly pricing: "$0.02/image";
589
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/bria/background/remove";
590
+ readonly task: "image background removal";
651
591
  };
652
592
  readonly "bria-video-rmbg": {
653
- readonly name: "Bria Video Background Removal";
654
- readonly endpoint: "bria/video/background-removal";
655
- readonly task: "video background removal";
656
593
  readonly category: "background";
657
- readonly description: "Remove video backgrounds with configurable output container.";
658
- readonly inputKind: "video";
659
- readonly inputField: "video_url";
660
- readonly outputKeys: ["video"];
661
- readonly pricing: "$0.14/sec";
662
- readonly sourceUrl: "https://fal.ai/models/bria/video/background-removal";
663
594
  readonly defaultOptions: {
664
595
  readonly background_color: "Black";
665
596
  readonly output_container_and_codec: "webm_vp9";
666
597
  readonly preserve_audio: true;
667
598
  };
599
+ readonly description: "Remove video backgrounds with configurable output container.";
600
+ readonly endpoint: "bria/video/background-removal";
601
+ readonly inputField: "video_url";
602
+ readonly inputKind: "video";
603
+ readonly name: "Bria Video Background Removal";
604
+ readonly outputKeys: ["video"];
605
+ readonly pricing: "$0.14/sec";
606
+ readonly sourceUrl: "https://fal.ai/models/bria/video/background-removal";
607
+ readonly task: "video background removal";
608
+ };
609
+ readonly "depth-anything": {
610
+ readonly category: "preprocess";
611
+ readonly description: "Generate Depth Anything v2 depth maps from input images.";
612
+ readonly endpoint: "fal-ai/image-preprocessors/depth-anything/v2";
613
+ readonly inputField: "image_url";
614
+ readonly inputKind: "image";
615
+ readonly name: "Depth Anything v2 Preprocessor";
616
+ readonly outputKeys: ["image"];
617
+ readonly pricing: "$0/compute-second listed by fal";
618
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/depth-anything/v2";
619
+ readonly task: "depth preprocessing";
668
620
  };
669
621
  readonly lineart: {
670
- readonly name: "Line Art Preprocessor";
671
- readonly endpoint: "fal-ai/image-preprocessors/lineart";
672
- readonly task: "image preprocessing";
673
622
  readonly category: "preprocess";
623
+ readonly defaultOptions: {
624
+ readonly coarse: false;
625
+ };
674
626
  readonly description: "Generate line art/control-style edges from an input image.";
675
- readonly inputKind: "image";
627
+ readonly endpoint: "fal-ai/image-preprocessors/lineart";
676
628
  readonly inputField: "image_url";
629
+ readonly inputKind: "image";
630
+ readonly name: "Line Art Preprocessor";
677
631
  readonly outputKeys: ["image"];
678
632
  readonly pricing: "$0/compute-second listed by fal";
679
633
  readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/lineart";
634
+ readonly task: "image preprocessing";
635
+ };
636
+ readonly "marigold-depth": {
637
+ readonly category: "depth";
680
638
  readonly defaultOptions: {
681
- readonly coarse: false;
639
+ readonly ensemble_size: 10;
640
+ readonly num_inference_steps: 10;
682
641
  };
683
- };
684
- readonly "sam-preprocessor": {
685
- readonly name: "SAM Preprocessor";
686
- readonly endpoint: "fal-ai/image-preprocessors/sam";
687
- readonly task: "segmentation preprocessing";
688
- readonly category: "preprocess";
689
- readonly description: "Generate a SAM segmentation map for ControlNet-style workflows.";
690
- readonly inputKind: "image";
642
+ readonly description: "Create depth maps using Marigold depth estimation.";
643
+ readonly endpoint: "fal-ai/imageutils/marigold-depth";
691
644
  readonly inputField: "image_url";
645
+ readonly inputKind: "image";
646
+ readonly name: "Marigold Depth Estimation";
692
647
  readonly outputKeys: ["image"];
693
648
  readonly pricing: "$0/compute-second listed by fal";
694
- readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/sam";
649
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/marigold-depth";
650
+ readonly task: "depth map";
695
651
  };
696
652
  readonly "midas-depth": {
697
- readonly name: "MiDaS Depth Estimation";
698
- readonly endpoint: "fal-ai/imageutils/depth";
699
- readonly task: "depth map";
700
653
  readonly category: "depth";
654
+ readonly defaultOptions: {
655
+ readonly a: number;
656
+ readonly bg_th: 0.1;
657
+ };
701
658
  readonly description: "Create MiDaS depth maps from input images.";
702
- readonly inputKind: "image";
659
+ readonly endpoint: "fal-ai/imageutils/depth";
703
660
  readonly inputField: "image_url";
661
+ readonly inputKind: "image";
662
+ readonly name: "MiDaS Depth Estimation";
704
663
  readonly outputKeys: ["image"];
705
664
  readonly pricing: "$0/compute-second listed by fal";
706
665
  readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/depth";
707
- readonly defaultOptions: {
708
- readonly a: number;
709
- readonly bg_th: 0.1;
710
- };
666
+ readonly task: "depth map";
711
667
  };
712
668
  readonly "midas-preprocessor": {
713
- readonly name: "MiDaS Preprocessor";
714
- readonly endpoint: "fal-ai/image-preprocessors/midas";
715
- readonly task: "depth and normal preprocessing";
716
669
  readonly category: "preprocess";
717
670
  readonly description: "Generate MiDaS depth and normal maps for image workflows.";
718
- readonly inputKind: "image";
671
+ readonly endpoint: "fal-ai/image-preprocessors/midas";
719
672
  readonly inputField: "image_url";
673
+ readonly inputKind: "image";
674
+ readonly name: "MiDaS Preprocessor";
720
675
  readonly outputKeys: ["depth_map", "normal_map"];
721
676
  readonly pricing: "$0/compute-second listed by fal";
722
677
  readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/midas";
678
+ readonly task: "depth and normal preprocessing";
723
679
  };
724
- readonly "marigold-depth": {
725
- readonly name: "Marigold Depth Estimation";
726
- readonly endpoint: "fal-ai/imageutils/marigold-depth";
727
- readonly task: "depth map";
728
- readonly category: "depth";
729
- readonly description: "Create depth maps using Marigold depth estimation.";
730
- readonly inputKind: "image";
731
- readonly inputField: "image_url";
732
- readonly outputKeys: ["image"];
733
- readonly pricing: "$0/compute-second listed by fal";
734
- readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/marigold-depth";
735
- readonly defaultOptions: {
736
- readonly ensemble_size: 10;
737
- readonly num_inference_steps: 10;
738
- };
680
+ readonly nsfw: {
681
+ readonly category: "moderation";
682
+ readonly description: "Predict whether one or more images contain NSFW concepts.";
683
+ readonly endpoint: "fal-ai/x-ailab/nsfw";
684
+ readonly inputField: "image_urls";
685
+ readonly inputKind: "images";
686
+ readonly name: "NSFW Checker";
687
+ readonly outputKeys: ["has_nsfw_concepts"];
688
+ readonly pricing: "$0.001/image";
689
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/x-ailab/nsfw";
690
+ readonly task: "vision moderation";
739
691
  };
740
- readonly "depth-anything": {
741
- readonly name: "Depth Anything v2 Preprocessor";
742
- readonly endpoint: "fal-ai/image-preprocessors/depth-anything/v2";
743
- readonly task: "depth preprocessing";
744
- readonly category: "preprocess";
745
- readonly description: "Generate Depth Anything v2 depth maps from input images.";
692
+ readonly rembg: {
693
+ readonly category: "background";
694
+ readonly defaultOptions: {
695
+ readonly crop_to_bbox: false;
696
+ };
697
+ readonly description: "Generic image background removal utility.";
698
+ readonly endpoint: "fal-ai/imageutils/rembg";
699
+ readonly inputField: "image_url";
746
700
  readonly inputKind: "image";
701
+ readonly name: "Remove Background";
702
+ readonly outputKeys: ["image"];
703
+ readonly pricing: "$0/compute-second listed by fal";
704
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/rembg";
705
+ readonly task: "image background removal";
706
+ };
707
+ readonly "sam-preprocessor": {
708
+ readonly category: "preprocess";
709
+ readonly description: "Generate a SAM segmentation map for ControlNet-style workflows.";
710
+ readonly endpoint: "fal-ai/image-preprocessors/sam";
747
711
  readonly inputField: "image_url";
712
+ readonly inputKind: "image";
713
+ readonly name: "SAM Preprocessor";
748
714
  readonly outputKeys: ["image"];
749
715
  readonly pricing: "$0/compute-second listed by fal";
750
- readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/depth-anything/v2";
716
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/sam";
717
+ readonly task: "segmentation preprocessing";
751
718
  };
752
719
  readonly "sam2-auto": {
753
- readonly name: "SAM 2 Auto Segment";
754
- readonly endpoint: "fal-ai/sam2/auto-segment";
755
- readonly task: "automatic image segmentation";
756
720
  readonly category: "segmentation";
757
- readonly description: "Automatically segment an image into combined and individual masks.";
758
- readonly inputKind: "image";
759
- readonly inputField: "image_url";
760
- readonly outputKeys: ["combined_mask", "individual_masks"];
761
- readonly pricing: "$0/compute-second listed by fal";
762
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam2/auto-segment";
763
721
  readonly defaultOptions: {
764
722
  readonly min_mask_region_area: 100;
765
723
  readonly output_format: "png";
@@ -767,151 +725,193 @@ declare class MotifServer {
767
725
  readonly pred_iou_thresh: 0.88;
768
726
  readonly stability_score_thresh: 0.95;
769
727
  };
728
+ readonly description: "Automatically segment an image into combined and individual masks.";
729
+ readonly endpoint: "fal-ai/sam2/auto-segment";
730
+ readonly inputField: "image_url";
731
+ readonly inputKind: "image";
732
+ readonly name: "SAM 2 Auto Segment";
733
+ readonly outputKeys: ["combined_mask", "individual_masks"];
734
+ readonly pricing: "$0/compute-second listed by fal";
735
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam2/auto-segment";
736
+ readonly task: "automatic image segmentation";
770
737
  };
771
- readonly "sam3-image": {
772
- readonly name: "SAM 3 Image";
773
- readonly endpoint: "fal-ai/sam-3/image";
774
- readonly task: "promptable image segmentation";
738
+ readonly "sam3-1-image": {
775
739
  readonly category: "segmentation";
776
- readonly description: "Segment image objects with text, point, or box prompts.";
777
- readonly inputKind: "image";
778
- readonly inputField: "image_url";
779
- readonly outputKeys: ["image", "masks", "metadata", "scores", "boxes"];
780
- readonly pricing: "$0.005/request";
781
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/image";
782
740
  readonly defaultOptions: {
783
741
  readonly apply_mask: true;
784
742
  readonly max_masks: 3;
785
743
  readonly output_format: "png";
786
744
  };
787
- };
788
- readonly "sam3-1-image": {
789
- readonly name: "SAM 3.1 Image";
790
- readonly endpoint: "fal-ai/sam-3-1/image";
791
- readonly task: "promptable image segmentation";
792
- readonly category: "segmentation";
793
745
  readonly description: "Segment image objects with text, point, or box prompts. SAM 3.1 adds Object Multiplex for faster multi-object tracking.";
794
- readonly inputKind: "image";
746
+ readonly endpoint: "fal-ai/sam-3-1/image";
795
747
  readonly inputField: "image_url";
748
+ readonly inputKind: "image";
749
+ readonly name: "SAM 3.1 Image";
796
750
  readonly outputKeys: ["image", "masks", "metadata", "scores", "boxes"];
797
751
  readonly pricing: "$0.005/request";
798
752
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3-1/image";
753
+ readonly task: "promptable image segmentation";
754
+ };
755
+ readonly "sam3-1-video": {
756
+ readonly category: "segmentation";
757
+ readonly defaultOptions: {
758
+ readonly apply_mask: true;
759
+ readonly prompt: "person";
760
+ };
761
+ readonly description: "SAM 3.1 video segmentation with Object Multiplex tracking for multiple objects.";
762
+ readonly endpoint: "fal-ai/sam-3-1/video";
763
+ readonly inputField: "video_url";
764
+ readonly inputKind: "video";
765
+ readonly name: "SAM 3.1 Video";
766
+ readonly outputKeys: ["video", "boundingbox_frames_zip"];
767
+ readonly pricing: "fal pricing varies by frame count";
768
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3-1/video";
769
+ readonly task: "multi-object video segmentation";
770
+ };
771
+ readonly "sam3-3d-align": {
772
+ readonly category: "3d";
773
+ readonly description: "Align SAM 3D objects and bodies into a shared scene.";
774
+ readonly endpoint: "fal-ai/sam-3/3d-align";
775
+ readonly inputField: "image_url";
776
+ readonly inputKind: "image";
777
+ readonly name: "SAM 3D Align";
778
+ readonly outputKeys: ["scene_glb", "metadata", "artifacts_zip"];
779
+ readonly pricing: "fal pricing varies by scene";
780
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-align";
781
+ readonly task: "3D scene alignment";
782
+ };
783
+ readonly "sam3-3d-body": {
784
+ readonly category: "3d";
785
+ readonly defaultOptions: {
786
+ readonly export_meshes: true;
787
+ readonly include_3d_keypoints: true;
788
+ readonly include_mhr_params: true;
789
+ };
790
+ readonly description: "Reconstruct human body meshes and keypoints from a single image.";
791
+ readonly endpoint: "fal-ai/sam-3/3d-body";
792
+ readonly inputField: "image_url";
793
+ readonly inputKind: "image";
794
+ readonly name: "SAM 3D Body";
795
+ readonly outputKeys: ["model_glb", "visualization", "meshes", "metadata"];
796
+ readonly pricing: "$0.015/inference";
797
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-body";
798
+ readonly task: "single-image 3D body reconstruction";
799
+ };
800
+ readonly "sam3-3d-objects": {
801
+ readonly category: "3d";
802
+ readonly defaultOptions: {
803
+ readonly prompt: "car";
804
+ };
805
+ readonly description: "Reconstruct one or more 3D objects from an image and prompts.";
806
+ readonly endpoint: "fal-ai/sam-3/3d-objects";
807
+ readonly inputField: "image_url";
808
+ readonly inputKind: "image";
809
+ readonly name: "SAM 3D Objects";
810
+ readonly outputKeys: ["gaussian_splat", "model_glb", "metadata", "individual_splats", "individual_glbs", "artifacts_zip"];
811
+ readonly pricing: "$0.02/generation";
812
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-objects";
813
+ readonly task: "single-image 3D object reconstruction";
814
+ };
815
+ readonly "sam3-image": {
816
+ readonly category: "segmentation";
799
817
  readonly defaultOptions: {
800
818
  readonly apply_mask: true;
801
819
  readonly max_masks: 3;
802
820
  readonly output_format: "png";
803
821
  };
822
+ readonly description: "Segment image objects with text, point, or box prompts.";
823
+ readonly endpoint: "fal-ai/sam-3/image";
824
+ readonly inputField: "image_url";
825
+ readonly inputKind: "image";
826
+ readonly name: "SAM 3 Image";
827
+ readonly outputKeys: ["image", "masks", "metadata", "scores", "boxes"];
828
+ readonly pricing: "$0.005/request";
829
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/image";
830
+ readonly task: "promptable image segmentation";
804
831
  };
805
832
  readonly "sam3-image-rle": {
806
- readonly name: "SAM 3 Image RLE";
807
- readonly endpoint: "fal-ai/sam-3/image-rle";
808
- readonly task: "promptable image segmentation to RLE";
809
833
  readonly category: "segmentation";
834
+ readonly defaultOptions: {
835
+ readonly apply_mask: true;
836
+ readonly max_masks: 3;
837
+ };
810
838
  readonly description: "Segment image objects and return run-length encoded masks.";
811
- readonly inputKind: "image";
839
+ readonly endpoint: "fal-ai/sam-3/image-rle";
812
840
  readonly inputField: "image_url";
841
+ readonly inputKind: "image";
842
+ readonly name: "SAM 3 Image RLE";
813
843
  readonly outputKeys: ["rle_masks", "metadata", "scores", "boxes"];
814
844
  readonly pricing: "$0.005/request";
815
845
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/image-rle";
816
- readonly defaultOptions: {
817
- readonly apply_mask: true;
818
- readonly max_masks: 3;
819
- };
846
+ readonly task: "promptable image segmentation to RLE";
820
847
  };
821
848
  readonly "sam3-video": {
822
- readonly name: "SAM 3 Video";
823
- readonly endpoint: "fal-ai/sam-3/video";
824
- readonly task: "promptable video segmentation";
825
849
  readonly category: "segmentation";
850
+ readonly defaultOptions: {
851
+ readonly apply_mask: true;
852
+ readonly detection_threshold: 0.5;
853
+ readonly prompt: "person";
854
+ readonly video_output_type: "X264 (.mp4)";
855
+ };
826
856
  readonly description: "Segment and track prompted objects across video frames.";
827
- readonly inputKind: "video";
857
+ readonly endpoint: "fal-ai/sam-3/video";
828
858
  readonly inputField: "video_url";
859
+ readonly inputKind: "video";
860
+ readonly name: "SAM 3 Video";
829
861
  readonly outputKeys: ["video", "boundingbox_frames_zip"];
830
862
  readonly pricing: "$0.005/16 frames";
831
863
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/video";
864
+ readonly task: "promptable video segmentation";
865
+ };
866
+ readonly "sam3-video-rle": {
867
+ readonly category: "segmentation";
832
868
  readonly defaultOptions: {
833
869
  readonly apply_mask: true;
834
870
  readonly detection_threshold: 0.5;
835
871
  readonly prompt: "person";
836
- readonly video_output_type: "X264 (.mp4)";
837
872
  };
838
- };
839
- readonly "sam3-video-rle": {
840
- readonly name: "SAM 3 Video RLE";
841
- readonly endpoint: "fal-ai/sam-3/video-rle";
842
- readonly task: "promptable video segmentation to RLE";
843
- readonly category: "segmentation";
844
873
  readonly description: "Track prompted video objects and return RLE mask data.";
845
- readonly inputKind: "video";
874
+ readonly endpoint: "fal-ai/sam-3/video-rle";
846
875
  readonly inputField: "video_url";
876
+ readonly inputKind: "video";
877
+ readonly name: "SAM 3 Video RLE";
847
878
  readonly outputKeys: ["rle_masks", "metadata"];
848
879
  readonly pricing: "$0.005/16 frames";
849
880
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/video-rle";
850
- readonly defaultOptions: {
851
- readonly apply_mask: true;
852
- readonly detection_threshold: 0.5;
853
- readonly prompt: "person";
854
- };
881
+ readonly task: "promptable video segmentation to RLE";
855
882
  };
856
- readonly "sam3-1-video": {
857
- readonly name: "SAM 3.1 Video";
858
- readonly endpoint: "fal-ai/sam-3-1/video";
859
- readonly task: "multi-object video segmentation";
860
- readonly category: "segmentation";
861
- readonly description: "SAM 3.1 video segmentation with Object Multiplex tracking for multiple objects.";
862
- readonly inputKind: "video";
863
- readonly inputField: "video_url";
864
- readonly outputKeys: ["video", "boundingbox_frames_zip"];
865
- readonly pricing: "fal pricing varies by frame count";
866
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3-1/video";
883
+ readonly "topaz-image": {
884
+ readonly category: "upscale";
867
885
  readonly defaultOptions: {
868
- readonly apply_mask: true;
869
- readonly prompt: "person";
886
+ readonly model: "Standard V2";
887
+ readonly output_format: "jpeg";
888
+ readonly upscale_factor: 2;
870
889
  };
871
- };
872
- readonly "sam3-3d-objects": {
873
- readonly name: "SAM 3D Objects";
874
- readonly endpoint: "fal-ai/sam-3/3d-objects";
875
- readonly task: "single-image 3D object reconstruction";
876
- readonly category: "3d";
877
- readonly description: "Reconstruct one or more 3D objects from an image and prompts.";
878
- readonly inputKind: "image";
890
+ readonly description: "Professional Topaz image enhancement and upscaling.";
891
+ readonly endpoint: "fal-ai/topaz/upscale/image";
879
892
  readonly inputField: "image_url";
880
- readonly outputKeys: ["gaussian_splat", "model_glb", "metadata", "individual_splats", "individual_glbs", "artifacts_zip"];
881
- readonly pricing: "$0.02/generation";
882
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-objects";
883
- readonly defaultOptions: {
884
- readonly prompt: "car";
885
- };
886
- };
887
- readonly "sam3-3d-body": {
888
- readonly name: "SAM 3D Body";
889
- readonly endpoint: "fal-ai/sam-3/3d-body";
890
- readonly task: "single-image 3D body reconstruction";
891
- readonly category: "3d";
892
- readonly description: "Reconstruct human body meshes and keypoints from a single image.";
893
893
  readonly inputKind: "image";
894
- readonly inputField: "image_url";
895
- readonly outputKeys: ["model_glb", "visualization", "meshes", "metadata"];
896
- readonly pricing: "$0.015/inference";
897
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-body";
894
+ readonly name: "Topaz Image Upscale";
895
+ readonly outputKeys: ["image"];
896
+ readonly pricing: "$0.08+ by output megapixels";
897
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/image";
898
+ readonly task: "image enhancement";
899
+ };
900
+ readonly "topaz-video": {
901
+ readonly category: "upscale";
898
902
  readonly defaultOptions: {
899
- readonly export_meshes: true;
900
- readonly include_3d_keypoints: true;
901
- readonly include_mhr_params: true;
903
+ readonly model: "Proteus";
904
+ readonly upscale_factor: 2;
902
905
  };
903
- };
904
- readonly "sam3-3d-align": {
905
- readonly name: "SAM 3D Align";
906
- readonly endpoint: "fal-ai/sam-3/3d-align";
907
- readonly task: "3D scene alignment";
908
- readonly category: "3d";
909
- readonly description: "Align SAM 3D objects and bodies into a shared scene.";
910
- readonly inputKind: "image";
911
- readonly inputField: "image_url";
912
- readonly outputKeys: ["scene_glb", "metadata", "artifacts_zip"];
913
- readonly pricing: "fal pricing varies by scene";
914
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-align";
906
+ readonly description: "Professional Topaz video enhancement and upscaling.";
907
+ readonly endpoint: "fal-ai/topaz/upscale/video";
908
+ readonly inputField: "video_url";
909
+ readonly inputKind: "video";
910
+ readonly name: "Topaz Video Upscale";
911
+ readonly outputKeys: ["video"];
912
+ readonly pricing: "$0.01-$0.08/sec by output resolution";
913
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/video";
914
+ readonly task: "video enhancement";
915
915
  };
916
916
  };
917
917
  /** ─── Private ─────────────────────────────────────────────── */
@@ -956,207 +956,165 @@ interface FalToolRequest {
956
956
  tool: FalToolConfig;
957
957
  }
958
958
  declare const FAL_TOOLS: {
959
- readonly nsfw: {
960
- readonly name: "NSFW Checker";
961
- readonly endpoint: "fal-ai/x-ailab/nsfw";
962
- readonly task: "vision moderation";
963
- readonly category: "moderation";
964
- readonly description: "Predict whether one or more images contain NSFW concepts.";
965
- readonly inputKind: "images";
966
- readonly inputField: "image_urls";
967
- readonly outputKeys: ["has_nsfw_concepts"];
968
- readonly pricing: "$0.001/image";
969
- readonly sourceUrl: "https://fal.ai/models/fal-ai/x-ailab/nsfw";
970
- };
971
- readonly "topaz-image": {
972
- readonly name: "Topaz Image Upscale";
973
- readonly endpoint: "fal-ai/topaz/upscale/image";
974
- readonly task: "image enhancement";
975
- readonly category: "upscale";
976
- readonly description: "Professional Topaz image enhancement and upscaling.";
977
- readonly inputKind: "image";
978
- readonly inputField: "image_url";
979
- readonly outputKeys: ["image"];
980
- readonly pricing: "$0.08+ by output megapixels";
981
- readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/image";
982
- readonly defaultOptions: {
983
- readonly model: "Standard V2";
984
- readonly output_format: "jpeg";
985
- readonly upscale_factor: 2;
986
- };
987
- };
988
- readonly "topaz-video": {
989
- readonly name: "Topaz Video Upscale";
990
- readonly endpoint: "fal-ai/topaz/upscale/video";
991
- readonly task: "video enhancement";
992
- readonly category: "upscale";
993
- readonly description: "Professional Topaz video enhancement and upscaling.";
994
- readonly inputKind: "video";
995
- readonly inputField: "video_url";
996
- readonly outputKeys: ["video"];
997
- readonly pricing: "$0.01-$0.08/sec by output resolution";
998
- readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/video";
999
- readonly defaultOptions: {
1000
- readonly model: "Proteus";
1001
- readonly upscale_factor: 2;
1002
- };
1003
- };
1004
- readonly "bria-rmbg": {
1005
- readonly name: "Bria RMBG 2.0";
1006
- readonly endpoint: "fal-ai/bria/background/remove";
1007
- readonly task: "image background removal";
1008
- readonly category: "background";
1009
- readonly description: "Commercial-safe background removal for images.";
1010
- readonly inputKind: "image";
1011
- readonly inputField: "image_url";
1012
- readonly outputKeys: ["image"];
1013
- readonly pricing: "$0.02/image";
1014
- readonly sourceUrl: "https://fal.ai/models/fal-ai/bria/background/remove";
1015
- };
1016
959
  readonly birefnet: {
1017
- readonly name: "BirefNet Background Removal";
1018
- readonly endpoint: "fal-ai/birefnet/v2";
1019
- readonly task: "image background removal";
1020
960
  readonly category: "background";
1021
- readonly description: "High-resolution dichotomous image segmentation and background removal.";
1022
- readonly inputKind: "image";
1023
- readonly inputField: "image_url";
1024
- readonly outputKeys: ["image", "mask_image"];
1025
- readonly pricing: "$0/compute-second listed by fal";
1026
- readonly sourceUrl: "https://fal.ai/models/fal-ai/birefnet/v2";
1027
961
  readonly defaultOptions: {
1028
962
  readonly model: "General Use (Light)";
1029
963
  readonly operating_resolution: "1024x1024";
1030
964
  readonly output_format: "png";
1031
965
  readonly refine_foreground: true;
1032
966
  };
1033
- };
1034
- readonly rembg: {
1035
- readonly name: "Remove Background";
1036
- readonly endpoint: "fal-ai/imageutils/rembg";
967
+ readonly description: "High-resolution dichotomous image segmentation and background removal.";
968
+ readonly endpoint: "fal-ai/birefnet/v2";
969
+ readonly inputField: "image_url";
970
+ readonly inputKind: "image";
971
+ readonly name: "BirefNet Background Removal";
972
+ readonly outputKeys: ["image", "mask_image"];
973
+ readonly pricing: "$0/compute-second listed by fal";
974
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/birefnet/v2";
1037
975
  readonly task: "image background removal";
976
+ };
977
+ readonly "bria-rmbg": {
1038
978
  readonly category: "background";
1039
- readonly description: "Generic image background removal utility.";
1040
- readonly inputKind: "image";
979
+ readonly description: "Commercial-safe background removal for images.";
980
+ readonly endpoint: "fal-ai/bria/background/remove";
1041
981
  readonly inputField: "image_url";
982
+ readonly inputKind: "image";
983
+ readonly name: "Bria RMBG 2.0";
1042
984
  readonly outputKeys: ["image"];
1043
- readonly pricing: "$0/compute-second listed by fal";
1044
- readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/rembg";
1045
- readonly defaultOptions: {
1046
- readonly crop_to_bbox: false;
1047
- };
985
+ readonly pricing: "$0.02/image";
986
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/bria/background/remove";
987
+ readonly task: "image background removal";
1048
988
  };
1049
989
  readonly "bria-video-rmbg": {
1050
- readonly name: "Bria Video Background Removal";
1051
- readonly endpoint: "bria/video/background-removal";
1052
- readonly task: "video background removal";
1053
990
  readonly category: "background";
1054
- readonly description: "Remove video backgrounds with configurable output container.";
1055
- readonly inputKind: "video";
1056
- readonly inputField: "video_url";
1057
- readonly outputKeys: ["video"];
1058
- readonly pricing: "$0.14/sec";
1059
- readonly sourceUrl: "https://fal.ai/models/bria/video/background-removal";
1060
991
  readonly defaultOptions: {
1061
992
  readonly background_color: "Black";
1062
993
  readonly output_container_and_codec: "webm_vp9";
1063
994
  readonly preserve_audio: true;
1064
995
  };
996
+ readonly description: "Remove video backgrounds with configurable output container.";
997
+ readonly endpoint: "bria/video/background-removal";
998
+ readonly inputField: "video_url";
999
+ readonly inputKind: "video";
1000
+ readonly name: "Bria Video Background Removal";
1001
+ readonly outputKeys: ["video"];
1002
+ readonly pricing: "$0.14/sec";
1003
+ readonly sourceUrl: "https://fal.ai/models/bria/video/background-removal";
1004
+ readonly task: "video background removal";
1005
+ };
1006
+ readonly "depth-anything": {
1007
+ readonly category: "preprocess";
1008
+ readonly description: "Generate Depth Anything v2 depth maps from input images.";
1009
+ readonly endpoint: "fal-ai/image-preprocessors/depth-anything/v2";
1010
+ readonly inputField: "image_url";
1011
+ readonly inputKind: "image";
1012
+ readonly name: "Depth Anything v2 Preprocessor";
1013
+ readonly outputKeys: ["image"];
1014
+ readonly pricing: "$0/compute-second listed by fal";
1015
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/depth-anything/v2";
1016
+ readonly task: "depth preprocessing";
1065
1017
  };
1066
1018
  readonly lineart: {
1067
- readonly name: "Line Art Preprocessor";
1068
- readonly endpoint: "fal-ai/image-preprocessors/lineart";
1069
- readonly task: "image preprocessing";
1070
1019
  readonly category: "preprocess";
1020
+ readonly defaultOptions: {
1021
+ readonly coarse: false;
1022
+ };
1071
1023
  readonly description: "Generate line art/control-style edges from an input image.";
1072
- readonly inputKind: "image";
1024
+ readonly endpoint: "fal-ai/image-preprocessors/lineart";
1073
1025
  readonly inputField: "image_url";
1026
+ readonly inputKind: "image";
1027
+ readonly name: "Line Art Preprocessor";
1074
1028
  readonly outputKeys: ["image"];
1075
1029
  readonly pricing: "$0/compute-second listed by fal";
1076
1030
  readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/lineart";
1031
+ readonly task: "image preprocessing";
1032
+ };
1033
+ readonly "marigold-depth": {
1034
+ readonly category: "depth";
1077
1035
  readonly defaultOptions: {
1078
- readonly coarse: false;
1036
+ readonly ensemble_size: 10;
1037
+ readonly num_inference_steps: 10;
1079
1038
  };
1080
- };
1081
- readonly "sam-preprocessor": {
1082
- readonly name: "SAM Preprocessor";
1083
- readonly endpoint: "fal-ai/image-preprocessors/sam";
1084
- readonly task: "segmentation preprocessing";
1085
- readonly category: "preprocess";
1086
- readonly description: "Generate a SAM segmentation map for ControlNet-style workflows.";
1087
- readonly inputKind: "image";
1039
+ readonly description: "Create depth maps using Marigold depth estimation.";
1040
+ readonly endpoint: "fal-ai/imageutils/marigold-depth";
1088
1041
  readonly inputField: "image_url";
1042
+ readonly inputKind: "image";
1043
+ readonly name: "Marigold Depth Estimation";
1089
1044
  readonly outputKeys: ["image"];
1090
1045
  readonly pricing: "$0/compute-second listed by fal";
1091
- readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/sam";
1046
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/marigold-depth";
1047
+ readonly task: "depth map";
1092
1048
  };
1093
1049
  readonly "midas-depth": {
1094
- readonly name: "MiDaS Depth Estimation";
1095
- readonly endpoint: "fal-ai/imageutils/depth";
1096
- readonly task: "depth map";
1097
1050
  readonly category: "depth";
1051
+ readonly defaultOptions: {
1052
+ readonly a: number;
1053
+ readonly bg_th: 0.1;
1054
+ };
1098
1055
  readonly description: "Create MiDaS depth maps from input images.";
1099
- readonly inputKind: "image";
1056
+ readonly endpoint: "fal-ai/imageutils/depth";
1100
1057
  readonly inputField: "image_url";
1058
+ readonly inputKind: "image";
1059
+ readonly name: "MiDaS Depth Estimation";
1101
1060
  readonly outputKeys: ["image"];
1102
1061
  readonly pricing: "$0/compute-second listed by fal";
1103
1062
  readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/depth";
1104
- readonly defaultOptions: {
1105
- readonly a: number;
1106
- readonly bg_th: 0.1;
1107
- };
1063
+ readonly task: "depth map";
1108
1064
  };
1109
1065
  readonly "midas-preprocessor": {
1110
- readonly name: "MiDaS Preprocessor";
1111
- readonly endpoint: "fal-ai/image-preprocessors/midas";
1112
- readonly task: "depth and normal preprocessing";
1113
1066
  readonly category: "preprocess";
1114
1067
  readonly description: "Generate MiDaS depth and normal maps for image workflows.";
1115
- readonly inputKind: "image";
1068
+ readonly endpoint: "fal-ai/image-preprocessors/midas";
1116
1069
  readonly inputField: "image_url";
1070
+ readonly inputKind: "image";
1071
+ readonly name: "MiDaS Preprocessor";
1117
1072
  readonly outputKeys: ["depth_map", "normal_map"];
1118
1073
  readonly pricing: "$0/compute-second listed by fal";
1119
1074
  readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/midas";
1075
+ readonly task: "depth and normal preprocessing";
1120
1076
  };
1121
- readonly "marigold-depth": {
1122
- readonly name: "Marigold Depth Estimation";
1123
- readonly endpoint: "fal-ai/imageutils/marigold-depth";
1124
- readonly task: "depth map";
1125
- readonly category: "depth";
1126
- readonly description: "Create depth maps using Marigold depth estimation.";
1127
- readonly inputKind: "image";
1077
+ readonly nsfw: {
1078
+ readonly category: "moderation";
1079
+ readonly description: "Predict whether one or more images contain NSFW concepts.";
1080
+ readonly endpoint: "fal-ai/x-ailab/nsfw";
1081
+ readonly inputField: "image_urls";
1082
+ readonly inputKind: "images";
1083
+ readonly name: "NSFW Checker";
1084
+ readonly outputKeys: ["has_nsfw_concepts"];
1085
+ readonly pricing: "$0.001/image";
1086
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/x-ailab/nsfw";
1087
+ readonly task: "vision moderation";
1088
+ };
1089
+ readonly rembg: {
1090
+ readonly category: "background";
1091
+ readonly defaultOptions: {
1092
+ readonly crop_to_bbox: false;
1093
+ };
1094
+ readonly description: "Generic image background removal utility.";
1095
+ readonly endpoint: "fal-ai/imageutils/rembg";
1128
1096
  readonly inputField: "image_url";
1097
+ readonly inputKind: "image";
1098
+ readonly name: "Remove Background";
1129
1099
  readonly outputKeys: ["image"];
1130
1100
  readonly pricing: "$0/compute-second listed by fal";
1131
- readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/marigold-depth";
1132
- readonly defaultOptions: {
1133
- readonly ensemble_size: 10;
1134
- readonly num_inference_steps: 10;
1135
- };
1101
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/imageutils/rembg";
1102
+ readonly task: "image background removal";
1136
1103
  };
1137
- readonly "depth-anything": {
1138
- readonly name: "Depth Anything v2 Preprocessor";
1139
- readonly endpoint: "fal-ai/image-preprocessors/depth-anything/v2";
1140
- readonly task: "depth preprocessing";
1104
+ readonly "sam-preprocessor": {
1141
1105
  readonly category: "preprocess";
1142
- readonly description: "Generate Depth Anything v2 depth maps from input images.";
1143
- readonly inputKind: "image";
1106
+ readonly description: "Generate a SAM segmentation map for ControlNet-style workflows.";
1107
+ readonly endpoint: "fal-ai/image-preprocessors/sam";
1144
1108
  readonly inputField: "image_url";
1109
+ readonly inputKind: "image";
1110
+ readonly name: "SAM Preprocessor";
1145
1111
  readonly outputKeys: ["image"];
1146
1112
  readonly pricing: "$0/compute-second listed by fal";
1147
- readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/depth-anything/v2";
1113
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/image-preprocessors/sam";
1114
+ readonly task: "segmentation preprocessing";
1148
1115
  };
1149
1116
  readonly "sam2-auto": {
1150
- readonly name: "SAM 2 Auto Segment";
1151
- readonly endpoint: "fal-ai/sam2/auto-segment";
1152
- readonly task: "automatic image segmentation";
1153
1117
  readonly category: "segmentation";
1154
- readonly description: "Automatically segment an image into combined and individual masks.";
1155
- readonly inputKind: "image";
1156
- readonly inputField: "image_url";
1157
- readonly outputKeys: ["combined_mask", "individual_masks"];
1158
- readonly pricing: "$0/compute-second listed by fal";
1159
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam2/auto-segment";
1160
1118
  readonly defaultOptions: {
1161
1119
  readonly min_mask_region_area: 100;
1162
1120
  readonly output_format: "png";
@@ -1164,155 +1122,197 @@ declare const FAL_TOOLS: {
1164
1122
  readonly pred_iou_thresh: 0.88;
1165
1123
  readonly stability_score_thresh: 0.95;
1166
1124
  };
1125
+ readonly description: "Automatically segment an image into combined and individual masks.";
1126
+ readonly endpoint: "fal-ai/sam2/auto-segment";
1127
+ readonly inputField: "image_url";
1128
+ readonly inputKind: "image";
1129
+ readonly name: "SAM 2 Auto Segment";
1130
+ readonly outputKeys: ["combined_mask", "individual_masks"];
1131
+ readonly pricing: "$0/compute-second listed by fal";
1132
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam2/auto-segment";
1133
+ readonly task: "automatic image segmentation";
1167
1134
  };
1168
- readonly "sam3-image": {
1169
- readonly name: "SAM 3 Image";
1170
- readonly endpoint: "fal-ai/sam-3/image";
1171
- readonly task: "promptable image segmentation";
1135
+ readonly "sam3-1-image": {
1172
1136
  readonly category: "segmentation";
1173
- readonly description: "Segment image objects with text, point, or box prompts.";
1174
- readonly inputKind: "image";
1175
- readonly inputField: "image_url";
1176
- readonly outputKeys: ["image", "masks", "metadata", "scores", "boxes"];
1177
- readonly pricing: "$0.005/request";
1178
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/image";
1179
1137
  readonly defaultOptions: {
1180
1138
  readonly apply_mask: true;
1181
1139
  readonly max_masks: 3;
1182
1140
  readonly output_format: "png";
1183
1141
  };
1184
- };
1185
- readonly "sam3-1-image": {
1186
- readonly name: "SAM 3.1 Image";
1187
- readonly endpoint: "fal-ai/sam-3-1/image";
1188
- readonly task: "promptable image segmentation";
1189
- readonly category: "segmentation";
1190
1142
  readonly description: "Segment image objects with text, point, or box prompts. SAM 3.1 adds Object Multiplex for faster multi-object tracking.";
1191
- readonly inputKind: "image";
1143
+ readonly endpoint: "fal-ai/sam-3-1/image";
1192
1144
  readonly inputField: "image_url";
1145
+ readonly inputKind: "image";
1146
+ readonly name: "SAM 3.1 Image";
1193
1147
  readonly outputKeys: ["image", "masks", "metadata", "scores", "boxes"];
1194
1148
  readonly pricing: "$0.005/request";
1195
1149
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3-1/image";
1150
+ readonly task: "promptable image segmentation";
1151
+ };
1152
+ readonly "sam3-1-video": {
1153
+ readonly category: "segmentation";
1154
+ readonly defaultOptions: {
1155
+ readonly apply_mask: true;
1156
+ readonly prompt: "person";
1157
+ };
1158
+ readonly description: "SAM 3.1 video segmentation with Object Multiplex tracking for multiple objects.";
1159
+ readonly endpoint: "fal-ai/sam-3-1/video";
1160
+ readonly inputField: "video_url";
1161
+ readonly inputKind: "video";
1162
+ readonly name: "SAM 3.1 Video";
1163
+ readonly outputKeys: ["video", "boundingbox_frames_zip"];
1164
+ readonly pricing: "fal pricing varies by frame count";
1165
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3-1/video";
1166
+ readonly task: "multi-object video segmentation";
1167
+ };
1168
+ readonly "sam3-3d-align": {
1169
+ readonly category: "3d";
1170
+ readonly description: "Align SAM 3D objects and bodies into a shared scene.";
1171
+ readonly endpoint: "fal-ai/sam-3/3d-align";
1172
+ readonly inputField: "image_url";
1173
+ readonly inputKind: "image";
1174
+ readonly name: "SAM 3D Align";
1175
+ readonly outputKeys: ["scene_glb", "metadata", "artifacts_zip"];
1176
+ readonly pricing: "fal pricing varies by scene";
1177
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-align";
1178
+ readonly task: "3D scene alignment";
1179
+ };
1180
+ readonly "sam3-3d-body": {
1181
+ readonly category: "3d";
1182
+ readonly defaultOptions: {
1183
+ readonly export_meshes: true;
1184
+ readonly include_3d_keypoints: true;
1185
+ readonly include_mhr_params: true;
1186
+ };
1187
+ readonly description: "Reconstruct human body meshes and keypoints from a single image.";
1188
+ readonly endpoint: "fal-ai/sam-3/3d-body";
1189
+ readonly inputField: "image_url";
1190
+ readonly inputKind: "image";
1191
+ readonly name: "SAM 3D Body";
1192
+ readonly outputKeys: ["model_glb", "visualization", "meshes", "metadata"];
1193
+ readonly pricing: "$0.015/inference";
1194
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-body";
1195
+ readonly task: "single-image 3D body reconstruction";
1196
+ };
1197
+ readonly "sam3-3d-objects": {
1198
+ readonly category: "3d";
1199
+ readonly defaultOptions: {
1200
+ readonly prompt: "car";
1201
+ };
1202
+ readonly description: "Reconstruct one or more 3D objects from an image and prompts.";
1203
+ readonly endpoint: "fal-ai/sam-3/3d-objects";
1204
+ readonly inputField: "image_url";
1205
+ readonly inputKind: "image";
1206
+ readonly name: "SAM 3D Objects";
1207
+ readonly outputKeys: ["gaussian_splat", "model_glb", "metadata", "individual_splats", "individual_glbs", "artifacts_zip"];
1208
+ readonly pricing: "$0.02/generation";
1209
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-objects";
1210
+ readonly task: "single-image 3D object reconstruction";
1211
+ };
1212
+ readonly "sam3-image": {
1213
+ readonly category: "segmentation";
1196
1214
  readonly defaultOptions: {
1197
1215
  readonly apply_mask: true;
1198
1216
  readonly max_masks: 3;
1199
1217
  readonly output_format: "png";
1200
1218
  };
1219
+ readonly description: "Segment image objects with text, point, or box prompts.";
1220
+ readonly endpoint: "fal-ai/sam-3/image";
1221
+ readonly inputField: "image_url";
1222
+ readonly inputKind: "image";
1223
+ readonly name: "SAM 3 Image";
1224
+ readonly outputKeys: ["image", "masks", "metadata", "scores", "boxes"];
1225
+ readonly pricing: "$0.005/request";
1226
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/image";
1227
+ readonly task: "promptable image segmentation";
1201
1228
  };
1202
1229
  readonly "sam3-image-rle": {
1203
- readonly name: "SAM 3 Image RLE";
1204
- readonly endpoint: "fal-ai/sam-3/image-rle";
1205
- readonly task: "promptable image segmentation to RLE";
1206
1230
  readonly category: "segmentation";
1231
+ readonly defaultOptions: {
1232
+ readonly apply_mask: true;
1233
+ readonly max_masks: 3;
1234
+ };
1207
1235
  readonly description: "Segment image objects and return run-length encoded masks.";
1208
- readonly inputKind: "image";
1236
+ readonly endpoint: "fal-ai/sam-3/image-rle";
1209
1237
  readonly inputField: "image_url";
1238
+ readonly inputKind: "image";
1239
+ readonly name: "SAM 3 Image RLE";
1210
1240
  readonly outputKeys: ["rle_masks", "metadata", "scores", "boxes"];
1211
1241
  readonly pricing: "$0.005/request";
1212
1242
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/image-rle";
1213
- readonly defaultOptions: {
1214
- readonly apply_mask: true;
1215
- readonly max_masks: 3;
1216
- };
1243
+ readonly task: "promptable image segmentation to RLE";
1217
1244
  };
1218
1245
  readonly "sam3-video": {
1219
- readonly name: "SAM 3 Video";
1220
- readonly endpoint: "fal-ai/sam-3/video";
1221
- readonly task: "promptable video segmentation";
1222
1246
  readonly category: "segmentation";
1247
+ readonly defaultOptions: {
1248
+ readonly apply_mask: true;
1249
+ readonly detection_threshold: 0.5;
1250
+ readonly prompt: "person";
1251
+ readonly video_output_type: "X264 (.mp4)";
1252
+ };
1223
1253
  readonly description: "Segment and track prompted objects across video frames.";
1224
- readonly inputKind: "video";
1254
+ readonly endpoint: "fal-ai/sam-3/video";
1225
1255
  readonly inputField: "video_url";
1256
+ readonly inputKind: "video";
1257
+ readonly name: "SAM 3 Video";
1226
1258
  readonly outputKeys: ["video", "boundingbox_frames_zip"];
1227
1259
  readonly pricing: "$0.005/16 frames";
1228
1260
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/video";
1261
+ readonly task: "promptable video segmentation";
1262
+ };
1263
+ readonly "sam3-video-rle": {
1264
+ readonly category: "segmentation";
1229
1265
  readonly defaultOptions: {
1230
1266
  readonly apply_mask: true;
1231
1267
  readonly detection_threshold: 0.5;
1232
1268
  readonly prompt: "person";
1233
- readonly video_output_type: "X264 (.mp4)";
1234
1269
  };
1235
- };
1236
- readonly "sam3-video-rle": {
1237
- readonly name: "SAM 3 Video RLE";
1238
- readonly endpoint: "fal-ai/sam-3/video-rle";
1239
- readonly task: "promptable video segmentation to RLE";
1240
- readonly category: "segmentation";
1241
1270
  readonly description: "Track prompted video objects and return RLE mask data.";
1242
- readonly inputKind: "video";
1271
+ readonly endpoint: "fal-ai/sam-3/video-rle";
1243
1272
  readonly inputField: "video_url";
1273
+ readonly inputKind: "video";
1274
+ readonly name: "SAM 3 Video RLE";
1244
1275
  readonly outputKeys: ["rle_masks", "metadata"];
1245
1276
  readonly pricing: "$0.005/16 frames";
1246
1277
  readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/video-rle";
1247
- readonly defaultOptions: {
1248
- readonly apply_mask: true;
1249
- readonly detection_threshold: 0.5;
1250
- readonly prompt: "person";
1251
- };
1278
+ readonly task: "promptable video segmentation to RLE";
1252
1279
  };
1253
- readonly "sam3-1-video": {
1254
- readonly name: "SAM 3.1 Video";
1255
- readonly endpoint: "fal-ai/sam-3-1/video";
1256
- readonly task: "multi-object video segmentation";
1257
- readonly category: "segmentation";
1258
- readonly description: "SAM 3.1 video segmentation with Object Multiplex tracking for multiple objects.";
1259
- readonly inputKind: "video";
1260
- readonly inputField: "video_url";
1261
- readonly outputKeys: ["video", "boundingbox_frames_zip"];
1262
- readonly pricing: "fal pricing varies by frame count";
1263
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3-1/video";
1280
+ readonly "topaz-image": {
1281
+ readonly category: "upscale";
1264
1282
  readonly defaultOptions: {
1265
- readonly apply_mask: true;
1266
- readonly prompt: "person";
1283
+ readonly model: "Standard V2";
1284
+ readonly output_format: "jpeg";
1285
+ readonly upscale_factor: 2;
1267
1286
  };
1268
- };
1269
- readonly "sam3-3d-objects": {
1270
- readonly name: "SAM 3D Objects";
1271
- readonly endpoint: "fal-ai/sam-3/3d-objects";
1272
- readonly task: "single-image 3D object reconstruction";
1273
- readonly category: "3d";
1274
- readonly description: "Reconstruct one or more 3D objects from an image and prompts.";
1275
- readonly inputKind: "image";
1287
+ readonly description: "Professional Topaz image enhancement and upscaling.";
1288
+ readonly endpoint: "fal-ai/topaz/upscale/image";
1276
1289
  readonly inputField: "image_url";
1277
- readonly outputKeys: ["gaussian_splat", "model_glb", "metadata", "individual_splats", "individual_glbs", "artifacts_zip"];
1278
- readonly pricing: "$0.02/generation";
1279
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-objects";
1280
- readonly defaultOptions: {
1281
- readonly prompt: "car";
1282
- };
1283
- };
1284
- readonly "sam3-3d-body": {
1285
- readonly name: "SAM 3D Body";
1286
- readonly endpoint: "fal-ai/sam-3/3d-body";
1287
- readonly task: "single-image 3D body reconstruction";
1288
- readonly category: "3d";
1289
- readonly description: "Reconstruct human body meshes and keypoints from a single image.";
1290
1290
  readonly inputKind: "image";
1291
- readonly inputField: "image_url";
1292
- readonly outputKeys: ["model_glb", "visualization", "meshes", "metadata"];
1293
- readonly pricing: "$0.015/inference";
1294
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-body";
1291
+ readonly name: "Topaz Image Upscale";
1292
+ readonly outputKeys: ["image"];
1293
+ readonly pricing: "$0.08+ by output megapixels";
1294
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/image";
1295
+ readonly task: "image enhancement";
1296
+ };
1297
+ readonly "topaz-video": {
1298
+ readonly category: "upscale";
1295
1299
  readonly defaultOptions: {
1296
- readonly export_meshes: true;
1297
- readonly include_3d_keypoints: true;
1298
- readonly include_mhr_params: true;
1300
+ readonly model: "Proteus";
1301
+ readonly upscale_factor: 2;
1299
1302
  };
1300
- };
1301
- readonly "sam3-3d-align": {
1302
- readonly name: "SAM 3D Align";
1303
- readonly endpoint: "fal-ai/sam-3/3d-align";
1304
- readonly task: "3D scene alignment";
1305
- readonly category: "3d";
1306
- readonly description: "Align SAM 3D objects and bodies into a shared scene.";
1307
- readonly inputKind: "image";
1308
- readonly inputField: "image_url";
1309
- readonly outputKeys: ["scene_glb", "metadata", "artifacts_zip"];
1310
- readonly pricing: "fal pricing varies by scene";
1311
- readonly sourceUrl: "https://fal.ai/models/fal-ai/sam-3/3d-align";
1303
+ readonly description: "Professional Topaz video enhancement and upscaling.";
1304
+ readonly endpoint: "fal-ai/topaz/upscale/video";
1305
+ readonly inputField: "video_url";
1306
+ readonly inputKind: "video";
1307
+ readonly name: "Topaz Video Upscale";
1308
+ readonly outputKeys: ["video"];
1309
+ readonly pricing: "$0.01-$0.08/sec by output resolution";
1310
+ readonly sourceUrl: "https://fal.ai/models/fal-ai/topaz/upscale/video";
1311
+ readonly task: "video enhancement";
1312
1312
  };
1313
1313
  };
1314
1314
  declare const FAL_TOOLS_CHECKED_AT = "2026-05-12";
1315
- declare const FAL_TOOL_IDS: Array<keyof typeof FAL_TOOLS>;
1315
+ declare const FAL_TOOL_IDS: (keyof typeof FAL_TOOLS)[];
1316
1316
  type FalToolId = (typeof FAL_TOOL_IDS)[number];
1317
1317
  declare function isFalToolId(tool: string): tool is FalToolId;
1318
1318
  declare function buildFalToolRequest(options: FalToolRunOptions): FalToolRequest;