doubao-web について
Playwright で実際のブラウザーセッションを操作し、Doubao Web で画像を生成するスキル兼 CLI です。生成画像をローカルに保存し、レスポンスストリームからオリジナル画像の URL を取得できます。
主な機能
- 01Playwright によるブラウザー自動化
- 02ログインセッションの保存
- 03プロンプトによる画像生成
- 04SSE レスポンスの解析
- 05出力先、画質、アスペクト比の指定
活用シーン
- 01コマンドラインのプロンプトから画像を生成
- 02生成画像を指定したパスに保存
- 03画質とアスペクト比の選択
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pjf6568/ doubao-web-image --skill doubao-webインストール後、Claude Code で/doubao-webを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
package-lock.json.gitignorepackage.jsonREADME.mdLICENSEtsconfig.jsonscripts/main.tsscripts/doubao-webapi/client.ts詳細
Doubao Web Image Generator
このプロジェクト/スキルは、Playwright を使ってブラウザ操作を自動化し、Doubao Web の実際の環境を直接利用して画像を生成することで、a_bogus 署名のリスクコントロール問題を完全に回避します。(这个项目/技能通过 Playwright 自动化控制浏览器的方式,直接利用豆包 Web 端的真实环境进行图片生成,从而完美避开 a_bogus 签名风控问题。)
Features (機能)
- ログイン状態を
~/.doubao-web-sessionに自動保存します (自动保存登录状态在~/.doubao-web-session) - 実際のブラウザ環境で画像生成プロンプトを送信します (在真实浏览器环境中发送生图 Prompt)
- SSE ストリーミング応答を傍受して解析し、ウォーターマークなしの原画像 URL を取得します (拦截并解析 SSE 流式响应,获取无水印原图 URL)
How to Run (実行方法)
# Default headless mode (silent background run) and original image quality, saving to generated.png
# 默认使用无头模式 (后台静默运行) 和 获取原图画质,并默认保存为 generated.png
npx ts-node scripts/main.ts "A cyberpunk style cat (一只赛博朋克风格的猫咪)"
# Specify image save path (--output or --image)
# 指定图片保存路径 (--output 或 --image)
npx ts-node scripts/main.ts "A cyberpunk style cat" --output="./my_cyber_cat.png"
# Specify image quality (--quality=preview or --quality=original)
# preview fetches faster, original attempts to get high-res quality (default)
# 指定图片画质 (--quality=preview 或 --quality=original)
# preview 抓取速度更快,original 尝试获取大图画质 (默认)
npx ts-node scripts/main.ts "A cyberpunk style cat" --quality=preview --output="./preview_cat.png"
# For the first run or when login is required, you must use the --ui parameter to show the browser window
# 首次运行或需要登录时,必须使用 --ui 参数显示浏览器窗口
npx ts-node scripts/main.ts "Test" --ui
Command Line Arguments (コマンドライン引数の説明)
| Parameter (パラメータ) | Description (説明) | Default (デフォルト値) |
|---|---|---|
prompt | (必須) 画像を生成するためのプロンプト / (必填) 生成图片的提示词 | A cute golden retriever (一只可爱的金毛犬) |
--output=<path> / --image=<path> | ダウンロードした画像を保存するローカルパス / 图片下载保存的本地路径 | ./generated.png |
--quality=<value> | 画像品質の要件: preview または original (高解像度) / 图片画质要求,可选 preview (预览图) 或 original (高清原图) | original |
--ratio=<value> | 画像のアスペクト比の選択。対応: 1:1 (正方形のアバター), 2:3 (SNS の自撮り), 3:4 (クラシックな写真), 4:3 (記事の挿絵), 9:16 (スマホ壁紙の縦向き), 16:9 (デスクトップ壁紙の横向き) / 图片比例选择,支持:1:1 (正方形头像), 2:3 (社交媒体自拍), 3:4 (经典比例拍照), 4:3 (文章配图插画), 9:16 (手机壁纸人像), 16:9 (桌面壁纸风景) | |
--ui | ブラウザのインターフェースを表示します (初回ログイン時に必ず使用してください) / 显示浏览器界面(首次登录时必须使用) | バックグラウンドでサイレント実行 (后台静默运行) |
--help, -h | ヘルプメニューを表示します / 显示帮助菜单 |
Technical Principle (技術原理)
- Browser Hosting (ブラウザホスティング): Playwright を使って実際の Chromium ブラウザを起動し、ユーザーデータディレクトリを読み込みます。(利用 Playwright 启动一个真实的 Chromium 浏览器,加载用户数据目录。)
- UI Automation (UI 自動化): 入力ボックスを特定し、
Help me generate an image: {prompt}を自動入力して、Enter キーを押す動作をシミュレートします。(定位输入框,自动填入帮我生成图片:{prompt}并模拟回车。) - Network Interception (ネットワーク傍受):
/samantha/chat/completionの POST リクエスト応答を監視し、完全な SSE データストリームを取得します。(监听/samantha/chat/completion的 POST 请求响应,获取完整的 SSE 数据流。) - Data Parsing (データ解析): 正規表現を使って、応答ストリーム内の
image_oriの URL をマッチングします。(使用正则匹配响应流中的image_ori的 URL。)
Directory Structure (ディレクトリ構造)
scripts/doubao-webapi/client.ts- コアとなる Playwright クライアントロジック (核心 Playwright 客户端逻辑)scripts/main.ts- コマンドラインエントリーファイル (命令行入口文件)package.json- プロジェクトの依存関係 (项目依赖)
コメント
Markdown 対応