From 4b0f1b0bcd1e6494ff7ca62442636fb94555a685 Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 4 Feb 2026 11:42:20 +0000 Subject: [PATCH] Return raw array from fused-pipeline fallback Downstream code expects arrays with .flags attribute, not GPUFrame. Extract the underlying gpu/cpu array before returning. Co-Authored-By: Claude Opus 4.5 --- sexp_effects/primitive_libs/streaming_gpu.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sexp_effects/primitive_libs/streaming_gpu.py b/sexp_effects/primitive_libs/streaming_gpu.py index d9ee129..d0d80b4 100644 --- a/sexp_effects/primitive_libs/streaming_gpu.py +++ b/sexp_effects/primitive_libs/streaming_gpu.py @@ -929,6 +929,9 @@ def prim_fused_pipeline(img, effects_list, **dynamic_params): result = gpu_contrast(result, factor, 0) elif op == 'invert': result = gpu_invert(result) + # Return raw array, not GPUFrame (downstream expects arrays with .flags attribute) + if isinstance(result, GPUFrame): + return result.gpu if result.is_on_gpu else result.cpu return result # Get image dimensions