byted-tos-image-process について
Volcengine TOS に保存された画像をスクリプトで確認・加工するスキルです。形式変換やリサイズ、透かしに加え、TOS オブジェクトに限り VLM による画像理解にも対応します。
主な機能
- 01画像形式・寸法・サイズの確認
- 02形式変換とリサイズ
- 03マーク描画と可視透かしの追加
- 04不可視透かしの埋め込み
- 05TOS 画像の AI 理解
活用シーン
- 01TOS 画像のメタデータ確認
- 02保存画像の変換やリサイズ
- 03可視・不可視透かしの追加
- 04TOS 画像の説明、OCR、視覚的な質問応答
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bytedance/ agentkit-samples --skill byted-tos-image-processインストール後、Claude Code で/byted-tos-image-processを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEREADME.mdREFERENCE.mdrequirements.txtWORKFLOWS.mdscripts/image_blindwatermark.pyimage_draw.pyimage_format.pyimage_info.pyimage_process.pyimage_resize.pyimage_understanding.pyimage_watermark.pyimage_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.py | image/draw を使用して、画像に点とオプションでそれらを結ぶ線を描画します。 |
scripts/image_zoom.py | image/resize と crop を連結し、エージェント向けのズーム結果を作成します。 |
scripts/image_watermark.py | 位置、回転、タイル表示、不透明度を指定して、可視テキストまたは画像の透かしを追加します。 |
scripts/image_blindwatermark.py | 電子透かしを埋め込みます。アカウントレベルの権限と、512×512 px 以上の画像が必要です。 |
scripts/image_process.py | 任意の生の image/... 処理文字列を渡します。 |
scripts/image_understanding.py | VLM(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-visionVLM モデルを使ってimage/understandingを実行します。--promptパラメーターは必須です。アカウントのホワイトリストへの登録が必要です。応答時間は通常 10~60 秒です。 - 言語:ユーザーの希望する言語で回答してください。
詳細情報
- セットアップと環境:README.md
- パラメーターリファレンス:REFERENCE.md
- エンドツーエンドのワークフロー:WORKFLOWS.md