diff --git a/extensions/chaeo/batch_jobs/coloring_book.py b/extensions/chaeo/batch_jobs/coloring_book.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e32ad74de366ffd1202b8d365d776315ab92b59
--- /dev/null
+++ b/extensions/chaeo/batch_jobs/coloring_book.py
@@ -0,0 +1,52 @@
+from pathlib import Path
+
+import numpy as np
+import pandas as pd
+from skimage.filters import gaussian
+from skimage.measure import label, regionprops_table
+
+import tifffile
+
+from extensions.chaeo.accessors import MonoPatchStack
+from extensions.ilastik.models import IlastikPixelClassifierModel
+from model_server.accessors import write_accessor_data_to_file, InMemoryDataAccessor
+
+if __name__ == '__main__':
+    root = Path('c:/Users/rhodes/projects/proj0011-plankton-seg/exp0024')
+    px_ilp = root / 'px02.ilp'
+    sigma = 1.0
+    thresh = 0.15
+    min_area = 400
+
+    tf = tifffile.imread(root / '20231008-162336-z04-TL.tif')
+    instack = MonoPatchStack(np.moveaxis(tf, 0, -1))
+    px_mod = IlastikPixelClassifierModel(params={'project_file': px_ilp})
+    pxmaps = []
+
+    def pipeline(yx_img):
+        pxmap, _ = px_mod.infer(InMemoryDataAccessor(yx_img))
+        smoothed = gaussian(pxmap.get_one_channel_data(0).data, sigma=sigma)
+        mask = smoothed > thresh
+        proc_mask = mask
+        lamap = label(proc_mask).astype('uint16')
+        df = (
+            pd.DataFrame(
+                regionprops_table(
+                    lamap[:, :, 0, 0],
+                    properties=('label', 'area')
+                )
+            )
+        )
+        la_keep = df.loc[df['area'] > min_area, 'label'].unique()
+        fil_mask = np.isin(lamap, la_keep)
+        inv = np.invert(fil_mask)
+        return InMemoryDataAccessor(inv)
+
+    results = []
+    for i in range(0, instack.count):
+        res = pipeline(instack.iat(i))
+        results.append(res)
+        outfile = root / 'output' / f'res_{i:04d}.tif'
+        outfile.parent.mkdir(parents=True, exist_ok=True)
+        write_accessor_data_to_file(outfile, res)
+    print('Finished')
\ No newline at end of file