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
93c64afa
Commit
93c64afa
authored
May 02, 2023
by
comfyanonymous
Browse files
Use sampler callback instead of tqdm hook for progress bar.
parent
ba8a4c36
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
9 deletions
+32
-9
comfy/utils.py
comfy/utils.py
+23
-0
main.py
main.py
+4
-8
nodes.py
nodes.py
+5
-1
No files found.
comfy/utils.py
View file @
93c64afa
...
...
@@ -86,3 +86,26 @@ def tiled_scale(samples, function, tile_x=64, tile_y=64, overlap = 8, upscale_am
output
[
b
:
b
+
1
]
=
out
/
out_div
return
output
PROGRESS_BAR_HOOK
=
None
def
set_progress_bar_global_hook
(
function
):
global
PROGRESS_BAR_HOOK
PROGRESS_BAR_HOOK
=
function
class
ProgressBar
:
def
__init__
(
self
,
total
):
global
PROGRESS_BAR_HOOK
self
.
total
=
total
self
.
current
=
0
self
.
hook
=
PROGRESS_BAR_HOOK
def
update_absolute
(
self
,
value
):
if
value
>
self
.
total
:
value
=
self
.
total
self
.
current
=
value
if
self
.
hook
is
not
None
:
self
.
hook
(
self
.
current
,
self
.
total
)
def
update
(
self
,
value
):
self
.
update_absolute
(
self
.
current
+
value
)
main.py
View file @
93c64afa
...
...
@@ -5,6 +5,7 @@ import shutil
import
threading
from
comfy.cli_args
import
args
import
comfy.utils
if
os
.
name
==
"nt"
:
import
logging
...
...
@@ -39,14 +40,9 @@ async def run(server, address='', port=8188, verbose=True, call_on_start=None):
await
asyncio
.
gather
(
server
.
start
(
address
,
port
,
verbose
,
call_on_start
),
server
.
publish_loop
())
def
hijack_progress
(
server
):
from
tqdm.auto
import
tqdm
orig_func
=
getattr
(
tqdm
,
"update"
)
def
wrapped_func
(
*
args
,
**
kwargs
):
pbar
=
args
[
0
]
v
=
orig_func
(
*
args
,
**
kwargs
)
server
.
send_sync
(
"progress"
,
{
"value"
:
pbar
.
n
,
"max"
:
pbar
.
total
},
server
.
client_id
)
return
v
setattr
(
tqdm
,
"update"
,
wrapped_func
)
def
hook
(
value
,
total
):
server
.
send_sync
(
"progress"
,
{
"value"
:
value
,
"max"
:
total
},
server
.
client_id
)
comfy
.
utils
.
set_progress_bar_global_hook
(
hook
)
def
cleanup_temp
():
temp_dir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
)),
"temp"
)
...
...
nodes.py
View file @
93c64afa
...
...
@@ -815,9 +815,13 @@ def common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive,
if
"noise_mask"
in
latent
:
noise_mask
=
latent
[
"noise_mask"
]
pbar
=
comfy
.
utils
.
ProgressBar
(
steps
)
def
callback
(
step
,
x0
,
x
):
pbar
.
update_absolute
(
step
+
1
)
samples
=
comfy
.
sample
.
sample
(
model
,
noise
,
steps
,
cfg
,
sampler_name
,
scheduler
,
positive
,
negative
,
latent_image
,
denoise
=
denoise
,
disable_noise
=
disable_noise
,
start_step
=
start_step
,
last_step
=
last_step
,
force_full_denoise
=
force_full_denoise
,
noise_mask
=
noise_mask
)
force_full_denoise
=
force_full_denoise
,
noise_mask
=
noise_mask
,
callback
=
callback
)
out
=
latent
.
copy
()
out
[
"samples"
]
=
samples
return
(
out
,
)
...
...
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