33 lines
1.6 KiB
JavaScript
33 lines
1.6 KiB
JavaScript
import test from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { readFileSync } from 'node:fs'
|
|
import ts from 'typescript'
|
|
const source = readFileSync(new URL('../server/utils/fluxReference.ts', import.meta.url), 'utf8')
|
|
const code = ts.transpileModule(source, { compilerOptions: { module: ts.ModuleKind.CommonJS } }).outputText
|
|
const api = {}
|
|
new Function('exports', code)(api)
|
|
const template = JSON.parse(readFileSync(new URL('../server/assets/klein_v2_generate.json', import.meta.url), 'utf8'))
|
|
|
|
test('Flux reference conditions a new image without initializing its latent or changing output dimensions', () => {
|
|
const graph = structuredClone(template)
|
|
graph['14'].inputs.width = 1344
|
|
graph['14'].inputs.height = 768
|
|
const sampler = structuredClone(graph['19'])
|
|
api.addFluxGenerationReference(graph, 'reference.png')
|
|
assert.deepEqual(graph['19'], sampler)
|
|
assert.equal(graph['14'].class_type, 'EmptyFlux2LatentImage')
|
|
assert.equal(graph['14'].inputs.width, 1344)
|
|
assert.equal(graph['14'].inputs.height, 768)
|
|
assert.equal(graph['reference:load'].inputs.image, 'reference.png')
|
|
assert.deepEqual(graph['18'].inputs.positive, ['reference:positive', 0])
|
|
assert.deepEqual(graph['reference:positive'].inputs.conditioning, ['9', 0])
|
|
assert.deepEqual(graph['reference:negative'].inputs.conditioning, ['10', 0])
|
|
assert.deepEqual(graph['reference:encode'].inputs.pixels, ['reference:scale', 0])
|
|
})
|
|
|
|
test('Flux generation without a reference retains the text-only graph', () => {
|
|
const graph = structuredClone(template)
|
|
api.addFluxGenerationReference(graph, '')
|
|
assert.deepEqual(graph, template)
|
|
})
|