Create standalone browser port of LTX Athena with authenticated native API transport
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// Explicit synthetic UI fixture. Never contacts Athena or loads a model.
|
||||
import http from 'node:http'
|
||||
import { mkdtemp, mkdir } from 'node:fs/promises'
|
||||
import os from 'node:os'
|
||||
import path from 'node:path'
|
||||
import { createApp } from '../server/app.mjs'
|
||||
const dir=await mkdtemp(path.join(os.tmpdir(),'deskweb-ui-'))
|
||||
await mkdir(path.join(dir,'output'))
|
||||
const spec={display_name:'LTX Test Backend (synthetic)',supported_resolutions_durations:{'540p':{fps_to_durations:{'24':[2,4,6]}}},capabilities:{t2v:true,i2v:true,a2v:true,retake:false,extend:false,user_loras:false,ic_lora:false,multi_keyframe:false,multi_keyframe_max_count:0,auto_duration:false}}
|
||||
const native=http.createServer(async(req,res)=>{
|
||||
res.setHeader('Content-Type','application/json')
|
||||
if(req.method!=='GET'){res.writeHead(503);res.end(JSON.stringify({detail:'Synthetic UI fixture: generation disabled'}));return}
|
||||
const data={
|
||||
'/health':{status:'ok'},
|
||||
'/api/runtime-policy':{force_api_generations:false},
|
||||
'/api/gpu-info':{cuda_available:true,gpu_name:'Synthetic test device'},
|
||||
'/api/settings':{useLocalTextEncoder:true,modelsDir:'/synthetic/models'},
|
||||
'/api/generate/models-specs':{local_models:[{pipeline:'fast',spec}],api_models:[]},
|
||||
'/api/generation/progress':{status:'idle',progress:0,phase:null,currentStep:0,totalSteps:0,result:null,cancellable:false},
|
||||
'/api/loras':{loras:[],local_loras:[]},
|
||||
'/api/ic-loras':{ic_loras:[]},
|
||||
'/api/models/ltx-ic-lora-recommendation':{status:'ready'},
|
||||
'/api/models/ltx-recommendation':{status:'ready'},
|
||||
}[req.url]
|
||||
if(!data){res.writeHead(404);res.end(JSON.stringify({detail:'Not provided by synthetic UI fixture'}));return}
|
||||
res.end(JSON.stringify(data))
|
||||
})
|
||||
await new Promise(resolve=>native.listen(0,'127.0.0.1',resolve))
|
||||
const server=await createApp({password:'synthetic-browser-test-only',backendToken:'',backendUrl:`http://127.0.0.1:${native.address().port}`,dist:new URL('../dist',import.meta.url).pathname,roots:[{local:path.join(dir,'input'),backend:'/synthetic/inputs',writable:true},{local:path.join(dir,'output'),backend:'/synthetic/outputs'}]})
|
||||
server.listen(18118,'127.0.0.1',()=>console.log('Synthetic UI fixture on http://127.0.0.1:18118 — no Athena connection'))
|
||||
Reference in New Issue
Block a user