Extract text from image files within Directus Files with this custom operation, using Clarifai.
This operation requires two options to be set - first a personal access token from Clarifai (you can find this in your personal settings under Security), and a link to the image file. It will return a JSON object, with all the found text into a single merged string and a list of regions where the texts were found.
You can use the operation to then save the result to a file description or item, or run further automation on the output.
This operation outputs a JSON object with the following structure:
{
"text": "DIGGING\nTHE RABBIT HOLE",
"regions": [
{
"id": "1e3fcaca88308d377d567966e4ae1dda",
"region_info": {
"bounding_box": {
"top_row": 0.6302083,
"left_col": 0.102489024,
"bottom_row": 0.703125,
"right_col": 0.32796484
}
},
"data": {
"text": {
"raw": "DIGGING",
"text_info": {
"encoding": "UnknownTextEnc"
}
}
},
"value": 0.9584053
},
...
]
}
Create a Flow with an Event Hook action trigger and a scope of files.upload
. Use the AI Text Extraction operation, setting the File URL to https://your-directus-project-url/assets/{{ $trigger.key }}
, being sure to provide your specific Directus Project URL.
This will work if your file is public, but if it isn't, you can append ?access_token=token
to the File URL, replacing the value with a valid user token that has access to the file.
This operation will trigger on every new file upload, regardless of location or filetype. You may wish to add a conditional step between the trigger and transcription operation. The following condition rule will check that the file is an image:
{
"$trigger": {
"payload": {
"type": {
"_contains": "image"
}
}
}
}
Create a Flow with a Manual trigger and select a collection with a file field, which should contain an image file. Set the Location to Item Page Only. To receive the file ID create a Read Data operation for the same collection, setting IDs to {{ $trigger.body.keys[0] }}
.
Use the AI Text Extraction operation, setting the File URL to https://your-directus-project-url/assets/{{ $last.file_field_name }}
, being sure to provide your specific Directus Project URL and file field name.