| const { mockApi } = require("./setup");
|
| const { Ez } = require("./ezgraph");
|
| const lg = require("./litegraph");
|
| const fs = require("fs");
|
| const path = require("path");
|
|
|
| const html = fs.readFileSync(path.resolve(__dirname, "../../web/index.html"))
|
|
|
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| export async function start(config = {}) {
|
| if(config.resetEnv) {
|
| jest.resetModules();
|
| jest.resetAllMocks();
|
| lg.setup(global);
|
| localStorage.clear();
|
| sessionStorage.clear();
|
| }
|
|
|
| Object.assign(localStorage, config.localStorage ?? {});
|
| document.body.innerHTML = html;
|
|
|
| mockApi(config);
|
| const { app } = require("../../web/scripts/app");
|
| config.preSetup?.(app);
|
| await app.setup();
|
|
|
| return { ...Ez.graph(app, global["LiteGraph"], global["LGraphCanvas"]), app };
|
| }
|
|
|
| |
| |
| |
|
|
| export async function checkBeforeAndAfterReload(graph, cb) {
|
| await cb(false);
|
| await graph.reload();
|
| await cb(true);
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
| export function makeNodeDef(name, input, output = {}) {
|
| const nodeDef = {
|
| name,
|
| category: "test",
|
| output: [],
|
| output_name: [],
|
| output_is_list: [],
|
| input: {
|
| required: {},
|
| },
|
| };
|
| for (const k in input) {
|
| nodeDef.input.required[k] = typeof input[k] === "string" ? [input[k], {}] : [...input[k]];
|
| }
|
| if (output instanceof Array) {
|
| output = output.reduce((p, c) => {
|
| p[c] = c;
|
| return p;
|
| }, {});
|
| }
|
| for (const k in output) {
|
| nodeDef.output.push(output[k]);
|
| nodeDef.output_name.push(k);
|
| nodeDef.output_is_list.push(false);
|
| }
|
|
|
| return { [name]: nodeDef };
|
| }
|
|
|
| |
| |
| |
| |
| |
|
|
| export function assertNotNullOrUndefined(x) {
|
| expect(x).not.toEqual(null);
|
| expect(x).not.toEqual(undefined);
|
| return true;
|
| }
|
|
|
| |
| |
| |
| |
|
|
| export function createDefaultWorkflow(ez, graph) {
|
| graph.clear();
|
| const ckpt = ez.CheckpointLoaderSimple();
|
|
|
| const pos = ez.CLIPTextEncode(ckpt.outputs.CLIP, { text: "positive" });
|
| const neg = ez.CLIPTextEncode(ckpt.outputs.CLIP, { text: "negative" });
|
|
|
| const empty = ez.EmptyLatentImage();
|
| const sampler = ez.KSampler(
|
| ckpt.outputs.MODEL,
|
| pos.outputs.CONDITIONING,
|
| neg.outputs.CONDITIONING,
|
| empty.outputs.LATENT
|
| );
|
|
|
| const decode = ez.VAEDecode(sampler.outputs.LATENT, ckpt.outputs.VAE);
|
| const save = ez.SaveImage(decode.outputs.IMAGE);
|
| graph.arrange();
|
|
|
| return { ckpt, pos, neg, empty, sampler, decode, save };
|
| }
|
|
|
| export async function getNodeDefs() {
|
| const { api } = require("../../web/scripts/api");
|
| return api.getNodeDefs();
|
| }
|
|
|
| export async function getNodeDef(nodeId) {
|
| return (await getNodeDefs())[nodeId];
|
| } |