mcpField
B
byted-tos-image-process

byted-tos-image-process

github.com/bytedanceクリエイティブ・メディア47745 回インストール今日更新
リポジトリ

byted-tos-image-process について

Volcengine TOS に保存された画像をスクリプトで確認・加工するスキルです。形式変換やリサイズ、透かしに加え、TOS オブジェクトに限り VLM による画像理解にも対応します。

主な機能

  1. 01画像形式・寸法・サイズの確認
  2. 02形式変換とリサイズ
  3. 03マーク描画と可視透かしの追加
  4. 04不可視透かしの埋め込み
  5. 05TOS 画像の AI 理解

活用シーン

  1. 01TOS 画像のメタデータ確認
  2. 02保存画像の変換やリサイズ
  3. 03可視・不可視透かしの追加
  4. 04TOS 画像の説明、OCR、視覚的な質問応答

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bytedance/agentkit-samples --skill byted-tos-image-process

インストール後、Claude Code で/byted-tos-image-processを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
README.md
REFERENCE.md
requirements.txt
WORKFLOWS.md
scripts/
image_blindwatermark.py
image_draw.py
image_format.py
image_info.py
image_process.py
image_resize.py
image_understanding.py
image_watermark.py
image_zoom.py

詳細

Volcengine TOS 画像処理

Volcengine TOS に保存された画像のメタデータの確認や変換(形式変換、リサイズ、透かし、電子透かし)を行い、AI を活用して画像を理解します。

セットアップ(環境ごとに初回のみ)

初回利用時に依存関係をインストールします。

cd {baseDir}
pip install -r {baseDir}/requirements.txt

その後、Python 3.7 以降でスクリプトを実行します。

python3 {baseDir}/scripts/<script>.py <args>

tos の ModuleNotFoundError が表示された場合は、依存関係を再インストールしてください。

環境変数

このスキルでは、metadata ブロックで宣言されている TOS ID を使用します。一般的なランタイム変数は次のとおりです。

環境変数必須説明
TOS_ACCESS_KEYはいTOS アクセスキー ID
TOS_SECRET_KEYはいTOS シークレットアクセスキー
TOS_ENDPOINTはいTOS エンドポイント URL
TOS_REGIONはいTOS リージョン
TOS_BUCKETはい画像を保存するソースバケット
TOS_OBJECT_KEYいいえ画像のソースオブジェクトキー。--key で上書きできます
TOS_SECURITY_TOKENいいえ一時的な認証情報を使用する場合の STS セッショントークン
TOS_SAVEAS_BUCKETいいえ処理結果の保存先となるデフォルトのバケット
TOS_SAVEAS_OBJECT_PREFIXいいえ処理結果の保存に使用するデフォルトのキー接頭辞

クイックスタート(一般的なタスク)

# Read image metadata
python3 {baseDir}/scripts/image_info.py --key photo.jpg

# Convert to WebP
python3 {baseDir}/scripts/image_format.py --key photo.jpg --f webp --output converted.webp

# Resize to width 500
python3 {baseDir}/scripts/image_resize.py --key photo.jpg --width 500 --output resized.jpg

# Draw points and connecting lines
python3 {baseDir}/scripts/image_draw.py --key photo.jpg \
  --points 50x50-200x120-320x220 --line --color FF0000 --output draw.jpg

# Zoom by resize + crop
python3 {baseDir}/scripts/image_zoom.py --key photo.jpg \
  --resize-w 1200 --crop-w 500 --crop-h 400 --gravity center --output zoom.jpg

# Add visible text watermark
python3 {baseDir}/scripts/image_watermark.py --key photo.jpg \
  --text "My Brand" --font fangzhengshusong --color FF0000 --size 72 \
  --gravity center --output watermarked.jpg

# Embed blind watermark (requires ≥512×512 image and account permission)
python3 {baseDir}/scripts/image_blindwatermark.py --key photo.jpg \
  --kv text=HelloBlind --output blind.jpg

# Run a custom process string
python3 {baseDir}/scripts/image_process.py --key photo.jpg \
  --process "image/resize,w_300,h_300,m_fill" --output filled.jpg

# Preview the resolved request without calling TOS
python3 {baseDir}/scripts/image_resize.py --key photo.jpg \
  --width 500 --dry-run --json

# AI-powered understanding for a TOS image object (requires whitelist)
python3 {baseDir}/scripts/image_understanding.py --key photo.jpg \
  --prompt "Describe this image in detail"
python3 {baseDir}/scripts/image_understanding.py --key document.png \
  --prompt "识别图片中的所有文字内容"

利用可能なスクリプト

