Add Photo Certificate Watermarks logo

Add Photo Certificate Watermarks

Community
chujianyun
add-photo-certificate-watermarks

为照片、身份证、护照、学位证、毕业证、资格证、营业执照等证件或证书扫描件及 PDF 添加本地文字水印。用户提出照片加版权水印、身份证或学历证件添加“仅限某用途”水印、资质文件批量加水印、生成水印预览,或需要保持头像、二维码、印章等区域可辨认时使用。支持 JPEG、PNG、WebP 和 PDF,默认先预览、保留原件并清除图片元数据。不用于去除水印、伪造或篡改证件内容,也不用于仅设计 Logo 水印素材。

Overview

Publisherchujianyun
Repositoryskills
Skill nameadd-photo-certificate-watermarks
Stars
743
Forks
103
Bundled files
3
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by chujianyun on GitHub. Read the source before you install it.

Installation

Install the Add Photo Certificate Watermarks AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/chujianyun/skills/tree/main/skills/add-photo-certificate-watermarks
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/chujianyun/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/add-photo-certificate-watermarks .claude/skills/add-photo-certificate-watermarks
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Add Photo Certificate Watermarks in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Add Photo Certificate Watermarks on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Add Photo Certificate Watermarks is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

照片与证件水印

使用随 Skill 提供的本地脚本生成可复现的文字水印。先预览,再批量输出;绝不覆盖原件。

工作流

复制并跟踪:

text
水印进度:
- [ ] 1. 确认输入与用途
- [ ] 2. 选择预设与水印文案
- [ ] 3. 检查依赖并生成预览
- [ ] 4. 审核可读性和避让区域
- [ ] 5. 批量输出并交付

1. 确认输入与用途

  • 解析用户给出的文件或目录;只接受 JPEG、PNG、WebP、PDF。
  • 判断是照片版权标记还是证件 / 证书用途限制;不确定时只问用途这一项。
  • 证件范围包括身份证、护照、学位证、毕业证、成绩单、资格证、营业执照和资质证明等材料。
  • 若请求去水印、修改证件内容或制造误导性材料,停止并说明不能执行。
  • 创建独立输出目录。不要写回输入路径,不要删除原件。

2. 选择预设与文案

  • 照片:使用 --preset photo,默认右下角单点水印,适合作者名、品牌名或版权声明。
  • 证件 / 证书:使用 --preset certificate,默认斜向平铺,适合身份证、学历证件、资格证和资质文件的“仅用于……,再次复印无效”等用途限制。
  • 水印文案必须具体、短且与真实用途一致。不要擅自写身份证号、电话、住址等新的个人信息。
  • 需要文案建议、参数说明或避让原则时,读取 references/presets-and-safety.md。

3. 检查依赖并生成预览

先检查:

bash
python3 -c "from PIL import Image; import fitz; print('watermark dependencies OK')"

缺少依赖时,说明将安装到哪个 Python 环境并征得用户同意,再执行:

bash
python3 -m pip install --upgrade Pillow PyMuPDF

先对第一个输入生成预览:

bash
python3 scripts/add_watermark.py INPUT \
  --output-dir OUTPUT_DIR \
  --text "仅用于办理示例业务,其他用途无效" \
  --preset certificate \
  --preview-only

照片示例:

bash
python3 scripts/add_watermark.py PHOTO.jpg \
  --output-dir OUTPUT_DIR \
  --text "© Example Studio" \
  --preset photo \
  --preview-only

在实际使用时,从当前 Skill 目录解析 scripts/add_watermark.py 的绝对路径,不要假设调用者的工作目录就是 Skill 目录。

4. 审核预览

必须检查预览,不能仅以命令成功作为通过:

  • 水印清晰但不遮挡主体信息。
  • 证件 / 证书水印至少穿过部分内容区域,不能只落在可裁掉的空白边缘。
  • 身份证、护照等身份证明上的人像、姓名、证件号码、机读码或二维码仍可核验;水印可以低透明度穿过,但不能遮成不可辨认。
  • 学位证、毕业证和资格证上的印章、签名、证书编号仍可辨认。
  • 文字没有被裁切,中文没有显示成方框。

