* feat(baoyu-imagine): add DashScope Wan 2.7 image model support
Closes#139.
Adds the new `wan2.7-image-pro` and `wan2.7-image` model family to the
DashScope provider so users can call Wan 2.7 directly through the
official Aliyun (Bailian) API instead of going through Replicate.
- Register `wan2.7-image-pro` and `wan2.7-image` as a new `wan27` family
in the DashScope provider with their own size resolution rules:
pixel range `[768*768, 4096*4096]` for `wan2.7-image-pro` text-to-image,
`[768*768, 2048*2048]` for `wan2.7-image-pro` with refs and for the
base `wan2.7-image` model in any mode, with aspect ratios validated
against the documented `[1:8, 8:1]` band.
- Allow up to 9 reference images per request (image editing /
multi-image fusion). Local files are inlined as base64 data URLs;
`http(s)://` paths are forwarded as-is. Other DashScope models still
reject `--ref` with a hint to switch to a wan2.7 model or another
provider.
- Drop `prompt_extend` from the request body for the Wan 2.7 family
(not part of the Wan 2.7 API surface) and skip the Qwen-only negative
prompt for this family.
- Allow `--provider dashscope --ref ...` in `detectProvider` so users
can opt into Wan 2.7 reference workflows, while keeping Wan 2.7 out
of the auto-detect ref priority list.
- Add provider, reference, and usage-example documentation, plus
unit tests covering family routing, size derivation across the
three pixel-budget modes, ratio rejection, explicit-size validation,
and the new `--provider dashscope` ref opt-in path.
Made-with: Cursor
* fix(baoyu-imagine): force n=1 for DashScope wan2.7 to avoid silent multi-image billing
Cross-checked the implementation against the official Wan 2.7 image
generation & editing API reference and found that the API defaults
`parameters.n` to 4 in non-collage mode (1-4 range, billed per image).
baoyu-imagine has single-image save semantics — only the first image
in the response is kept — so without an explicit `n: 1` users would
silently pay for 3 discarded images per request.
- Always send `parameters.n: 1` in the wan2.7 request body
- Reject `--n > 1` for wan2.7 with a clear error pointing at the
single-image save semantics
- Add tests asserting the request body shape (n=1, no prompt_extend,
no negative_prompt) and the --n>1 rejection
- Document the defaults-vs-skill mismatch in the dashscope reference
Made-with: Cursor
* Fix DashScope Wan 2.7 review feedback