mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-26 14:20:27 +08:00
Merge branch 'comfyanonymous:master' into master
This commit is contained in:
commit
df9b61506b
@ -625,6 +625,37 @@ class ImageFlip:
|
|||||||
|
|
||||||
return (image,)
|
return (image,)
|
||||||
|
|
||||||
|
class ImageScaleToMaxDimension:
|
||||||
|
upscale_methods = ["area", "lanczos", "bilinear", "nearest-exact", "bilinear", "bicubic"]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def INPUT_TYPES(s):
|
||||||
|
return {"required": {"image": ("IMAGE",),
|
||||||
|
"upscale_method": (s.upscale_methods,),
|
||||||
|
"largest_size": ("INT", {"default": 512, "min": 0, "max": MAX_RESOLUTION, "step": 1})}}
|
||||||
|
RETURN_TYPES = ("IMAGE",)
|
||||||
|
FUNCTION = "upscale"
|
||||||
|
|
||||||
|
CATEGORY = "image/upscaling"
|
||||||
|
|
||||||
|
def upscale(self, image, upscale_method, largest_size):
|
||||||
|
height = image.shape[1]
|
||||||
|
width = image.shape[2]
|
||||||
|
|
||||||
|
if height > width:
|
||||||
|
width = round((width / height) * largest_size)
|
||||||
|
height = largest_size
|
||||||
|
elif width > height:
|
||||||
|
height = round((height / width) * largest_size)
|
||||||
|
width = largest_size
|
||||||
|
else:
|
||||||
|
height = largest_size
|
||||||
|
width = largest_size
|
||||||
|
|
||||||
|
samples = image.movedim(-1, 1)
|
||||||
|
s = comfy.utils.common_upscale(samples, width, height, upscale_method, "disabled")
|
||||||
|
s = s.movedim(1, -1)
|
||||||
|
return (s,)
|
||||||
|
|
||||||
NODE_CLASS_MAPPINGS = {
|
NODE_CLASS_MAPPINGS = {
|
||||||
"ImageCrop": ImageCrop,
|
"ImageCrop": ImageCrop,
|
||||||
@ -639,4 +670,5 @@ NODE_CLASS_MAPPINGS = {
|
|||||||
"GetImageSize": GetImageSize,
|
"GetImageSize": GetImageSize,
|
||||||
"ImageRotate": ImageRotate,
|
"ImageRotate": ImageRotate,
|
||||||
"ImageFlip": ImageFlip,
|
"ImageFlip": ImageFlip,
|
||||||
|
"ImageScaleToMaxDimension": ImageScaleToMaxDimension,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
comfyui-frontend-package==1.25.11
|
comfyui-frontend-package==1.25.11
|
||||||
comfyui-workflow-templates==0.1.70
|
comfyui-workflow-templates==0.1.73
|
||||||
comfyui-embedded-docs==0.2.6
|
comfyui-embedded-docs==0.2.6
|
||||||
torch
|
torch
|
||||||
torchsde
|
torchsde
|
||||||
|
|||||||
29
server.py
29
server.py
@ -729,7 +729,34 @@ class PromptServer():
|
|||||||
|
|
||||||
@routes.post("/interrupt")
|
@routes.post("/interrupt")
|
||||||
async def post_interrupt(request):
|
async def post_interrupt(request):
|
||||||
nodes.interrupt_processing()
|
try:
|
||||||
|
json_data = await request.json()
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
json_data = {}
|
||||||
|
|
||||||
|
# Check if a specific prompt_id was provided for targeted interruption
|
||||||
|
prompt_id = json_data.get('prompt_id')
|
||||||
|
if prompt_id:
|
||||||
|
currently_running, _ = self.prompt_queue.get_current_queue()
|
||||||
|
|
||||||
|
# Check if the prompt_id matches any currently running prompt
|
||||||
|
should_interrupt = False
|
||||||
|
for item in currently_running:
|
||||||
|
# item structure: (number, prompt_id, prompt, extra_data, outputs_to_execute)
|
||||||
|
if item[1] == prompt_id:
|
||||||
|
logging.info(f"Interrupting prompt {prompt_id}")
|
||||||
|
should_interrupt = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if should_interrupt:
|
||||||
|
nodes.interrupt_processing()
|
||||||
|
else:
|
||||||
|
logging.info(f"Prompt {prompt_id} is not currently running, skipping interrupt")
|
||||||
|
else:
|
||||||
|
# No prompt_id provided, do a global interrupt
|
||||||
|
logging.info("Global interrupt (no prompt_id specified)")
|
||||||
|
nodes.interrupt_processing()
|
||||||
|
|
||||||
return web.Response(status=200)
|
return web.Response(status=200)
|
||||||
|
|
||||||
@routes.post("/free")
|
@routes.post("/free")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user