camscanner-image-detect-tampering

Use CamScanner to detect whether an image has been PS-edited, manipulated, or tampered with. Powered by a manipulation-detection engine that identifies photo-editing traces, splicing, retouching, and other signs of tampering. Returns a JSON result with `is_tampered` (boolean) and `result_text` (human-readable). Use when the user asks whether a photo is genuine, wants to verify an image's authenticity, or asks "is this PS-ed / photoshopped / edited". Triggers on "检测图片是否PS", "是否被篡改", "图片验真", "PS检测", "detect image tampering", "is this photoshopped", "check if image was edited", or when the user shares an image and asks whether it has been modified.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "camscanner-image-detect-tampering" with this command: npx skills add CamScanner/camscanner-image-detect-tampering

CamScanner Image Detect Tampering

Overview

CamScanner provides a manipulation-detection engine that determines whether an image has been PS-edited, spliced, retouched, or otherwise tampered with. The workflow is a 2-step pipeline: upload the image, then validate it with validate_mode: 1. Unlike conversion skills, this skill does not produce a file — the validate step returns a JSON result whose key fields (is_tampered, result_text) should be reported back to the user directly.

When to Use

  • User asks whether an image has been photoshopped, retouched, or manipulated
  • User wants to verify the authenticity of a photo or scanned document
  • User asks "is this PS-ed / tampered / edited?" or similar authenticity questions
  • User shares an image and explicitly asks whether it has been modified

Presenting the Result

  • Always read is_tampered and result_text from the response and report them in plain language.
  • Match the user's language. result_text is returned in Chinese by the API. If the user asked in English (or any other language), translate/rephrase it into that language. If the user asked in Chinese, you can use result_text as-is.
  • Do not claim tampering when is_tampered is false; do not claim an image is clean when is_tampered is true.

Privacy & Data

Important: Privacy & Data Flow Notice

  • Third-party service: This skill sends your files to CamScanner's official servers (ai-tools.camscanner.com) for processing.
  • Data retention: CamScanner servers process your files in real-time. Files are not permanently stored on the server.
  • Result: Only a JSON detection result is returned — no file is downloaded.

API Reference

Base URL: https://ai-tools.camscanner.com

Supported Validations

source_typevalidate_modeDetectionEngine
image1PS / tampering detectionmanipulationdetection

Step 1: Upload Image

BASE="https://ai-tools.camscanner.com"

IN_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/upload_file/execute" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@/path/to/image.jpg" | jq -r '.tool_result.data.file_id')

Response:

{
  "code": 200,
  "tool": "upload_file",
  "tool_result": {
    "success": true,
    "data": {
      "file_id": "file_1741857600_ab12cd34ef56.jpg",
      "size": 24576
    }
  }
}

Step 2: Validate Image (Detect Tampering)

curl -sS -X POST "$BASE/v1/tools/validate_image/execute" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$IN_FILE_ID\",\"validate_mode\":1}"

Response (tampered example):

{
  "code": 200,
  "tool": "validate_image",
  "tool_result": {
    "success": true,
    "data": {
      "engine": "manipulationdetection",
      "file_id": "file_xxx.jpg",
      "is_tampered": true,
      "result_text": "检测到图片存在 PS/篡改痕迹",
      "review_state": "auto_checked",
      "validate_mode": 1
    },
    "metadata": {
      "engine": "manipulationdetection",
      "is_tampered": true,
      "result_text": "检测到图片存在 PS/篡改痕迹",
      "review_state": "auto_checked",
      "validate_mode": 1
    }
  }
}

Interpreting the Result

FieldTypeMeaning
is_tamperedbooleantrue = tampering detected, false = no tampering detected
result_textstringHuman-readable conclusion (Chinese by default — translate for other languages)
review_statestringReview status (e.g. auto_checked) — informational, not user-facing
validate_modeintegerEcho of the requested mode (always 1 for PS/tampering detection)

Quick Reference: Complete Pipeline

Detect whether an image has been PS-edited (two-step, reads JSON result):

BASE="https://ai-tools.camscanner.com"
INPUT_IMAGE="/path/to/image.jpg"

# Upload
IN_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/upload_file/execute" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@$INPUT_IMAGE" | jq -r '.tool_result.data.file_id')

# Validate and extract key fields
RESULT=$(curl -sS -X POST "$BASE/v1/tools/validate_image/execute" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$IN_FILE_ID\",\"validate_mode\":1}")

IS_TAMPERED=$(echo "$RESULT" | jq -r '.tool_result.data.is_tampered')
RESULT_TEXT=$(echo "$RESULT" | jq -r '.tool_result.data.result_text')

echo "is_tampered: $IS_TAMPERED"
echo "result_text: $RESULT_TEXT"

Common Mistakes

MistakeFix
Wrong Content-Type on uploadUpload uses application/octet-stream, not multipart/form-data
Using GET instead of POSTBoth endpoints use POST
Passing validate_mode as a stringvalidate_mode is an integer — use 1, not "1"
Including output_mode in the requestvalidate_image does not use output_mode; it always returns JSON
Treating a missing is_tampered as safeAlways check code == 200 and tool_result.success == true before reading
Reporting result_text verbatim in ENresult_text is Chinese; translate to match the user's language

Error Handling

Check each step before proceeding:

# After upload
if [ -z "$IN_FILE_ID" ] || [ "$IN_FILE_ID" = "null" ]; then
  echo "Upload failed"; exit 1
fi

# After validate
if [ "$IS_TAMPERED" = "null" ] || [ -z "$IS_TAMPERED" ]; then
  echo "Validation failed"; exit 1
fi

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Huo15 Openclaw Wechat Service

OpenClaw 微信服务号(公众号)渠道插件 v2.2.0 —— 新增**角色权限系统**:permissionMode='role-based' 支持 superadmin/admin/editor/operator/customer 五级角色,自由配置 rolePermissions 白名单;**AI 对话...

Registry SourceRecently Updated
General

AIWolfPK - AI狼人杀

四个AI互相猜疑,你坐着看戏。每局30秒,到底谁是狼? Four AIs play Werewolf while you watch. 30s per round. Spot the wolf before they do.

Registry SourceRecently Updated
General

Hot Content Creator

热点内容创作助手:自动抓取多平台热点,筛选创作方向,生成小红书封面图和虚拟博主形象, 写出有人味的爆款内容。触发词:热点创作、追热点、创作方向、小红书方向、抖音方向。 适用场景:需要从热点中挖掘内容创作方向并生成配图+文案的完整工作流。

Registry SourceRecently Updated
General

飞书 Markdown 文档发布器,完美支持支持图片、表格

将 Markdown 文件发布为飞书(Feishu/Lark)在线文档。 支持完整的 Markdown 语法,包括标题、段落、表格、有序/无序列表、 待办事项、分隔线、加粗/斜体等富文本样式。 当用户需要将本地 Markdown 文件同步或发布到飞书文档时使用。

Registry SourceRecently Updated