Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,14 @@ const addMultiSelectWidget = (
// TODO: Add remote support to multi-select widget
// https://github.com/Comfy-Org/ComfyUI_frontend/issues/3003
if (inputSpec.control_after_generate) {
const defaultType =
typeof inputSpec.control_after_generate === 'string'
? inputSpec.control_after_generate
: 'fixed'
widget.linkedWidgets = addValueControlWidgets(
node,
widget,
'fixed',
defaultType,
undefined,
transformInputSpecV2ToV1(inputSpec)
)
Expand Down Expand Up @@ -209,10 +213,14 @@ const createInputMappingWidget = (
if (!isComboWidget(widget)) {
throw new Error(`Expected combo widget but received ${widget.type}`)
}
const defaultType =
typeof inputSpec.control_after_generate === 'string'
? inputSpec.control_after_generate
: 'randomize'
widget.linkedWidgets = addValueControlWidgets(
node,
widget,
undefined,
defaultType,
undefined,
transformInputSpecV2ToV1(inputSpec)
)
Expand Down Expand Up @@ -284,10 +292,14 @@ const addComboWidget = (
throw new Error(`Expected combo widget but received ${widget.type}`)
}

const defaultType =
typeof inputSpec.control_after_generate === 'string'
? inputSpec.control_after_generate
: 'randomize'
widget.linkedWidgets = addValueControlWidgets(
node,
widget,
undefined,
defaultType,
undefined,
transformInputSpecV2ToV1(inputSpec)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,14 @@ export const useIntWidget = () => {
['seed', 'noise_seed'].includes(inputSpec.name)

if (controlAfterGenerate) {
const defaultType =
typeof inputSpec.control_after_generate === 'string'
? inputSpec.control_after_generate
: 'randomize'
const controlWidget = addValueControlWidget(
node,
widget,
'randomize',
defaultType,
undefined,
undefined,
transformInputSpecV2ToV1(inputSpec)
Expand Down
9 changes: 7 additions & 2 deletions src/schemas/nodeDefSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { z } from 'zod'
import { fromZodError } from 'zod-validation-error'

import { resultItemType } from '@/schemas/apiSchema'
import { CONTROL_OPTIONS } from '@/types/simplifiedWidget'

const zComboOption = z.union([z.string(), z.number()])
const zRemoteWidgetConfig = z.object({
Expand Down Expand Up @@ -50,7 +51,9 @@ export const zIntInputOptions = zNumericInputOptions.extend({
* If true, a linked widget will be added to the node to select the mode
* of `control_after_generate`.
*/
control_after_generate: z.boolean().optional()
control_after_generate: z
.union([z.boolean(), z.enum(CONTROL_OPTIONS)])
.optional()
})

export const zFloatInputOptions = zNumericInputOptions.extend({
Expand All @@ -74,7 +77,9 @@ export const zStringInputOptions = zBaseInputOptions.extend({
})

export const zComboInputOptions = zBaseInputOptions.extend({
control_after_generate: z.boolean().optional(),
control_after_generate: z
.union([z.boolean(), z.enum(CONTROL_OPTIONS)])
.optional(),
image_upload: z.boolean().optional(),
image_folder: resultItemType.optional(),
allow_batch: z.boolean().optional(),
Expand Down
2 changes: 1 addition & 1 deletion src/types/simplifiedWidget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export type WidgetValue =
| void
| File[]

const CONTROL_OPTIONS = [
export const CONTROL_OPTIONS = [
'fixed',
'increment',
'decrement',
Expand Down