{"id":"01KFKD1ZCKBNNFB6J0VX5RXNGD","cid":"bafkreigtm3slfmcgvu5bz7o2cgogab4ga4vbn2vnndqjiwnqhozosrjxne","type":"agent","properties":{"_profile_version":"v1","actions_required":["file:view","file:create","file:update","file:download","entity:view","entity:update","relationship:create"],"description":"Processes various image formats: converts to JPEG, then runs full image workflow (resize, OCR, assemble, structure extraction, descriptions)","endpoint":"https://generic-image-workflow.arke.institute","endpoint_verified_at":"2026-01-22T17:47:30.726Z","input_schema":{"properties":{"entity_ids":{"description":"Array of image file entity IDs to process (supports PNG, WebP, TIFF, AVIF, GIF)","items":{"type":"string"},"type":"array"},"options":{"properties":{"custom_prompt":{"description":"Custom prompt for structure extraction and description generation","type":"string"},"label":{"description":"Label for the combined text file","type":"string"},"quality":{"description":"JPEG conversion quality 1-100 (default: 85)","type":"number"},"skip_image_descriptions":{"description":"Skip derivative image descriptions","type":"boolean"},"skip_text_workflow":{"description":"Skip structure extraction and description generation","type":"boolean"}},"type":"object"}},"required":["entity_ids"],"type":"object"},"label":"Generic Image Workflow","output_description":"Converts non-JPEG images (PNG, WebP, TIFF, AVIF, GIF) into JPEG format, then runs the full image processing pipeline on the resulting JPEGs. For each input image, the workflow first produces a JPEG conversion, then creates resized variants (large, medium, thumbnail) of that JPEG. OCR is run on each JPEG to extract text and detect any derivative images embedded within it. The extracted text from all images is assembled into a single combined text file linked to the target collection. That combined text file is then passed through structure extraction, which creates a hierarchy of entities (sections, chunks) representing the document's logical organization, followed by LLM-generated descriptions for each entity. Any derivative images detected during OCR receive their own contextual descriptions. The end result is: one JPEG per input image (each with three size variants), one combined text file, a tree of structural entities with descriptions derived from the text, and descriptions on any derivative images found.","output_relationships":["Each converted JPEG has a 'derivedFrom' relationship pointing back to the original non-JPEG source image","Resized variants (large, medium, thumbnail) are linked to their source JPEG via 'derivedFrom' relationships","The combined text file is linked to the target collection and references the source JPEG pages it was assembled from","Structure entities (sections, chunks) have 'in' relationships to their parent and 'contains' relationships from parent to children","Each structure entity has an 'extractedFrom' relationship pointing to the combined text file","Sibling structure entities are linked with 'prev' and 'next' relationships in document order","Derivative images detected during OCR are linked to the source JPEG page they were found in"],"output_tree_example":"Target Collection\n├── photo.png (original input, non-JPEG)\n│   └── photo.jpeg (converted JPEG)\n│       ├── photo-large.jpeg (resized variant)\n│       ├── photo-medium.jpeg (resized variant)\n│       ├── photo-thumbnail.jpeg (resized variant)\n│       └── [OCR text stored on photo.jpeg entity]\n├── scan.tiff (original input, non-JPEG)\n│   └── scan.jpeg (converted JPEG)\n│       ├── scan-large.jpeg (resized variant)\n│       ├── scan-medium.jpeg (resized variant)\n│       ├── scan-thumbnail.jpeg (resized variant)\n│       ├── [OCR text stored on scan.jpeg entity]\n│       └── derivative-image-001.jpeg (image detected by OCR, gets its own description)\n├── combined-text.txt (assembled OCR text from all images)\n│   └── document (root structure entity)\n│       ├── section 'Image 1 Content' (lines 1-40)\n│       │   ├── chunk 1 (lines 1-20, has text + description)\n│       │   └── chunk 2 (lines 21-40, has text + description)\n│       └── section 'Image 2 Content' (lines 41-90)\n│           ├── chunk 3 (lines 41-60, has text + description)\n│           └── chunk 4 (lines 61-90, has text + description)\n└── job-log.json (processing log)","status":"active","uses_agents":[{"label":"Image to JPEG","pi":"01KFFC5JJBJE5A4MK4KB0PE9AM"},{"label":"Image Workflow","pi":"01KFFGQJC874G1S3SCSWT60W5Y"}]},"relationships":[{"peer":"01KFF0H1KSR4SHHDQ7T2HXQEK6","peer_type":"collection","predicate":"collection"}],"ver":6,"created_at":"2026-01-22T17:46:54.850Z","ts":"2026-01-30T02:42:31.058Z","edited_by":{"method":"manual","user_id":"01KDZS52M5F9XS0ZPZQQXGPC9A"}}