🧪 Skills

Doubao AI Image Generator

Generate high-quality images using Doubao (豆包) AI image generation. Use when the user asks for AI-generated images, artwork, illustrations, or any visual con...

v1.0.0
❤️ 0
⬇️ 34
👁 1
Share

Description


name: doubao-image-gen description: Generate high-quality images using Doubao (豆包) AI image generation. Use when the user asks for AI-generated images, artwork, illustrations, or any visual content. Supports custom prompts, multiple styles, and high-resolution output. metadata: { "openclaw": { "requires": { "bins": ["curl"] }, }, }

Doubao Image Generation Skill

Generate images using ByteDance's Doubao (豆包) AI image generation service via browser automation.

Requirements

  • OpenClaw browser (headless or profile) with access to https://www.doubao.com
  • Doubao account must be logged in
  • Workspace directory for temporary file storage

Usage

Basic Image Generation

  1. Navigate to https://www.doubao.com and open the image generation mode
  2. Enter the prompt and submit
  3. Wait for generation to complete (typically 20-30 seconds)
  4. Extract and download the generated images
  5. Send images to the user

Step-by-Step Process

1. Open Doubao Image Generation

browser(action="open", url="https://www.doubao.com/chat/create-image", profile="openclaw")

Or navigate to existing chat with image gen history:

browser(action="snapshot", profile="openclaw")

2. Enter Prompt

Find the text input and enter the image description:

browser(action="act", kind="fill", ref=<textbox-ref>, text="<prompt>", profile="openclaw")
browser(action="act", kind="press", key="Enter", profile="openclaw")

3. Wait for Generation

Wait 10-20 seconds for the images to generate:

exec(command="sleep 15")

Then check if images are ready by taking a screenshot.

4. Extract Image URLs

Use browser evaluate to extract image URLs from the page:

// Find all generated images (image_generation URL pattern)
const imgs = document.querySelectorAll('img[src*="image_generation"]');
const urls = Array.from(imgs).map(img => ({
  src: img.src,
  w: img.naturalWidth,
  h: img.naturalHeight
}));

5. Download Images

Use the image_pre_watermark_1_5b URL variant for highest quality (1773×2364):

curl -L -H "Referer: https://www.doubao.com/" \
  -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" \
  -o output.png "<url_with_image_pre_watermark>"

If the image_pre_watermark URL fails (signature mismatch), fall back to extracting via browser CDP WebSocket:

// Connect to CDP and extract image via canvas
const dataUrl = await new Promise(resolve => {
  const canvas = document.createElement('canvas');
  canvas.width = img.naturalWidth;
  canvas.height = img.naturalHeight;
  const ctx = canvas.getContext('2d');
  ctx.drawImage(img, 0, 0);
  canvas.toBlob(blob => {
    const reader = new FileReader();
    reader.onload = () => resolve(reader.result);
    reader.readAsDataURL(blob);
  }, 'image/png');
});

6. Send to User

Use sendAttachment for BlueBubbles/iMessage:

message(action="sendAttachment", channel="bluebubbles", filePath="<path>")

Image URL Patterns

Doubao CDN serves multiple versions of generated images:

URL Suffix Resolution Use Case
downsize_watermark_1_5_b.png ~288×384 Thumbnail, watermarked
image_pre_watermark_1_5b.png ~1773×2364 High-res, no watermark
image_dld_watermark_1_5b.png ~1773×2364 Download version
web-operation.webp ~435×580 Web preview

Important: Each URL requires a unique CDN signature (x-signature). You cannot simply swap URL suffixes — the signature must match the specific image and URL type.

Prompts for Best Results

For high-quality image generation, include these keywords in prompts:

  • Quality: "高精度", "高品质", "8K", "超高分辨率"
  • Style: "专业摄影棚灯光", "工作室渲染", "景深效果"
  • Details: "精美的细节", "精细纹理"

Troubleshooting

  1. Page not loading: Ensure browser has network access and Doubao is accessible
  2. Login required: Check if Doubao session is still active via screenshot
  3. Images not generating: Check for content policy blocks in the prompt
  4. Download fails: Use browser CDP WebSocket extraction instead of direct download
  5. BlueBubbles media path blocked: Use sendAttachment action instead of send with filePath

Example Prompts

战斗暴龙兽3D手办,高精度模型,精美的细节,金属质感盔甲,蓝色闪耀的勇气之盾,动感战斗姿态,站在岩石底座上,专业摄影棚灯光,工作室渲染,高品质,8K
可爱柴犬头像,日式插画风格,柔和配色,圆润线条,温暖光影,专业插画师作品
赛博朋克城市夜景,霓虹灯,高楼大厦,雨天反射,电影级渲染,超高清细节

Notes

  • Doubao free tier has daily generation limits
  • Generated images are stored in CDN with time-limited signatures
  • Browser automation is required due to lack of public API
  • Always use sendAttachment for BlueBubbles to avoid media path issues

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs