[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-description":3,"header-nav":5,"footer-secondary":157,"footer-primary":183,"header-nav-data":260,"github-stars":262,"clarifai":366,"site-banner":444,"74634853-196b-4ce3-b256-4534c054838f":449,"dfd79d2b-7af5-4cdb-aa94-3f73de97ebd8":477,"8f849cd0-a47b-4e32-bb19-b478973c90f7":483,"358b0659-1f05-4427-bd1c-4bc03a43c182":489,"9df3f40e-6272-4ec6-a0d7-cc29265e087c":496,"1b444c23-b593-4391-9410-4ca5d2c7a7cb":500},{"description":4},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"items":6},[7,76,138,143,150],{"id":8,"title":9,"url":10,"callout":11,"callout_title":12,"children_title":13,"page":10,"children":14},"62c04c6c-5793-4702-8ed1-73dd563fd605","Product",null,"8f849cd0-a47b-4e32-bb19-b478973c90f7","Project Showcase","Use Cases and Features",[15,23,31,39,45,53,61,69],{"id":16,"title":17,"url":18,"description":19,"image":10,"icon":20,"page":21},"e7d7d5ed-89b1-4455-8b4a-8ae92c70e3a0","Headless CMS","/solutions/headless-cms/","Manage and deliver content with ease","code_blocks",{"permalink":22},"/solutions/headless-cms",{"id":24,"title":25,"url":26,"description":27,"image":10,"icon":28,"page":29},"60bdefd9-95e6-45a3-9f81-4748d07c59d3","Backend-as-a-Service","/solutions/backend-as-a-service/","Build and ship applications faster","speed",{"permalink":30},"/solutions/backend-as-a-service",{"id":32,"title":33,"url":34,"description":35,"image":10,"icon":36,"page":37},"5f9aebeb-4f89-445e-9850-5b1261a2743c","Headless Commerce","/solutions/product-information-management/","A single source of truth for products","shopping_cart_checkout",{"permalink":38},"/solutions/product-information-management",{"id":40,"title":41,"url":42,"description":43,"image":10,"icon":44,"page":10},"49e46134-80be-470e-8c73-afb1417fa9b6","100+ More Use Cases","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus","Build anything (or everything)","lightbulb",{"id":46,"title":47,"url":48,"description":49,"image":10,"icon":50,"page":51},"a589ac77-a5ce-45c5-a054-e43111e19158","Instant APIs","/products/connect/","Connect a database, get REST + GraphQL APIs","api",{"permalink":52},"/toolkit/connect",{"id":54,"title":55,"url":56,"description":57,"image":10,"icon":58,"page":59},"4a0f129a-c546-4493-b0a9-306e51692e90","Granular Policy-Based Auth","/products/auth/","Provide secure, autonomous data access","lock_person",{"permalink":60},"/toolkit/auth",{"id":62,"title":63,"url":64,"description":65,"image":10,"icon":66,"page":67},"f9250f2c-93a4-4108-80db-011bbe391ecf","Visual Automation Builder","/products/automate/","Automate content and data workflows with ease","build",{"permalink":68},"/toolkit/automate",{"id":70,"title":71,"url":10,"description":72,"image":10,"icon":73,"page":74},"f1ae4e40-5b05-42a4-9cd3-33dda35cc939","50+ More Features","Get everything you need out-of-the-box","auto_fix",{"permalink":75},"/features",{"id":77,"title":78,"url":10,"callout":79,"callout_title":80,"children_title":81,"page":10,"children":82},"2f6ad0d1-6dd3-4f17-b5c8-9f2abf71409a","Resources","dfd79d2b-7af5-4cdb-aa94-3f73de97ebd8","Watch Directus TV","Learn More",[83,90,98,104,111,118,124,131],{"id":84,"title":85,"url":86,"description":87,"image":10,"icon":88,"page":89},"0a3bf9f5-1ef2-43f4-bc09-7ff7488241c5","Blog","/blog","Read our latest articles and guides","library_books",{"permalink":86},{"id":91,"title":92,"url":93,"description":94,"image":10,"icon":95,"page":96},"165e3dc2-e51b-4456-8382-99c5775b0412","Case Studies","#","Case studies and success stories","magic_button",{"permalink":97},"/case-studies",{"id":99,"title":100,"url":101,"description":102,"image":10,"icon":103,"page":10},"5ae324b6-bf44-4c21-95ad-e6dc0c1c1f40","Community Forum","https://community.directus.io/","Questions and conversations","comment",{"id":105,"title":106,"url":93,"description":107,"image":10,"icon":108,"page":109},"b1db03f0-e537-490e-8c0f-c61c401d1024","Agency Directory","Browse our list of agency partners ","handshake",{"permalink":110},"/agency-directory",{"id":112,"title":113,"url":114,"description":115,"image":10,"icon":116,"page":117},"991731c8-eb40-4eec-85a5-6e977bcd7ec9","About Us","/about","Learn more about Directus and the team","supervised_user_circle",{"permalink":114},{"id":119,"title":120,"url":121,"description":122,"image":10,"icon":123,"page":10},"52aebf38-b3ad-4a27-807d-ce52398cd509","Wall of Love","https://testimonial.to/directus/all","See what others are saying about us","heart_plus",{"id":125,"title":126,"url":93,"description":127,"image":10,"icon":128,"page":129},"a86eca65-d5ae-4263-b7d9-4f1a1c50a0b1","Contact","Have a general inquiry or question for us?","mark_email_unread",{"permalink":130},"/contact",{"id":132,"title":133,"url":10,"description":134,"image":10,"icon":135,"page":136},"28225825-8d41-4809-9032-192fbf5c6e5d","Support","Reach out to Directus support","support",{"permalink":137},"/support",{"id":139,"title":140,"url":141,"callout":10,"callout_title":10,"children_title":10,"page":10,"children":142},"a3f1275d-b088-4b11-99bf-143fcbf39104","Developers","/docs",[],{"id":144,"title":145,"url":146,"callout":10,"callout_title":10,"children_title":10,"page":147,"children":149},"fae8fded-d2e2-468e-a68b-82abec7a7225","Enterprise","/solutions/enterprise/",{"permalink":148},"/solutions/enterprise",[],{"id":151,"title":152,"url":153,"callout":10,"callout_title":10,"children_title":10,"page":154,"children":156},"5c5e2fbc-49fd-4e41-a71e-e4f8db2b00cf","Pricing","/pricing/",{"permalink":155},"/pricing/self-hosted",[],{"items":158},[159,165,171,177],{"id":160,"title":161,"url":10,"page":162,"children":164},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":163},"/cloud-policies",[],{"id":166,"title":167,"url":93,"page":168,"children":170},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":169},"/bsl",[],{"id":172,"title":173,"url":93,"page":174,"children":176},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":175},"/terms",[],{"id":178,"title":179,"url":93,"page":180,"children":182},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":181},"/privacy",[],{"items":184},[185,202,221,240],{"id":186,"title":187,"url":10,"page":10,"children":188},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",[189,192,195,199],{"id":190,"title":17,"url":10,"page":191},"fcafe85a-a798-4710-9e7a-776fe413aae5",{"permalink":22},{"id":193,"title":25,"url":10,"page":194},"79972923-93cf-4777-9e32-5c9b0315fc10",{"permalink":30},{"id":196,"title":197,"url":10,"page":198},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":38},{"id":200,"title":201,"url":42,"page":10},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build",{"id":203,"title":78,"url":10,"page":10,"children":204},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f",[205,209,213,217],{"id":206,"title":207,"url":208,"page":10},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":210,"title":211,"url":212,"page":10},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":214,"title":215,"url":216,"page":10},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":218,"title":219,"url":220,"page":10},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":222,"title":133,"url":10,"page":10,"children":223},"d61fae8c-7502-494a-822f-19ecff3d0256",[224,228,232,236],{"id":225,"title":226,"url":227,"page":10},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":229,"title":230,"url":231,"page":10},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":233,"title":234,"url":235,"page":10},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":237,"title":238,"url":239,"page":10},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":241,"title":242,"url":10,"page":10,"children":243},"49141403-4f20-44ac-8453-25ace1265812","Organization",[244,248,253,257],{"id":245,"title":246,"url":114,"page":247},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About",{"permalink":114},{"id":249,"title":250,"url":93,"page":251},"b84bf525-5471-4b14-a93c-225f6c386005","Careers",{"permalink":252},"/careers",{"id":254,"title":255,"url":256,"page":10},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":258,"title":126,"url":10,"page":259},"8d2fa1e3-198e-4405-81e1-2ceb858bc237",{"permalink":130},{"header_cta_buttons":261},"74634853-196b-4ce3-b256-4534c054838f",{"id":263,"node_id":264,"name":265,"full_name":266,"private":267,"owner":268,"html_url":285,"description":286,"fork":267,"url":287,"forks_url":288,"keys_url":289,"collaborators_url":290,"teams_url":291,"hooks_url":292,"issue_events_url":293,"events_url":294,"assignees_url":295,"branches_url":296,"tags_url":297,"blobs_url":298,"git_tags_url":299,"git_refs_url":300,"trees_url":301,"statuses_url":302,"languages_url":303,"stargazers_url":304,"contributors_url":305,"subscribers_url":306,"subscription_url":307,"commits_url":308,"git_commits_url":309,"comments_url":310,"issue_comment_url":311,"contents_url":312,"compare_url":313,"merges_url":314,"archive_url":315,"downloads_url":316,"issues_url":317,"pulls_url":318,"milestones_url":319,"notifications_url":320,"labels_url":321,"releases_url":322,"deployments_url":323,"created_at":324,"updated_at":325,"pushed_at":326,"git_url":327,"ssh_url":328,"clone_url":329,"svn_url":285,"homepage":330,"size":331,"stargazers_count":332,"watchers_count":332,"language":333,"has_issues":334,"has_projects":334,"has_downloads":334,"has_wiki":267,"has_pages":267,"has_discussions":334,"forks_count":335,"mirror_url":10,"archived":267,"disabled":267,"open_issues_count":336,"license":337,"allow_forking":334,"is_template":267,"web_commit_signoff_required":267,"has_pull_requests":334,"pull_request_creation_policy":342,"topics":343,"visibility":284,"forks":335,"open_issues":336,"watchers":332,"default_branch":362,"temp_clone_token":10,"custom_properties":363,"organization":364,"network_count":335,"subscribers_count":365},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus/directus",false,{"login":265,"id":269,"node_id":270,"avatar_url":271,"gravatar_id":272,"url":273,"html_url":274,"followers_url":275,"following_url":276,"gists_url":277,"starred_url":278,"subscriptions_url":279,"organizations_url":280,"repos_url":281,"events_url":282,"received_events_url":283,"type":242,"user_view_type":284,"site_admin":267},15967950,"MDEyOk9yZ2FuaXphdGlvbjE1OTY3OTUw","https://avatars.githubusercontent.com/u/15967950?v=4","","https://api.github.com/users/directus","https://github.com/directus","https://api.github.com/users/directus/followers","https://api.github.com/users/directus/following{/other_user}","https://api.github.com/users/directus/gists{/gist_id}","https://api.github.com/users/directus/starred{/owner}{/repo}","https://api.github.com/users/directus/subscriptions","https://api.github.com/users/directus/orgs","https://api.github.com/users/directus/repos","https://api.github.com/users/directus/events{/privacy}","https://api.github.com/users/directus/received_events","public","https://github.com/directus/directus","The flexible backend for all your projects 🐰 Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.","https://api.github.com/repos/directus/directus","https://api.github.com/repos/directus/directus/forks","https://api.github.com/repos/directus/directus/keys{/key_id}","https://api.github.com/repos/directus/directus/collaborators{/collaborator}","https://api.github.com/repos/directus/directus/teams","https://api.github.com/repos/directus/directus/hooks","https://api.github.com/repos/directus/directus/issues/events{/number}","https://api.github.com/repos/directus/directus/events","https://api.github.com/repos/directus/directus/assignees{/user}","https://api.github.com/repos/directus/directus/branches{/branch}","https://api.github.com/repos/directus/directus/tags","https://api.github.com/repos/directus/directus/git/blobs{/sha}","https://api.github.com/repos/directus/directus/git/tags{/sha}","https://api.github.com/repos/directus/directus/git/refs{/sha}","https://api.github.com/repos/directus/directus/git/trees{/sha}","https://api.github.com/repos/directus/directus/statuses/{sha}","https://api.github.com/repos/directus/directus/languages","https://api.github.com/repos/directus/directus/stargazers","https://api.github.com/repos/directus/directus/contributors","https://api.github.com/repos/directus/directus/subscribers","https://api.github.com/repos/directus/directus/subscription","https://api.github.com/repos/directus/directus/commits{/sha}","https://api.github.com/repos/directus/directus/git/commits{/sha}","https://api.github.com/repos/directus/directus/comments{/number}","https://api.github.com/repos/directus/directus/issues/comments{/number}","https://api.github.com/repos/directus/directus/contents/{+path}","https://api.github.com/repos/directus/directus/compare/{base}...{head}","https://api.github.com/repos/directus/directus/merges","https://api.github.com/repos/directus/directus/{archive_format}{/ref}","https://api.github.com/repos/directus/directus/downloads","https://api.github.com/repos/directus/directus/issues{/number}","https://api.github.com/repos/directus/directus/pulls{/number}","https://api.github.com/repos/directus/directus/milestones{/number}","https://api.github.com/repos/directus/directus/notifications{?since,all,participating}","https://api.github.com/repos/directus/directus/labels{/name}","https://api.github.com/repos/directus/directus/releases{/id}","https://api.github.com/repos/directus/directus/deployments","2012-12-12T01:35:36Z","2026-04-15T04:20:19Z","2026-04-14T21:58:02Z","git://github.com/directus/directus.git","git@github.com:directus/directus.git","https://github.com/directus/directus.git","https://directus.io",439603,34792,"TypeScript",true,4701,388,{"key":338,"name":339,"spdx_id":340,"url":10,"node_id":341},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[50,344,345,346,347,348,265,349,350,351,352,353,354,355,356,357,358,359,360,361],"app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":265,"id":269,"node_id":270,"avatar_url":271,"gravatar_id":272,"url":273,"html_url":274,"followers_url":275,"following_url":276,"gists_url":277,"starred_url":278,"subscriptions_url":279,"organizations_url":280,"repos_url":281,"events_url":282,"received_events_url":283,"type":242,"user_view_type":284,"site_admin":267},327,{"metadata":10,"logo":367,"helpful_resources":368,"extensions":372,"date_updated":376,"user_updated":377,"date_created":378,"user_created":379,"sort":10,"id":380,"content":381,"website":382,"status":383,"category":384,"description":385,"slug":386,"name":387,"external_resources":388,"extensionDetails":389},"e6d62ce7-cfb3-4ff3-82e7-019d41014563",[369],{"title":370,"url":371},"Clarifai API Documentation","https://docs.clarifai.com/",[373,374,375],"@directus-labs/ai-alt-text-writer-operation","@directus-labs/ai-image-moderation-operation","@directus-labs/ai-text-extraction-operation","2025-07-31T13:05:13.514Z","1a9ab95a-93bc-4908-af85-0d42bb6e6aa6","2025-07-11T14:29:17.190Z","1cd0a355-b103-477d-9375-61e88f3110f8","df35b17b-e21f-4531-a2cd-2b8d07850a33","\u003Cp>Clarifai is a leading AI platform specializing in computer vision and image analysis. Their tools use advanced recognition models to identify, classify, and extract information from images, making them popular in fields that need accurate visual data processing.\u003C/p>\n\u003Cp>For teams working with Directus, Clarifai&rsquo;s integrations offer practical ways to manage and enhance visual content. With the AI Alt Text Writer extension, you can automatically generate descriptive alt text for images, improving accessibility and SEO without manual effort.\u003C/p>\n\u003Cp>The AI Image Moderation tool helps flag and filter out inappropriate or unwanted images before they reach your users, keeping your content safe and on-brand. If you need to pull text from images for indexing, search, or automation, the AI Text Extraction extension makes it easy to turn visual data into usable text. These tools help simplify the process of handling large amounts of image data within Directus.\u003C/p>\n\u003Cp>They support content creators and data managers by automating repetitive tasks, reducing the risk of human error, and speeding up workflows. If you&rsquo;re looking to add robust image recognition or moderation to your Directus project, Clarifai&rsquo;s extensions are a reliable choice for integrating AI-driven data tooling.\u003C/p>","https://www.clarifai.com","published","AI","Computer vision and AI image analysis with Clarifai's recognition models","clarifai","Clarifai",[],[390,409,430],{"description":391,"featured_image":392,"formatted_description":391,"formatted_name":393,"host_version":394,"id":395,"images":396,"last_updated":397,"license":398,"name":373,"published_at":399,"publisher":400,"readme":403,"recent_downloads_30_days":404,"recent_downloads_7_days":405,"repository_url":406,"sandbox":334,"total_downloads":407,"type":408},"Use Clarifai to create captions for your image files.","https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-alt-text-writer/docs/options.png","AI Alt Text Writer Operation","^10.10.0","ea8dce82-795e-42fa-a12b-d0cb48d7d218",[392],1766559443,"MIT",1710793532,{"id":401,"username":402,"verified":267},"d490bc00-b01e-443a-a62f-2c109aa009f9","GitHub Actions","# AI Alt Text Writer Operation\n\nCreate captions for your images within Directus Files with this custom operation, using [Clarifai](https://www.clarifai.com).\n\n![The AI Alt Text Writer operation, showing available options](https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-alt-text-writer/docs/options.png)\n\nThis operation requires two options to be set - first a personal access token from [Clarifai](https://www.clarifai.com) (you can find this in your personal settings under [Security](https://clarifai.com/settings/security)), and a link to the image file. The operation will return a string containing a text that describes the image.\n\nYou can use the operation to then save the result to a file description or item, or run further automation on the output.\n\n## Output\n\nThis operation will output the text that was generated from the provided image:\n\n```json\n\"a photograph of a man standing in front of a large explosion of smoke\"\n```\n\n## Flow Setup\n\n### Automatically Write Alt Text For New Files\n\nCreate a Flow with an **Event Hook** action trigger and a scope of `files.upload`. Use the AI Alt Text Writer operation, setting the File URL to `https://your-directus-project-url/assets/{{ $trigger.key }}`, being sure to provide your specific Directus Project URL.\n\nThis 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.\n\nThis 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:\n\n```json\n{\n    \"$trigger\": {\n        \"payload\": {\n            \"type\": {\n                \"_contains\": \"image\"\n            }\n        }\n    }\n}\n```\n\n### Write Alt Text On-Demand\n\nCreate 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] }}`.\n\nUse the AI Alt Text Writer 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.\n",117,17,"https://github.com/directus-labs/extensions.git",1689,"operation",{"description":410,"featured_image":411,"formatted_description":410,"formatted_name":412,"host_version":394,"id":413,"images":414,"last_updated":415,"license":398,"name":375,"published_at":416,"publisher":417,"readme":426,"recent_downloads_30_days":427,"recent_downloads_7_days":428,"sandbox":334,"total_downloads":429,"type":408},"Use Clarifai to find and extract text from image files.","https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-text-extraction-operation/docs/options.png","AI Text Extraction Operation","60dbf6dd-b697-417e-95a4-b8634a22f51c",[411],1734520372,1710793450,{"github_avatar_url":418,"github_bio":419,"github_blog":420,"github_company":421,"github_location":422,"github_name":423,"github_username":424,"id":425,"username":424,"verified":334},"https://avatars.githubusercontent.com/u/804683?v=4","(╯°□°）╯︵ TABLEFLIP","http://elsmore.me","@DigitalSpeed","UK","Mike Elsmore","ukmadlz","74ce2e77-733a-4e9a-b96d-93bf6264f622","# AI Text Extraction Operation\n\nExtract text from image files within Directus Files with this custom operation, using [Clarifai](https://www.clarifai.com).\n\n![Sample output](https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-text-extraction-operation/docs/options.png)\n\nThis operation requires two options to be set - first a personal access token from [Clarifai](https://www.clarifai.com) (you can find this in your personal settings under [Security](https://clarifai.com/settings/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.\n\nYou can use the operation to then save the result to a file description or item, or run further automation on the output.\n\n## Output\n\nThis operation outputs a JSON object with the following structure:\n\n```json\n{\n  \"text\": \"DIGGING\\nTHE RABBIT HOLE\",\n  \"regions\": [\n    {\n      \"id\": \"1e3fcaca88308d377d567966e4ae1dda\",\n      \"region_info\": {\n        \"bounding_box\": {\n          \"top_row\": 0.6302083,\n          \"left_col\": 0.102489024,\n          \"bottom_row\": 0.703125,\n          \"right_col\": 0.32796484\n        }\n      },\n      \"data\": {\n        \"text\": {\n          \"raw\": \"DIGGING\",\n          \"text_info\": {\n            \"encoding\": \"UnknownTextEnc\"\n          }\n        }\n      },\n      \"value\": 0.9584053\n    },\n      ...\n  ]\n}\n```\n\n## Flow Setup\n\n### Automatically Extract Text From New Files\n\nCreate 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.\n\nThis 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.\n\nThis 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:\n\n```json\n{\n    \"$trigger\": {\n        \"payload\": {\n            \"type\": {\n                \"_contains\": \"image\"\n            }\n        }\n    }\n}\n```\n\n### Extract Text On-Demand\n\nCreate 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] }}`.\n\nUse 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.\n",19,0,650,{"description":431,"featured_image":432,"formatted_description":431,"formatted_name":433,"host_version":394,"id":434,"images":435,"last_updated":437,"license":398,"name":374,"published_at":438,"publisher":439,"readme":440,"recent_downloads_30_days":441,"recent_downloads_7_days":442,"sandbox":334,"total_downloads":443,"type":408},"Use Clarifai's Moderation Recognition Model to analyze image safety.","https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-image-moderation-operation/docs/options.png","AI Image Moderation Operation","1fe238d2-c520-4306-b1d5-d81c05ade200",[432,436],"https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-image-moderation-operation/docs/output.png",1734520062,1710532001,{"github_avatar_url":418,"github_bio":419,"github_blog":420,"github_company":421,"github_location":422,"github_name":423,"github_username":424,"id":425,"username":424,"verified":334},"# AI Image Moderation Operation\n\nAnalyze images for drugs, suggestive or explicit material, powered by Clarifai.\n\n![The AI Image Moderation operation, showing a Clarifai API Token field, File URL, and threshold](https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-image-moderation-operation/docs/options.png)\n\nThis operation contains four configuration options - a [Clarifai API Key](https://clarifai.com/settings/security), a link to a file, and a threshold percentage for the concepts to be 'flagged'. It returns a JSON object containing a score for each concept, and an array of which concepts are over the threshold.\n\n![The output showing a JSON object containing a list of conecpts with values, and an array of flagged concepts.](https://raw.githubusercontent.com/directus-labs/extensions/main/packages/ai-image-moderation-operation/docs/output.png)\n\n## Output\n\nThis operation outputs a JSON object with the following structure:\n\n```json\n{\n  \"concepts\": [\n    {\n      \"name\": \"drug\",\n      \"value\": \"99.99\"\n    },\n    {\n      \"name\": \"suggestive\",\n      \"value\": \"0.00\"\n    },\n    {\n      \"name\": \"gore\",\n      \"value\": \"0.00\"\n    },\n    {\n      \"name\": \"explicit\",\n      \"value\": \"0.00\"\n    }\n  ],\n  \"flags\": [\n    \"drug\"\n  ]\n}\n```\n\n## Flow Setup\n\n### Automatically Moderate New Files\n\nCreate a Flow with an **Event Hook** action trigger and a scope of `files.upload`. Use the AI Image Moderation operation, setting the File URL to `https://your-directus-project-url/assets/{{ $trigger.key }}`, being sure to provide your specific Directus Project URL.\n\nThis 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.\n\nThis 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 moderation operation. The following condition rule will check that the file is an image:\n\n```json\n{\n    \"$trigger\": {\n        \"payload\": {\n            \"type\": {\n                \"_contains\": \"image\"\n            }\n        }\n    }\n}\n```\n",15,1,505,{"id":445,"icon":446,"content":447,"link":448},"812bf73d-ebfb-4246-9538-937a09a0c795","connected_tv","Learn more about our native MCP","https://directus.io/mcp",{"alignment":450,"style":451,"experiment_enabled":267,"experiment":10,"experiment_variant":452,"buttons":455,"variants":464},"center","default",{"id":453,"key":454,"experiment":10},"8c4951b4-a6f9-4c06-9f71-fd39a3bdad1e","control",[456,458,461],{"id":441,"block_button_id":457},"358b0659-1f05-4427-bd1c-4bc03a43c182",{"id":459,"block_button_id":460},16,"9df3f40e-6272-4ec6-a0d7-cc29265e087c",{"id":462,"block_button_id":463},232,"1b444c23-b593-4391-9410-4ca5d2c7a7cb",[465],{"id":466,"alignment":450,"style":451,"buttons":467,"experiment_variant":474},"e1885d45-3119-41a3-8294-3cd796ea6f02",[468,471],{"id":469,"block_button_id":470},203,"ade37731-147d-48c4-864a-cec007576362",{"id":472,"block_button_id":473},202,"1cb4e89f-f7de-4b46-bbb8-080191517a72",{"id":475,"key":476},"66d2be4f-2492-4944-8060-039c15515918","variant",{"id":79,"title":478,"description":479,"image":480,"external_url":481,"icon":446,"badge":482,"page":10,"resource":10},"Directus TV","Go down the rabbit hole with hours of original video content from our team. ","ab70faf5-fc28-4608-a7e7-74fd4f020a9d","/tv","Video",{"id":11,"title":484,"description":485,"image":486,"external_url":10,"icon":10,"badge":10,"page":487,"resource":10},"Built With Directus","See what everyone's been building with Directus","e658de72-fb08-4ed2-8029-215c712c789e",{"permalink":488},"/built-with-directus",{"id":457,"external_url":10,"label":490,"color":491,"outline":267,"icon":10,"size":492,"target":493,"ph_event":10,"page":494,"resource":10},"Book a Demo","primary","medium","_self",{"permalink":495},"/demo",{"id":460,"external_url":497,"label":498,"color":499,"outline":267,"icon":10,"size":492,"target":493,"ph_event":10,"page":10,"resource":10},"https://directus.cloud/account/register","Get Started","secondary",{"id":463,"external_url":239,"label":501,"color":499,"outline":334,"icon":502,"size":492,"target":493,"ph_event":10,"page":10,"resource":10},"Log In","arrow_forward"]