需要避让时,使用一个或多个归一化矩形;格式为 左,上,右,下,取值均为 0 到 1:

bash
python3 scripts/add_watermark.py CERT.pdf \
  --output-dir OUTPUT_DIR \
  --text "仅用于供应商资质审核,其他用途无效" \
  --preset certificate \
  --exclude 0.72,0.06,0.94,0.25 \
  --exclude 0.62,0.68,0.90,0.92 \
  --preview-only

脚本不会自动识别敏感区域。根据预览调整 --opacity、--font-size、--layout、--angle 或 --exclude,直到通过。

5. 批量输出并交付

移除 --preview-only,保持已确认的参数不变:

bash
python3 scripts/add_watermark.py INPUT_OR_DIRECTORY \
  --output-dir OUTPUT_DIR \
  --text "仅用于办理示例业务,其他用途无效" \
  --preset certificate \
  --recursive
  • 输出文件默认追加 _watermarked;已存在同名文件时停止,不覆盖。
  • 输出目录位于输入目录内部时,递归扫描会自动排除该输出目录,避免结果被再次加水印。
  • 图片默认移除 EXIF 等元数据;只有用户明确需要保留时才使用 --keep-metadata,并提醒其可能包含拍摄时间、设备或位置。
  • 对一批同版式文件,至少抽查首个、最后一个和一个中间结果。不同版式不要共用未经复核的避让坐标。
  • 最终交付输出目录、文件数量、使用的文案和预设,并明确原件未修改。不要在回复中展示身份证号、证件正文或其他私人信息。

失败处理

  • 文件损坏、加密 PDF、零页 PDF或格式不支持:停止该文件,报告文件名和原因,不生成假成功结果。
  • 字体缺失或中文显示异常:要求用户提供支持该文字的 .ttf / .otf / .ttc,再用 --font 指定;不要把未授权字体打包进 Skill。
  • 输出文件已存在:改用新的输出目录或文件名;不要自动删除或覆盖。
  • PDF 处理失败:保留原件和已成功输出,报告失败项;不要把 PDF 静默转成图片冒充原格式。

Gotchas

  • 水印不是密码学保护,仍可能被裁剪、修复或重绘;不要承诺“绝对防盗用”。
  • 过浅的水印失去限制用途的意义,过深则影响核验;必须以预览为准。
  • 同一组 --exclude 坐标只适合同版式页面。PDF 每页布局不同就逐页检查或拆开处理。
  • 身份证、护照的正反面通常不是同一版式,必须分别预览,不能直接共用避让坐标。
  • --keep-metadata 可能保留 GPS、设备和拍摄时间,默认不要启用。
  • 不要在公开日志、临时目录名或交付说明里写证件号码和其他敏感内容。

输出契约

交付时简要说明:

text
水印处理完成
- 输出目录:<绝对路径>
- 结果:<成功数> 个;<失败数> 个
- 预设 / 布局:<photo|certificate> / <corner|tile|center>
- 水印文案:<文案>
- 原件:未修改
- 元数据:已移除 / 按用户要求保留
- 复核:<抽查范围与结论>

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Add Photo Certificate Watermarks AI skill do?

为照片、身份证、护照、学位证、毕业证、资格证、营业执照等证件或证书扫描件及 PDF 添加本地文字水印。用户提出照片加版权水印、身份证或学历证件添加“仅限某用途”水印、资质文件批量加水印、生成水印预览,或需要保持头像、二维码、印章等区域可辨认时使用。支持 JPEG、PNG、WebP 和 PDF,默认先预览、保留原件并清除图片元数据。不用于去除水印、伪造或篡改证件内容,也不用于仅设计 Logo 水印素材。

Why use Add Photo Certificate Watermarks on TypingMind?

Because you install it once and use it with any model. Add Photo Certificate Watermarks is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Add Photo Certificate Watermarks in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/chujianyun/skills/tree/main/skills/add-photo-certificate-watermarks. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Add Photo Certificate Watermarks?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Add Photo Certificate Watermarks?

As many as you like. As long as a model supports skills, you can use Add Photo Certificate Watermarks with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Add Photo Certificate Watermarks AI skill free?

It is published on GitHub by chujianyun. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