forked from pinks/eris
1
0
Fork 0
eris/app/generationStore.ts

61 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-09-10 18:56:17 +00:00
import { GrammyTypes, IKV } from "../deps.ts";
2023-09-23 18:49:05 +00:00
import { PngInfo } from "../sd/parsePngInfo.ts";
2023-09-10 18:56:17 +00:00
import { db } from "./db.ts";
2023-09-22 02:59:22 +00:00
export interface GenerationSchema {
2023-09-12 01:57:44 +00:00
task:
| {
type: "txt2img";
params: Partial<PngInfo>;
}
| {
type: "img2img";
params: Partial<PngInfo>;
2023-09-22 02:59:22 +00:00
fileId?: string;
};
2023-09-12 01:57:44 +00:00
from: GrammyTypes.User;
chat: GrammyTypes.Chat;
2023-09-22 02:59:22 +00:00
requestMessageId?: number;
status: {
info?: SdGenerationInfo;
startDate?: Date;
endDate?: Date;
};
2023-09-10 18:56:17 +00:00
}
2023-09-22 02:59:22 +00:00
/**
* `info` field in generation response is a serialized json string of this shape.
*/
export interface SdGenerationInfo {
prompt: string;
all_prompts: string[];
negative_prompt: string;
all_negative_prompts: string[];
seed: number;
all_seeds: number[];
subseed: number;
all_subseeds: number[];
subseed_strength: number;
width: number;
height: number;
sampler_name: string;
cfg_scale: number;
steps: number;
batch_size: number;
restore_faces: boolean;
face_restoration_model: unknown;
sd_model_hash: string;
seed_resize_from_w: number;
seed_resize_from_h: number;
denoising_strength: number;
extra_generation_params: Record<string, string>;
index_of_first_image: number;
infotexts: string[];
styles: unknown[];
job_timestamp: string;
clip_skip: number;
is_using_inpainting_conditioning: boolean;
}
2023-09-17 23:01:09 +00:00
2023-09-22 02:59:22 +00:00
export const generationStore = new IKV.Store<GenerationSchema, {}>(db, "job", { indices: {} });