Skip to content

Commit

Permalink
feat: only generate output image when input was changed (#55)
Browse files Browse the repository at this point in the history
## Motivation

* In order to be faster and reduce CPU overhead, we only generate the
output image when the input image actually was changed
  • Loading branch information
TimPietrusky authored Feb 23, 2024
1 parent df10e60 commit fe4b4c0
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion resources/python/live-painting/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,9 @@ def main(pipe, input_image_path, output_image_path, shutdown_event):
strength = 0.99
guidance_scale = None

# When was the input image last modified
last_modified_time = None

# Queue to hold parameters received from stdin
params_queue = queue.Queue()

Expand All @@ -257,10 +260,18 @@ def main(pipe, input_image_path, output_image_path, shutdown_event):
seed = parameters.get("seed", seed)
strength = parameters.get("strength", strength)
guidance_scale = parameters.get("guidance_scale", guidance_scale)
print(f"Updated parameters {parameters}")
except queue.Empty:
pass # No new parameters, proceed with the existing ones

# Get the current modified time of the input image
current_modified_time = os.path.getmtime(input_image_path)

if current_modified_time != last_modified_time:
last_modified_time = current_modified_time
else:
# Skip this iteration since the input image has not changed
continue

# Only generate an image if the prompt is not empty
if prompt is not None and prompt.strip():
torch.manual_seed(seed)
Expand Down

0 comments on commit fe4b4c0

Please sign in to comment.