@@ -1298,6 +1298,26 @@ function audioSettingsToggleHandler(settingsNode) {
12981298 const cfgIntervalStartWidget = settingsNode . widgets . find ( w => w && w . name === "cfgIntervalStart" ) ;
12991299 const useCfgIntervalEndWidget = settingsNode . widgets . find ( w => w && w . name === "useCfgIntervalEnd" ) ;
13001300 const cfgIntervalEndWidget = settingsNode . widgets . find ( w => w && w . name === "cfgIntervalEnd" ) ;
1301+ const useNormalizeLoudnessWidget = settingsNode . widgets . find ( w => w && w . name === "useNormalizeLoudness" ) ;
1302+ const normalizeLoudnessWidget = settingsNode . widgets . find ( w => w && w . name === "normalizeLoudness" ) ;
1303+ const useTopPWidget = settingsNode . widgets . find ( w => w && w . name === "useTopP" ) ;
1304+ const topPWidget = settingsNode . widgets . find ( w => w && w . name === "topP" ) ;
1305+ const useChunkLengthWidget = settingsNode . widgets . find ( w => w && w . name === "useChunkLength" ) ;
1306+ const chunkLengthWidget = settingsNode . widgets . find ( w => w && w . name === "chunkLength" ) ;
1307+ const useMinChunkLengthWidget = settingsNode . widgets . find ( w => w && w . name === "useMinChunkLength" ) ;
1308+ const minChunkLengthWidget = settingsNode . widgets . find ( w => w && w . name === "minChunkLength" ) ;
1309+ const useNormalizeWidget = settingsNode . widgets . find ( w => w && w . name === "useNormalize" ) ;
1310+ const normalizeWidget = settingsNode . widgets . find ( w => w && w . name === "normalize" ) ;
1311+ const useLatencyWidget = settingsNode . widgets . find ( w => w && w . name === "useLatency" ) ;
1312+ const latencyWidget = settingsNode . widgets . find ( w => w && w . name === "latency" ) ;
1313+ const useMaxTokensWidget = settingsNode . widgets . find ( w => w && w . name === "useMaxTokens" ) ;
1314+ const maxTokensWidget = settingsNode . widgets . find ( w => w && w . name === "maxTokens" ) ;
1315+ const useRepetitionPenaltyWidget = settingsNode . widgets . find ( w => w && w . name === "useRepetitionPenalty" ) ;
1316+ const repetitionPenaltyWidget = settingsNode . widgets . find ( w => w && w . name === "repetitionPenalty" ) ;
1317+ const useConditionOnPreviousChunksWidget = settingsNode . widgets . find ( w => w && w . name === "useConditionOnPreviousChunks" ) ;
1318+ const conditionOnPreviousChunksWidget = settingsNode . widgets . find ( w => w && w . name === "conditionOnPreviousChunks" ) ;
1319+ const useEarlyStopThresholdWidget = settingsNode . widgets . find ( w => w && w . name === "useEarlyStopThreshold" ) ;
1320+ const earlyStopThresholdWidget = settingsNode . widgets . find ( w => w && w . name === "earlyStopThreshold" ) ;
13011321
13021322 function toggleWidgetState ( useWidget , paramWidget , paramName ) {
13031323 if ( ! useWidget || ! paramWidget ) return ;
@@ -1338,6 +1358,16 @@ function audioSettingsToggleHandler(settingsNode) {
13381358 if ( useTranscriptWidget && transcriptWidget ) toggleWidgetState ( useTranscriptWidget , transcriptWidget , "transcript" ) ;
13391359 if ( useCfgIntervalStartWidget && cfgIntervalStartWidget ) toggleWidgetState ( useCfgIntervalStartWidget , cfgIntervalStartWidget , "cfgIntervalStart" ) ;
13401360 if ( useCfgIntervalEndWidget && cfgIntervalEndWidget ) toggleWidgetState ( useCfgIntervalEndWidget , cfgIntervalEndWidget , "cfgIntervalEnd" ) ;
1361+ if ( useNormalizeLoudnessWidget && normalizeLoudnessWidget ) toggleWidgetState ( useNormalizeLoudnessWidget , normalizeLoudnessWidget , "normalizeLoudness" ) ;
1362+ if ( useTopPWidget && topPWidget ) toggleWidgetState ( useTopPWidget , topPWidget , "topP" ) ;
1363+ if ( useChunkLengthWidget && chunkLengthWidget ) toggleWidgetState ( useChunkLengthWidget , chunkLengthWidget , "chunkLength" ) ;
1364+ if ( useMinChunkLengthWidget && minChunkLengthWidget ) toggleWidgetState ( useMinChunkLengthWidget , minChunkLengthWidget , "minChunkLength" ) ;
1365+ if ( useNormalizeWidget && normalizeWidget ) toggleWidgetState ( useNormalizeWidget , normalizeWidget , "normalize" ) ;
1366+ if ( useLatencyWidget && latencyWidget ) toggleWidgetState ( useLatencyWidget , latencyWidget , "latency" ) ;
1367+ if ( useMaxTokensWidget && maxTokensWidget ) toggleWidgetState ( useMaxTokensWidget , maxTokensWidget , "maxTokens" ) ;
1368+ if ( useRepetitionPenaltyWidget && repetitionPenaltyWidget ) toggleWidgetState ( useRepetitionPenaltyWidget , repetitionPenaltyWidget , "repetitionPenalty" ) ;
1369+ if ( useConditionOnPreviousChunksWidget && conditionOnPreviousChunksWidget ) toggleWidgetState ( useConditionOnPreviousChunksWidget , conditionOnPreviousChunksWidget , "conditionOnPreviousChunks" ) ;
1370+ if ( useEarlyStopThresholdWidget && earlyStopThresholdWidget ) toggleWidgetState ( useEarlyStopThresholdWidget , earlyStopThresholdWidget , "earlyStopThreshold" ) ;
13411371}
13421372
13431373function textInferenceSettingsToggleHandler ( settingsNode ) {
@@ -3426,6 +3456,9 @@ function audioModelSearchFilterHandler(audioModelSearchNode) {
34263456 "Google" : [
34273457 "google:gemini@3.1-flash-tts (Gemini 3.1 Flash TTS)" ,
34283458 ] ,
3459+ "Fish" : [
3460+ "fishaudio:s2.1@pro (Fish Audio S2.1 Pro)" ,
3461+ ] ,
34293462 } ;
34303463
34313464 function filterModelList ( ) {
@@ -4730,6 +4763,43 @@ function regionalPromptingRegionsToggleHandler(regionsNode) {
47304763 }
47314764}
47324765
4766+ function audioInferenceReferenceVoiceToggleHandler ( referenceVoiceNode ) {
4767+ if ( ! referenceVoiceNode ?. widgets ) return ;
4768+ if ( referenceVoiceNode . _audioInferenceReferenceVoiceToggleHandlerRegistered ) return ;
4769+ referenceVoiceNode . _audioInferenceReferenceVoiceToggleHandlerRegistered = true ;
4770+
4771+ function toggleWidgetState ( useWidget , paramWidget , paramName ) {
4772+ if ( ! useWidget || ! paramWidget ) return ;
4773+
4774+ function applyState ( ) {
4775+ const enabled = useWidget . value === true ;
4776+ toggleWidgetEnabled ( paramWidget , enabled , referenceVoiceNode ) ;
4777+ if ( paramWidget . options && paramWidget . options . element ) {
4778+ paramWidget . options . element . disabled = ! enabled ;
4779+ paramWidget . options . element . style . opacity = enabled ? "1" : "0.5" ;
4780+ paramWidget . options . element . style . pointerEvents = enabled ? "auto" : "none" ;
4781+ }
4782+ referenceVoiceNode . setDirtyCanvas ( true ) ;
4783+ }
4784+
4785+ appendWidgetCB ( useWidget , ( ) => setTimeout ( applyState , 50 ) ) ;
4786+ setTimeout ( applyState , 100 ) ;
4787+ }
4788+
4789+ for ( let i = 1 ; i <= 4 ; i ++ ) {
4790+ const useReferenceVoiceWidget = referenceVoiceNode . widgets . find ( ( w ) => w && w . name === `useReferenceVoice${ i } ` ) ;
4791+ const audioWidget = referenceVoiceNode . widgets . find ( ( w ) => w && w . name === `audio${ i } ` ) ;
4792+ const textWidget = referenceVoiceNode . widgets . find ( ( w ) => w && w . name === `text${ i } ` ) ;
4793+
4794+ if ( useReferenceVoiceWidget && audioWidget ) {
4795+ toggleWidgetState ( useReferenceVoiceWidget , audioWidget , `audio${ i } ` ) ;
4796+ }
4797+ if ( useReferenceVoiceWidget && textWidget ) {
4798+ toggleWidgetState ( useReferenceVoiceWidget , textWidget , `text${ i } ` ) ;
4799+ }
4800+ }
4801+ }
4802+
47334803function audioInferenceInputsToggleHandler ( audioInputsNode ) {
47344804 if ( ! audioInputsNode ?. widgets ) return ;
47354805
@@ -5175,6 +5245,7 @@ export {
51755245 wanAnimateAdvancedFeatureSettingsToggleHandler ,
51765246 videoAdvancedFeatureInputsToggleHandler ,
51775247 audioInferenceInputsToggleHandler ,
5248+ audioInferenceReferenceVoiceToggleHandler ,
51785249 audioInferenceSpeechVoicesToggleHandler ,
51795250 videoInputsFrameToggleHandler ,
51805251 referenceVideosToggleHandler ,
0 commit comments