/** * @license * Copyright 2025 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import type { IRunConfig, TaskConfig } from "@workglow/task-graph"; import { CreateWorkflow } from "@workglow/task-graph"; import type { ImageValue } from "@workglow/util/media"; import { DataPortSchema } from "@workglow/util/schema"; import type { ModelConfig } from "../model/ModelSchema"; import { AiVisionTask } from "./base/AiVisionTask"; export declare const PoseLandmarkerInputSchema: { readonly type: "object"; readonly properties: { readonly image: { readonly oneOf: readonly [{ readonly type: "string"; readonly format: "image:data-uri"; }, { readonly type: "object"; readonly format: "image"; }]; readonly title: "Image"; readonly description: "Image"; readonly format: "image"; }; readonly model: { readonly oneOf: readonly [{ readonly title: "Model"; readonly description: `The model ${string}`; } & Record & { readonly format: import(".").TypeModelSemantic; readonly type: "string"; }, { readonly type: "object"; readonly properties: { readonly model_id: { readonly type: "string"; }; readonly capabilities: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly "x-ui-editor": "multiselect"; }; readonly title: { readonly type: "string"; }; readonly description: { readonly type: "string"; readonly "x-ui-editor": "textarea"; }; readonly provider: { readonly type: "string"; }; readonly provider_config: { readonly type: "object"; readonly properties: { readonly credential_key: { readonly type: "string"; readonly format: "credential"; readonly "x-ui-hidden": true; }; readonly native_dimensions: { readonly type: "integer"; readonly description: "Native output vector dimensions for embedding models"; }; readonly mrl: { readonly type: "boolean"; readonly description: "Whether the model supports Matryoshka Representation Learning"; }; }; readonly additionalProperties: true; readonly default: {}; }; readonly metadata: { readonly type: "object"; readonly default: {}; readonly "x-ui-hidden": true; }; }; readonly required: readonly ["provider", "provider_config"]; readonly format: "model"; readonly additionalProperties: true; } & Record & { readonly format: import(".").TypeModelSemantic; }]; } & Record & { readonly format: import(".").TypeModelSemantic; }; readonly numPoses: { readonly type: "number"; readonly minimum: 1; readonly maximum: 10; readonly default: 1; readonly title: "Number of Poses"; readonly description: "The maximum number of poses to detect"; readonly "x-ui-group": "Configuration"; }; readonly minPoseDetectionConfidence: { readonly type: "number"; readonly minimum: 0; readonly maximum: 1; readonly default: 0.5; readonly title: "Min Pose Detection Confidence"; readonly description: "Minimum confidence score for pose detection"; readonly "x-ui-group": "Configuration"; }; readonly minPosePresenceConfidence: { readonly type: "number"; readonly minimum: 0; readonly maximum: 1; readonly default: 0.5; readonly title: "Min Pose Presence Confidence"; readonly description: "Minimum confidence score for pose presence"; readonly "x-ui-group": "Configuration"; }; readonly minTrackingConfidence: { readonly type: "number"; readonly minimum: 0; readonly maximum: 1; readonly default: 0.5; readonly title: "Min Tracking Confidence"; readonly description: "Minimum confidence score for pose tracking"; readonly "x-ui-group": "Configuration"; }; readonly outputSegmentationMasks: { readonly type: "boolean"; readonly default: false; readonly title: "Output Segmentation Masks"; readonly description: "Whether to output segmentation masks for detected poses"; readonly "x-ui-group": "Configuration"; }; }; readonly required: readonly ["image", "model"]; readonly additionalProperties: false; }; export declare const PoseLandmarkerOutputSchema: { readonly type: "object"; readonly properties: { readonly poses: { readonly oneOf: readonly [{ readonly type: "array"; readonly items: { readonly type: "object"; readonly properties: { readonly landmarks: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["x", "y", "z"]; readonly format: "point:3d:relative"; readonly additionalProperties: false; readonly properties: { readonly x: { readonly type: "number"; readonly title: "X Coordinate"; readonly description: "X coordinate normalized to [0.0, 1.0]"; }; readonly y: { readonly type: "number"; readonly title: "Y Coordinate"; readonly description: "Y coordinate normalized to [0.0, 1.0]"; }; readonly z: { readonly type: "number"; readonly title: "Z Coordinate"; readonly description: "Z coordinate (depth)"; }; readonly visibility: { readonly type: "number"; readonly title: "Visibility"; readonly description: "Likelihood of the landmark being visible within the image"; }; readonly presence: { readonly type: "number"; readonly title: "Presence"; readonly description: "Likelihood of the landmark being present in the image"; }; }; }; readonly title: "Landmarks"; readonly description: "33 pose landmarks in image coordinates"; }; readonly worldLandmarks: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["x", "y", "z"]; readonly format: "point:3d:relative"; readonly additionalProperties: false; readonly properties: { readonly x: { readonly type: "number"; readonly title: "X Coordinate"; readonly description: "X coordinate normalized to [0.0, 1.0]"; }; readonly y: { readonly type: "number"; readonly title: "Y Coordinate"; readonly description: "Y coordinate normalized to [0.0, 1.0]"; }; readonly z: { readonly type: "number"; readonly title: "Z Coordinate"; readonly description: "Z coordinate (depth)"; }; readonly visibility: { readonly type: "number"; readonly title: "Visibility"; readonly description: "Likelihood of the landmark being visible within the image"; }; readonly presence: { readonly type: "number"; readonly title: "Presence"; readonly description: "Likelihood of the landmark being present in the image"; }; }; }; readonly title: "World Landmarks"; readonly description: "33 pose landmarks in 3D world coordinates (meters)"; }; readonly segmentationMask: { readonly type: "object"; readonly properties: { readonly data: { readonly type: "object"; readonly title: "Mask Data"; readonly description: "Canvas or image data containing the segmentation mask"; }; readonly width: { readonly type: "number"; readonly title: "Width"; readonly description: "Width of the segmentation mask"; }; readonly height: { readonly type: "number"; readonly title: "Height"; readonly description: "Height of the segmentation mask"; }; }; readonly required: readonly ["data", "width", "height"]; readonly additionalProperties: false; }; }; readonly required: readonly ["landmarks", "worldLandmarks"]; readonly additionalProperties: false; }; }, { readonly type: "array"; readonly items: { readonly type: "array"; readonly items: { readonly type: "object"; readonly properties: { readonly landmarks: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["x", "y", "z"]; readonly format: "point:3d:relative"; readonly additionalProperties: false; readonly properties: { readonly x: { readonly type: "number"; readonly title: "X Coordinate"; readonly description: "X coordinate normalized to [0.0, 1.0]"; }; readonly y: { readonly type: "number"; readonly title: "Y Coordinate"; readonly description: "Y coordinate normalized to [0.0, 1.0]"; }; readonly z: { readonly type: "number"; readonly title: "Z Coordinate"; readonly description: "Z coordinate (depth)"; }; readonly visibility: { readonly type: "number"; readonly title: "Visibility"; readonly description: "Likelihood of the landmark being visible within the image"; }; readonly presence: { readonly type: "number"; readonly title: "Presence"; readonly description: "Likelihood of the landmark being present in the image"; }; }; }; readonly title: "Landmarks"; readonly description: "33 pose landmarks in image coordinates"; }; readonly worldLandmarks: { readonly type: "array"; readonly items: { readonly type: "object"; readonly required: readonly ["x", "y", "z"]; readonly format: "point:3d:relative"; readonly additionalProperties: false; readonly properties: { readonly x: { readonly type: "number"; readonly title: "X Coordinate"; readonly description: "X coordinate normalized to [0.0, 1.0]"; }; readonly y: { readonly type: "number"; readonly title: "Y Coordinate"; readonly description: "Y coordinate normalized to [0.0, 1.0]"; }; readonly z: { readonly type: "number"; readonly title: "Z Coordinate"; readonly description: "Z coordinate (depth)"; }; readonly visibility: { readonly type: "number"; readonly title: "Visibility"; readonly description: "Likelihood of the landmark being visible within the image"; }; readonly presence: { readonly type: "number"; readonly title: "Presence"; readonly description: "Likelihood of the landmark being present in the image"; }; }; }; readonly title: "World Landmarks"; readonly description: "33 pose landmarks in 3D world coordinates (meters)"; }; readonly segmentationMask: { readonly type: "object"; readonly properties: { readonly data: { readonly type: "object"; readonly title: "Mask Data"; readonly description: "Canvas or image data containing the segmentation mask"; }; readonly width: { readonly type: "number"; readonly title: "Width"; readonly description: "Width of the segmentation mask"; }; readonly height: { readonly type: "number"; readonly title: "Height"; readonly description: "Height of the segmentation mask"; }; }; readonly required: readonly ["data", "width", "height"]; readonly additionalProperties: false; }; }; readonly required: readonly ["landmarks", "worldLandmarks"]; readonly additionalProperties: false; }; }; }]; readonly title: "Pose Detections"; readonly description: "Detected poses with landmarks and optional segmentation masks"; }; }; readonly required: readonly ["poses"]; readonly additionalProperties: false; }; export type PoseLandmarkerTaskInput = Omit<{ minTrackingConfidence?: number | undefined; numPoses?: number | undefined; minPoseDetectionConfidence?: number | undefined; minPosePresenceConfidence?: number | undefined; outputSegmentationMasks?: boolean | undefined; model: string | ModelConfig; image: string | { [x: string]: unknown; }; }, "image"> & { image: ImageValue; }; export type PoseLandmarkerTaskOutput = { poses: { segmentationMask?: { data: { [x: string]: unknown; }; width: number; height: number; } | undefined; landmarks: { visibility?: number | undefined; presence?: number | undefined; x: number; y: number; z: number; }[]; worldLandmarks: { visibility?: number | undefined; presence?: number | undefined; x: number; y: number; z: number; }[]; }[] | { segmentationMask?: { data: { [x: string]: unknown; }; width: number; height: number; } | undefined; landmarks: { visibility?: number | undefined; presence?: number | undefined; x: number; y: number; z: number; }[]; worldLandmarks: { visibility?: number | undefined; presence?: number | undefined; x: number; y: number; z: number; }[]; }[][]; }; export type PoseLandmarkerTaskConfig = TaskConfig; /** * Detects pose landmarks in images using MediaPipe Pose Landmarker. * Identifies 33 body landmarks for pose estimation and optional segmentation. */ export declare class PoseLandmarkerTask extends AiVisionTask { static type: string; /** Capabilities required of the model; gated in {@link AiTask.execute}. */ static readonly requires: ["vision.pose-landmarks"]; static category: string; static title: string; static description: string; static inputSchema(): DataPortSchema; static outputSchema(): DataPortSchema; } export declare const poseLandmarker: (input: PoseLandmarkerTaskInput, config?: PoseLandmarkerTaskConfig, runConfig?: Partial) => Promise; declare module "@workglow/task-graph" { interface Workflow { poseLandmarker: CreateWorkflow; } } //# sourceMappingURL=PoseLandmarkerTask.d.ts.map