feat: ImageGate node — pause, route via ExecutionBlocker, mask out

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-21 17:42:54 +02:00
parent ea3438567a
commit d8dbc4fb4b
2 changed files with 52 additions and 0 deletions
+10
View File
@@ -1,5 +1,6 @@
# tests/test_gate.py
import io
import math
import torch
from PIL import Image
@@ -25,3 +26,12 @@ def test_mask_from_stash_decodes_png():
img = torch.zeros((1, 6, 4, 3))
m = gate.mask_from_stash(buf.getvalue(), img)
assert m.shape == (1, 6, 4) and float(m.min()) > 0.99
def test_is_changed_always_nan():
v = gate.ImageGate.IS_CHANGED(image=None, routes=2, unique_id="1")
assert math.isnan(v)
def test_return_types_shape():
assert gate.ImageGate.RETURN_TYPES[0] == "MASK"
assert len(gate.ImageGate.RETURN_TYPES) == gate.MAX_ROUTES + 1
assert all(t == "IMAGE" for t in gate.ImageGate.RETURN_TYPES[1:])