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

63 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-09-24 13:08:35 +00:00
import { Chat, User } from "grammy_types";
import { Store } from "indexed_kv";
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-24 13:08:35 +00:00
from: User;
chat: Chat;
sdInstanceId?: string;
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
type GenerationIndices = {
fromId: number;
chatId: number;
};
2023-09-24 13:08:35 +00:00
export const generationStore = new Store<GenerationSchema, GenerationIndices>(
db,
"generations",
{
indices: {
fromId: { getValue: (item) => item.from.id },
chatId: { getValue: (item) => item.chat.id },
},
},
);