Upstream progressbar rendering (#871)

Upstreams progress bar rendering from ComfyUI_frontend.
This commit is contained in:
Chenlei Hu
2025-03-30 17:14:09 -04:00
committed by GitHub
parent 8a9b1c7071
commit 30a7f19a64
5 changed files with 34 additions and 0 deletions

View File

@@ -4493,6 +4493,8 @@ export class LGraphCanvas implements ConnectionColorContext {
} }
} }
node.drawProgressBar(ctx)
// these counter helps in conditioning drawing based on if the node has been executed or an action occurred // these counter helps in conditioning drawing based on if the node has been executed or an action occurred
if (node.execute_triggered != null && node.execute_triggered > 0) node.execute_triggered-- if (node.execute_triggered != null && node.execute_triggered > 0) node.execute_triggered--
if (node.action_triggered != null && node.action_triggered > 0) node.action_triggered-- if (node.action_triggered != null && node.action_triggered > 0) node.action_triggered--

View File

@@ -262,6 +262,11 @@ export class LGraphNode implements Positionable, IPinnable, IColorable {
*/ */
strokeStyles: Record<string, (this: LGraphNode) => IDrawBoundingOptions | undefined> strokeStyles: Record<string, (this: LGraphNode) => IDrawBoundingOptions | undefined>
/**
* The progress of node execution. Used to render a progress bar. Value between 0 and 1.
*/
progress?: number
exec_version?: number exec_version?: number
action_call?: string action_call?: string
execute_triggered?: number execute_triggered?: number
@@ -3657,4 +3662,22 @@ export class LGraphNode implements Positionable, IPinnable, IColorable {
this.layoutSlot(actualSlot, { slotIndex: slot.index }) this.layoutSlot(actualSlot, { slotIndex: slot.index })
} }
} }
/**
* Draws a progress bar on the node.
* @param ctx The canvas context to draw on
*/
drawProgressBar(ctx: CanvasRenderingContext2D): void {
if (!this.progress) return
const originalFillStyle = ctx.fillStyle
ctx.fillStyle = "green"
ctx.fillRect(
0,
0,
this.width * this.progress,
6,
)
ctx.fillStyle = originalFillStyle
}
} }

View File

@@ -84,6 +84,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,
@@ -152,6 +153,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,
@@ -221,6 +223,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,

View File

@@ -86,6 +86,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,
@@ -156,6 +157,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,
@@ -227,6 +229,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,

View File

@@ -84,6 +84,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,
@@ -152,6 +153,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,
@@ -221,6 +223,7 @@ LGraph {
"mouseOver": undefined, "mouseOver": undefined,
"order": 0, "order": 0,
"outputs": [], "outputs": [],
"progress": undefined,
"properties": {}, "properties": {},
"properties_info": [], "properties_info": [],
"redraw_on_mouse": undefined, "redraw_on_mouse": undefined,