@stable-canvas/sd-webui-a1111-client
Version:
API client for AUTOMATIC1111/stable-diffusion-webui for Node.js and Browser.
1 lines • 232 kB
Source Map (JSON)
{"version":3,"file":"main.modern.mjs","sources":["../src/misc.ts","../src/extensions/ExtensionScript.ts","../src/extensions/ControlNet.ext.ts","../src/extensions/Cutoff.ext.ts","../src/extensions/TiledDiffusion.ext.ts","../src/extensions/TiledVAE.ext.ts","../src/extensions/DynamicCFG.ext.ts","../src/extensions/ADetailer.ext.ts","../src/client/core/BaseHttpRequest.ts","../src/client/core/ApiError.ts","../src/client/core/CancelablePromise.ts","../src/client/core/request.ts","../src/client/core/FetchHttpRequest.ts","../src/client/services/DefaultService.ts","../src/client/SDWebUIA1111Client.ts","../src/client/core/OpenAPI.ts","../src/process/SDProcessor.ts","../src/process/Img2imgProcess.ts","../src/process/Txt2imgProcess.ts","../src/process/SystemSettingProcess.ts","../src/process/types.ts","../src/scheduler/SDTask.ts","../src/scheduler/SDTaskScheduler.ts","../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","../src/api/BatchGeneration.ts","../src/api/CachedApi.ts","../src/api/cnet.ts","../src/api/service.ts","../src/api/api.ts","../src/pipeline/Pipeline.ts"],"sourcesContent":["export const deepClone: <T>(x: T) => T =\r\n globalThis.structuredClone ?? ((x: any) => JSON.parse(JSON.stringify(x)));\r\n\r\nexport const not = (x: boolean) => !x;\r\n","import {\r\n StableDiffusionProcessingImg2Img,\r\n StableDiffusionProcessingTxt2Img,\r\n} from \"../client\";\r\n\r\n/**\r\n * 定义拓展脚本的参数\r\n */\r\nexport class ExtensionScript<Args extends Array<any> = Array<any>> {\r\n constructor(readonly name: string, protected args: Args) {}\r\n\r\n install(\r\n req: StableDiffusionProcessingImg2Img | StableDiffusionProcessingTxt2Img\r\n ) {\r\n if (typeof req !== \"object\") {\r\n return;\r\n }\r\n req[\"alwayson_scripts\"] ||= {};\r\n req[\"alwayson_scripts\"][this.name] = {\r\n args: this.args,\r\n };\r\n }\r\n}\r\n","import {\r\n StableDiffusionProcessingImg2Img,\r\n StableDiffusionProcessingTxt2Img,\r\n} from \"../client\";\r\nimport { deepClone } from \"../misc\";\r\nimport { ExtensionScript } from \"./ExtensionScript\";\r\n\r\nexport interface ControlNetUnitRequest {\r\n /**\r\n * This unit enabled or not.\r\n */\r\n enabled: boolean;\r\n\r\n /**\r\n * Image to use in this unit.\r\n * Defaults to null.\r\n */\r\n image?: string | null;\r\n\r\n /**\r\n * Mask pixel_perfect to filter the image.\r\n * Defaults to null.\r\n */\r\n mask?: string | null;\r\n\r\n /**\r\n * Preprocessor to use on the image passed to this unit before using it for conditioning.\r\n * Accepts values returned by the /controlnet/module_list route.\r\n * Defaults to \"none\".\r\n */\r\n module?: string;\r\n\r\n /**\r\n * Name of the model to use for conditioning in this unit.\r\n * Accepts values returned by the /controlnet/model_list route.\r\n * Defaults to \"None\".\r\n */\r\n model?: string;\r\n\r\n /**\r\n * Weight of this unit.\r\n * Defaults to -1.\r\n */\r\n weight?: number;\r\n\r\n /**\r\n * How to resize the input image so as to fit the output resolution of the generation.\r\n * Defaults to \"Scale to Fit (Inner Fit)\".\r\n * Accepted values:\r\n * - 0 or \"Just Resize\": simply resize the image to the target width/height\r\n * - 1 or \"Scale to Fit (Inner Fit)\": scale and crop to fit smallest dimension, preserves proportions\r\n * - 2 or \"Envelope (Outer Fit)\": scale to fit largest dimension, preserves proportions\r\n */\r\n resize_mode?: ResizeMode;\r\n\r\n /**\r\n * Whether to compensate low GPU memory with processing time.\r\n * Defaults to false.\r\n */\r\n low_vram?: boolean;\r\n\r\n /**\r\n * Resolution of the preprocessor.\r\n * Defaults to -1.\r\n */\r\n processor_res?: number;\r\n\r\n /**\r\n * First parameter of the preprocessor.\r\n * Only takes effect when preprocessor accepts arguments.\r\n * Defaults to -1.\r\n */\r\n threshold_a?: number;\r\n\r\n /**\r\n * Second parameter of the preprocessor, same as above for usage.\r\n * Defaults to -1.\r\n */\r\n threshold_b?: number;\r\n\r\n /**\r\n * Ratio of generation where this unit starts to have an effect.\r\n * Defaults to 0.0.\r\n */\r\n guidance_start?: number;\r\n\r\n /**\r\n * Ratio of generation where this unit stops to have an effect.\r\n * Defaults to 1.0.\r\n */\r\n guidance_end?: number;\r\n\r\n /**\r\n * See the related issue for usage.\r\n * Defaults to 0.\r\n * Accepted values:\r\n * - 0 or \"Balanced\": balanced, no preference between prompt and control model\r\n * - 1 or \"My prompt is more important\": the prompt has more impact than the model\r\n * - 2 or \"ControlNet is more important\": the controlnet model has more impact than the prompt\r\n */\r\n control_mode?: ControlMode;\r\n\r\n /**\r\n * Enable pixel-perfect preprocessor.\r\n * Defaults to false.\r\n */\r\n pixel_perfect?: boolean;\r\n}\r\n\r\nexport type ResizeMode =\r\n | \"Just Resize\"\r\n | \"Scale to Fit (Inner Fit)\"\r\n | \"Envelope (Outer Fit)\";\r\n\r\nexport type ControlMode =\r\n | \"Balanced\"\r\n | \"My prompt is more important\"\r\n | \"ControlNet is more important\";\r\n\r\nconst defaultControlNetUnitRequest = (): ControlNetUnitRequest => ({\r\n enabled: true,\r\n image: null,\r\n mask: null,\r\n module: \"none\",\r\n model: \"None\",\r\n weight: 1,\r\n resize_mode: \"Scale to Fit (Inner Fit)\",\r\n low_vram: false,\r\n processor_res: -1,\r\n threshold_a: -1,\r\n threshold_b: -1,\r\n guidance_start: 0.0,\r\n guidance_end: 1.0,\r\n control_mode: \"Balanced\",\r\n pixel_perfect: false,\r\n});\r\n\r\nexport class ControlNetExt extends ExtensionScript<\r\n Array<Partial<ControlNetUnitRequest>>\r\n> {\r\n constructor(\r\n unit0?: Partial<ControlNetUnitRequest>,\r\n readonly options?: {\r\n disable_auto_set_image?: boolean;\r\n disable_auto_set_mask?: boolean;\r\n }\r\n ) {\r\n super(\"ControlNet\", []);\r\n if (unit0) {\r\n this.addUnit(unit0);\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated Use `add` instead\r\n */\r\n addUnit(unit: Partial<ControlNetUnitRequest>) {\r\n return this.add(unit);\r\n }\r\n\r\n /**\r\n * Add a unit to the control net units. The unit must have at least one key.\r\n * If the unit is empty, an error will be thrown.\r\n * The unit will be merged with the default unit request before being added\r\n * @param {Partial<ControlNetUnitRequest>} unit The unit to add\r\n * @returns {this} The current instance of the extension script\r\n */\r\n add(unit: Partial<ControlNetUnitRequest>) {\r\n if (Object.keys(unit).length === 0) {\r\n throw new Error(\"Unit must have at least one key\");\r\n }\r\n\r\n this.args.push({\r\n ...defaultControlNetUnitRequest(),\r\n ...unit,\r\n });\r\n\r\n return this;\r\n }\r\n\r\n clear() {\r\n this.args = [];\r\n\r\n return this;\r\n }\r\n\r\n install(\r\n req: StableDiffusionProcessingImg2Img | StableDiffusionProcessingTxt2Img\r\n ): void {\r\n if (typeof req !== \"object\") {\r\n return;\r\n }\r\n\r\n const units = deepClone(this.args);\r\n\r\n if (!this.options?.disable_auto_set_image) {\r\n const init_images = \"init_images\" in req ? req.init_images || [] : [];\r\n const init_image0 = init_images[0];\r\n if (init_image0) {\r\n for (const unit of units) {\r\n if (!unit.image) {\r\n unit.image = init_image0;\r\n }\r\n }\r\n }\r\n }\r\n if (!this.options?.disable_auto_set_mask) {\r\n const mask = \"mask\" in req ? req.mask || null : null;\r\n if (mask) {\r\n for (const unit of units) {\r\n if (!unit.mask) {\r\n unit.mask = mask;\r\n }\r\n }\r\n }\r\n }\r\n\r\n req[\"alwayson_scripts\"] ||= {};\r\n req[\"alwayson_scripts\"][this.name] = {\r\n args: units,\r\n };\r\n }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Parameters for the cutoff feature.\r\n */\r\nexport interface CutoffParams {\r\n /**\r\n * Whether the cutoff feature is enabled.\r\n */\r\n enabled: boolean;\r\n\r\n /**\r\n * The target for the cutoff.\r\n */\r\n targets: string;\r\n\r\n /**\r\n * The weight for the cutoff.\r\n */\r\n weight: number;\r\n\r\n /**\r\n * Whether to disable negative cutoff.\r\n */\r\n disable_neg: boolean;\r\n\r\n /**\r\n * Whether to use strong cutoff.\r\n */\r\n strong: boolean;\r\n\r\n /**\r\n * The padding token for the cutoff (can be an ID or a single token).\r\n */\r\n padding: string | number;\r\n\r\n /**\r\n * Input options for the cutoff. Valid values are \"Lerp\" or \"SLerp\".\r\n */\r\n inpt: \"Lerp\" | \"SLerp\";\r\n\r\n /**\r\n * Whether to enable debug mode for the cutoff.\r\n */\r\n debug: boolean;\r\n}\r\n\r\n/**\r\n * Arguments for extending the cutoff params.\r\n */\r\nexport type CutoffExtArgs = [\r\n enabled: CutoffParams[\"enabled\"],\r\n targets: CutoffParams[\"targets\"],\r\n weight: CutoffParams[\"weight\"],\r\n disable_neg: CutoffParams[\"disable_neg\"],\r\n strong: CutoffParams[\"strong\"],\r\n padding: CutoffParams[\"padding\"],\r\n inpt: CutoffParams[\"inpt\"],\r\n debug: CutoffParams[\"debug\"]\r\n];\r\n\r\nconst default_params = (): CutoffParams => ({\r\n enabled: true,\r\n targets: \"\",\r\n weight: 1,\r\n disable_neg: false,\r\n strong: false,\r\n padding: \"\",\r\n inpt: \"Lerp\",\r\n debug: false,\r\n});\r\n\r\n/**\r\n * Generates the arguments for the CutoffExtArgs object based on the provided parameters.\r\n *\r\n * @param {Partial<CutoffParams>} params - The parameters used to generate the arguments.\r\n * @return {CutoffExtArgs} - The generated arguments for the CutoffExtArgs object.\r\n */\r\nfunction params2args(params?: Partial<CutoffParams>): CutoffExtArgs {\r\n const {\r\n enabled,\r\n targets,\r\n weight,\r\n disable_neg,\r\n strong,\r\n padding,\r\n inpt,\r\n debug,\r\n } = default_params();\r\n return [\r\n params?.enabled ?? enabled,\r\n params?.targets ?? targets,\r\n params?.weight ?? weight,\r\n params?.disable_neg ?? disable_neg,\r\n params?.strong ?? strong,\r\n params?.padding ?? padding,\r\n params?.inpt ?? inpt,\r\n params?.debug ?? debug,\r\n ];\r\n}\r\n\r\nexport class CutoffExt extends ExtensionScript<CutoffExtArgs> {\r\n constructor(params?: Partial<CutoffParams>) {\r\n super(\"Cutoff\", params2args(params));\r\n }\r\n\r\n /**\r\n * Update the parameters of the cutoff.\r\n *\r\n * @param {Partial<CutoffParams>} params - The updated parameters for the cutoff.\r\n */\r\n update(params: Partial<CutoffParams>) {\r\n this.args = params2args(params);\r\n }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Parameters for tiled diffusion processing\r\n */\r\nexport interface TiledDiffusionParams {\r\n /**\r\n * Whether to enable tiled diffusion\r\n */\r\n enabled: boolean;\r\n\r\n /**\r\n * Tiled diffusion method to use\r\n */\r\n method: TiledDiffusionMethod;\r\n\r\n /**\r\n * Whether to overwrite image size instead of using original size\r\n */\r\n overwrite_size: boolean;\r\n\r\n /**\r\n * Keep input image size when doing img2img\r\n */\r\n keep_input_size: boolean;\r\n\r\n /**\r\n * Image width when overwriting size\r\n */\r\n image_width: number;\r\n\r\n /**\r\n * Image height when overwriting size\r\n */\r\n image_height: number;\r\n\r\n /**\r\n * Width of each latent tile\r\n */\r\n tile_width: number;\r\n\r\n /**\r\n * Height of each latent tile\r\n */\r\n tile_height: number;\r\n\r\n /**\r\n * Overlap between latent tiles\r\n */\r\n overlap: number;\r\n\r\n /**\r\n * Batch size for processing latent tiles\r\n */\r\n tile_batch_size: number;\r\n\r\n /**\r\n * Name of upscaler to use for img2img\r\n */\r\n upscaler_name: string;\r\n\r\n /**\r\n * Scale factor for img2img upscaling\r\n */\r\n scale_factor: number;\r\n\r\n /**\r\n * Whether to enable noise inversion\r\n */\r\n noise_inverse: boolean;\r\n\r\n /**\r\n * Number of steps to run noise inversion\r\n */\r\n noise_inverse_steps: number;\r\n\r\n /**\r\n * Noise inversion retouch strength\r\n */\r\n noise_inverse_retouch: number;\r\n\r\n /**\r\n * Noise renoise strength after inversion\r\n */\r\n noise_inverse_renoise_strength: number;\r\n\r\n /**\r\n * Kernel size for renoise after inversion\r\n */\r\n noise_inverse_renoise_kernel: number;\r\n\r\n /**\r\n * Whether to move control tensor to CPU\r\n */\r\n control_tensor_cpu: boolean;\r\n\r\n /**\r\n * Whether region prompt control is enabled\r\n */\r\n enable_bbox_control: boolean;\r\n\r\n /**\r\n * Whether to draw full background when using region control\r\n */\r\n draw_background: boolean;\r\n\r\n /**\r\n * Whether layers are causaled when using region control\r\n */\r\n causal_layers: boolean;\r\n\r\n // Bounding box control params\r\n bbox_control_states: any[];\r\n}\r\n\r\n/**\r\n * Default arguments for tiled diffusion processing\r\n */\r\nexport type TiledDiffusionArgs = [\r\n enabled: TiledDiffusionParams[\"enabled\"],\r\n method: TiledDiffusionParams[\"method\"],\r\n overwrite_size: TiledDiffusionParams[\"overwrite_size\"],\r\n keep_input_size: TiledDiffusionParams[\"keep_input_size\"],\r\n image_width: TiledDiffusionParams[\"image_width\"],\r\n image_height: TiledDiffusionParams[\"image_height\"],\r\n tile_width: TiledDiffusionParams[\"tile_width\"],\r\n tile_height: TiledDiffusionParams[\"tile_height\"],\r\n overlap: TiledDiffusionParams[\"overlap\"],\r\n tile_batch_size: TiledDiffusionParams[\"tile_batch_size\"],\r\n upscaler_name: TiledDiffusionParams[\"upscaler_name\"],\r\n scale_factor: TiledDiffusionParams[\"scale_factor\"],\r\n noise_inverse: TiledDiffusionParams[\"noise_inverse\"],\r\n noise_inverse_steps: TiledDiffusionParams[\"noise_inverse_steps\"],\r\n noise_inverse_retouch: TiledDiffusionParams[\"noise_inverse_retouch\"],\r\n noise_inverse_renoise_strength: TiledDiffusionParams[\"noise_inverse_renoise_strength\"],\r\n noise_inverse_renoise_kernel: TiledDiffusionParams[\"noise_inverse_renoise_kernel\"],\r\n control_tensor_cpu: TiledDiffusionParams[\"control_tensor_cpu\"],\r\n enable_bbox_control: TiledDiffusionParams[\"enable_bbox_control\"],\r\n draw_background: TiledDiffusionParams[\"draw_background\"],\r\n causal_layers: TiledDiffusionParams[\"causal_layers\"],\r\n bbox_control_states: TiledDiffusionParams[\"bbox_control_states\"]\r\n];\r\n\r\n/**\r\n * Tiled diffusion methods\r\n */\r\nexport enum TiledDiffusionMethod {\r\n MULTI_DIFF = \"MultiDiffusion\",\r\n MIX_DIFF = \"Mixture of Diffusers\",\r\n}\r\n\r\n/**\r\n * Get default parameters for tiled diffusion\r\n */\r\nfunction default_params(): TiledDiffusionParams {\r\n return {\r\n enabled: true,\r\n method: TiledDiffusionMethod.MULTI_DIFF,\r\n overwrite_size: false,\r\n keep_input_size: true,\r\n image_width: 1024,\r\n image_height: 1024,\r\n tile_width: 96,\r\n tile_height: 96,\r\n overlap: 48,\r\n tile_batch_size: 4,\r\n upscaler_name: \"None\",\r\n scale_factor: 2.0,\r\n noise_inverse: false,\r\n noise_inverse_steps: 10,\r\n noise_inverse_retouch: 1,\r\n noise_inverse_renoise_strength: 1,\r\n noise_inverse_renoise_kernel: 64,\r\n control_tensor_cpu: false,\r\n enable_bbox_control: false,\r\n draw_background: false,\r\n causal_layers: false,\r\n bbox_control_states: [],\r\n };\r\n}\r\n\r\nconst params2args = (\r\n params?: Partial<TiledDiffusionParams>\r\n): TiledDiffusionArgs => {\r\n const {\r\n enabled,\r\n method,\r\n overwrite_size,\r\n keep_input_size,\r\n image_width,\r\n image_height,\r\n tile_width,\r\n tile_height,\r\n overlap,\r\n tile_batch_size,\r\n upscaler_name,\r\n scale_factor,\r\n noise_inverse,\r\n noise_inverse_steps,\r\n noise_inverse_retouch,\r\n noise_inverse_renoise_strength,\r\n noise_inverse_renoise_kernel,\r\n control_tensor_cpu,\r\n enable_bbox_control,\r\n draw_background,\r\n causal_layers,\r\n bbox_control_states,\r\n } = { ...default_params(), ...params };\r\n\r\n return [\r\n enabled,\r\n method,\r\n overwrite_size,\r\n keep_input_size,\r\n image_width,\r\n image_height,\r\n tile_width,\r\n tile_height,\r\n overlap,\r\n tile_batch_size,\r\n upscaler_name,\r\n scale_factor,\r\n noise_inverse,\r\n noise_inverse_steps,\r\n noise_inverse_retouch,\r\n noise_inverse_renoise_strength,\r\n noise_inverse_renoise_kernel,\r\n control_tensor_cpu,\r\n enable_bbox_control,\r\n draw_background,\r\n causal_layers,\r\n bbox_control_states,\r\n ];\r\n};\r\n\r\nexport class TiledDiffusionExt extends ExtensionScript<TiledDiffusionArgs> {\r\n constructor(params?: Partial<TiledDiffusionParams>) {\r\n super(\"Tiled Diffusion\", params2args(params));\r\n }\r\n\r\n /**\r\n * Update the parameters of the TiledDiffusion object.\r\n *\r\n * @param {Partial<TiledDiffusionParams>} params - The partial parameters to update.\r\n */\r\n update(params: Partial<TiledDiffusionParams>) {\r\n this.args = params2args(params);\r\n }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Interface for TiledVAE parameters\r\n */\r\nexport interface TiledVAEParams {\r\n /**\r\n * Whether to enable TiledVAE\r\n */\r\n enabled: boolean;\r\n\r\n /**\r\n * Encoder tile size\r\n */\r\n encoderTileSize: number;\r\n\r\n /**\r\n * Decoder tile size\r\n */\r\n decoderTileSize: number;\r\n\r\n /**\r\n * Whether to move VAE to GPU (if possible)\r\n */\r\n vaeToGPU: boolean;\r\n\r\n /**\r\n * Whether to use fast decoder\r\n */\r\n fastDecoder: boolean;\r\n\r\n /**\r\n * Whether to use fast encoder\r\n */\r\n fastEncoder: boolean;\r\n\r\n /**\r\n * Fast encoder color fix\r\n */\r\n colorFix: boolean;\r\n}\r\n\r\n/**\r\n * Type for TiledVAE default argument values\r\n */\r\nexport type TiledVAEArgs = [\r\n /**\r\n * Whether to enable TiledVAE\r\n */\r\n enabled: TiledVAEParams[\"enabled\"],\r\n /**\r\n * Encoder tile size\r\n */\r\n encoderTileSize: TiledVAEParams[\"encoderTileSize\"],\r\n /**\r\n * Decoder tile size\r\n */\r\n decoderTileSize: TiledVAEParams[\"decoderTileSize\"],\r\n /**\r\n * Whether to move VAE to GPU (if possible)\r\n */\r\n vaeToGPU: TiledVAEParams[\"vaeToGPU\"],\r\n\r\n /**\r\n * Whether to use fast decoder\r\n */\r\n fastDecoder: TiledVAEParams[\"fastDecoder\"],\r\n /**\r\n * Whether to use fast encoder\r\n */\r\n fastEncoder: TiledVAEParams[\"fastEncoder\"],\r\n /**\r\n * Fast encoder color fix\r\n */\r\n colorFix: TiledVAEParams[\"colorFix\"]\r\n];\r\n\r\n/**\r\n * Get default values for TiledVAE parameters\r\n */\r\nfunction defaultParams(): TiledVAEParams {\r\n return {\r\n enabled: true,\r\n encoderTileSize: 1024,\r\n decoderTileSize: 96,\r\n vaeToGPU: true,\r\n fastDecoder: true,\r\n fastEncoder: true,\r\n colorFix: false,\r\n };\r\n}\r\n\r\nfunction params2args(params?: Partial<TiledVAEParams>): TiledVAEArgs {\r\n const {\r\n enabled,\r\n encoderTileSize,\r\n decoderTileSize,\r\n vaeToGPU,\r\n fastDecoder,\r\n fastEncoder,\r\n colorFix,\r\n } = { ...defaultParams(), ...params };\r\n return [\r\n enabled,\r\n encoderTileSize,\r\n decoderTileSize,\r\n vaeToGPU,\r\n fastDecoder,\r\n fastEncoder,\r\n colorFix,\r\n ];\r\n}\r\n\r\nexport class TiledVAEExt extends ExtensionScript<TiledVAEArgs> {\r\n constructor(params?: Partial<TiledVAEParams>) {\r\n super(\"Tiled VAE\", params2args(params));\r\n }\r\n\r\n /**\r\n * Update the parameters of the TiledDiffusion object.\r\n *\r\n * @param {Partial<TiledVAEParams>} params - The partial parameters to update.\r\n */\r\n update(params: Partial<TiledVAEParams>) {\r\n this.args = params2args(params);\r\n }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n/**\r\n * DynamicCFGParams defines the parameters for the dynamic thresholding UI component\r\n */\r\nexport interface DynamicCFGParams {\r\n /**\r\n * Whether dynamic thresholding is enabled\r\n */\r\n enabled: boolean;\r\n\r\n /**\r\n * The scale to mimic for CFG\r\n */\r\n mimicScale: number;\r\n\r\n /**\r\n * The percentile threshold for clamping latent values\r\n */\r\n thresholdPercentile: number;\r\n\r\n /**\r\n * The mode for scheduling the mimic scale value\r\n */\r\n mimicMode:\r\n | \"Constant\"\r\n | \"Linear\"\r\n | \"Cosine\"\r\n | \"CosineRepeating\"\r\n | \"PowerDown\"\r\n | \"PowerUp\";\r\n\r\n /**\r\n * The minimum value when using a scheduled mimic scale\r\n */\r\n mimicScaleMin: number;\r\n\r\n /**\r\n * The mode for scheduling the CFG scale value\r\n */\r\n cfgMode:\r\n | \"Constant\"\r\n | \"Linear\"\r\n | \"Cosine\"\r\n | \"CosineRepeating\"\r\n | \"PowerDown\"\r\n | \"PowerUp\";\r\n\r\n /**\r\n * The minimum value when using a scheduled CFG scale\r\n */\r\n cfgScaleMin: number;\r\n\r\n /**\r\n * The scheduler value used for some modes\r\n */\r\n schedVal: number;\r\n}\r\n\r\nexport type DynamicCFGArgs = [\r\n enabled: DynamicCFGParams[\"enabled\"],\r\n mimicScale: DynamicCFGParams[\"mimicScale\"],\r\n thresholdPercentile: DynamicCFGParams[\"thresholdPercentile\"],\r\n mimicMode: DynamicCFGParams[\"mimicMode\"],\r\n mimicScaleMin: DynamicCFGParams[\"mimicScaleMin\"],\r\n cfgMode: DynamicCFGParams[\"cfgMode\"],\r\n cfgScaleMin: DynamicCFGParams[\"cfgScaleMin\"],\r\n schedVal: DynamicCFGParams[\"schedVal\"]\r\n];\r\n\r\n/**\r\n * Default values for the parameters\r\n */\r\nconst defaultDynamicCFGParams = (): DynamicCFGParams => ({\r\n enabled: false,\r\n mimicScale: 7.0,\r\n thresholdPercentile: 100,\r\n mimicMode: \"Constant\",\r\n mimicScaleMin: 0,\r\n cfgMode: \"Constant\",\r\n cfgScaleMin: 0,\r\n schedVal: 4.0,\r\n});\r\n\r\nconst params2args = (params?: Partial<DynamicCFGParams>): DynamicCFGArgs => {\r\n const {\r\n enabled,\r\n mimicScale,\r\n thresholdPercentile,\r\n mimicMode,\r\n mimicScaleMin,\r\n cfgMode,\r\n cfgScaleMin,\r\n schedVal,\r\n } = { ...defaultDynamicCFGParams(), ...params };\r\n return [\r\n enabled,\r\n mimicScale,\r\n thresholdPercentile,\r\n mimicMode,\r\n mimicScaleMin,\r\n cfgMode,\r\n cfgScaleMin,\r\n schedVal,\r\n ];\r\n};\r\n\r\nexport class DynamicCFGExt extends ExtensionScript<DynamicCFGArgs> {\r\n constructor(params?: Partial<DynamicCFGParams>) {\r\n super(\"Dynamic Thresholding (CFG Scale Fix)\", params2args(params));\r\n }\r\n\r\n /**\r\n * Update the parameters of object.\r\n *\r\n * @param {Partial<DynamicCFGParams>} params - The partial parameters to update.\r\n */\r\n update(params: Partial<DynamicCFGParams>) {\r\n this.args = params2args(params);\r\n }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Parameters for the ADetailer feature.\r\n */\r\nexport interface ADetailerParams {\r\n ad_model: string;\r\n ad_model_classes: string;\r\n ad_tab_enable: boolean;\r\n ad_prompt: string;\r\n ad_negative_prompt: string;\r\n ad_confidence: number;\r\n ad_mask_filter_method: string;\r\n ad_mask_k: number;\r\n ad_mask_min_ratio: number;\r\n ad_mask_max_ratio: number;\r\n ad_dilate_erode: number;\r\n ad_x_offset: number;\r\n ad_y_offset: number;\r\n ad_mask_merge_invert: string;\r\n ad_mask_blur: number;\r\n ad_denoising_strength: number;\r\n ad_inpaint_only_masked: boolean;\r\n ad_inpaint_only_masked_padding: number;\r\n ad_use_inpaint_width_height: boolean;\r\n ad_inpaint_width: number;\r\n ad_inpaint_height: number;\r\n ad_use_steps: boolean;\r\n ad_steps: number;\r\n ad_use_cfg_scale: boolean;\r\n ad_cfg_scale: number;\r\n ad_use_checkpoint: boolean;\r\n ad_checkpoint: string | null;\r\n ad_use_vae: boolean;\r\n ad_vae: string | null;\r\n ad_use_sampler: boolean;\r\n ad_sampler: string;\r\n ad_scheduler: string;\r\n ad_use_noise_multiplier: boolean;\r\n ad_noise_multiplier: number;\r\n ad_use_clip_skip: boolean;\r\n ad_clip_skip: number;\r\n ad_restore_face: boolean;\r\n ad_controlnet_model: string;\r\n ad_controlnet_module: string;\r\n ad_controlnet_weight: number;\r\n ad_controlnet_guidance_start: number;\r\n ad_controlnet_guidance_end: number;\r\n}\r\n\r\nexport type ADetailerExtArgs = [ADetailerParams];\r\n\r\nconst default_params = (): ADetailerParams => ({\r\n ad_model: \"face_yolov8n.pt\",\r\n ad_model_classes: \"\",\r\n ad_tab_enable: true,\r\n ad_prompt: \"\",\r\n ad_negative_prompt: \"\",\r\n ad_confidence: 0.3,\r\n ad_mask_filter_method: \"Area\",\r\n ad_mask_k: 0,\r\n ad_mask_min_ratio: 0.0,\r\n ad_mask_max_ratio: 1.0,\r\n ad_dilate_erode: 4,\r\n ad_x_offset: 0,\r\n ad_y_offset: 0,\r\n ad_mask_merge_invert: \"None\",\r\n ad_mask_blur: 4,\r\n ad_denoising_strength: 0.4,\r\n ad_inpaint_only_masked: true,\r\n ad_inpaint_only_masked_padding: 32,\r\n ad_use_inpaint_width_height: false,\r\n ad_inpaint_width: 512,\r\n ad_inpaint_height: 512,\r\n ad_use_steps: false,\r\n ad_steps: 28,\r\n ad_use_cfg_scale: false,\r\n ad_cfg_scale: 7.0,\r\n ad_use_checkpoint: false,\r\n ad_checkpoint: null,\r\n ad_use_vae: false,\r\n ad_vae: null,\r\n ad_use_sampler: false,\r\n ad_sampler: \"DPM++ 2M Karras\",\r\n ad_scheduler: \"Use same scheduler\",\r\n ad_use_noise_multiplier: false,\r\n ad_noise_multiplier: 1.0,\r\n ad_use_clip_skip: false,\r\n ad_clip_skip: 1,\r\n ad_restore_face: false,\r\n ad_controlnet_model: \"None\",\r\n ad_controlnet_module: \"None\",\r\n ad_controlnet_weight: 1.0,\r\n ad_controlnet_guidance_start: 0.0,\r\n ad_controlnet_guidance_end: 1.0,\r\n});\r\n\r\nexport class ADetailerExt extends ExtensionScript<ADetailerExtArgs> {\r\n constructor(params?: Partial<ADetailerParams>) {\r\n super(\"ADetailer\", [Object.assign(default_params(), params)]);\r\n }\r\n\r\n update(params: Partial<ADetailerParams>) {\r\n this.args = [Object.assign(default_params(), params)];\r\n }\r\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\nexport abstract class BaseHttpRequest {\n\n constructor(public readonly config: OpenAPIConfig) {}\n\n public abstract request<T>(options: ApiRequestOptions): CancelablePromise<T>;\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n public readonly url: string;\n public readonly status: number;\n public readonly statusText: string;\n public readonly body: any;\n public readonly request: ApiRequestOptions;\n\n constructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n super(message);\n\n this.name = 'ApiError';\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.body = response.body;\n this.request = request;\n }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nexport class CancelError extends Error {\n\n constructor(message: string) {\n super(message);\n this.name = 'CancelError';\n }\n\n public get isCancelled(): boolean {\n return true;\n }\n}\n\nexport interface OnCancel {\n readonly isResolved: boolean;\n readonly isRejected: boolean;\n readonly isCancelled: boolean;\n\n (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise<T> implements Promise<T> {\n #isResolved: boolean;\n #isRejected: boolean;\n #isCancelled: boolean;\n readonly #cancelHandlers: (() => void)[];\n readonly #promise: Promise<T>;\n #resolve?: (value: T | PromiseLike<T>) => void;\n #reject?: (reason?: any) => void;\n\n constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: any) => void,\n onCancel: OnCancel\n ) => void\n ) {\n this.#isResolved = false;\n this.#isRejected = false;\n this.#isCancelled = false;\n this.#cancelHandlers = [];\n this.#promise = new Promise<T>((resolve, reject) => {\n this.#resolve = resolve;\n this.#reject = reject;\n\n const onResolve = (value: T | PromiseLike<T>): void => {\n if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n return;\n }\n this.#isResolved = true;\n this.#resolve?.(value);\n };\n\n const onReject = (reason?: any): void => {\n if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n return;\n }\n this.#isRejected = true;\n this.#reject?.(reason);\n };\n\n const onCancel = (cancelHandler: () => void): void => {\n if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n return;\n }\n this.#cancelHandlers.push(cancelHandler);\n };\n\n Object.defineProperty(onCancel, 'isResolved', {\n get: (): boolean => this.#isResolved,\n });\n\n Object.defineProperty(onCancel, 'isRejected', {\n get: (): boolean => this.#isRejected,\n });\n\n Object.defineProperty(onCancel, 'isCancelled', {\n get: (): boolean => this.#isCancelled,\n });\n\n return executor(onResolve, onReject, onCancel as OnCancel);\n });\n }\n\n get [Symbol.toStringTag]() {\n return \"Cancellable Promise\";\n }\n\n public then<TResult1 = T, TResult2 = never>(\n onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<TResult1 | TResult2> {\n return this.#promise.then(onFulfilled, onRejected);\n }\n\n public catch<TResult = never>(\n onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null\n ): Promise<T | TResult> {\n return this.#promise.catch(onRejected);\n }\n\n public finally(onFinally?: (() => void) | null): Promise<T> {\n return this.#promise.finally(onFinally);\n }\n\n public cancel(): void {\n if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n return;\n }\n this.#isCancelled = true;\n if (this.#cancelHandlers.length) {\n try {\n for (const cancelHandler of this.#cancelHandlers) {\n cancelHandler();\n }\n } catch (error) {\n console.warn('Cancellation threw an error', error);\n return;\n }\n }\n this.#cancelHandlers.length = 0;\n this.#reject?.(new CancelError('Request aborted'));\n }\n\n public get isCancelled(): boolean {\n return this.#isCancelled;\n }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\nexport const isDefined = <T>(value: T | null | undefined): value is Exclude<T, null | undefined> => {\n return value !== undefined && value !== null;\n};\n\nexport const isString = (value: any): value is string => {\n return typeof value === 'string';\n};\n\nexport const isStringWithValue = (value: any): value is string => {\n return isString(value) && value !== '';\n};\n\nexport const isBlob = (value: any): value is Blob => {\n return (\n typeof value === 'object' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.constructor === 'function' &&\n typeof value.constructor.name === 'string' &&\n /^(Blob|File)$/.test(value.constructor.name) &&\n /^(Blob|File)$/.test(value[Symbol.toStringTag])\n );\n};\n\nexport const isFormData = (value: any): value is FormData => {\n return value instanceof FormData;\n};\n\nexport const base64 = (str: string): string => {\n try {\n return btoa(str);\n } catch (err) {\n // @ts-ignore\n return Buffer.from(str).toString('base64');\n }\n};\n\nexport const getQueryString = (params: Record<string, any>): string => {\n const qs: string[] = [];\n\n const append = (key: string, value: any) => {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n };\n\n const process = (key: string, value: any) => {\n if (isDefined(value)) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n process(key, v);\n });\n } else if (typeof value === 'object') {\n Object.entries(value).forEach(([k, v]) => {\n process(`${key}[${k}]`, v);\n });\n } else {\n append(key, value);\n }\n }\n };\n\n Object.entries(params).forEach(([key, value]) => {\n process(key, value);\n });\n\n if (qs.length > 0) {\n return `?${qs.join('&')}`;\n }\n\n return '';\n};\n\nconst getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n const encoder = config.ENCODE_PATH || encodeURI;\n\n const path = options.url\n .replace('{api-version}', config.VERSION)\n .replace(/{(.*?)}/g, (substring: string, group: string) => {\n if (options.path?.hasOwnProperty(group)) {\n return encoder(String(options.path[group]));\n }\n return substring;\n });\n\n const url = `${config.BASE}${path}`;\n if (options.query) {\n return `${url}${getQueryString(options.query)}`;\n }\n return url;\n};\n\nexport const getFormData = (options: ApiRequestOptions): FormData | undefined => {\n if (options.formData) {\n const formData = new FormData();\n\n const process = (key: string, value: any) => {\n if (isString(value) || isBlob(value)) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(options.formData)\n .filter(([_, value]) => isDefined(value))\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(v => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n }\n return undefined;\n};\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\n\nexport const resolve = async <T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> => {\n if (typeof resolver === 'function') {\n return (resolver as Resolver<T>)(options);\n }\n return resolver;\n};\n\nexport const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise<Headers> => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record<string, string>);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};\n\nexport const getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body !== undefined) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};\n\nexport const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise<Response> => {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n body: body ?? formData,\n method: options.method,\n signal: controller.signal,\n };\n\n if (config.WITH_CREDENTIALS) {\n request.credentials = config.CREDENTIALS;\n }\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n};\n\nexport const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};\n\nexport const getResponseBody = async (response: Response): Promise<any> => {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const jsonTypes = ['application/json', 'application/problem+json']\n const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type));\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};\n\nexport const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\n const errors: Record<number, string> = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Not Found',\n 500: 'Internal Server Error',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError(options, result, error);\n }\n\n if (!result.ok) {\n const errorStatus = result.status ?? 'unknown';\n const errorStatusText = result.statusText ?? 'unknown';\n const errorBody = (() => {\n try {\n return JSON.stringify(result.body, null, 2);\n } catch (e) {\n return undefined;\n }\n })();\n\n throw new ApiError(options, result,\n `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`\n );\n }\n};\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise<T>\n * @throws ApiError\n */\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<T> => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { request as __request } from './request';\n\nexport class FetchHttpRequest extends BaseHttpRequest {\n\n constructor(config: OpenAPIConfig) {\n super(config);\n }\n\n /**\n * Request method\n * @param options The request options from the service\n * @returns CancelablePromise<T>\n * @throws ApiError\n */\n public override request<T>(options: ApiRequestOptions): CancelablePromise<T> {\n return __request(this.config, options);\n }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Body_detect_controlnet_detect_post } from '../models/Body_detect_controlnet_detect_post';\nimport type { Body_rembg_remove_rembg_post } from '../models/Body_rembg_remove_rembg_post';\nimport type { Body_upload_file_upload_post } from '../models/Body_upload_file_upload_post';\nimport type { CreateResponse } from '../models/CreateResponse';\nimport type { EmbeddingsResponse } from '../models/EmbeddingsResponse';\nimport type { Estimation } from '../models/Estimation';\nimport type { ExtensionItem } from '../models/ExtensionItem';\nimport type { ExtrasBatchImagesRequest } from '../models/ExtrasBatchImagesRequest';\nimport type { ExtrasBatchImagesResponse } from '../models/ExtrasBatchImagesResponse';\nimport type { ExtrasSingleImageRequest } from '../models/ExtrasSingleImageRequest';\nimport type { ExtrasSingleImageResponse } from '../models/ExtrasSingleImageResponse';\nimport type { FaceRestorerItem } from '../models/FaceRestorerItem';\nimport type { Flags } from '../models/Flags';\nimport type { HistoryResponse } from '../models/HistoryResponse';\nimport type { HypernetworkItem } from '../models/HypernetworkItem';\nimport type { ImageToImageResponse } from '../models/ImageToImageResponse';\nimport type { Img2ImgApiTaskArgs } from '../models/Img2ImgApiTaskArgs';\nimport type { InterrogateRequest } from '../models/InterrogateRequest';\nimport type { LatentUpscalerModeItem } from '../models/LatentUpscalerModeItem';\nimport type { MemoryResponse } from '../models/MemoryResponse';\nimport type { modules__api__models__ProgressResponse } from '../models/modules__api__models__ProgressResponse';\nimport type { modules__progress__ProgressResponse } from '../models/modules__progress__ProgressResponse';\nimport type { Options } from '../models/Options';\nimport type { PNGInfoRequest } from '../models/PNGInfoRequest';\nimport type { PNGInfoResponse } from '../models/PNGInfoResponse';\nimport type { PoseData } from '../models/PoseData';\nimport type { PredictBody } from '../models/PredictBody';\nimport type { ProgressRequest } from '../models/ProgressRequest';\nimport type { PromptStyleItem } from '../models/PromptStyleItem';\nimport type { QueueStatusResponse } from '../models/QueueStatusResponse';\nimport type { QueueTaskResponse } from '../models/QueueTaskResponse';\nimport type { QuicksettingsHint } from '../models/QuicksettingsHint';\nimport type { RealesrganItem } from '../models/RealesrganItem';\nimport type { ResetBody } from '../models/ResetBody';\nimport type { SamplerItem } from '../models/SamplerItem';\nimport type { SchedulerItem } from '../models/SchedulerItem';\nimport type { ScriptInfo } from '../models/ScriptInfo';\nimport type { ScriptsList } from '../models/ScriptsList';\nimport type { SDModelItem } from '../models/SDModelItem';\nimport type { SDVaeItem } from '../models/SDVaeItem';\nimport type { StableDiffusionProcessingImg2Img } from '../models/StableDiffusionProcessingImg2Img';\nimport type { StableDiffusionProcessingTxt2Img } from '../models/StableDiffusionProcessingTxt2Img';\nimport type { StringRequestBody } from '../models/StringRequestBody';\nimport type { TextToImageResponse } from '../models/TextToImageResponse';\nimport type { TrainResponse } from '../models/TrainResponse';\nimport type { Txt2ImgApiTaskArgs } from '../models/Txt2ImgApiTaskArgs';\nimport type { UpdateTaskArgs } from '../models/UpdateTaskArgs';\nimport type { UpscalerItem } from '../models/UpscalerItem';\nimport type { UseCountListRequest } from '../models/UseCountListRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class DefaultService {\n\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n /**\n * Get Current User\n * @returns string Successful Response\n * @throws ApiError\n */\n public getCurrentUserUserGet(): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/user/',\n });\n }\n\n /**\n * Get Current User\n * @returns string Successful Response\n * @throws ApiError\n */\n public getCurrentUserUserGet1(): CancelablePromise<string> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/user',\n });\n }\n\n /**\n * App Id\n * @returns any Successful Response\n * @throws ApiError\n */\n public appIdAppIdGet(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/app_id/',\n });\n }\n\n /**\n * App Id\n * @returns any Successful Response\n * @throws ApiError\n */\n public appIdAppIdGet1(): CancelablePromise<Record<string, any>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/app_id',\n });\n }\n\n /**\n * Api Info\n * @returns any Successful Response\n * @throws ApiError\n */\n public apiInfoInfoGet({\nserialize = true,\n}: {\nserialize?: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/info',\n query: {\n 'serialize': serialize,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Build Resource\n * @returns any Successful Response\n * @throws ApiError\n */\n public buildResourceAssetsPathGet({\npath,\n}: {\npath: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/assets/{path}',\n path: {\n 'path': path,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Reverse Proxy\n * @returns any Successful Response\n * @throws ApiError\n */\n public reverseProxyProxyUrlPathGet({\nurlPath,\n}: {\nurlPath: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/proxy={url_path}',\n path: {\n 'url_path': urlPath,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Reverse Proxy\n * @returns any Successful Response\n * @throws ApiError\n */\n public reverseProxyProxyUrlPathHead({\nurlPath,\n}: {\nurlPath: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'HEAD',\n url: '/proxy={url_path}',\n path: {\n 'url_path': urlPath,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Stream\n * @returns any Successful Response\n * @throws ApiError\n */\n public streamStreamSessionHashRunComponentIdGet({\nsessionHash,\nrun,\ncomponentId,\n}: {\nsessionHash: string,\nrun: number,\ncomponentId: number,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/stream/{session_hash}/{run}/{component_id}',\n path: {\n 'session_hash': sessionHash,\n 'run': run,\n 'component_id': componentId,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * File Deprecated\n * @returns any Successful Response\n * @throws ApiError\n */\n public fileDeprecatedFilePathGet({\npath,\n}: {\npath: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/file/{path}',\n path: {\n 'path': path,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Reset Iterator\n * @returns any Successful Response\n * @throws ApiError\n */\n public resetIteratorResetPost({\nrequestBody,\n}: {\nrequestBody: ResetBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/reset',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Reset Iterator\n * @returns any Successful Response\n * @throws ApiError\n */\n public resetIteratorResetPost1({\nrequestBody,\n}: {\nrequestBody: ResetBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/reset/',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Predict\n * @returns any Successful Response\n * @throws ApiError\n */\n public predictApiApiNamePost({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/api/{api_name}/',\n path: {\n 'api_name': apiName,\n },\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Predict\n * @returns any Successful Response\n * @throws ApiError\n */\n public predictApiApiNamePost1({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/api/{api_name}',\n path: {\n 'api_name': apiName,\n },\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Predict\n * @returns any Successful Response\n * @throws ApiError\n */\n public predictRunApiNamePost({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/run/{api_name}/',\n path: {\n 'api_name': apiName,\n },\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Predict\n * @returns any Successful Response\n * @throws ApiError\n */\n public predictRunApiNamePost1({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/run/{api_name}',\n path: {\n 'api_name': apiName,\n },\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Queue Status\n * @returns Estimation Successful Response\n * @throws ApiError\n */\n public getQueueStatusQueueStatusGet(): CancelablePromise<Estimation> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/queue/status',\n });\n }\n\n /**\n * Upload File\n * @returns any Successful Response\n * @throws ApiError\n */\n public uploadFileUploadPost({\nformData,\n}: {\nformData: Body_upload_file_upload_post,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/upload',\n formData: formData,\n mediaType: 'multipart/form-data',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Pending Tasks\n * @returns any Successful Response\n * @throws ApiError\n */\n public getPendingTasksInternalPendingTasksGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/internal/pending-tasks',\n });\n }\n\n /**\n * Progressapi\n * @returns modules__progress__ProgressResponse Successful Response\n * @throws ApiError\n */\n public progressapiInternalProgressPost({\nrequestBody,\n}: {\nrequestBody: ProgressRequest,\n}): CancelablePromise<modules__progress__ProgressResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/internal/progress',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Quicksettings Hint\n * @returns QuicksettingsHint Successful Response\n * @throws ApiError\n */\n public quicksettingsHintInternalQuicksettingsHintGet(): CancelablePromise<Array<QuicksettingsHint>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/internal/quicksettings-hint',\n });\n }\n\n /**\n * <Lambda>\n * @returns any Successful Response\n * @throws ApiError\n */\n public lambdaInternalPingGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/internal/ping',\n });\n }\n\n /**\n * <Lambda>\n * @returns any Successful Response\n * @throws ApiError\n */\n public lambdaInternalProfileStartupGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/internal/profile-startup',\n });\n }\n\n /**\n * Download Sysinfo\n * @returns any Successful Response\n * @throws ApiError\n */\n public downloadSysinfoInternalSysinfoGet({\nattachment,\n}: {\nattachment?: any,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/internal/sysinfo',\n query: {\n 'attachment': attachment,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * <Lambda>\n * @returns any Successful Response\n * @throws ApiError\n */\n public lambdaInternalSysinfoDownloadGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/internal/sysinfo-download',\n });\n }\n\n /**\n * Text2Imgapi\n * @returns TextToImageResponse Successful Response\n * @throws ApiError\n */\n public text2ImgapiSdapiV1Txt2ImgPost({\nrequestBody,\n}: {\nrequestBody: StableDiffusionProcessingTxt2Img,\n}): CancelablePromise<TextToImageResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/txt2img',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Img2Imgapi\n * @returns ImageToImageResponse Successful Response\n * @throws ApiError\n */\n public img2ImgapiSdapiV1Img2ImgPost({\nrequestBody,\n}: {\nrequestBody: StableDiffusionProcessingImg2Img,\n}): CancelablePromise<ImageToImageResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/img2img',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Extras Single Image Api\n * @returns ExtrasSingleImageResponse Successful Response\n * @throws ApiError\n */\n public extrasSingleImageApiSdapiV1ExtraSingleImagePost({\nrequestBody,\n}: {\nrequestBody: ExtrasSingleImageRequest,\n}): CancelablePromise<ExtrasSingleImageResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/extra-single-image',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Extras Batch Images Api\n * @returns ExtrasBatchImagesResponse Successful Response\n * @throws ApiError\n */\n public extrasBatchImagesApiSdapiV1ExtraBatchImagesPost({\nrequestBody,\n}: {\nrequestBody: ExtrasBatchImagesRequest,\n}): CancelablePromise<ExtrasBatchImagesResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/extra-batch-images',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Pnginfoapi\n * @returns PNGInfoResponse Successful Response\n * @throws ApiError\n */\n public pnginfoapiSdapiV1PngInfoPost({\nrequestBody,\n}: {\nrequestBody: PNGInfoRequest,\n}): CancelablePromise<PNGInfoResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/png-info',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Progressapi\n * @returns modules__api__models__ProgressResponse Successful Response\n * @throws ApiError\n */\n public progressapiSdapiV1ProgressGet({\nskipCurrentImage = false,\n}: {\nskipCurrentImage?: boolean,\n}): CancelablePromise<modules__api__models__ProgressResponse> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/progress',\n query: {\n 'skip_current_image': skipCurrentImage,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Interrogateapi\n * @returns any Successful Response\n * @throws ApiError\n */\n public interrogateapiSdapiV1InterrogatePost({\nrequestBody,\n}: {\nrequestBody: InterrogateRequest,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/interrogate',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Interruptapi\n * @returns any Successful Response\n * @throws ApiError\n */\n public interruptapiSdapiV1InterruptPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/interrupt',\n });\n }\n\n /**\n * Skip\n * @returns any Successful Response\n * @throws ApiError\n */\n public skipSdapiV1SkipPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/skip',\n });\n }\n\n /**\n * Get Config\n * @returns Options Successful Response\n * @throws ApiError\n */\n public getConfigSdapiV1OptionsGet(): CancelablePromise<Options> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/options',\n });\n }\n\n /**\n * Set Config\n * @returns any Successful Response\n * @throws ApiError\n */\n public setConfigSdapiV1OptionsPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/options',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Cmd Flags\n * @returns Flags Successful Response\n * @throws ApiError\n */\n public getCmdFlagsSdapiV1CmdFlagsGet(): CancelablePromise<Flags> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/cmd-flags',\n });\n }\n\n /**\n * Get Samplers\n * @returns SamplerItem Successful Response\n * @throws ApiError\n */\n public getSamplersSdapiV1SamplersGet(): CancelablePromise<Array<SamplerItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/samplers',\n });\n }\n\n /**\n * Get Schedulers\n * @returns SchedulerItem Successful Response\n * @throws ApiError\n */\n public getSchedulersSdapiV1SchedulersGet(): CancelablePromise<Array<SchedulerItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/schedulers',\n });\n }\n\n /**\n * Get Upscalers\n * @returns UpscalerItem Successful Response\n * @throws ApiError\n */\n public getUpscalersSdapiV1UpscalersGet(): CancelablePromise<Array<UpscalerItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/upscalers',\n });\n }\n\n /**\n * Get Latent Upscale Modes\n * @returns LatentUpscalerModeItem Successful Response\n * @throws ApiError\n */\n public getLatentUpscaleModesSdapiV1LatentUpscaleModesGet(): CancelablePromise<Array<LatentUpscalerModeItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/latent-upscale-modes',\n });\n }\n\n /**\n * Get Sd Models\n * @returns SDModelItem Successful Response\n * @throws ApiError\n */\n public getSdModelsSdapiV1SdModelsGet(): CancelablePromise<Array<SDModelItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/sd-models',\n });\n }\n\n /**\n * Get Sd Vaes\n * @returns SDVaeItem Successful Response\n * @throws ApiError\n */\n public getSdVaesSdapiV1SdVaeGet(): CancelablePromise<Array<SDVaeItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/sd-vae',\n });\n }\n\n /**\n * Get Hypernetworks\n * @returns HypernetworkItem Successful Response\n * @throws ApiError\n */\n public getHypernetworksSdapiV1HypernetworksGet(): CancelablePromise<Array<HypernetworkItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/hypernetworks',\n });\n }\n\n /**\n * Get Face Restorers\n * @returns FaceRestorerItem Successful Response\n * @throws ApiError\n */\n public getFaceRestorersSdapiV1FaceRestorersGet(): CancelablePromise<Array<FaceRestorerItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/face-restorers',\n });\n }\n\n /**\n * Get Realesrgan Models\n * @returns RealesrganItem Successful Response\n * @throws ApiError\n */\n public getRealesrganModelsSdapiV1RealesrganModelsGet(): CancelablePromise<Array<RealesrganItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/realesrgan-models',\n });\n }\n\n /**\n * Get Prompt Styles\n * @returns PromptStyleItem Successful Response\n * @throws ApiError\n */\n public getPromptStylesSdapiV1PromptStylesGet(): CancelablePromise<Array<PromptStyleItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/prompt-styles',\n });\n }\n\n /**\n * Get Embeddings\n * @returns EmbeddingsResponse Successful Response\n * @throws ApiError\n */\n public getEmbeddingsSdapiV1EmbeddingsGet(): CancelablePromise<EmbeddingsResponse> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/embeddings',\n });\n }\n\n /**\n * Refresh Embeddings\n * @returns any Successful Response\n * @throws ApiError\n */\n public refreshEmbeddingsSdapiV1RefreshEmbeddingsPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/refresh-embeddings',\n });\n }\n\n /**\n * Refresh Checkpoints\n * @returns any Successful Response\n * @throws ApiError\n */\n public refreshCheckpointsSdapiV1RefreshCheckpointsPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/refresh-checkpoints',\n });\n }\n\n /**\n * Refresh Vae\n * @returns any Successful Response\n * @throws ApiError\n */\n public refreshVaeSdapiV1RefreshVaePost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/refresh-vae',\n });\n }\n\n /**\n * Create Embedding\n * @returns CreateResponse Successful Response\n * @throws ApiError\n */\n public createEmbeddingSdapiV1CreateEmbeddingPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<CreateResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/create/embedding',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Create Hypernetwork\n * @returns CreateResponse Successful Response\n * @throws ApiError\n */\n public createHypernetworkSdapiV1CreateHypernetworkPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<CreateResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/create/hypernetwork',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Train Embedding\n * @returns TrainResponse Successful Response\n * @throws ApiError\n */\n public trainEmbeddingSdapiV1TrainEmbeddingPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<TrainResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/train/embedding',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Train Hypernetwork\n * @returns TrainResponse Successful Response\n * @throws ApiError\n */\n public trainHypernetworkSdapiV1TrainHypernetworkPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<TrainResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/train/hypernetwork',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Memory\n * @returns MemoryResponse Successful Response\n * @throws ApiError\n */\n public getMemorySdapiV1MemoryGet(): CancelablePromise<MemoryResponse> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/memory',\n });\n }\n\n /**\n * Unloadapi\n * @returns any Successful Response\n * @throws ApiError\n */\n public unloadapiSdapiV1UnloadCheckpointPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/unload-checkpoint',\n });\n }\n\n /**\n * Reloadapi\n * @returns any Successful Response\n * @throws ApiError\n */\n public reloadapiSdapiV1ReloadCheckpointPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/reload-checkpoint',\n });\n }\n\n /**\n * Get Scripts List\n * @returns ScriptsList Successful Response\n * @throws ApiError\n */\n public getScriptsListSdapiV1ScriptsGet(): CancelablePromise<ScriptsList> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/scripts',\n });\n }\n\n /**\n * Get Script Info\n * @returns ScriptInfo Successful Response\n * @throws ApiError\n */\n public getScriptInfoSdapiV1ScriptInfoGet(): CancelablePromise<Array<ScriptInfo>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/script-info',\n });\n }\n\n /**\n * Get Extensions List\n * @returns ExtensionItem Successful Response\n * @throws ApiError\n */\n public getExtensionsListSdapiV1ExtensionsGet(): CancelablePromise<Array<ExtensionItem>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/extensions',\n });\n }\n\n /**\n * Fetch File\n * @returns any Successful Response\n * @throws ApiError\n */\n public fetchFileSdExtraNetworksThumbGet({\nfilename = '',\n}: {\nfilename?: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sd_extra_networks/thumb',\n query: {\n 'filename': filename,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Fetch Cover Images\n * @returns any Successful Response\n * @throws ApiError\n */\n public fetchCoverImagesSdExtraNetworksCoverImagesGet({\npage = '',\nitem = '',\nindex,\n}: {\npage?: string,\nitem?: string,\nindex?: number,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sd_extra_networks/cover-images',\n query: {\n 'page': page,\n 'item': item,\n 'index': index,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Metadata\n * @returns any Successful Response\n * @throws ApiError\n */\n public getMetadataSdExtraNetworksMetadataGet({\npage = '',\nitem = '',\n}: {\npage?: string,\nitem?: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sd_extra_networks/metadata',\n query: {\n 'page': page,\n 'item': item,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Single Card\n * @returns any Successful Response\n * @throws ApiError\n */\n public getSingleCardSdExtraNetworksGetSingleCardGet({\npage = '',\ntabname = '',\nname = '',\n}: {\npage?: string,\ntabname?: string,\nname?: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sd_extra_networks/get-single-card',\n query: {\n 'page': page,\n 'tabname': tabname,\n 'name': name,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Loras\n * @returns any Successful Response\n * @throws ApiError\n */\n public getLorasSdapiV1LorasGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/sdapi/v1/loras',\n });\n }\n\n /**\n * Refresh Loras\n * @returns any Successful Response\n * @throws ApiError\n */\n public refreshLorasSdapiV1RefreshLorasPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/sdapi/v1/refresh-loras',\n });\n }\n\n /**\n * Api Refresh Temp Files\n * @returns any Successful Response\n * @throws ApiError\n */\n public apiRefreshTempFilesTacapiV1RefreshTempFilesPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tacapi/v1/refresh-temp-files',\n });\n }\n\n /**\n * Api Refresh Embeddings\n * @returns any Successful Response\n * @throws ApiError\n */\n public apiRefreshEmbeddingsTacapiV1RefreshEmbeddingsPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tacapi/v1/refresh-embeddings',\n });\n }\n\n /**\n * Get Lora Info\n * @returns any Successful Response\n * @throws ApiError\n */\n public getLoraInfoTacapiV1LoraInfoLoraNameGet({\nloraName,\n}: {\nloraName: any,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/lora-info/{lora_name}',\n path: {\n 'lora_name': loraName,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Lyco Info\n * @returns any Successful Response\n * @throws ApiError\n */\n public getLycoInfoTacapiV1LycoInfoLycoNameGet({\nlycoName,\n}: {\nlycoName: any,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/lyco-info/{lyco_name}',\n path: {\n 'lyco_name': lycoName,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Lora Cached Hash\n * @returns any Successful Response\n * @throws ApiError\n */\n public getLoraCachedHashTacapiV1LoraCachedHashLoraNameGet({\nloraName,\n}: {\nloraName: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/lora-cached-hash/{lora_name}',\n path: {\n 'lora_name': loraName,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Thumb Preview\n * @returns any Successful Response\n * @throws ApiError\n */\n public getThumbPreviewTacapiV1ThumbPreviewFilenameGet({\nfilename,\ntype,\n}: {\nfilename: any,\ntype: any,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/thumb-preview/{filename}',\n path: {\n 'filename': filename,\n },\n query: {\n 'type': type,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Thumb Preview Blob\n * @returns any Successful Response\n * @throws ApiError\n */\n public getThumbPreviewBlobTacapiV1ThumbPreviewBlobFilenameGet({\nfilename,\ntype,\n}: {\nfilename: any,\ntype: any,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/thumb-preview-blob/{filename}',\n path: {\n 'filename': filename,\n },\n query: {\n 'type': type,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Wildcard Contents\n * @returns any Successful Response\n * @throws ApiError\n */\n public getWildcardContentsTacapiV1WildcardContentsGet({\nbasepath,\nfilename,\n}: {\nbasepath: string,\nfilename: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/wildcard-contents',\n query: {\n 'basepath': basepath,\n 'filename': filename,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Refresh Styles If Changed\n * @returns any Successful Response\n * @throws ApiError\n */\n public refreshStylesIfChangedTacapiV1RefreshStylesIfChangedGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/refresh-styles-if-changed',\n });\n }\n\n /**\n * Increase Use Count\n * @returns any Successful Response\n * @throws ApiError\n */\n public increaseUseCountTacapiV1IncreaseUseCountPost({\ntagname,\nttype,\nneg,\n}: {\ntagname: string,\nttype: number,\nneg: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tacapi/v1/increase-use-count',\n query: {\n 'tagname': tagname,\n 'ttype': ttype,\n 'neg': neg,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Use Count\n * @returns any Successful Response\n * @throws ApiError\n */\n public getUseCountTacapiV1GetUseCountGet({\ntagname,\nttype,\nneg,\n}: {\ntagname: string,\nttype: number,\nneg: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/get-use-count',\n query: {\n 'tagname': tagname,\n 'ttype': ttype,\n 'neg': neg,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Use Count List\n * @returns any Successful Response\n * @throws ApiError\n */\n public getUseCountListTacapiV1GetUseCountListPost({\nrequestBody,\n}: {\nrequestBody: UseCountListRequest,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/tacapi/v1/get-use-count-list',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Reset Use Count\n * @returns any Successful Response\n * @throws ApiError\n */\n public resetUseCountTacapiV1ResetUseCountPut({\ntagname,\nttype,\npos,\nneg,\n}: {\ntagname: string,\nttype: number,\npos: boolean,\nneg: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/tacapi/v1/reset-use-count',\n query: {\n 'tagname': tagname,\n 'ttype': ttype,\n 'pos': pos,\n 'neg': neg,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get All Tag Counts\n * @returns any Successful Response\n * @throws ApiError\n */\n public getAllTagCountsTacapiV1GetAllUseCountsGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/tacapi/v1/get-all-use-counts',\n });\n }\n\n /**\n * Get Samplers\n * @returns string Successful Response\n * @throws ApiError\n */\n public getSamplersAgentSchedulerV1SamplersGet(): CancelablePromise<Array<string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/samplers',\n });\n }\n\n /**\n * Get Sd Models\n * @returns string Successful Response\n * @throws ApiError\n */\n public getSdModelsAgentSchedulerV1SdModelsGet(): CancelablePromise<Array<string>> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/sd-models',\n });\n }\n\n /**\n * Queue Txt2Img\n * @returns QueueTaskResponse Successful Response\n * @throws ApiError\n */\n public queueTxt2ImgAgentSchedulerV1QueueTxt2ImgPost({\nrequestBody,\n}: {\nrequestBody: Txt2ImgApiTaskArgs,\n}): CancelablePromise<QueueTaskResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/queue/txt2img',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Queue Img2Img\n * @returns QueueTaskResponse Successful Response\n * @throws ApiError\n */\n public queueImg2ImgAgentSchedulerV1QueueImg2ImgPost({\nrequestBody,\n}: {\nrequestBody: Img2ImgApiTaskArgs,\n}): CancelablePromise<QueueTaskResponse> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/queue/img2img',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Queue Status Api\n * @returns QueueStatusResponse Successful Response\n * @throws ApiError\n */\n public queueStatusApiAgentSchedulerV1QueueGet({\nlimit = 20,\noffset,\n}: {\nlimit?: number,\noffset?: number,\n}): CancelablePromise<QueueStatusResponse> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/queue',\n query: {\n 'limit': limit,\n 'offset': offset,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Export Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public exportQueueAgentSchedulerV1ExportGet({\nlimit = 1000,\noffset,\n}: {\nlimit?: number,\noffset?: number,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/export',\n query: {\n 'limit': limit,\n 'offset': offset,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Import Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public importQueueAgentSchedulerV1ImportPost({\nrequestBody,\n}: {\nrequestBody: StringRequestBody,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/import',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * History Api\n * @returns HistoryResponse Successful Response\n * @throws ApiError\n */\n public historyApiAgentSchedulerV1HistoryGet({\nstatus,\nlimit = 20,\noffset,\n}: {\nstatus?: string,\nlimit?: number,\noffset?: number,\n}): CancelablePromise<HistoryResponse> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/history',\n query: {\n 'status': status,\n 'limit': limit,\n 'offset': offset,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public getTaskAgentSchedulerV1TaskIdGet({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/task/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Update Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public updateTaskAgentSchedulerV1TaskIdPut({\nid,\nrequestBody,\n}: {\nid: string,\nrequestBody: UpdateTaskArgs,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'PUT',\n url: '/agent-scheduler/v1/task/{id}',\n path: {\n 'id': id,\n },\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Delete Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public deleteTaskAgentSchedulerV1TaskIdDelete({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'DELETE',\n url: '/agent-scheduler/v1/task/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Task Position\n * @returns any Successful Response\n * @throws ApiError\n */\n public getTaskPositionAgentSchedulerV1TaskIdPositionGet({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/task/{id}/position',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Run Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public runTaskAgentSchedulerV1TaskIdRunPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/{id}/run',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Run Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public runTaskAgentSchedulerV1RunIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/run/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Requeue Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public requeueTaskAgentSchedulerV1TaskIdRequeuePost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/{id}/requeue',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Requeue Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public requeueTaskAgentSchedulerV1RequeueIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/requeue/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Requeue Failed Tasks\n * @returns any Successful Response\n * @throws ApiError\n */\n public requeueFailedTasksAgentSchedulerV1TaskRequeueFailedPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/requeue-failed',\n });\n }\n\n /**\n * @deprecated\n * Delete Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public deleteTaskAgentSchedulerV1DeleteIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/delete/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Move Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public moveTaskAgentSchedulerV1TaskIdMoveOverIdPost({\nid,\noverId,\n}: {\nid: string,\noverId: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/{id}/move/{over_id}',\n path: {\n 'id': id,\n 'over_id': overId,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Move Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public moveTaskAgentSchedulerV1MoveIdOverIdPost({\nid,\noverId,\n}: {\nid: string,\noverId: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/move/{id}/{over_id}',\n path: {\n 'id': id,\n 'over_id': overId,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Pin Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public pinTaskAgentSchedulerV1TaskIdBookmarkPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/{id}/bookmark',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Pin Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public pinTaskAgentSchedulerV1BookmarkIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/bookmark/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Unpin Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public unpinTaskAgentSchedulerV1TaskIdUnbookmarkPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/{id}/unbookmark',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Unpin Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public unpinTaskAgentSchedulerV1UnbookmarkIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/unbookmark/{id}',\n path: {\n 'id': id,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Rename Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public renameTaskAgentSchedulerV1TaskIdRenamePost({\nid,\nname,\n}: {\nid: string,\nname: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/task/{id}/rename',\n path: {\n 'id': id,\n },\n query: {\n 'name': name,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Rename Task\n * @returns any Successful Response\n * @throws ApiError\n */\n public renameTaskAgentSchedulerV1RenameIdPost({\nid,\nname,\n}: {\nid: string,\nname: string,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/rename/{id}',\n path: {\n 'id': id,\n },\n query: {\n 'name': name,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Get Task Results\n * @returns any Successful Response\n * @throws ApiError\n */\n public getTaskResultsAgentSchedulerV1TaskIdResultsGet({\nid,\nzip = false,\n}: {\nid: string,\nzip?: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/task/{id}/results',\n path: {\n 'id': id,\n },\n query: {\n 'zip': zip,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * @deprecated\n * Get Task Results\n * @returns any Successful Response\n * @throws ApiError\n */\n public getTaskResultsAgentSchedulerV1ResultsIdGet({\nid,\nzip = false,\n}: {\nid: string,\nzip?: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/agent-scheduler/v1/results/{id}',\n path: {\n 'id': id,\n },\n query: {\n 'zip': zip,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Pause Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public pauseQueueAgentSchedulerV1QueuePausePost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/queue/pause',\n });\n }\n\n /**\n * @deprecated\n * Pause Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public pauseQueueAgentSchedulerV1PausePost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/pause',\n });\n }\n\n /**\n * Resume Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public resumeQueueAgentSchedulerV1QueueResumePost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/queue/resume',\n });\n }\n\n /**\n * @deprecated\n * Resume Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public resumeQueueAgentSchedulerV1ResumePost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/resume',\n });\n }\n\n /**\n * Clear Queue\n * @returns any Successful Response\n * @throws ApiError\n */\n public clearQueueAgentSchedulerV1QueueClearPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/queue/clear',\n });\n }\n\n /**\n * Clear History\n * @returns any Successful Response\n * @throws ApiError\n */\n public clearHistoryAgentSchedulerV1HistoryClearPost(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/agent-scheduler/v1/history/clear',\n });\n }\n\n /**\n * Version\n * @returns any Successful Response\n * @throws ApiError\n */\n public versionControlnetVersionGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/controlnet/version',\n });\n }\n\n /**\n * Model List\n * @returns any Successful Response\n * @throws ApiError\n */\n public modelListControlnetModelListGet({\nupdate = true,\n}: {\nupdate?: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/controlnet/model_list',\n query: {\n 'update': update,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Module List\n * @returns any Successful Response\n * @throws ApiError\n */\n public moduleListControlnetModuleListGet({\naliasNames = false,\n}: {\naliasNames?: boolean,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/controlnet/module_list',\n query: {\n 'alias_names': aliasNames,\n },\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Control Types\n * @returns any Successful Response\n * @throws ApiError\n */\n public controlTypesControlnetControlTypesGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/controlnet/control_types',\n });\n }\n\n /**\n * Settings\n * @returns any Successful Response\n * @throws ApiError\n */\n public settingsControlnetSettingsGet(): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'GET',\n url: '/controlnet/settings',\n });\n }\n\n /**\n * Detect\n * @returns any Successful Response\n * @throws ApiError\n */\n public detectControlnetDetectPost({\nrequestBody,\n}: {\nrequestBody?: Body_detect_controlnet_detect_post,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/controlnet/detect',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Render Openpose Json\n * @returns any Successful Response\n * @throws ApiError\n */\n public renderOpenposeJsonControlnetRenderOpenposeJsonPost({\nrequestBody,\n}: {\nrequestBody?: Array<PoseData>,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/controlnet/render_openpose_json',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n /**\n * Rembg Remove\n * @returns any Successful Response\n * @throws ApiError\n */\n public rembgRemoveRembgPost({\nrequestBody,\n}: {\nrequestBody?: Body_rembg_remove_rembg_post,\n}): CancelablePromise<any> {\n return this.httpRequest.request({\n method: 'POST',\n url: '/rembg',\n body: requestBody,\n mediaType: 'application/json',\n errors: {\n 422: `Validation Error`,\n },\n });\n }\n\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BaseHttpRequest } from './core/BaseHttpRequest';\nimport type { OpenAPIConfig } from './core/OpenAPI';\nimport { FetchHttpRequest } from './core/FetchHttpRequest';\n\nimport { DefaultService } from './services/DefaultService';\n\ntype HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\n\nexport class SDWebUIA1111Client {\n\n public readonly default: DefaultService;\n\n public readonly request: BaseHttpRequest;\n\n constructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = FetchHttpRequest) {\n this.request = new HttpRequest({\n BASE: config?.BASE ?? '',\n VERSION: config?.VERSION ?? '0.1.0',\n WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: config?.CREDENTIALS ?? 'include',\n TOKEN: config?.TOKEN,\n USERNAME: config?.USERNAME,\n PASSWORD: config?.PASSWORD,\n HEADERS: config?.HEADERS,\n ENCODE_PATH: config?.ENCODE_PATH,\n });\n\n this.default = new DefaultService(this.request);\n }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\ntype Headers = Record<string, string>;\n\nexport type OpenAPIConfig = {\n BASE: string;\n VERSION: string;\n WITH_CREDENTIALS: boolean;\n CREDENTIALS: 'include' | 'omit' | 'same-origin';\n TOKEN?: string | Resolver<string> | undefined;\n USERNAME?: string | Resolver<string> | undefined;\n PASSWORD?: string | Resolver<string> | undefined;\n HEADERS?: Headers | Resolver<Headers> | undefined;\n ENCODE_PATH?: ((path: string) => string) | undefined;\n};\n\nexport const OpenAPI: OpenAPIConfig = {\n BASE: '',\n VERSION: '0.1.0',\n WITH_CREDENTIALS: false,\n CREDENTIALS: 'include',\n TOKEN: undefined,\n USERNAME: undefined,\n PASSWORD: undefined,\n HEADERS: undefined,\n ENCODE_PATH: undefined,\n};\r\n","import { SDWebUIA1111Client } from \"../client\";\r\nimport { ExtensionScript } from \"../extensions/ExtensionScript\";\r\nimport { deepClone } from \"../misc\";\r\n\r\nexport class SDProcessor<Body> {\r\n protected extensions = [] as ExtensionScript[];\r\n\r\n constructor(readonly init_body: Body) {}\r\n\r\n /**\r\n * Converts the object to its JSON representation.\r\n *\r\n * @return {any} The JSON representation of the object.\r\n */\r\n toJSON() {\r\n const body = deepClone(this.init_body);\r\n for (const ext of this.extensions) {\r\n ext.install(body as any);\r\n }\r\n return body;\r\n }\r\n\r\n /**\r\n * Adds an extension to the list of extensions.\r\n *\r\n * @param {ExtensionScript} ext - The extension to be added.\r\n * @return {SDProcessor<Body>} The current SDProcessing object.\r\n */\r\n use(ext: ExtensionScript) {\r\n this.extensions.push(ext);\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates and adds a new ExtensionScript to the list of extensions.\r\n *\r\n * @param {string} name - The name of the extension script.\r\n * @param {any[]} args - The arguments for the extension script.\r\n * @return {SDProcessor<Body>} The current SDProcessing object.\r\n */\r\n useCustomExt(name: string, args: any[]) {\r\n const ext = new ExtensionScript(name, args);\r\n this.extensions.push(ext);\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears the extensions array.\r\n *\r\n */\r\n clear() {\r\n this.extensions = [];\r\n }\r\n\r\n /**\r\n * A description of the entire function.\r\n *\r\n * @param {SDWebUIA1111Client} client - The SDWebUIA1111Client object used for the request.\r\n * @return {any} The response from the request.\r\n */\r\n request(client: SDWebUIA1111Client): any {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n","import {\r\n CancelablePromise,\r\n ImageToImageResponse,\r\n SDWebUIA1111Client,\r\n} from \"../client\";\r\nimport { SDProcessor } from \"./SDProcessor\";\r\nimport { Img2imgProcessParams } from \"./types\";\r\n\r\n/**\r\n * Img2imgProcess\r\n *\r\n * usage:\r\n * ```ts\r\n * const client = new SDWebUIA1111Client();\r\n * const process = new Img2imgProcess({ prompt: \"1girl\" });\r\n * const {images} = await process.request(client);\r\n * const image = images[0]; // base64 image string\r\n * ```\r\n */\r\nexport class Img2imgProcess extends SDProcessor<Img2imgProcessParams> {\r\n request(client: SDWebUIA1111Client) {\r\n const requestBody = this.toJSON();\r\n return client.default.img2ImgapiSdapiV1Img2ImgPost({\r\n requestBody,\r\n }) as CancelablePromise<\r\n ImageToImageResponse & {\r\n parameters: Img2imgProcessParams;\r\n }\r\n >;\r\n }\r\n}\r\n","import {\r\n CancelablePromise,\r\n TextToImageResponse,\r\n type SDWebUIA1111Client,\r\n} from \"../client\";\r\nimport { SDProcessor } from \"./SDProcessor\";\r\nimport type { Txt2imgProcessParams } from \"./types\";\r\n\r\n/**\r\n * Txt2imgProcess\r\n *\r\n * usage:\r\n * ```ts\r\n * const client = new SDWebUIA1111Client();\r\n * const process = new Txt2imgProcess({ prompt: \"1girl\" });\r\n * const {images} = await process.request(client);\r\n * const image = images[0]; // base64 image string\r\n * ```\r\n */\r\nexport class Txt2imgProcess extends SDProcessor<Txt2imgProcessParams> {\r\n request(client: SDWebUIA1111Client) {\r\n const requestBody = this.toJSON();\r\n return client.default.text2ImgapiSdapiV1Txt2ImgPost({\r\n requestBody,\r\n }) as CancelablePromise<\r\n TextToImageResponse & { parameters: Txt2imgProcessParams }\r\n >;\r\n }\r\n}\r\n","import { SDWebUIA1111Client } from \"../client\";\r\nimport { SDProcessor } from \"./SDProcessor\";\r\nimport { SDWebUIA1111SystemSettings } from \"./system.types\";\r\n\r\n/**\r\n * SystemSettingProcess\r\n *\r\n * usage:\r\n * ```ts\r\n * const client = new SDWebUIA1111Client();\r\n * const process = new SystemSettingProcess({\r\n * samples_save: true,\r\n * samples_format: \"png\",\r\n * samples_filename_pattern: \"sample\",\r\n * });\r\n * await process.request(client);\r\n * ```\r\n */\r\nexport class SystemSettingProcess extends SDProcessor<\r\n Partial<SDWebUIA1111SystemSettings>\r\n> {\r\n request(client: SDWebUIA1111Client) {\r\n return client.default.setConfigSdapiV1OptionsPost({\r\n requestBody: this.toJSON(),\r\n });\r\n }\r\n}\r\n","import {\r\n StableDiffusionProcessingImg2Img,\r\n StableDiffusionProcessingTxt2Img,\r\n} from \"../client\";\r\nimport { SDWebUIA1111SystemSettings } from \"./system.types\";\r\n\r\nexport enum ResizeModeI2i {\r\n \"Just resize\" = 0,\r\n \"Crop and resize\" = 1,\r\n \"Resize and fill\" = 2,\r\n \"Just resize (latent upscale)\" = 2,\r\n}\r\n\r\nexport enum InpaintFill {\r\n \"fill\" = 0,\r\n \"original\" = 1,\r\n \"latent noise\" = 2,\r\n \"latent nothing\" = 3,\r\n}\r\n\r\nexport enum InpaintFullRes {\r\n \"Whole picture\" = 0,\r\n \"Only masked\" = 1,\r\n}\r\n\r\nexport type Img2imgProcessParams = StableDiffusionProcessingImg2Img & {\r\n resize_mode?: ResizeModeI2i;\r\n inpainting_fill?: InpaintFill;\r\n inpainting_mask_invert?: 0 | 1; // false or true\r\n inpaint_full_res?: InpaintFullRes;\r\n override_settings?: Record<keyof any, any> &\r\n Partial<SDWebUIA1111SystemSettings>;\r\n};\r\n\r\nexport type Txt2imgProcessParams = StableDiffusionProcessingTxt2Img & {\r\n override_settings?: Record<keyof any, any> &\r\n Partial<SDWebUIA1111SystemSettings>;\r\n};\r\n","import { SDWebUIA1111Client } from \"../client\";\r\n\r\ntype TaskResult = {\r\n image: string;\r\n infotext: string;\r\n};\r\n\r\nexport class SDTaskRunner {\r\n protected data = [] as TaskResult[];\r\n protected message = \"\";\r\n\r\n queryLoop?: Promise<TaskResult[]>;\r\n constructor(\r\n protected client: SDWebUIA1111Client,\r\n readonly task_id: string,\r\n private intervalMs = 3000\r\n ) {}\r\n\r\n protected running = false;\r\n async run() {\r\n if (this.running) {\r\n return;\r\n }\r\n await this.client.default.runTaskAgentSchedulerV1RunIdPost({\r\n id: this.task_id,\r\n });\r\n this.running = true;\r\n }\r\n\r\n protected async startQueryLoop() {\r\n while (true) {\r\n if (this.interrupted) {\r\n return [];\r\n }\r\n try {\r\n this.data = await this.queryResults();\r\n return this.data;\r\n } catch (error) {\r\n this.message = (<any>error)?.message || \"\";\r\n await new Promise((resolve) =>\r\n setTimeout(resolve, this.intervalMs + 1000 * Math.random())\r\n );\r\n }\r\n }\r\n }\r\n\r\n async queryResults() {\r\n const { success, message, data } =\r\n (await this.client.default.getTaskResultsAgentSchedulerV1ResultsIdGet({\r\n id: this.task_id,\r\n zip: false,\r\n })) as {\r\n message: string;\r\n data: TaskResult[];\r\n success: boolean;\r\n };\r\n if (success) {\r\n return data;\r\n }\r\n throw new Error(message || \"query failed\");\r\n }\r\n\r\n async results() {\r\n if (!this.queryLoop) {\r\n this.queryLoop = this.startQueryLoop();\r\n }\r\n await this.queryLoop;\r\n return this.data;\r\n }\r\n\r\n protected interrupted = false;\r\n async interrupt() {\r\n if (this.interrupted) {\r\n return;\r\n }\r\n this.interrupted = true;\r\n // delete task\r\n await this.client.default.deleteTaskAgentSchedulerV1DeleteIdPost({\r\n id: this.task_id,\r\n });\r\n }\r\n}\r\n\r\nexport enum SDTaskStatus {\r\n pending = \"pending\",\r\n running = \"running\",\r\n done = \"done\",\r\n failed = \"failed\",\r\n interrupted = \"interrupted\",\r\n}\r\nexport class SDTask {\r\n protected status: SDTaskStatus = SDTaskStatus.pending;\r\n protected error?: any;\r\n protected results?: TaskResult[];\r\n constructor(protected client: SDWebUIA1111Client, readonly task_id: string) {}\r\n\r\n protected async errWrap<T>(callback: () => T) {\r\n try {\r\n const value = await callback();\r\n return value;\r\n } catch (error) {\r\n this.status = SDTaskStatus.failed;\r\n this.error = error;\r\n }\r\n }\r\n\r\n private runner?: SDTaskRunner;\r\n async run() {\r\n if (this.results) {\r\n return this.results;\r\n }\r\n if (this.status === SDTaskStatus.interrupted) {\r\n throw new Error(\"Task already canceled\");\r\n }\r\n if (this.status === SDTaskStatus.done) {\r\n return this.results;\r\n }\r\n if (this.status === SDTaskStatus.running && this.runner) {\r\n return this.runner.results();\r\n }\r\n if (this.status === SDTaskStatus.failed) {\r\n throw new Error(\"Task failed\");\r\n }\r\n if (!this.task_id) {\r\n throw new Error(\"No task id\");\r\n }\r\n const runner = new SDTaskRunner(this.client, this.task_id);\r\n this.runner = runner;\r\n\r\n return this.errWrap(async () => {\r\n const results = await runner.results();\r\n if (this.status === SDTaskStatus.interrupted) {\r\n // TODO 不清楚这样写对不对\r\n return [];\r\n }\r\n this.results = results;\r\n this.status = SDTaskStatus.done;\r\n return results;\r\n });\r\n }\r\n\r\n async interrupt() {\r\n if (this.runner) {\r\n await this.runner.interrupt();\r\n this.runner = undefined;\r\n } else {\r\n // next tick try to cancel again\r\n setTimeout(() => {\r\n this.runner?.interrupt();\r\n this.runner = undefined;\r\n }, 1);\r\n }\r\n this.status = SDTaskStatus.interrupted;\r\n }\r\n}\r\n","// Agent Scheduler\r\n\r\nimport { SDWebUIA1111Client } from \"../client\";\r\nimport { Img2imgProcess, Txt2imgProcess } from \"../process\";\r\nimport { SDTask, SDTaskStatus } from \"./SDTask\";\r\n\r\nexport class SDTaskScheduler {\r\n constructor(readonly client: SDWebUIA1111Client) {}\r\n\r\n async queueStatus() {\r\n return this.client.default.queueStatusApiAgentSchedulerV1QueueGet({});\r\n }\r\n\r\n async queryHistory(status?: SDTaskStatus, limit?: number, offset?: number) {\r\n return this.client.default.historyApiAgentSchedulerV1HistoryGet({\r\n status,\r\n limit,\r\n offset,\r\n });\r\n }\r\n\r\n async pause() {\r\n return this.client.default.pauseQueueAgentSchedulerV1PausePost();\r\n }\r\n\r\n async resume() {\r\n return this.client.default.resumeQueueAgentSchedulerV1ResumePost();\r\n }\r\n\r\n async createImg2imgTask(\r\n img2imgProcess: Img2imgProcess,\r\n checkpoint?: string,\r\n callback_url?: string\r\n ) {\r\n const { task_id } =\r\n await this.client.default.queueImg2ImgAgentSchedulerV1QueueImg2ImgPost({\r\n requestBody: {\r\n ...img2imgProcess.toJSON(),\r\n checkpoint,\r\n callback_url,\r\n },\r\n });\r\n return new SDTask(this.client, task_id);\r\n }\r\n async createTxt2imgTask(\r\n txt2imgProcess: Txt2imgProcess,\r\n checkpoint?: string,\r\n callback_url?: string\r\n ) {\r\n const { task_id } =\r\n await this.client.default.queueTxt2ImgAgentSchedulerV1QueueTxt2ImgPost({\r\n requestBody: {\r\n ...txt2imgProcess.toJSON(),\r\n checkpoint,\r\n callback_url,\r\n },\r\n });\r\n return new SDTask(this.client, task_id);\r\n }\r\n}\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import EventEmitter from \"eventemitter3\";\r\n\r\nexport class BatchGeneration<Body, Response> extends EventEmitter<{\r\n batch_complete: (\r\n response: Response,\r\n progress: { currentBatch: number; totalBatches: number }\r\n ) => void;\r\n batch_start: (progress: {\r\n currentBatch: number;\r\n totalBatches: number;\r\n }) => void;\r\n batch_error: (\r\n error: any,\r\n progress: { currentBatch: number; totalBatches: number }\r\n ) => void;\r\n complete: (responses: Response[]) => void;\r\n error: (error: any) => void;\r\n start: () => void;\r\n}> {\r\n responses: Response[] = [];\r\n\r\n constructor(\r\n readonly body: Body,\r\n readonly options: {\r\n batchSize: number;\r\n numBatches: number;\r\n }\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Checks if the current batch generation is complete.\r\n *\r\n * @return {boolean} Returns true if the number of responses is equal to the number of batches, false otherwise.\r\n */\r\n isComplete() {\r\n return this.responses.length === this.options.numBatches;\r\n }\r\n\r\n runOneBatch(): Promise<Response> {\r\n throw new Error(\"Not implemented\");\r\n }\r\n\r\n /**\r\n * Waits for the completion of an asynchronous operation and returns a Promise that resolves with an array of responses.\r\n *\r\n * @return {Promise<Response[]>} A Promise that resolves with an array of responses when the operation is complete, or rejects with an error if there is an error.\r\n */\r\n waitForComplete() {\r\n if (this.isComplete()) {\r\n return Promise.resolve(this.responses);\r\n }\r\n return new Promise<Response[]>((resolve, reject) => {\r\n this.on(\"complete\", (responses) => resolve(responses));\r\n this.on(\"error\", (error) => reject(error));\r\n });\r\n }\r\n\r\n /**\r\n * Runs the batch generation process.\r\n *\r\n * @return {Promise<Response[]>} A Promise that resolves with an array of responses when the batch generation is complete, or rejects with an error if there is an error.\r\n */\r\n async run() {\r\n this.emit(\"start\");\r\n for (let i = 0; i < this.options.numBatches; i++) {\r\n this.emit(\"batch_start\", {\r\n currentBatch: i + 1,\r\n totalBatches: this.options.numBatches,\r\n });\r\n\r\n try {\r\n const response = await this.runOneBatch();\r\n this.responses.push(response);\r\n\r\n this.emit(\"batch_complete\", response, {\r\n currentBatch: i + 1,\r\n totalBatches: this.options.numBatches,\r\n });\r\n } catch (error) {\r\n this.emit(\"batch_error\", error, {\r\n currentBatch: i + 1,\r\n totalBatches: this.options.numBatches,\r\n });\r\n this.emit(\"error\", error);\r\n return;\r\n }\r\n }\r\n this.emit(\"complete\", this.responses);\r\n return this.responses;\r\n }\r\n}\r\n","import { SDWebUIA1111Client } from \"../client\";\r\n\r\nexport type CachedApiOptions = {\r\n client: SDWebUIA1111Client;\r\n cacheTime: number;\r\n disableCache?: boolean;\r\n};\r\n\r\n/**\r\n * A global cache hub that stores cache data for all CachedApi instances.\r\n */\r\nexport class GlobalCacheHub {\r\n static __KEY__ = \"__A1111_CLIENT_CACHE__\";\r\n\r\n private ensureCache() {\r\n if (!(globalThis as any)[GlobalCacheHub.__KEY__]) {\r\n (globalThis as any)[GlobalCacheHub.__KEY__] = {};\r\n }\r\n }\r\n\r\n get _cache() {\r\n this.ensureCache();\r\n return (globalThis as any)[GlobalCacheHub.__KEY__] as Record<\r\n string,\r\n {\r\n data: any;\r\n expires: number;\r\n }\r\n >;\r\n }\r\n\r\n clearCache() {\r\n this.ensureCache();\r\n (globalThis as any)[GlobalCacheHub.__KEY__] = {};\r\n }\r\n}\r\n\r\nexport class CachedApi {\r\n protected hub: GlobalCacheHub;\r\n\r\n protected options: CachedApiOptions;\r\n\r\n constructor(\r\n options: Pick<CachedApiOptions, \"client\"> &\r\n Partial<Omit<CachedApiOptions, \"client\">>,\r\n hub = new GlobalCacheHub()\r\n ) {\r\n this.hub = hub;\r\n this.options = {\r\n ...options,\r\n disableCache: options.disableCache ?? false,\r\n cacheTime: options.cacheTime ?? 60 * 1000,\r\n };\r\n }\r\n\r\n private get _cache() {\r\n return this.hub._cache;\r\n }\r\n\r\n get client() {\r\n return this.options.client;\r\n }\r\n\r\n protected cache_key_prefix() {\r\n return \"\";\r\n }\r\n\r\n protected full_cache_key(key: string) {\r\n return `${this.cache_key_prefix()}:${key}`;\r\n }\r\n\r\n protected async _getFromCache<T>(key: string) {\r\n if (this.options.disableCache) {\r\n return null;\r\n }\r\n const fullKey = this.full_cache_key(key);\r\n const cached = this._cache[fullKey];\r\n if (!cached || cached.expires < Date.now()) {\r\n return null;\r\n }\r\n return cached.data as T;\r\n }\r\n\r\n protected async _setCache<T>(key: string, data: T) {\r\n if (this.options.disableCache) {\r\n return;\r\n }\r\n const fullKey = this.full_cache_key(key);\r\n this._cache[fullKey] = {\r\n data,\r\n expires: Date.now() + this.options.cacheTime,\r\n };\r\n }\r\n\r\n protected async _getFromCacheOrFetch<T>(\r\n key: string,\r\n fetch: () => Promise<T>\r\n ) {\r\n const cached = await this._getFromCache<T>(key);\r\n if (cached) {\r\n return cached;\r\n }\r\n const data = await fetch();\r\n await this._setCache<T>(key, data);\r\n return data;\r\n }\r\n\r\n /**\r\n * Clears the cache by resetting the `_cache` object to an empty object.\r\n */\r\n clearCache() {\r\n this.hub.clearCache();\r\n }\r\n\r\n /**\r\n * Removes a cache entry with the specified key.\r\n *\r\n * @param {string} key - The key of the cache entry to remove.\r\n */\r\n removeCache(key: string) {\r\n const fullKey = this.full_cache_key(key);\r\n delete this._cache[fullKey];\r\n }\r\n}\r\n","import { StableDiffusionProcessingTxt2Img } from \"../client\";\r\nimport { ControlNetExt, ControlNetUnitRequest } from \"../extensions\";\r\nimport {\r\n Img2imgProcess,\r\n Img2imgProcessParams,\r\n Txt2imgProcess,\r\n Txt2imgProcessParams,\r\n} from \"../process\";\r\nimport { BatchGeneration } from \"./BatchGeneration\";\r\nimport { CachedApi } from \"./CachedApi\";\r\nimport { ControlTypes } from \"./cnet.types\";\r\nimport {\r\n ModelListResponse,\r\n ModuleListResponse,\r\n ControlNetDetectRequestBody,\r\n DetectResponse,\r\n} from \"./cnet.types\";\r\nimport { GenerationResponseInfo } from \"./service.types\";\r\n\r\nclass Img2imgBatchGeneration extends BatchGeneration<\r\n Img2imgProcessParams,\r\n { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n constructor(\r\n readonly api: ControlNetApi,\r\n body: Img2imgProcessParams,\r\n options: { batchSize: number; numBatches: number },\r\n readonly units: ControlNetUnitRequest[]\r\n ) {\r\n super(body, options);\r\n }\r\n\r\n async runOneBatch() {\r\n const resp = await this.api.img2img({\r\n params: {\r\n ...this.body,\r\n batch_size: this.options.batchSize,\r\n },\r\n units: this.units,\r\n });\r\n return resp;\r\n }\r\n}\r\n\r\nclass Txt2imgBatchGeneration extends BatchGeneration<\r\n Txt2imgProcessParams,\r\n { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n constructor(\r\n readonly api: ControlNetApi,\r\n body: Txt2imgProcessParams,\r\n options: { batchSize: number; numBatches: number },\r\n readonly units: ControlNetUnitRequest[]\r\n ) {\r\n super(body, options);\r\n }\r\n\r\n async runOneBatch() {\r\n const resp = await this.api.txt2img({\r\n params: {\r\n ...this.body,\r\n batch_size: this.options.batchSize,\r\n },\r\n units: this.units,\r\n });\r\n return resp;\r\n }\r\n}\r\n\r\nexport class ControlNetApi extends CachedApi {\r\n get client() {\r\n return this.options.client;\r\n }\r\n\r\n cache_key_prefix() {\r\n const base_url = this.options.client.request.config.BASE ?? \"*\";\r\n return `@controlnet/${base_url}`;\r\n }\r\n\r\n /**\r\n * Retrieves a list of models from the controlnet API.\r\n *\r\n * @return {Promise<string[]>} A promise that resolves to an array of model names.\r\n */\r\n private async _getModels() {\r\n const resp: ModelListResponse =\r\n await this.client.default.modelListControlnetModelListGet({});\r\n return (resp?.model_list || []) as string[];\r\n }\r\n\r\n /**\r\n * Retrieves the module list response from the controlnet API.\r\n *\r\n * @return {Promise<ModuleListResponse>} A promise that resolves to the module list response.\r\n */\r\n private async _getModuleResponse() {\r\n const resp: ModuleListResponse =\r\n await this.client.default.moduleListControlnetModuleListGet({});\r\n return resp;\r\n }\r\n\r\n /**\r\n * Retrieves a list of models from the controlnet API, caching the result if caching is enabled.\r\n *\r\n * @return {Promise<string[]>} A promise that resolves to an array of model names.\r\n */\r\n async getModels() {\r\n const key = \"models\" + this.client;\r\n return this._getFromCacheOrFetch(key, this._getModels.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves a list of modules from the cache if caching is enabled, otherwise makes a request to the controlnet API.\r\n *\r\n * @return {Promise<string[]>} A promise that resolves to an array of module names.\r\n */\r\n async getModules() {\r\n const key = \"modules\";\r\n return this._getFromCacheOrFetch(key, this._getModuleResponse.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the detail of a module from the cache if caching is enabled, otherwise makes a request to the controlnet API.\r\n *\r\n * @param {string} module - The name of the module to retrieve the detail for.\r\n * @return {Promise<{model_free: boolean, sliders: {max: number, min: number, name: string, step: number, value: number}[],}>} A promise that resolves to the module detail.\r\n */\r\n async getModuleDetail(module: string) {\r\n const key = `module_detail_${module}`;\r\n return this._getFromCacheOrFetch(key, this._getModuleResponse.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the version of the controlnet API.\r\n *\r\n * @return {Promise<number>} A promise that resolves to the version number.\r\n */\r\n private async _getVersion() {\r\n const resp: {\r\n version: number;\r\n } = await this.client.default.versionControlnetVersionGet();\r\n return resp.version;\r\n }\r\n\r\n /**\r\n * Retrieves the control types from the controlnet API.\r\n *\r\n * @return {Promise<ControlTypes>} A promise that resolves to the control types.\r\n **/\r\n private async _getControlTypes() {\r\n const resp: {\r\n control_types: ControlTypes;\r\n } = await this.client.default.controlTypesControlnetControlTypesGet();\r\n return resp.control_types;\r\n }\r\n\r\n /**\r\n * Retrieves the control types from the controlnet API.\r\n *\r\n * @return {Promise<ControlTypes>} A promise that resolves to the control types.\r\n **/\r\n async getControlTypes() {\r\n const key = \"control_types\";\r\n return this._getFromCacheOrFetch(key, this._getControlTypes.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the version of the controlnet API.\r\n *\r\n * @return {Promise<number>} A promise that resolves to the version number.\r\n */\r\n async getVersion() {\r\n const key = \"version\";\r\n return this._getFromCacheOrFetch(key, this._getVersion.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the details of all modules from the cache if caching is enabled, otherwise makes a request to the controlnet API.\r\n *\r\n * @return {Promise<Record<string, {model_free: boolean, sliders: {max: number, min: number, name: string, step: number, value: number}[],}>} A promise that resolves to an object containing the details of all modules.\r\n */\r\n async getAllModuleDetail() {\r\n const key = \"all_module_detail\";\r\n return this._getFromCacheOrFetch(key, this._getModuleResponse.bind(this));\r\n }\r\n\r\n /**\r\n * Detects objects in an image using the controlnet API.\r\n *\r\n * @param {ControlNetDetectRequestBody} params - The parameters for the detection.\r\n * @return {Promise<DetectResponse>} A promise that resolves to the detection response.\r\n */\r\n async detect(params: ControlNetDetectRequestBody) {\r\n const resp: DetectResponse =\r\n await this.client.default.detectControlnetDetectPost({\r\n requestBody: params,\r\n });\r\n return resp;\r\n }\r\n\r\n /**\r\n * Asynchronously sends a text to the server for processing and returns the processed image and information.\r\n *\r\n * @param {Object} options - The options for the text to image processing.\r\n * @param {Txt2imgProcessParams} options.params - The parameters for the text to image processing.\r\n * @param {ControlNetUnitRequest[]} options.units - The control net units for the text to image processing.\r\n * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n * @throws {Error} If no image is returned from the server.\r\n */\r\n async txt2img({\r\n params,\r\n units,\r\n }: {\r\n params: Txt2imgProcessParams;\r\n units: ControlNetUnitRequest[];\r\n }) {\r\n if (units.length === 0) {\r\n throw new Error(\r\n \"At least one control net unit is required for text to image processing.\"\r\n );\r\n }\r\n\r\n const pc1 = new Txt2imgProcess(params);\r\n const cnet_ext = new ControlNetExt();\r\n for (const unit of units) {\r\n cnet_ext.addUnit(unit);\r\n }\r\n pc1.use(cnet_ext);\r\n const resp = await pc1.request(this.client);\r\n const image = resp.images?.[0];\r\n if (!image) {\r\n throw new Error(\"No image returned from the server.\");\r\n }\r\n return {\r\n image,\r\n images: resp.images || [],\r\n info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n };\r\n }\r\n\r\n /**\r\n * Asynchronously sends an image to the server for processing and returns the processed image and information.\r\n *\r\n * @param {Object} options - The options for the image to image processing.\r\n * @param {Img2imgProcessParams} options.params - The parameters for the image to image processing.\r\n * @param {ControlNetUnitRequest[]} options.units - The control net units for the image to image processing.\r\n * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n * @throws {Error} If no image is returned from the server.\r\n */\r\n async img2img({\r\n params,\r\n units,\r\n }: {\r\n params: Img2imgProcessParams;\r\n units: ControlNetUnitRequest[];\r\n }) {\r\n if (units.length === 0) {\r\n throw new Error(\r\n \"At least one control net unit is required for text to image processing.\"\r\n );\r\n }\r\n\r\n const pc1 = new Img2imgProcess(params);\r\n const cnet_ext = new ControlNetExt();\r\n for (const unit of units) {\r\n cnet_ext.addUnit(unit);\r\n }\r\n pc1.use(cnet_ext);\r\n const resp = await pc1.request(this.client);\r\n const image = resp.images?.[0];\r\n if (!image) {\r\n throw new Error(\"No image returned from the server.\");\r\n }\r\n return {\r\n image,\r\n images: resp.images || [],\r\n info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n };\r\n }\r\n\r\n /**\r\n * Asynchronously creates a batch of image-to-image generations and returns the batch object.\r\n *\r\n * @param {Object} param - The parameters for the batch generation.\r\n * @param {Img2imgProcessParams} param.params - The image processing parameters.\r\n * @param {Object} param.options - The options for the batch generation.\r\n * @param {number} param.options.batchSize - The number of images to generate in each batch.\r\n * @param {number} param.options.numBatches - The total number of batches to generate.\r\n * @param {boolean} [param.options.manual] - Whether to manually run the batch generation.\r\n * @param {ControlNetUnitRequest[]} param.units - The control network units for the batch generation.\r\n * @return {Promise<Img2imgBatchGeneration>} A promise that resolves to the batch object.\r\n */\r\n async img2imgBatch({\r\n params,\r\n options,\r\n units,\r\n }: {\r\n params: Img2imgProcessParams;\r\n options: { batchSize: number; numBatches: number; manual?: boolean };\r\n units: ControlNetUnitRequest[];\r\n }) {\r\n const batch = new Img2imgBatchGeneration(this, params, options, units);\r\n if (!options.manual) {\r\n batch.run();\r\n }\r\n return batch;\r\n }\r\n\r\n /**\r\n * Asynchronously sends a text to the server for processing and returns the processed image and information.\r\n *\r\n * @param {Object} options - The options for the text to image processing.\r\n * @param {Txt2imgProcessParams} options.params - The parameters for the text to image processing.\r\n * @param {Object} options.options - The options for the text to image processing.\r\n * @param {number} options.options.batchSize - The number of images to generate in each batch.\r\n * @param {number} options.options.numBatches - The total number of batches to generate.\r\n * @param {boolean} [options.options.manual] - Whether to manually run the batch generation.\r\n * @param {ControlNetUnitRequest[]} options.units - The control net units for the batch generation.\r\n * @return {Promise<Txt2imgBatchGeneration>} A promise that resolves to the batch object.\r\n */\r\n async txt2imgBatch({\r\n params,\r\n options,\r\n units,\r\n }: {\r\n params: Txt2imgProcessParams;\r\n options: { batchSize: number; numBatches: number; manual?: boolean };\r\n units: ControlNetUnitRequest[];\r\n }) {\r\n const batch = new Txt2imgBatchGeneration(this, params, options, units);\r\n if (!options.manual) {\r\n batch.run();\r\n }\r\n return batch;\r\n }\r\n}\r\n","import {\r\n StableDiffusionProcessingImg2Img,\r\n StableDiffusionProcessingTxt2Img,\r\n modules__api__models__ProgressResponse,\r\n} from \"../client\";\r\nimport { BatchGeneration } from \"./BatchGeneration\";\r\nimport { CachedApi } from \"./CachedApi\";\r\nimport { GenerationResponseInfo } from \"./service.types\";\r\n\r\nimport EventEmitter from \"eventemitter3\";\r\n\r\nclass Img2imgBatchGeneration extends BatchGeneration<\r\n StableDiffusionProcessingImg2Img,\r\n { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n constructor(\r\n readonly serviceApi: ServiceApi,\r\n body: StableDiffusionProcessingImg2Img,\r\n options: { batchSize: number; numBatches: number }\r\n ) {\r\n super(body, options);\r\n }\r\n\r\n async runOneBatch() {\r\n const resp = await this.serviceApi.img2img({\r\n ...this.body,\r\n batch_size: this.options.batchSize,\r\n });\r\n return resp;\r\n }\r\n}\r\n\r\nclass Txt2imgBatchGeneration extends BatchGeneration<\r\n StableDiffusionProcessingTxt2Img,\r\n { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n constructor(\r\n readonly serviceApi: ServiceApi,\r\n body: StableDiffusionProcessingTxt2Img,\r\n options: { batchSize: number; numBatches: number }\r\n ) {\r\n super(body, options);\r\n }\r\n\r\n async runOneBatch() {\r\n const resp = await this.serviceApi.txt2img({\r\n ...this.body,\r\n batch_size: this.options.batchSize,\r\n });\r\n return resp;\r\n }\r\n}\r\n\r\ntype ProgressResponse = modules__api__models__ProgressResponse;\r\n\r\nclass ProgressWatcher extends EventEmitter<{\r\n progress: (progress: ProgressResponse) => void;\r\n done: () => void;\r\n}> {\r\n isDone = false;\r\n\r\n constructor(\r\n readonly options: {\r\n intervalMs: number;\r\n },\r\n readonly serviceApi: ServiceApi\r\n ) {\r\n super();\r\n }\r\n\r\n async start(params?: { getCurrentImage?: boolean | undefined }) {\r\n while (!this.isDone) {\r\n const progress = await this.serviceApi.progress(params);\r\n this.emit(\"progress\", progress);\r\n await new Promise((resolve) =>\r\n setTimeout(resolve, this.options.intervalMs)\r\n );\r\n }\r\n this.emit(\"done\");\r\n }\r\n\r\n stop() {\r\n this.isDone = true;\r\n }\r\n}\r\n\r\nexport class ServiceApi extends CachedApi {\r\n cache_key_prefix() {\r\n const base_url = this.options.client.request.config.BASE ?? \"*\";\r\n return `@service/${base_url}`;\r\n }\r\n\r\n /**\r\n * Retrieves the SD models from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the SD models.\r\n */\r\n private async _getSDModels() {\r\n const resp = await this.client.default.getSdModelsSdapiV1SdModelsGet();\r\n return resp;\r\n }\r\n\r\n /**\r\n * Retrieves the samplers from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the samplers.\r\n */\r\n private async _getSamplers() {\r\n const resp = await this.client.default.getSamplersSdapiV1SamplersGet();\r\n return resp;\r\n }\r\n\r\n /**\r\n * Retrieves the SD models from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the SD models.\r\n */\r\n async getSDModels() {\r\n const key = \"sdmodels\";\r\n return this._getFromCacheOrFetch(key, this._getSDModels.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the samplers from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the samplers.\r\n */\r\n async getSamplers() {\r\n const key = \"samplers\";\r\n return this._getFromCacheOrFetch(key, this._getSamplers.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the embeddings from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the embeddings.\r\n */\r\n private async _getEmbeddings() {\r\n const resp = await this.client.default.getEmbeddingsSdapiV1EmbeddingsGet();\r\n return resp;\r\n }\r\n\r\n /**\r\n * Retrieves the embeddings from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the embeddings.\r\n */\r\n async getEmbeddings() {\r\n const key = \"embeddings\";\r\n return this._getFromCacheOrFetch(key, this._getEmbeddings.bind(this));\r\n }\r\n\r\n /**\r\n * Retrieves the extension list from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the extension list.\r\n */\r\n private async _getExtensionList() {\r\n const resp =\r\n await this.client.default.getExtensionsListSdapiV1ExtensionsGet();\r\n return resp;\r\n }\r\n\r\n /**\r\n * Retrieves the extension list from the API.\r\n *\r\n * @return {Promise<Response>} A promise that resolves to the response containing the extension list.\r\n */\r\n async getExtensionList() {\r\n const key = \"extensions\";\r\n return this._getFromCacheOrFetch(key, this._getExtensionList.bind(this));\r\n }\r\n\r\n /**\r\n * Pings the API to check the response time.\r\n *\r\n * @return {Promise<{ success: boolean, time: number, error?: any }>} An object containing the success status,\r\n * the response time in milliseconds, and an optional error object if the ping fails.\r\n */\r\n async ping() {\r\n const start = Date.now();\r\n try {\r\n await this.client.default.lambdaInternalPingGet();\r\n return {\r\n success: true,\r\n time: Date.now() - start,\r\n };\r\n } catch (error) {\r\n return {\r\n success: false,\r\n time: Date.now() - start,\r\n error,\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Asynchronously sends an image to the server for processing and returns the processed image and information.\r\n *\r\n * @param {StableDiffusionProcessingImg2Img} requestBody - The image to be processed.\r\n * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n */\r\n async img2img(requestBody: StableDiffusionProcessingImg2Img) {\r\n const resp = await this.client.default.img2ImgapiSdapiV1Img2ImgPost({\r\n requestBody,\r\n });\r\n const image = resp.images?.[0];\r\n if (!image) {\r\n throw new Error(\"No image returned from the server.\");\r\n }\r\n return {\r\n image,\r\n images: resp.images || [],\r\n info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n };\r\n }\r\n\r\n /**\r\n * Asynchronously sends a text to the server for processing and returns the processed image and information.\r\n *\r\n * @param {StableDiffusionProcessingTxt2Img} requestBody - The text to be processed.\r\n * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n */\r\n async txt2img(requestBody: StableDiffusionProcessingTxt2Img) {\r\n const resp = await this.client.default.text2ImgapiSdapiV1Txt2ImgPost({\r\n requestBody,\r\n });\r\n const image = resp.images?.[0];\r\n if (!image) {\r\n throw new Error(\"No image returned from the server.\");\r\n }\r\n return {\r\n image,\r\n images: resp.images || [],\r\n info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n };\r\n }\r\n\r\n /**\r\n * Asynchronously creates a batch of image-to-image generations and returns the batch object.\r\n *\r\n * @param {StableDiffusionProcessingImg2Img} body - The image to be processed.\r\n * @param {Object} options - The options for the batch generation.\r\n * @param {number} options.batchSize - The number of images to generate in each batch.\r\n * @param {number} options.numBatches - The total number of batches to generate.\r\n * @param {boolean} options.manual - Whether to manually run the batch generation.\r\n * @return {Promise<Img2imgBatchGeneration>} A promise that resolves to the batch object.\r\n */\r\n async img2imgBatch(\r\n body: StableDiffusionProcessingImg2Img,\r\n options: { batchSize: number; numBatches: number; manual?: boolean }\r\n ) {\r\n const batch = new Img2imgBatchGeneration(this, body, options);\r\n if (!options.manual) {\r\n batch.run();\r\n }\r\n return batch;\r\n }\r\n\r\n /**\r\n * Asynchronously creates a batch of text-to-image generations and returns the batch object.\r\n *\r\n * @param {StableDiffusionProcessingTxt2Img} body - The text to be processed.\r\n * @param {Object} options - The options for the batch generation.\r\n * @param {number} options.batchSize - The number of images to generate in each batch.\r\n * @param {number} options.numBatches - The total number of batches to generate.\r\n * @param {boolean} options.manual - Whether to manually run the batch generation.\r\n * @return {Promise<Txt2imgBatchGeneration>} A promise that resolves to the batch object.\r\n */\r\n async txt2imgBatch(\r\n body: StableDiffusionProcessingTxt2Img,\r\n options: { batchSize: number; numBatches: number; manual?: boolean }\r\n ) {\r\n const batch = new Txt2imgBatchGeneration(this, body, options);\r\n if (!options.manual) {\r\n batch.run();\r\n }\r\n return batch;\r\n }\r\n\r\n /**\r\n * Asynchronously retrieves the progress of a task.\r\n *\r\n * @param {Object} [params] - Optional parameters for the progress request.\r\n * @param {boolean} [params.getCurrentImage] - Whether to include the current image in the response. Defaults to false.\r\n * @return {Promise<Object>} A promise that resolves to the progress response object.\r\n */\r\n async progress(params?: { getCurrentImage?: boolean }) {\r\n const resp = await this.client.default.progressapiSdapiV1ProgressGet({\r\n skipCurrentImage: !params?.getCurrentImage,\r\n });\r\n return resp;\r\n }\r\n\r\n /**\r\n * Asynchronously watches the progress of current task.\r\n *\r\n * @param {Object} options - The options for the progress watcher.\r\n * @param {number} options.intervalMs - The interval in milliseconds to check the progress.\r\n * @param {boolean} options.manual - Whether to manually start the progress watcher.\r\n * @param {boolean} options.getCurrentImage - Whether to include the current image in the response. Defaults to false.\r\n * @return {ProgressWatcher} The progress watcher object.\r\n */\r\n watchProgress(options: {\r\n intervalMs: number;\r\n manual?: boolean;\r\n getCurrentImage?: boolean;\r\n }) {\r\n const watcher = new ProgressWatcher(options, this);\r\n if (!options.manual) {\r\n watcher.start({\r\n getCurrentImage: options.getCurrentImage,\r\n });\r\n }\r\n return watcher;\r\n }\r\n}\r\n","import { OpenAPIConfig, SDWebUIA1111Client } from \"../client\";\r\nimport { CachedApiOptions } from \"./CachedApi\";\r\nimport { ControlNetApi } from \"./cnet\";\r\nimport { ServiceApi } from \"./service\";\r\n\r\ntype ApiOptions = {\r\n client: Partial<OpenAPIConfig> & {\r\n BASE: string;\r\n };\r\n cache?: Partial<Omit<CachedApiOptions, \"client\">>;\r\n};\r\n\r\n/**\r\n * The API for the A1111 Stable Diffusion API.\r\n *\r\n * @param {ApiOptions} options - The options for the constructor.\r\n */\r\nexport class A1111StableDiffusionApi {\r\n client: SDWebUIA1111Client;\r\n\r\n ControlNet: ControlNetApi;\r\n Service: ServiceApi;\r\n\r\n constructor(options: ApiOptions) {\r\n this.client = new SDWebUIA1111Client(options.client);\r\n\r\n this.ControlNet = new ControlNetApi({\r\n client: this.client,\r\n ...options.cache,\r\n });\r\n this.Service = new ServiceApi({\r\n client: this.client,\r\n ...options.cache,\r\n });\r\n }\r\n}\r\n","import type { SDWebUIA1111Client } from \"../client\";\r\nimport { ExtensionScript } from \"../extensions\";\r\nimport { not } from \"../misc\";\r\nimport {\r\n InpaintFill,\r\n Img2imgProcessParams,\r\n Txt2imgProcessParams,\r\n} from \"../process\";\r\nimport { SDProcessor } from \"../process/SDProcessor\";\r\nimport { SamplerName, SchedulerName } from \"./types\";\r\n\r\ntype RequestBody = Img2imgProcessParams & Txt2imgProcessParams;\r\ntype BodyKey = keyof RequestBody;\r\ntype BodyValue<K extends BodyKey> = NonNullable<RequestBody[K]>;\r\n\r\nexport class Pipeline {\r\n private processing: SDProcessor<RequestBody>;\r\n\r\n /**\r\n * Constructs a new Pipeline instance.\r\n *\r\n * @param {SDWebUIA1111Client} client - The client instance used for processing requests.\r\n * @param {RequestBody} [init_body={}] - The initial request body to be used for processing.\r\n */\r\n\r\n constructor(\r\n readonly client: SDWebUIA1111Client,\r\n init_body: RequestBody = {}\r\n ) {\r\n this.processing = new SDProcessor(init_body);\r\n }\r\n\r\n private async run_t2i(body: RequestBody) {\r\n return this.client.default.text2ImgapiSdapiV1Txt2ImgPost({\r\n requestBody: body,\r\n });\r\n }\r\n\r\n private async run_i2i(body: RequestBody) {\r\n return this.client.default.img2ImgapiSdapiV1Img2ImgPost({\r\n requestBody: body,\r\n });\r\n }\r\n\r\n /**\r\n * Adds an extension to the list of extensions.\r\n *\r\n * @param {ExtensionScript} ext - The extension to be added.\r\n * @return {SDProcessor<Body>} The current SDProcessing object.\r\n */\r\n use(ext: ExtensionScript) {\r\n this.processing.use(ext);\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates and adds a new ExtensionScript to the list of extensions.\r\n *\r\n * @param {string} name - The name of the extension script.\r\n * @param {any[]} args - The arguments for the extension script.\r\n * @return {SDProcessor<Body>} The current SDProcessing object.\r\n */\r\n useCustomExt(name: string, args: any[]) {\r\n this.processing.useCustomExt(name, args);\r\n return this;\r\n }\r\n\r\n is_t2i() {\r\n return not(this.is_i2i());\r\n }\r\n\r\n is_i2i() {\r\n const { init_images, mask } = this.processing.init_body;\r\n const has_images = Array.isArray(init_images) && init_images.length !== 0;\r\n const has_mask = mask !== undefined;\r\n return has_images && has_mask;\r\n }\r\n\r\n run() {\r\n const body = this.processing.toJSON();\r\n if (this.is_t2i()) {\r\n return this.run_t2i(body);\r\n } else {\r\n return this.run_i2i(body);\r\n }\r\n }\r\n\r\n _write<K extends keyof RequestBody, V extends RequestBody[K]>(\r\n key: K,\r\n value: V\r\n ) {\r\n this.processing.init_body[key] = value;\r\n }\r\n\r\n // **** 拓展参数 ****\r\n\r\n /**\r\n * Sets the text prompt for image generation.\r\n * @param {BodyValue<\"prompt\">} text - The prompt text.\r\n * @returns {this} The pipeline instance.\r\n */\r\n prompt(text: BodyValue<\"prompt\">) {\r\n this._write(\"prompt\", text);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the negative prompt to avoid undesired features in the image.\r\n * @param {BodyValue<\"negative_prompt\">} text - The negative prompt text.\r\n * @returns {this} The pipeline instance.\r\n */\r\n negative(text: BodyValue<\"negative_prompt\">) {\r\n this._write(\"negative_prompt\", text);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the seed value for deterministic image generation.\r\n * @param {BodyValue<\"seed\">} seed - The seed value.\r\n * @returns {this} The pipeline instance.\r\n */\r\n seed(seed: BodyValue<\"seed\">) {\r\n this._write(\"seed\", seed);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the subseed value for variations in deterministic generation.\r\n * @param {BodyValue<\"subseed\">} seed - The subseed value.\r\n * @returns {this} The pipeline instance.\r\n */\r\n subseed(seed: BodyValue<\"subseed\">) {\r\n this._write(\"subseed\", seed);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the sampler method used for generating images.\r\n * @param {SamplerName} name - The sampler name.\r\n * @returns {this} The pipeline instance.\r\n */\r\n sampler(name: SamplerName) {\r\n this._write(\"sampler_name\", name);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the scheduler method for image generation.\r\n * @param {SchedulerName} name - The scheduler name.\r\n * @returns {this} The pipeline instance.\r\n */\r\n scheduler(name: SchedulerName) {\r\n this._write(\"scheduler\", name);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the batch size for image generation.\r\n * @param {BodyValue<\"batch_size\">} size - The batch size.\r\n * @returns {this} The pipeline instance.\r\n */\r\n batch(size: BodyValue<\"batch_size\">) {\r\n this._write(\"batch_size\", size);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the number of inference steps.\r\n * @param {BodyValue<\"steps\">} steps - The number of steps.\r\n * @returns {this} The pipeline instance.\r\n */\r\n steps(steps: BodyValue<\"steps\">) {\r\n this._write(\"steps\", steps);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the classifier-free guidance scale.\r\n * @param {BodyValue<\"cfg_scale\">} scale - The CFG scale value.\r\n * @returns {this} The pipeline instance.\r\n */\r\n cfg(scale: BodyValue<\"cfg_scale\">) {\r\n this._write(\"cfg_scale\", scale);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the image size.\r\n * @param {BodyValue<\"width\">} width - The image width.\r\n * @param {BodyValue<\"height\">} height - The image height.\r\n * @returns {this} The pipeline instance.\r\n */\r\n size(width: BodyValue<\"width\">, height: BodyValue<\"height\">) {\r\n this._write(\"width\", width);\r\n this._write(\"height\", height);\r\n return this;\r\n }\r\n\r\n /**\r\n * Enables high-resolution image generation.\r\n * @param {BodyValue<\"enable_hr\">} [enable=true] - Whether to enable high-resolution mode.\r\n * @returns {this} The pipeline instance.\r\n */\r\n enableHR(enable: BodyValue<\"enable_hr\"> = true) {\r\n this._write(\"enable_hr\", enable);\r\n return this;\r\n }\r\n\r\n /**\r\n * Configures high-resolution settings.\r\n * @param {BodyValue<\"hr_scale\">} scale - The upscaling factor.\r\n * @param {BodyValue<\"hr_upscaler\">} upscaler - The upscaler algorithm.\r\n * @param {BodyValue<\"hr_second_pass_steps\">} [secondPassSteps] - Additional processing steps.\r\n * @returns {this} The pipeline instance.\r\n */\r\n hr(\r\n scale: BodyValue<\"hr_scale\">,\r\n upscaler: BodyValue<\"hr_upscaler\">,\r\n secondPassSteps?: BodyValue<\"hr_second_pass_steps\">\r\n ) {\r\n this.enableHR(true);\r\n this._write(\"hr_scale\", scale);\r\n this._write(\"hr_upscaler\", upscaler);\r\n if (secondPassSteps !== undefined) {\r\n this._write(\"hr_second_pass_steps\", secondPassSteps);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Overrides some of the processing settings.\r\n * @param {BodyValue<\"override_settings\">} settings - The settings to override.\r\n * @param {boolean} [restore_afterwards=false] - Whether to restore the original settings after processing.\r\n * @returns {this} The pipeline instance.\r\n */\r\n override(\r\n settings: BodyValue<\"override_settings\">,\r\n restore_afterwards = false\r\n ) {\r\n this._write(\"override_settings\", {\r\n ...this.processing.init_body.override_settings,\r\n ...settings,\r\n });\r\n this._write(\"override_settings_restore_afterwards\", restore_afterwards);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the model checkpoint to be used for processing.\r\n * @param {string} sd_model_checkpoint - The checkpoint identifier for the model.\r\n * @param {boolean} [restore_afterwards=false] - Whether to restore the original model checkpoint after processing.\r\n * @returns {this} The pipeline instance.\r\n */\r\n\r\n model(sd_model_checkpoint: string, restore_afterwards = false) {\r\n this.override(\r\n { sd_model_checkpoint: sd_model_checkpoint },\r\n restore_afterwards\r\n );\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the script to be used for processing.\r\n *\r\n * @param {BodyValue<\"script_name\">} name - The name of the script.\r\n * @param {BodyValue<\"script_args\">} [args] - Optional arguments for the script.\r\n * @returns {this} The pipeline instance.\r\n */\r\n script(name: BodyValue<\"script_name\">, args?: BodyValue<\"script_args\">) {\r\n this._write(\"script_name\", name);\r\n if (args) {\r\n this._write(\"script_args\", args);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Controls whether images are saved to disk or not.\r\n * @param {BodyValue<\"save_images\">} [save=true] - Whether to save images.\r\n * @returns {this} The pipeline instance.\r\n */\r\n saveImages(save: BodyValue<\"save_images\"> = true) {\r\n this._write(\"save_images\", save);\r\n return this;\r\n }\r\n\r\n /**\r\n * Controls whether generated images are sent back to the client or not.\r\n * @param {BodyValue<\"send_images\">} [send=true] - Whether to send images.\r\n * @returns {this} The pipeline instance.\r\n */\r\n sendImages(send: BodyValue<\"send_images\"> = true) {\r\n this._write(\"send_images\", send);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the denoising strength for image processing.\r\n * @param {BodyValue<\"denoising_strength\">} value - The denoising strength value.\r\n * @returns {this} The pipeline instance.\r\n */\r\n\r\n strength(value: BodyValue<\"denoising_strength\">) {\r\n this._write(\"denoising_strength\", value);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the initial images for image processing.\r\n * @param {...BodyValue<\"init_images\">} images - The initial images.\r\n * @returns {this} The pipeline instance.\r\n */\r\n images(...images: BodyValue<\"init_images\">) {\r\n this._write(\"init_images\", images);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the resize mode for image processing.\r\n * @param {BodyValue<\"resize_mode\">} mode - The resize mode: 0 to upscale by upscaling_resize amount, 1 to upscale up to upscaling_resize_h x upscaling_resize_w.\r\n * @returns {this} The pipeline instance.\r\n */\r\n resizeMode(mode: BodyValue<\"resize_mode\">) {\r\n this._write(\"resize_mode\", mode);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the image configuration scale used in image processing.\r\n * @param {BodyValue<\"image_cfg_scale\">} scale - The scale value for image configuration.\r\n * @returns {this} The pipeline instance.\r\n */\r\n\r\n imageCfgScale(scale: BodyValue<\"image_cfg_scale\">) {\r\n this._write(\"image_cfg_scale\", scale);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the mask for image processing.\r\n * @param {BodyValue<\"mask\">} mask - The mask image (base64).\r\n * @param {Object} [options] - Optional parameters.\r\n * @param {BodyValue<\"mask_blur_x\">} [options.blurX] - The blur value for the mask in the X direction.\r\n * @param {BodyValue<\"mask_blur_y\">} [options.blurY] - The blur value for the mask in the Y direction.\r\n * @param {BodyValue<\"mask_blur\">} [options.blur] - The blur value for the mask.\r\n * @param {BodyValue<\"mask_round\">} [options.round] - Whether to round the mask.\r\n * @returns {this} The pipeline instance.\r\n */\r\n mask(\r\n mask: BodyValue<\"mask\">,\r\n {\r\n blur,\r\n blurX,\r\n blurY,\r\n round,\r\n }: {\r\n blurX?: BodyValue<\"mask_blur_x\">;\r\n blurY?: BodyValue<\"mask_blur_y\">;\r\n blur?: BodyValue<\"mask_blur\">;\r\n round?: BodyValue<\"mask_round\">;\r\n } = {}\r\n ) {\r\n this._write(\"mask\", mask);\r\n if (blurX !== undefined) this._write(\"mask_blur_x\", blurX);\r\n if (blurY !== undefined) this._write(\"mask_blur_y\", blurY);\r\n if (blur !== undefined) this._write(\"mask_blur\", blur);\r\n if (round !== undefined) this._write(\"mask_round\", round);\r\n return this;\r\n }\r\n\r\n /**\r\n * Configures inpainting settings for image processing.\r\n *\r\n * @param {BodyValue<\"inpainting_fill\">} fill - The fill type for inpainting, defaults to original.\r\n * @param {Object} [options] - Optional parameters for inpainting.\r\n * @param {BodyValue<\"inpaint_full_res\">} [options.fullRes] - Whether to use full resolution for inpainting.\r\n * @param {BodyValue<\"inpaint_full_res_padding\">} [options.fullResPadding] - Padding to apply when using full resolution.\r\n * @param {BodyValue<\"inpainting_mask_invert\">} [options.maskInvert] - Invert the mask for inpainting.\r\n * @returns {this} The pipeline instance.\r\n */\r\n\r\n inpainting(\r\n fill: BodyValue<\"inpainting_fill\"> = InpaintFill.original,\r\n {\r\n fullRes,\r\n fullResPadding,\r\n maskInvert,\r\n }: {\r\n fullRes?: BodyValue<\"inpaint_full_res\">;\r\n fullResPadding?: BodyValue<\"inpaint_full_res_padding\">;\r\n maskInvert?: BodyValue<\"inpainting_mask_invert\">;\r\n } = {}\r\n ) {\r\n this._write(\"inpainting_fill\", fill);\r\n this._write(\"inpaint_full_res\", fullRes);\r\n if (fullResPadding !== undefined)\r\n this._write(\"inpaint_full_res_padding\", fullResPadding);\r\n if (maskInvert !== undefined)\r\n this._write(\"inpainting_mask_invert\", maskInvert);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the initial noise multiplier.\r\n * @param {BodyValue<\"initial_noise_multiplier\">} value - The initial noise multiplier.\r\n * @returns {this} The pipeline instance.\r\n */\r\n initialNoiseMultiplier(value: BodyValue<\"initial_noise_multiplier\">) {\r\n this._write(\"initial_noise_multiplier\", value);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the always-on scripts.\r\n * @param {BodyValue<\"alwayson_scripts\">} scripts - The always-on scripts configuration.\r\n * @returns {this} The pipeline instance.\r\n */\r\n\r\n alwaysOnScripts(scripts: BodyValue<\"alwayson_scripts\">) {\r\n this._write(\"alwayson_scripts\", scripts);\r\n\r\n return this;\r\n }\r\n}\r\n"],"names":["_globalThis$structure","deepClone","globalThis","structuredClone","x","JSON","parse","stringify","ExtensionScript","constructor","name","args","this","install","req","ControlNetExt","unit0","options","super","addUnit","unit","add","Object","keys","length","Error","push","_extends","defaultControlNetUnitRequest","enabled","image","mask","module","model","weight","resize_mode","low_vram","processor_res","threshold_a","threshold_b","guidance_start","guidance_end","control_mode","pixel_perfect","clear","_this$options","_this$options2","units","disable_auto_set_image","init_image0","init_images","disable_auto_set_mask","params2args","params","_params$enabled","_params$targets","_params$weight","_params$disable_neg","_params$strong","_params$padding","_params$inpt","_params$debug","targets","disable_neg","strong","padding","inpt","debug","CutoffExt","update","TiledDiffusionMethod","method","overwrite_size","keep_input_size","image_width","image_height","tile_width","tile_height","overlap","tile_batch_size","upscaler_name","scale_factor","noise_inverse","noise_inverse_steps","noise_inverse_retouch","noise_inverse_renoise_strength","noise_inverse_renoise_kernel","control_tensor_cpu","enable_bbox_control","draw_background","causal_layers","bbox_control_states","MULTI_DIFF","TiledDiffusionExt","encoderTileSize","decoderTileSize","vaeToGPU","fastDecoder","fastEncoder","colorFix","TiledVAEExt","mimicScale","thresholdPercentile","mimicMode","mimicScaleMin","cfgMode","cfgScaleMin","schedVal","defaultDynamicCFGParams","DynamicCFGExt","ADetailerExt","assign","default_params","ad_model","ad_model_classes","ad_tab_enable","ad_prompt","ad_negative_prompt","ad_confidence","ad_mask_filter_method","ad_mask_k","ad_mask_min_ratio","ad_mask_max_ratio","ad_dilate_erode","ad_x_offset","ad_y_offset","ad_mask_merge_invert","ad_mask_blur","ad_denoising_strength","ad_inpaint_only_masked","ad_inpaint_only_masked_padding","ad_use_inpaint_width_height","ad_inpaint_width","ad_inpaint_height","ad_use_steps","ad_steps","ad_use_cfg_scale","ad_cfg_scale","ad_use_checkpoint","ad_checkpoint","ad_use_vae","ad_vae","ad_use_sampler","ad_sampler","ad_scheduler","ad_use_noise_multiplier","ad_noise_multiplier","ad_use_clip_skip","ad_clip_skip","ad_restore_face","ad_controlnet_model","ad_controlnet_module","ad_controlnet_weight","ad_controlnet_guidance_start","ad_controlnet_guidance_end","BaseHttpRequest","config","ApiError","request","response","message","url","status","statusText","body","_Symbol$toStringTag","CancelError","isCancelled","_isResolved","_classPrivateFieldLooseKey","_isRejected","_isCancelled","_cancelHandlers","_promise","_resolve","_reject","Symbol","toStringTag","CancelablePromise","executor","defineProperty","writable","value","_classPrivateFieldLooseBase","Promise","resolve","reject","onCancel","cancelHandler","get","_classPrivateFieldLoo","_classPrivateFieldLoo2","call","reason","_classPrivateFieldLoo3","_classPrivateFieldLoo4","then","onFulfilled","onRejected","catch","finally","onFinally","cancel","_classPrivateFieldLoo5","_classPrivateFieldLoo6","error","console","warn","isDefined","isString","isStringWithValue","isBlob","type","stream","arrayBuffer","test","isFormData","FormData","async","resolver","getHeaders","token","TOKEN","username","USERNAME","password","PASSWORD","additionalHeaders","HEADERS","headers","entries","Accept","filter","_","reduce","key","String","credentials","str","btoa","err","Buffer","from","toString","base64","mediaType","Headers","FetchHttpRequest","getUrl","encoder","ENCODE_PATH","encodeURI","path","replace","VERSION","substring","group","_options$path","hasOwnProperty","BASE","query","qs","process","Array","isArray","forEach","v","k","append","encodeURIComponent","join","getQueryString","formData","undefined","getFormData","_options$mediaType","includes","getRequestBody","controller","AbortController","signal","WITH_CREDENTIALS","CREDENTIALS","abort","fetch","sendRequest","responseBody","contentType","some","toLowerCase","startsWith","json","text","getResponseBody","responseHeader","getResponseHeader","content","result","ok","catchErrorCodes","errors","_result$status","_result$statusText","errorStatus","errorStatusText","errorBody","e","__request","DefaultService","httpRequest","getCurrentUserUserGet","getCurrentUserUserGet1","appIdAppIdGet","appIdAppIdGet1","apiInfoInfoGet","serialize","buildResourceAssetsPathGet","reverseProxyProxyUrlPathGet","urlPath","url_path","reverseProxyProxyUrlPathHead","streamStreamSessionHashRunComponentIdGet","sessionHash","run","componentId","session_hash","component_id","fileDeprecatedFilePathGet","resetIteratorResetPost","requestBody","resetIteratorResetPost1","predictApiApiNamePost","apiName","api_name","predictApiApiNamePost1","predictRunApiNamePost","predictRunApiNamePost1","getQueueStatusQueueStatusGet","uploadFileUploadPost","getPendingTasksInternalPendingTasksGet","progressapiInternalProgressPost","quicksettingsHintInternalQuicksettingsHintGet","lambdaInternalPingGet","lambdaInternalProfileStartupGet","downloadSysinfoInternalSysinfoGet","attachment","lambdaInternalSysinfoDownloadGet","text2ImgapiSdapiV1Txt2ImgPost","img2ImgapiSdapiV1Img2ImgPost","extrasSingleImageApiSdapiV1ExtraSingleImagePost","extrasBatchImagesApiSdapiV1ExtraBatchImagesPost","pnginfoapiSdapiV1PngInfoPost","progressapiSdapiV1ProgressGet","skipCurrentImage","skip_current_image","interrogateapiSdapiV1InterrogatePost","interruptapiSdapiV1InterruptPost","skipSdapiV1SkipPost","getConfigSdapiV1OptionsGet","setConfigSdapiV1OptionsPost","getCmdFlagsSdapiV1CmdFlagsGet","getSamplersSdapiV1SamplersGet","getSchedulersSdapiV1SchedulersGet","getUpscalersSdapiV1UpscalersGet","getLatentUpscaleModesSdapiV1LatentUpscaleModesGet","getSdModelsSdapiV1SdModelsGet","getSdVaesSdapiV1SdVaeGet","getHypernetworksSdapiV1HypernetworksGet","getFaceRestorersSdapiV1FaceRestorersGet","getRealesrganModelsSdapiV1RealesrganModelsGet","getPromptStylesSdapiV1PromptStylesGet","getEmbeddingsSdapiV1EmbeddingsGet","refreshEmbeddingsSdapiV1RefreshEmbeddingsPost","refreshCheckpointsSdapiV1RefreshCheckpointsPost","refreshVaeSdapiV1RefreshVaePost","createEmbeddingSdapiV1CreateEmbeddingPost","createHypernetworkSdapiV1CreateHypernetworkPost","trainEmbeddingSdapiV1TrainEmbeddingPost","trainHypernetworkSdapiV1TrainHypernetworkPost","getMemorySdapiV1MemoryGet","unloadapiSdapiV1UnloadCheckpointPost","reloadapiSdapiV1ReloadCheckpointPost","getScriptsListSdapiV1ScriptsGet","getScriptInfoSdapiV1ScriptInfoGet","getExtensionsListSdapiV1ExtensionsGet","fetchFileSdExtraNetworksThumbGet","filename","fetchCoverImagesSdExtraNetworksCoverImagesGet","page","item","index","getMetadataSdExtraNetworksMetadataGet","getSingleCardSdExtraNetworksGetSingleCardGet","tabname","getLorasSdapiV1LorasGet","refreshLorasSdapiV1RefreshLorasPost","apiRefreshTempFilesTacapiV1RefreshTempFilesPost","apiRefreshEmbeddingsTacapiV1RefreshEmbeddingsPost","getLoraInfoTacapiV1LoraInfoLoraNameGet","loraName","lora_name","getLycoInfoTacapiV1LycoInfoLycoNameGet","lycoName","lyco_name","getLoraCachedHashTacapiV1LoraCachedHashLoraNameGet","getThumbPreviewTacapiV1ThumbPreviewFilenameGet","getThumbPreviewBlobTacapiV1ThumbPreviewBlobFilenameGet","getWildcardContentsTacapiV1WildcardContentsGet","basepath","refreshStylesIfChangedTacapiV1RefreshStylesIfChangedGet","increaseUseCountTacapiV1IncreaseUseCountPost","tagname","ttype","neg","getUseCountTacapiV1GetUseCountGet","getUseCountListTacapiV1GetUseCountListPost","resetUseCountTacapiV1ResetUseCountPut","pos","getAllTagCountsTacapiV1GetAllUseCountsGet","getSamplersAgentSchedulerV1SamplersGet","getSdModelsAgentSchedulerV1SdModelsGet","queueTxt2ImgAgentSchedulerV1QueueTxt2ImgPost","queueImg2ImgAgentSchedulerV1QueueImg2ImgPost","queueStatusApiAgentSchedulerV1QueueGet","limit","offset","exportQueueAgentSchedulerV1ExportGet","importQueueAgentSchedulerV1ImportPost","historyApiAgentSchedulerV1HistoryGet","getTaskAgentSchedulerV1TaskIdGet","id","updateTaskAgentSchedulerV1TaskIdPut","deleteTaskAgentSchedulerV1TaskIdDelete","getTaskPositionAgentSchedulerV1TaskIdPositionGet","runTaskAgentSchedulerV1TaskIdRunPost","runTaskAgentSchedulerV1RunIdPost","requeueTaskAgentSchedulerV1TaskIdRequeuePost","requeueTaskAgentSchedulerV1RequeueIdPost","requeueFailedTasksAgentSchedulerV1TaskRequeueFailedPost","deleteTaskAgentSchedulerV1DeleteIdPost","moveTaskAgentSchedulerV1TaskIdMoveOverIdPost","overId","over_id","moveTaskAgentSchedulerV1MoveIdOverIdPost","pinTaskAgentSchedulerV1TaskIdBookmarkPost","pinTaskAgentSchedulerV1BookmarkIdPost","unpinTaskAgentSchedulerV1TaskIdUnbookmarkPost","unpinTaskAgentSchedulerV1UnbookmarkIdPost","renameTaskAgentSchedulerV1TaskIdRenamePost","renameTaskAgentSchedulerV1RenameIdPost","getTaskResultsAgentSchedulerV1TaskIdResultsGet","zip","getTaskResultsAgentSchedulerV1ResultsIdGet","pauseQueueAgentSchedulerV1QueuePausePost","pauseQueueAgentSchedulerV1PausePost","resumeQueueAgentSchedulerV1QueueResumePost","resumeQueueAgentSchedulerV1ResumePost","clearQueueAgentSchedulerV1QueueClearPost","clearHistoryAgentSchedulerV1HistoryClearPost","versionControlnetVersionGet","modelListControlnetModelListGet","moduleListControlnetModuleListGet","aliasNames","alias_names","controlTypesControlnetControlTypesGet","settingsControlnetSettingsGet","detectControlnetDetectPost","renderOpenposeJsonControlnetRenderOpenposeJsonPost","rembgRemoveRembgPost","SDWebUIA1111Client","HttpRequest","_config$BASE","_config$VERSION","_config$WITH_CREDENTI","_config$CREDENTIALS","default","OpenAPI","SDProcessor","init_body","extensions","toJSON","ext","use","useCustomExt","client","Img2imgProcess","Txt2imgProcess","SystemSettingProcess","ResizeModeI2i","InpaintFill","InpaintFullRes","SDTaskStatus","SDTaskRunner","task_id","intervalMs","data","queryLoop","running","interrupted","startQueryLoop","queryResults","setTimeout","Math","random","success","results","interrupt","SDTask","pending","runner","errWrap","callback","failed","_this","done","_this$runner","SDTaskScheduler","queueStatus","queryHistory","pause","resume","createImg2imgTask","img2imgProcess","checkpoint","callback_url","createTxt2imgTask","txt2imgProcess","has","prototype","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","names","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","ee","listenerCount","emit","a1","a2","a3","a4","a5","len","arguments","removeListener","apply","j","on","removeAllListeners","off","prefixed","exports","BatchGeneration","responses","isComplete","numBatches","runOneBatch","waitForComplete","currentBatch","totalBatches","GlobalCacheHub","ensureCache","__KEY__","_cache","clearCache","CachedApi","hub","_options$disableCache","_options$cacheTime","disableCache","cacheTime","cache_key_prefix","full_cache_key","_getFromCache","fullKey","cached","expires","Date","now","_setCache","_getFromCacheOrFetch","removeCache","Img2imgBatchGeneration","api","img2img","batch_size","batchSize","Txt2imgBatchGeneration","txt2img","ControlNetApi","_this$options$client$","_getModels","resp","model_list","_getModuleResponse","getModels","bind","getModules","getModuleDetail","_getVersion","version","_getControlTypes","control_types","getControlTypes","getVersion","getAllModuleDetail","detect","_resp$images","pc1","cnet_ext","images","info","_resp$images2","img2imgBatch","batch","manual","txt2imgBatch","serviceApi","ProgressWatcher","isDone","start","progress","stop","ServiceApi","_getSDModels","_getSamplers","getSDModels","getSamplers","_getEmbeddings","getEmbeddings","_getExtensionList","getExtensionList","ping","time","getCurrentImage","watchProgress","watcher","A1111StableDiffusionApi","ControlNet","Service","cache","Pipeline","processing","run_t2i","run_i2i","is_t2i","is_i2i","_write","prompt","negative","seed","subseed","sampler","scheduler","size","steps","cfg","scale","width","height","enableHR","enable","hr","upscaler","secondPassSteps","override","settings","restore_afterwards","override_settings","sd_model_checkpoint","script","saveImages","save","sendImages","send","strength","resizeMode","mode","imageCfgScale","blur","blurX","blurY","round","inpainting","fill","original","fullRes","fullResPadding","maskInvert","initialNoiseMultiplier","alwaysOnScripts","scripts"],"mappings":"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"}