Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
ComfyUI
Commits
ec7a00aa
Commit
ec7a00aa
authored
Dec 01, 2023
by
comfyanonymous
Browse files
Fix extension widgets not working.
parent
5d5c3200
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
18 deletions
+17
-18
web/extensions/core/groupNode.js
web/extensions/core/groupNode.js
+1
-2
web/scripts/app.js
web/scripts/app.js
+16
-2
web/scripts/widgets.js
web/scripts/widgets.js
+0
-14
No files found.
web/extensions/core/groupNode.js
View file @
ec7a00aa
import
{
app
}
from
"
../../scripts/app.js
"
;
import
{
api
}
from
"
../../scripts/api.js
"
;
import
{
getWidgetType
}
from
"
../../scripts/widgets.js
"
;
import
{
mergeIfValid
}
from
"
./widgetInputs.js
"
;
const
GROUP
=
Symbol
();
...
...
@@ -332,7 +331,7 @@ export class GroupNodeConfig {
const converted = new Map();
const widgetMap = (this.oldToNewWidgetMap[node.index] = {});
for (const inputName of inputNames) {
let widgetType = getWidgetType(inputs[inputName], inputName);
let widgetType =
app.
getWidgetType(inputs[inputName], inputName);
if (widgetType) {
const convertedIndex = node.inputs?.findIndex(
(inp) => inp.name === inputName && inp.widget?.name === inputName
...
...
web/scripts/app.js
View file @
ec7a00aa
import
{
ComfyLogging
}
from
"
./logging.js
"
;
import
{
ComfyWidgets
,
getWidgetType
}
from
"
./widgets.js
"
;
import
{
ComfyWidgets
}
from
"
./widgets.js
"
;
import
{
ComfyUI
,
$el
}
from
"
./ui.js
"
;
import
{
api
}
from
"
./api.js
"
;
import
{
defaultGraph
}
from
"
./defaultGraph.js
"
;
...
...
@@ -1377,6 +1377,20 @@ export class ComfyApp {
await
this
.
#
invokeExtensionsAsync
(
"
registerCustomNodes
"
);
}
getWidgetType
(
inputData
,
inputName
)
{
const
type
=
inputData
[
0
];
if
(
Array
.
isArray
(
type
))
{
return
"
COMBO
"
;
}
else
if
(
`
${
type
}
:
${
inputName
}
`
in
this
.
widgets
)
{
return
`
${
type
}
:
${
inputName
}
`
;
}
else
if
(
type
in
this
.
widgets
)
{
return
type
;
}
else
{
return
null
;
}
}
async
registerNodeDef
(
nodeId
,
nodeData
)
{
const
self
=
this
;
const
node
=
Object
.
assign
(
...
...
@@ -1391,7 +1405,7 @@ export class ComfyApp {
const
type
=
inputData
[
0
];
let
widgetCreated
=
true
;
const
widgetType
=
getWidgetType
(
inputData
,
inputName
);
const
widgetType
=
self
.
getWidgetType
(
inputData
,
inputName
);
if
(
widgetType
)
{
if
(
widgetType
===
"
COMBO
"
)
{
Object
.
assign
(
config
,
self
.
widgets
.
COMBO
(
this
,
inputName
,
inputData
,
app
)
||
{});
...
...
web/scripts/widgets.js
View file @
ec7a00aa
...
...
@@ -23,20 +23,6 @@ function getNumberDefaults(inputData, defaultStep, precision, enable_rounding) {
return
{
val
:
defaultVal
,
config
:
{
min
,
max
,
step
:
10.0
*
step
,
round
,
precision
}
};
}
export
function
getWidgetType
(
inputData
,
inputName
)
{
const
type
=
inputData
[
0
];
if
(
Array
.
isArray
(
type
))
{
return
"
COMBO
"
;
}
else
if
(
`
${
type
}
:
${
inputName
}
`
in
ComfyWidgets
)
{
return
`
${
type
}
:
${
inputName
}
`
;
}
else
if
(
type
in
ComfyWidgets
)
{
return
type
;
}
else
{
return
null
;
}
}
export
function
addValueControlWidget
(
node
,
targetWidget
,
defaultValue
=
"
randomize
"
,
values
,
widgetName
,
inputData
)
{
let
name
=
inputData
[
1
]?.
control_after_generate
;
if
(
typeof
name
!==
"
string
"
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment