mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
[backport cloud/1.38] Update control_after_generate schema (#8507)
Backport of #8505 to `cloud/1.38` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8507-backport-cloud-1-38-Update-control_after_generate-schema-2f96d73d365081d399f3f459a843709e) by [Unito](https://www.unito.io) Co-authored-by: AustinMroz <austin@comfy.org>
This commit is contained in:
@@ -74,10 +74,14 @@ const addMultiSelectWidget = (
|
|||||||
// TODO: Add remote support to multi-select widget
|
// TODO: Add remote support to multi-select widget
|
||||||
// https://github.com/Comfy-Org/ComfyUI_frontend/issues/3003
|
// https://github.com/Comfy-Org/ComfyUI_frontend/issues/3003
|
||||||
if (inputSpec.control_after_generate) {
|
if (inputSpec.control_after_generate) {
|
||||||
|
const defaultType =
|
||||||
|
typeof inputSpec.control_after_generate === 'string'
|
||||||
|
? inputSpec.control_after_generate
|
||||||
|
: 'fixed'
|
||||||
widget.linkedWidgets = addValueControlWidgets(
|
widget.linkedWidgets = addValueControlWidgets(
|
||||||
node,
|
node,
|
||||||
widget,
|
widget,
|
||||||
'fixed',
|
defaultType,
|
||||||
undefined,
|
undefined,
|
||||||
transformInputSpecV2ToV1(inputSpec)
|
transformInputSpecV2ToV1(inputSpec)
|
||||||
)
|
)
|
||||||
@@ -209,10 +213,14 @@ const createInputMappingWidget = (
|
|||||||
if (!isComboWidget(widget)) {
|
if (!isComboWidget(widget)) {
|
||||||
throw new Error(`Expected combo widget but received ${widget.type}`)
|
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(
|
widget.linkedWidgets = addValueControlWidgets(
|
||||||
node,
|
node,
|
||||||
widget,
|
widget,
|
||||||
undefined,
|
defaultType,
|
||||||
undefined,
|
undefined,
|
||||||
transformInputSpecV2ToV1(inputSpec)
|
transformInputSpecV2ToV1(inputSpec)
|
||||||
)
|
)
|
||||||
@@ -284,10 +292,14 @@ const addComboWidget = (
|
|||||||
throw new Error(`Expected combo widget but received ${widget.type}`)
|
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(
|
widget.linkedWidgets = addValueControlWidgets(
|
||||||
node,
|
node,
|
||||||
widget,
|
widget,
|
||||||
undefined,
|
defaultType,
|
||||||
undefined,
|
undefined,
|
||||||
transformInputSpecV2ToV1(inputSpec)
|
transformInputSpecV2ToV1(inputSpec)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -72,10 +72,14 @@ export const useIntWidget = () => {
|
|||||||
['seed', 'noise_seed'].includes(inputSpec.name)
|
['seed', 'noise_seed'].includes(inputSpec.name)
|
||||||
|
|
||||||
if (controlAfterGenerate) {
|
if (controlAfterGenerate) {
|
||||||
|
const defaultType =
|
||||||
|
typeof inputSpec.control_after_generate === 'string'
|
||||||
|
? inputSpec.control_after_generate
|
||||||
|
: 'randomize'
|
||||||
const controlWidget = addValueControlWidget(
|
const controlWidget = addValueControlWidget(
|
||||||
node,
|
node,
|
||||||
widget,
|
widget,
|
||||||
'randomize',
|
defaultType,
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
transformInputSpecV2ToV1(inputSpec)
|
transformInputSpecV2ToV1(inputSpec)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { z } from 'zod'
|
|||||||
import { fromZodError } from 'zod-validation-error'
|
import { fromZodError } from 'zod-validation-error'
|
||||||
|
|
||||||
import { resultItemType } from '@/schemas/apiSchema'
|
import { resultItemType } from '@/schemas/apiSchema'
|
||||||
|
import { CONTROL_OPTIONS } from '@/types/simplifiedWidget'
|
||||||
|
|
||||||
const zComboOption = z.union([z.string(), z.number()])
|
const zComboOption = z.union([z.string(), z.number()])
|
||||||
const zRemoteWidgetConfig = z.object({
|
const zRemoteWidgetConfig = z.object({
|
||||||
@@ -50,7 +51,9 @@ export const zIntInputOptions = zNumericInputOptions.extend({
|
|||||||
* If true, a linked widget will be added to the node to select the mode
|
* If true, a linked widget will be added to the node to select the mode
|
||||||
* of `control_after_generate`.
|
* 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({
|
export const zFloatInputOptions = zNumericInputOptions.extend({
|
||||||
@@ -74,7 +77,9 @@ export const zStringInputOptions = zBaseInputOptions.extend({
|
|||||||
})
|
})
|
||||||
|
|
||||||
export const zComboInputOptions = 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_upload: z.boolean().optional(),
|
||||||
image_folder: resultItemType.optional(),
|
image_folder: resultItemType.optional(),
|
||||||
allow_batch: z.boolean().optional(),
|
allow_batch: z.boolean().optional(),
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export type WidgetValue =
|
|||||||
| void
|
| void
|
||||||
| File[]
|
| File[]
|
||||||
|
|
||||||
const CONTROL_OPTIONS = [
|
export const CONTROL_OPTIONS = [
|
||||||
'fixed',
|
'fixed',
|
||||||
'increment',
|
'increment',
|
||||||
'decrement',
|
'decrement',
|
||||||
|
|||||||
Reference in New Issue
Block a user