add support for comfyapi
parent
5b1a5022f4
commit
fe42e8e29c
|
|
@ -0,0 +1,71 @@
|
|||
import settings_tab from '../settings/settings'
|
||||
import { requestGet } from '../util/ts/api'
|
||||
|
||||
class ComfyAPI {
|
||||
private object_info: Record<string, any> = {}
|
||||
comfy_url: string
|
||||
constructor(comfy_url: string) {
|
||||
this.comfy_url = comfy_url
|
||||
}
|
||||
async init() {
|
||||
this.object_info = await this.getObjectInfo(this.comfy_url)
|
||||
}
|
||||
setUrl(comfy_url: string) {
|
||||
this.comfy_url = comfy_url
|
||||
}
|
||||
async refresh() {
|
||||
this.object_info = await this.getObjectInfo(this.comfy_url)
|
||||
}
|
||||
|
||||
async getObjectInfo(comfy_url: string) {
|
||||
try {
|
||||
const object_info = await requestGet(`${comfy_url}/object_info`)
|
||||
return object_info
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
private getData(path: string[]): any[] {
|
||||
let data = []
|
||||
try {
|
||||
let obj = this.object_info
|
||||
for (const p of path) {
|
||||
obj = obj[p]
|
||||
}
|
||||
data = obj[0]
|
||||
} catch (e) {
|
||||
console.error(
|
||||
`Failed to get data from path ${path.join('.')}: ${e}`
|
||||
)
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
getModels(): any[] {
|
||||
return this.getData([
|
||||
'CheckpointLoader',
|
||||
'input',
|
||||
'required',
|
||||
'ckpt_name',
|
||||
])
|
||||
}
|
||||
|
||||
getVAEs(): any[] {
|
||||
return this.getData(['VAELoader', 'input', 'required', 'vae_name'])
|
||||
}
|
||||
getSamplerNames(): string[] {
|
||||
return this.getData(['KSampler', 'input', 'required', 'sampler_name'])
|
||||
}
|
||||
getHiResUpscalers(): string[] {
|
||||
return this.getData([
|
||||
'LatentUpscaleBy',
|
||||
'input',
|
||||
'required',
|
||||
'upscale_method',
|
||||
])
|
||||
}
|
||||
}
|
||||
export default {
|
||||
ComfyAPI,
|
||||
comfy_api: new ComfyAPI(settings_tab.store.data.comfy_url),
|
||||
}
|
||||
Loading…
Reference in New Issue