Read production LoRA names in Studio 2
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import {readFileSync} from 'node:fs'
|
||||
import ts from 'typescript'
|
||||
import {loraIdentityKey,loraFriendlyName,loraTriggerFor} from '../utils/loras.ts'
|
||||
|
||||
test('Studio 2 uses production labels/triggers and sees later changes without a restart',()=>{
|
||||
const source=readFileSync(new URL('../server/utils/studio2/lora-catalog.ts',import.meta.url),'utf8').replace(/^import .*;\r?\n/gm,'').replace('export function','function')
|
||||
const js=ts.transpileModule(source,{compilerOptions:{target:ts.ScriptTarget.ES2022}}).outputText
|
||||
let exported={loraAliases:{'XAIgen-klein_portrait.safetensors':'My portrait'},loraTriggers:{'xaigen-klein_portrait.safetensors':'portrait token'}}
|
||||
const read=new Function('readFileSync','getLoraAliases','getLoraTriggers','loraIdentityKey','join','studio2Root',js+';return studio2LoraCatalog')(()=>{if(!exported)throw new Error('missing');return JSON.stringify(exported)},()=>({'klein_portrait.safetensors':'Old local name'}),()=>({}),loraIdentityKey,(...parts)=>parts.join('/'),()=>'/dev/studio2')
|
||||
let catalog=read('owner')
|
||||
assert.equal(loraFriendlyName('folder/xaigen-klein_portrait.safetensors',catalog.aliases),'My portrait')
|
||||
assert.equal(loraTriggerFor('klein_portrait.safetensors',catalog.triggers),'portrait token')
|
||||
exported.loraAliases['XAIgen-klein_portrait.safetensors']='Updated portrait'
|
||||
assert.equal(loraFriendlyName('klein_portrait.safetensors',read('owner').aliases),'Updated portrait')
|
||||
exported=null
|
||||
assert.equal(loraFriendlyName('klein_portrait.safetensors',read('owner').aliases),'Old local name')
|
||||
})
|
||||
Reference in New Issue
Block a user