Description:
The Detect Adult Content step enables a FlowWright workflow to analyze an image for adult material using Azure Cognitive Services.
The step belongs to the Azure Cognitive Services category and is exposed in FlowWright with the display name Detect Adult Content. Its XML definition describes the capability as “Detect adult material in images.”
The step accepts an image file path and stores the resulting detection information in a workflow variable or global variable. This allows image-content analysis to become part of an automated workflow and enables subsequent workflow steps to process the returned result.
Typical uses include:
- Screening uploaded images
- Supporting image-content moderation
- Reviewing user-submitted images
- Routing images based on content analysis
- Supporting image approval workflows
- Filtering image content before publication
- Recording image-analysis results
- Automating image-content review
The step can therefore be used as an image-analysis point within workflows where content needs to be evaluated before the process continues.
Inputs
- Image file path – Specifies the path to the image file that should be analyzed. This property is required.
- Variable/Global to store the result – Specifies the workflow variable or global variable where the adult-content detection result will be stored. This property is required.
Returns
- True – Indicates that the image-analysis operation completed successfully. Workflow execution continues through the True path.
- False – Indicates that the image-analysis operation did not complete successfully. Workflow execution continues through the False path.
Usage:
The Detect Adult Content step is typically placed after a workflow receives or generates an image that needs to be analyzed.
During execution:
- Provide the image file path.
- Execute the Detect Adult Content step.
- The image is analyzed for adult material.
- The resulting detection information is stored in the configured workflow variable or global variable.
- Continue workflow processing through the True or False execution path.
A typical workflow might look like this:

Typical workflow scenarios include:
- User-submitted image moderation
- Content approval workflows
- Image publishing workflows
- Automated media screening
- Image intake processes
- Compliance-oriented content review
- Image classification and routing
- Automated content filtering
To use this step, you need to set up an Azure ML service in the FlowWright application. Go to the Status > Settings > Configuration page. Select the Azure ML category from the drop-down menu. Click here to learn more about the Azure ML and Cognitive Service subscription.
A sample Azure ML configuration is provided here for reference.

Example:
Let’s build and execute the “clsAzureMLGetAdultDef” example.
- Create a new process definition named “clsAzureMLGetAdultDef” and open it in designer mode.
- Drag a "clsAzureMLgetAdult" step to the canvas.
- Connect the dots between the “Start” and “clsAzureMLgetAdult” steps, as shown above.
- Define a variable or a global to store the score result.
- Click the "clsAzureMLgetAdult" step to configure its "Required" properties. Provide a name for the step, the source file image path, and a variable or global reference to store the result. Click the Save button. Note: Click the "AI Predict" button for the Copilot to add new process steps that match your process description.

- The image file path indicates where the image is stored on the server. The example image used is included below for reference.

- The “Logging” configuration is necessary for documentation and also measures workflow progress and percent complete. This is achieved by configuring the step state and percent fields individually, as shown in the images below. Configure the “Logging” using the following properties.

- Save the process definition, create a new instance, and run it. Render the process instance. Click the process step to view its properties. The step should retrieve the adult score and IsAdultContent details of an image, and store the result in “variable.result” as configured.

Tips:
- Ensure that the configured Image file path points to an accessible image before executing the step.
- Store the detection result in a workflow variable when it is needed by subsequent steps.
- Use a global variable when the result needs to be referenced more broadly within the workflow.
- Do not treat the True return path itself as the adult-content result; the XML defines the detection result as a separate stored value.
- Use the False path to handle image-processing failures or unexpected input conditions.
- Test representative images before deploying content-review workflows into production.
- Combine this step with decision, notification, approval, reporting, and file-management steps to automate image-content review.
Notes:
- The step belongs to the Azure Cognitive Services category.
- Its display name is Detect Adult Content.
- An image file path is required.
- Variable/Global to store the result is required.
- Both configured properties use the string data type.
- The step provides True and False execution paths.
- The XML does not specify the detailed structure, format, range, or interpretation of the stored adult-content result. Those details should therefore be verified from the runtime implementation rather than assumed.
- The XML defines two input connections and two output connections.
Detect Adult Content vs. Image Categorization:
Both Detect Adult Content (clsAzureMLGetAdult) and Image Categorization (clsAzureMLGetCategories) analyze images using Azure Cognitive Services. However, they address different image-analysis requirements.
| Detect Adult Content | Image Categorization |
|---|---|
| Detects adult material in images. | Categorizes images by subject matter. |
| Display name: Detect Adult Content. | Display name: Image Categorization. |
| Requires an Image file path. | Requires an Image file path. |
| Stores the detection result in a workflow variable/global. | Stores the categorization result in a workflow variable/global. |
| Focuses specifically on adult-content detection. | Focuses on general subject-matter categorization. |
| Useful for content moderation and image-screening workflows. | Useful for image classification, organization, and routing workflows. |
| Has two required properties. | Has two required properties. |
| Provides True/False execution paths. | Provides True/False execution paths. |
When to use each step:
Use Detect Adult Content when the workflow needs to evaluate image safety or the presence of adult material.
Typical examples include:
- Screening uploaded images
- Moderating user-generated content
- Reviewing images before publication
- Routing potentially restricted content
- Supporting content-approval workflows
Use Image Categorization when the workflow needs to determine an image's subject matter or category.
Typical examples include:
- Automatically classifying uploaded images
- Organizing image libraries
- Routing images to category-specific workflows
- Enriching image metadata
- Supporting image-based business classification
Key distinction:
The simplest way to distinguish the two is:
Detect Adult Content: “Does this image contain adult material?”
Image Categorization: “What subject matter does this image belong to?”
The XML definitions establish these purposes directly through their descriptions: “Detect adult material in images” for clsAzureMLGetAdult and “Categorize images by subject matter” for clsAzureMLGetCategories.
In short: use Detect Adult Content for content-safety screening, and Image Categorization for general image classification.
Definition Sample:
You may download the sample workflow definition from the link provided and import it into your FlowWright environment.
Note: Verify and complete any missing configuration after importing the sample, including:
- Image file path
- Variable/Global to store the result
- Image availability and accessibility
- Success and failure workflow branches
- Any downstream processing that consumes the detection result
After verifying the configuration, save and publish the workflow before execution.
Click here to download the sample file.