スクリプト目的
scripts/image_info.py画像のメタデータ(形式、寸法、サイズ)を読み取ります。TOS が生バイトを返した場合は、ローカルで解析します。
scripts/image_format.py品質を指定して、形式(jpg、png、webp)を変換します。
scripts/image_resize.py幅、高さ、モードを指定してリサイズします。
scripts/image_draw.pyimage/draw を使用して、画像に点とオプションでそれらを結ぶ線を描画します。
scripts/image_zoom.pyimage/resize と crop を連結し、エージェント向けのズーム結果を作成します。
scripts/image_watermark.py位置、回転、タイル表示、不透明度を指定して、可視テキストまたは画像の透かしを追加します。
scripts/image_blindwatermark.py電子透かしを埋め込みます。アカウントレベルの権限と、512×512 px 以上の画像が必要です。
scripts/image_process.py任意の生の image/... 処理文字列を渡します。
scripts/image_understanding.pyVLM(doubao-seed-1.6-vision)を介して、TOS 画像オブジェクトを AI で理解します。画像の説明、OCR、顔検出、画像に関する質疑応答に対応しますが、ソース画像が TOS オブジェクトの場合に限ります。アカウントのホワイトリスト登録が必要です。

すべてのスクリプトで --key を指定すると TOS_OBJECT_KEY を上書きでき、--output でローカル保存先を指定できます。また、--saveas-bucket/--saveas-object で TOS 間の永続化先を指定できます。保存先 CLI 引数を省略した場合は、TOS_SAVEAS_BUCKET と TOS_SAVEAS_OBJECT_PREFIX がデフォルトとして使用されます。ほとんどのスクリプトは機械可読な出力を得るための --json に対応しており、処理を組み立てるすべてのスクリプトは、TOS を呼び出さずに解決済みのリクエストをプレビューする --dry-run に対応しています。各スクリプトに -h を指定すると、使用方法の詳細を確認できます。

対象外

  • TOS の外部にあるローカルのデスクトップツールを使った画像編集。
  • TOS のバケット/オブジェクトキーに関係しない、通常のアップロード済みスクリーンショット、ローカル画像ファイル、モバイル UI のスクリーンショット、汎用 OCR、顔検出、画像に関する質疑応答。代わりに、モデル標準のビジョン機能またはローカルファイルツールを使用してください。
  • 動画またはドキュメントの処理(byted-tos-video-process または byted-tos-doc-process を使用してください)。
  • TOS 以外のストレージプロバイダー。

ルール

  • 認証:認証には、上記のmetadataブロックで宣言された TOS ID を使用します。オブジェクトの選択は、スクリプトごとに--keyで上書きできます。
  • 認証情報の安全性:TOS_ACCESS_KEY、TOS_SECRET_KEY、TOS_SECURITY_TOKEN、モデル API キーなど、認証情報を含む環境変数の値を決して出力しないでください。環境をエコーしたりダンプしたりせず、スクリプトを直接実行して動作を検証してください。
  • 適用範囲:このスキルは、Volcengine TOS の画像オブジェクト、または TOS の画像処理ワークフローにのみ使用してください。ユーザーが通常のローカル画像やスクリーンショットを添付または参照していて、TOS に言及していない場合は、これらのスクリプトを呼び出さず、標準のビジョン機能またはローカルファイル機能で対応してください。
  • ドライラン:--dry-run --jsonを使ってパラメーターを検証し、生成されたprocess文字列を確認してください。ドライランでは TOS に接続せず、AK/SK も不要です。bucket/key が指定されていない場合は、可能な範囲で明示的なプレースホルダーが使用されます。実際に実行するには、有効な TOS 認証情報、bucket/key、およびネットワークアクセスが必要です。
  • パラメーターの参照元:process文字列の正確な構文は、Volcengine TOS の公式ドキュメントで定義されています。不明な場合は、REFERENCE.mdを確認してください。
  • ウォーターマークのエンコード:image/watermarkのテキストおよびフォントのパラメーターには、URL セーフな Base64 エンコードが必要です。--textと--fontを指定すると、ウォーターマークスクリプトが自動的にエンコードします。
  • 不可視ウォーターマークの制約:元画像は少なくとも 512×512 ピクセルである必要があり、アカウントで不可視ウォーターマーク機能が有効になっている必要があります。この機能が使えない場合、スクリプトは[SKIP]を出力して終了します(厳密にエラーとするには--strictを使用してください)。
  • 画像の理解:TOS の画像オブジェクトに限り、doubao-seed-1.6-vision VLM モデルを使ってimage/understandingを実行します。--promptパラメーターは必須です。アカウントのホワイトリストへの登録が必要です。応答時間は通常 10~60 秒です。
  • 言語:ユーザーの希望する言語で回答してください。

詳細情報

コメント