@llumiverse/common
Version:
Public types, enums and options used by Llumiverse API.
89 lines • 3.57 kB
TypeScript
import { type ModelOptions, type ModelOptionsInfo } from "../types.js";
/**
* @discriminator _option_id
*/
export type VertexAIOptions = ImagenOptions | VertexAIClaudeOptions | VertexAIGeminiOptions;
export declare enum ImagenTaskType {
TEXT_IMAGE = "TEXT_IMAGE",
EDIT_MODE_INPAINT_REMOVAL = "EDIT_MODE_INPAINT_REMOVAL",
EDIT_MODE_INPAINT_INSERTION = "EDIT_MODE_INPAINT_INSERTION",
EDIT_MODE_BGSWAP = "EDIT_MODE_BGSWAP",
EDIT_MODE_OUTPAINT = "EDIT_MODE_OUTPAINT",
CUSTOMIZATION_SUBJECT = "CUSTOMIZATION_SUBJECT",
CUSTOMIZATION_STYLE = "CUSTOMIZATION_STYLE",
CUSTOMIZATION_CONTROLLED = "CUSTOMIZATION_CONTROLLED",
CUSTOMIZATION_INSTRUCT = "CUSTOMIZATION_INSTRUCT"
}
export declare enum ImagenMaskMode {
MASK_MODE_USER_PROVIDED = "MASK_MODE_USER_PROVIDED",
MASK_MODE_BACKGROUND = "MASK_MODE_BACKGROUND",
MASK_MODE_FOREGROUND = "MASK_MODE_FOREGROUND",
MASK_MODE_SEMANTIC = "MASK_MODE_SEMANTIC"
}
export declare enum ThinkingLevel {
HIGH = "HIGH",
MEDIUM = "MEDIUM",
LOW = "LOW",
MINIMAL = "MINIMAL",
THINKING_LEVEL_UNSPECIFIED = "THINKING_LEVEL_UNSPECIFIED"
}
export interface ImagenOptions {
_option_id: "vertexai-imagen";
number_of_images?: number;
seed?: number;
person_generation?: "dont_allow" | "allow_adults" | "allow_all";
safety_setting?: "block_none" | "block_only_high" | "block_medium_and_above" | "block_low_and_above";
image_file_type?: "image/jpeg" | "image/png";
jpeg_compression_quality?: number;
aspect_ratio?: "1:1" | "4:3" | "3:4" | "16:9" | "9:16";
add_watermark?: boolean;
enhance_prompt?: boolean;
edit_mode?: ImagenTaskType;
guidance_scale?: number;
edit_steps?: number;
mask_mode?: ImagenMaskMode;
mask_dilation?: number;
mask_class?: number[];
controlType?: "CONTROL_TYPE_FACE_MESH" | "CONTROL_TYPE_CANNY" | "CONTROL_TYPE_SCRIBBLE";
controlImageComputation?: boolean;
subjectType?: "SUBJECT_TYPE_PERSON" | "SUBJECT_TYPE_ANIMAL" | "SUBJECT_TYPE_PRODUCT" | "SUBJECT_TYPE_DEFAULT";
}
export interface VertexAIClaudeOptions {
_option_id: "vertexai-claude";
max_tokens?: number;
temperature?: number;
top_p?: number;
top_k?: number;
stop_sequence?: string[];
effort?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
thinking_budget_tokens?: number;
include_thoughts?: boolean;
cache_enabled?: boolean;
cache_ttl?: '5m' | '1h';
}
export interface VertexAIGeminiOptions {
_option_id: "vertexai-gemini";
max_tokens?: number;
temperature?: number;
top_p?: number;
top_k?: number;
stop_sequence?: string[];
presence_penalty?: number;
frequency_penalty?: number;
seed?: number;
effort?: 'low' | 'medium' | 'high';
include_thoughts?: boolean;
thinking_budget_tokens?: number;
thinking_level?: ThinkingLevel;
flex?: boolean;
image_aspect_ratio?: "1:1" | "2:3" | "3:2" | "3:4" | "4:3" | "9:16" | "16:9" | "21:9";
image_size?: "1K" | "2K" | "4K";
person_generation?: "ALLOW_ALL" | "ALLOW_ADULT" | "ALLOW_NONE";
prominent_people?: "PROMINENT_PEOPLE_UNSPECIFIED" | "ALLOW_PROMINENT_PEOPLE" | "BLOCK_PROMINENT_PEOPLE";
output_mime_type?: "image/png" | "image/jpeg";
output_compression_quality?: number;
}
export declare function isFlexSupportedGeminiModel(model: string): boolean;
export declare function getVertexAiOptions(model: string, option?: ModelOptions): ModelOptionsInfo;
export declare function getMaxTokensLimitVertexAi(model: string): number;
//# sourceMappingURL=vertexai.d.ts.map