@spawn-ai/spawn-node
Version:
Client for the Spawn API using NodeJS
148 lines (145 loc) • 5.9 kB
TypeScript
import { SupabaseClient } from '@supabase/supabase-js';
type WorkerFilter = {
id?: string;
name?: string;
branch?: string;
is_dirty?: boolean;
cluster?: number;
};
type TrainingImage = {
url: string;
label: string;
};
type PatchConfig = {
name: string;
alpha_text_encoder: number;
alpha_unet: number;
steps: number;
};
type StableDiffusionConfig = {
steps: number;
skip_steps: number;
batch_size: 1 | 2 | 4 | 8 | 16;
sampler: "plms" | "ddim" | "k_lms" | "k_euler" | "k_euler_a" | "dpm_multistep";
guidance_scale: number;
width: 384 | 448 | 512 | 575 | 768 | 640 | 704 | 768;
height: 384 | 448 | 512 | 575 | 768 | 640 | 704 | 768;
prompt: string;
negative_prompt: string;
init_image?: string;
mask?: string;
image_format: "png" | "jpeg" | "avif" | "webp";
translate_prompt: boolean;
nsfw_filter: boolean;
seed?: number;
add_ons?: any[];
};
type PatchTrainerConfig = {
dataset: any[];
trigger_prompt: string;
use_synthetic_data: boolean;
patch_name: string;
description: string;
learning_rate: number;
steps: number;
rank: number;
};
declare class SpawnClient {
supabase: SupabaseClient;
app_id: string;
key: string;
secret: string;
worker_filter: WorkerFilter;
services: any[];
add_ons: any[];
app_user_id: string;
app_user_token: string;
constructor(supabase: SupabaseClient, app_id: string, key: string, secret: string, worker_filter?: WorkerFilter);
private handle_error;
private owner_rpc;
private user_rpc;
setUserID: (app_user_external_id: string) => Promise<void>;
test_connection: () => Promise<void>;
updateServiceList: () => Promise<void>;
getServiceList: () => Promise<any[]>;
updateAddOnList: () => Promise<void>;
getAddOnList: () => Promise<any[]>;
echo: (message: string) => Promise<any[] | null>;
createAppUser: (external_id: string) => Promise<any[] | null>;
private getUserId;
isUser: (external_id: string) => Promise<any[] | null>;
createToken: (app_user_external_id: string) => Promise<any[] | null>;
deleteAllTokenOfAppUser: (app_user_external_id: string) => Promise<any[] | null>;
getAppUserToken: (app_user_external_id: string) => Promise<any[] | null>;
setCredit: (app_user_external_id: string, amount: number) => Promise<any[] | null>;
getAppUserCredits: (app_user_external_id: string) => Promise<any[] | null>;
getAppUserJobHistory: (app_user_external_id: string, p_limit: number, p_offset: number) => Promise<any[] | null>;
shareAddOn: (add_on_name: string, app_user_external_id: string) => Promise<any[] | null>;
deleteAddOn: (add_on_name: string) => Promise<any[] | null>;
renameAddOn: (add_on_name: string, new_add_on_name: string) => Promise<any[] | null>;
publishAddOn: (add_on_name: string) => Promise<any[] | null>;
unpublishAddOn: (add_on_name: string) => Promise<any[] | null>;
private postJob;
getResult: (job_id: string) => Promise<any[] | null>;
subscribeToJob: (job_id: string, callback: (result: object) => void) => Promise<void>;
costStableDiffusion: (prompt: string, args?: {
service_name?: string;
steps?: number;
skip_steps?: number;
batch_size?: 1 | 2 | 4 | 8 | 16;
sampler?: "plms" | "ddim" | "k_lms" | "k_euler" | "k_euler_a" | "dpm_multistep";
guidance_scale?: number;
width?: 384 | 448 | 512 | 575 | 768 | 640 | 704 | 768;
height?: 384 | 448 | 512 | 575 | 768 | 640 | 704 | 768;
negative_prompt?: string;
image_format?: "png" | "jpeg" | "avif" | "webp";
translate_prompt?: boolean;
nsfw_filter?: boolean;
patches?: PatchConfig[];
}) => Promise<any[] | null>;
runStableDiffusion: (prompt: string, args?: {
service_name?: string | undefined;
steps?: number | undefined;
skip_steps?: number | undefined;
batch_size?: 1 | 2 | 4 | 8 | 16 | undefined;
sampler?: "plms" | "ddim" | "k_lms" | "k_euler" | "k_euler_a" | "dpm_multistep" | undefined;
guidance_scale?: number | undefined;
width?: 384 | 448 | 512 | 575 | 768 | 640 | 704 | undefined;
height?: 384 | 448 | 512 | 575 | 768 | 640 | 704 | undefined;
negative_prompt?: string | undefined;
image_format?: "png" | "jpeg" | "avif" | "webp" | undefined;
seed?: number | undefined;
translate_prompt?: boolean | undefined;
nsfw_filter?: boolean | undefined;
patches?: PatchConfig[] | undefined;
callback?: ((result: any) => void) | undefined;
} | undefined) => Promise<any[] | null>;
private patchConfigToAddonConfig;
costPatchTrainer: (dataset: TrainingImage[], patch_name: string, args?: {
trigger_prompt?: string;
use_synthetic_data?: boolean;
service_name?: string;
description?: string;
learning_rate?: number;
steps?: number;
rank?: number;
}) => Promise<any[] | null>;
runPatchTrainer: (dataset: TrainingImage[], patch_name: string, args?: {
trigger_prompt: string;
use_synthetic_data: boolean;
service_name?: string | undefined;
description?: string | undefined;
learning_rate?: number | undefined;
steps?: number | undefined;
rank?: number | undefined;
callback?: ((result: Object) => void) | undefined;
} | undefined) => Promise<any[] | null>;
getCountActiveWorker: () => Promise<any[] | null>;
}
declare const createSpawnClient: (credentials: {
app_id: string;
key: string;
secret: string;
app_user_external_id?: string;
}, worker_filter?: WorkerFilter) => Promise<SpawnClient>;
export { PatchConfig, PatchTrainerConfig, SpawnClient, StableDiffusionConfig, TrainingImage, WorkerFilter, createSpawnClient };