@ -571,13 +571,15 @@ function extractParametersFromSchema(
const inputs : ModelInput [ ] = [ ] ;
const inputs : ModelInput [ ] = [ ] ;
for ( const [ name , prop ] of Object . entries ( properties ) ) {
for ( const [ name , prop ] of Object . entries ( properties ) ) {
// Check if this is a connectable input (image or text)
// Check if this is a connectable input (audio, image, or text)
// Pass both name AND prop to check schema type, not just name
// Audio is checked first — it matches specific name patterns while image
if ( isImageInput ( name , prop , schemaComponents ) ) {
// detection is more permissive (e.g. description heuristics like "data uri"
// can false-positive on audio properties).
if ( isAudioInput ( name , prop , schemaComponents ) ) {
const resolvedType = resolvePropertyType ( prop , schemaComponents ) . type ;
const resolvedType = resolvePropertyType ( prop , schemaComponents ) . type ;
inputs . push ( {
inputs . push ( {
name ,
name ,
type : "image " ,
type : "audio " ,
required : required.includes ( name ) ,
required : required.includes ( name ) ,
label : toLabel ( name ) ,
label : toLabel ( name ) ,
description : prop.description as string | undefined ,
description : prop.description as string | undefined ,
@ -586,11 +588,11 @@ function extractParametersFromSchema(
continue ;
continue ;
}
}
if ( isAudio Input ( name , prop , schemaComponents ) ) {
if ( isImage Input ( name , prop , schemaComponents ) ) {
const resolvedType = resolvePropertyType ( prop , schemaComponents ) . type ;
const resolvedType = resolvePropertyType ( prop , schemaComponents ) . type ;
inputs . push ( {
inputs . push ( {
name ,
name ,
type : "audio " ,
type : "image " ,
required : required.includes ( name ) ,
required : required.includes ( name ) ,
label : toLabel ( name ) ,
label : toLabel ( name ) ,
description : prop.description as string | undefined ,
description : prop.description as string | undefined ,