1
0
Fork 0

parse size from json params

This commit is contained in:
Sean Sube 2023-07-20 07:16:23 -05:00
parent 570b56ab72
commit d80ab00446
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
1 changed files with 19 additions and 6 deletions

View File

@ -21,6 +21,7 @@ import { useStore } from 'zustand';
import { BaseImgParams, Txt2ImgParams } from '../client/types.js';
import { StateContext } from '../state.js';
import { defaultTo } from 'lodash';
export interface ProfilesProps {
params: BaseImgParams;
@ -157,12 +158,10 @@ export async function loadParamsFromFile(file: File): Promise<Partial<Txt2ImgPar
case 'jpg':
case 'jpeg':
case 'png':
case 'webp':
return parseImageParams(file);
case 'json':
{
const params = JSON.parse(await file.text());
return params.params as Txt2ImgParams;
}
return parseJSONParams(await file.text());
case 'txt':
default:
return parseAutoComment(await file.text());
@ -178,8 +177,7 @@ export async function parseImageParams(file: File): Promise<Partial<Txt2ImgParam
const userComment = tags.UserComment || tags['Parameters'] || tags['parameters'];
if (doesExist(makerNote) && isProbablyJSON(makerNote.value)) {
const params = JSON.parse(makerNote.value);
return params.params as Txt2ImgParams; // TODO: enforce schema and do some error handling
return parseJSONParams(makerNote.value);
}
if (doesExist(userComment) && typeof userComment.value === 'string') {
@ -189,6 +187,21 @@ export async function parseImageParams(file: File): Promise<Partial<Txt2ImgParam
return {};
}
export async function parseJSONParams(json: string): Promise<Partial<Txt2ImgParams>> {
const data = JSON.parse(json);
const params: Partial<Txt2ImgParams> = {
...data.params,
};
const size = defaultTo(data.input_size, data.size);
if (doesExist(size)) {
params.height = size.height;
params.width = size.width;
}
return params;
}
export function isProbablyJSON(maybeJSON: unknown): maybeJSON is string {
return typeof maybeJSON === 'string' && maybeJSON[0] === '{' && maybeJSON[maybeJSON.length - 1] === '}';
}