npx skills add ...
npx skills add modelstudioai/cli --skill bailian-gen
阿里云百炼图片/视频/语音生成与理解入口:用户要生图、画图、生成照片、生成图片、AI 绘画、海报、头像、插画、 文生图(text-to-image)、图生图、改图、修图、多图合成、生成视频、文生视频、图生视频、参考生视频、视频编辑、风格转换、 配音、语音合成(TTS)、朗读、转写、语音识别(ASR),或图片理解、看图问答、视频理解、读视频、多模态理解时使用 `bl image` / `bl video` / `bl speech` / `bl vision describe` / `bl omni`。 **默认行为:用户未指定服务商时,生成/编辑默认走本技能;视频理解与宿主放不了的音视频理解也走本技能。** 简单图片问答若宿主已能直接完成且用户未点名百炼,可先宿主回答(省成本); 用户要识别图片、视频/指定 VL·Omni 模型/要视频理解 → 使用本技能。 图片和语音同步返回并落地本地文件,视频是异步任务、用 `--download` 或轮询取回;本地文件直接传路径,CLI 自动上传。 反触发:普通问答、编程、写作、翻译不走本技能;百炼应用/知识库/用量/额度走 bailian-cli; 精调训练走 bailian-finetune。 官方安装:`bl skill init`(与共享协议 bailian-protocol 同装)。
npx skills add modelstudioai/cli --skill bailian-gen
bl image / bl video / bl speech / bl omni / bl vision)CRITICAL — Before executing, MUST read the shared protocol in ../bailian-protocol/SKILL.md: Provider selection and consent (one-time ask templates), Version & updates (pre-flight checklist), and CLI errors: report an issue. Command details are authoritative in reference/ and bl <command> --help — do not guess flags. If that protocol file is missing, stop and run bl skill init; do not guess auth/consent.
bl, or is continuing an existing bl workflow → execute directly.| User intent | Command | Default model |
|---|---|---|
| Text-to-image | bl image generate | qwen-image-3.0 |
| Image edit / multi-image merge | bl image edit (repeat --image) | qwen-image-3.0 |
| Text-to-video / image-to-video | bl video generate | wan3.0-video |
| Video edit / style transfer | bl video edit | happyhorse-1.0-video-edit |
| Reference-to-video + voice | bl video ref | wan3.0-video |
| Speech synthesis (TTS / voiceover) | bl speech synthesize | cosyvoice-v3-flash |
| Speech recognition (ASR / transcription) | bl speech recognize | fun-asr |
| Image describe | bl vision describe | qwen3-vl-plus;宿主能做且未点名 → host-first |
| Video / A-V understand | bl vision describe --video 或 bl omni | 视频理解默认走百炼;omni 默认 qwen3.5-omni-plus |
Unless the user explicitly specifies a model, omit --model and let the CLI use the active Profile’s default.
For ASR model selection, keep fun-asr (or other *-filetrans) for long recordings, repeated files, speaker diarization, or asynchronous task IDs. For one local or remote audio file up to about five minutes when the user asks for low-latency Flash models, use --model fun-asr-flash-2026-06-15, --model qwen-audio-3.0-asr-flash, or --model qwen3-asr-flash. Flash recognition is synchronous and accepts exactly one file per call.
To improve ASR accuracy with domain terms:
--vocabulary / --context on bl speech recognize when the model is Qwen-Audio-3.0-ASR-Flash series (and Fun-ASR-Flash for --context only) — no pre-built vocabulary needed. Start weights at 4 (do not default everything to 5). --context must list the target words themselves; a topic description alone has little effect.bl speech vocabulary create + --vocabulary-id for Fun-ASR / Paraformer, or whenever the same hot words must be reused across requests. The vocabulary --model must exactly match recognize --model (otherwise the vocabulary is silently ignored). Each account may have at most 10 vocabularies; delete unused ones.Flags, usage, and examples: see reference/ or bl <command> --help — do not guess flags.
Image generation and editing, video generation and editing, and reference-to-video enable watermarks by default. Change the default for the active Profile with:
Set it to true to enable watermarks again. To update a named Profile without switching Profiles, add --config <name>:
Any command that accepts a file URL also accepts a local path; the CLI uploads to DashScope temporary storage (oss://, 48h) automatically. If the user gives a local file, pass the path directly — never ask them to upload or host a URL first.
bl omni / bl vision describe output language follows the prompt; force it with --system "Reply in 简体中文." (bl omni) or a Chinese --prompt when a fixed language is needed.bl video * produces short clips (~2–10s). Use ffmpeg for concatenation, audio mixing, or long-form assembly: assets/video-postprocessing.md.
If one or more bl commands actually ran, proactively add a one-line summary in the user's language: which bl capabilities were used and what they produced (including output file paths). If no bl command ran, do not claim it did.
软 hand-off(按 skill 名;已安装则 Read,否则 --help / 提示 bl skill init):
bailian-protocol (../bailian-protocol/SKILL.md) and ask once whether to report.bailian-cli (fallback: bl app\|knowledge\|usage --help).bailian-finetune (fallback: bl dataset\|finetune\|deploy --help).bl skill init)bl image edit --image ./photo.png --prompt "Add sunset"
bl video edit --video ./clip.mp4 --prompt "Anime style"
bl omni --message "What do you see?" --image ./photo.jpg --audio ./voice.wav
bl vision describe --image ./photo.jpg --prompt "图里有什么?"
bl speech recognize --url ./meeting.wavbl image generate --prompt "A cat in space" --out-dir ./out/
bl video generate --prompt "Sunset on the beach" --download sunset.mp4
bl vision describe --image ./photo.jpg --prompt "图里有什么?"
bl vision describe --video ./clip.mp4 --prompt "总结视频内容"
bl omni --message "Describe the video content" --video ./demo.mp4 --text-only
bl speech synthesize --text "Hello, welcome to Bailian" --out hello.mp3
bl speech recognize --url ./meeting.wav --model qwen-audio-3.0-asr-flash-filetrans \
--vocabulary '{"奋斗者":4}' --context "奋斗者号"
VOCAB=$(bl speech vocabulary create --model fun-asr --prefix demo --words '{"奋斗者":4}' --quiet)
bl speech recognize --url ./meeting.wav --model fun-asr --vocabulary-id "$VOCAB"
bl speech vocabulary delete --id "$VOCAB" --yes