diff --git a/.gitignore b/.gitignore index ec8023d3..97b43669 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ tools/generated .claude/settings.local.json .claude/scheduled_tasks.lock .cursor/ +.qoder/ .qwen/ .qoder .playwright-mcp/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c4e38ed..3f35ee4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and [中文版](CHANGELOG.zh.md) · [README](README.md) · [Contributing](CONTRIBUTING.md) +## [1.14.1] - 2026-08-05 + +### Added + +- **Focused Bailian Skills** — `npx skills add modelstudioai/cli --all -g` now installs dedicated skills for media generation, fine-tuning, Managed Agent, and shared execution rules, improving task routing while reducing irrelevant context. + +### Changed + +- **Default image model upgraded to Qwen-Image 3.0** — image generation, image editing, pipelines, the config UI, and related documentation now default to `qwen-image-3.0` for API Key users. +- **Broader coding-agent compatibility** — Skill installation and updates now detect more coding agents, preserve existing installation links, and automatically backfill skills into newly detected agents. + ## [1.14.0] - 2026-08-04 ### Added diff --git a/CHANGELOG.zh.md b/CHANGELOG.zh.md index 0807b5ea..f1e1fca3 100644 --- a/CHANGELOG.zh.md +++ b/CHANGELOG.zh.md @@ -6,6 +6,17 @@ [English](CHANGELOG.md) · [README](README.zh.md) · [参与贡献](CONTRIBUTING.zh.md) +## [1.14.1] - 2026-08-05 + +### 新增 + +- **百炼 Skill 按领域拆分** —— 通过 `npx skills add modelstudioai/cli --all -g` 可统一安装图片与视频生成、模型微调、Managed Agent 和共享执行协议等专用 Skill,提升任务路由准确性并减少无关上下文。 + +### 变更 + +- **默认图片模型升级至 Qwen-Image 3.0** —— 普通 API Key 用户的图片生成、图片编辑、Pipeline、配置 UI 和相关文档现在默认使用 `qwen-image-3.0`。 +- **扩展 Coding Agent 兼容范围** —— Skill 安装与更新现在能够识别更多 Coding Agent,保留已有安装链接,并自动将 Skill 补充到新识别的 Agent。 + ## [1.14.0] - 2026-08-04 ### 新增 diff --git a/README.md b/README.md index 1e869d13..bced4e78 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Equip your AI Agent out-of-the-box with these capabilities, composable across co - **Text chat** — Qwen3.8-max: major gains in agentic coding, frontend coding, and vibe coding - **Multimodal (Omni)** — Full omni-modal support across text + image + audio + video -- **Image generation & editing** — Qwen-Image 2.0: pro text rendering, photorealism, strong semantic adherence, multi-image composition +- **Image generation & editing** — Qwen-Image 3.0: pro text rendering, photorealism, strong semantic adherence, multi-image composition - **Video generation & editing** — happyhorse-1.1 series: text-/image-/reference-to-video and natural-language video editing (up to 9-image reference) - **Speech synthesis & recognition** — CosyVoice streaming TTS, voice cloning from 5–20s samples; FunAudio-ASR covers 30 languages including 7 Chinese dialects and 20+ Mandarin accents - **Image & video understanding** — Qwen-VL: long-form video analysis, chart/document parsing, visual reasoning, multilingual OCR diff --git a/README.zh.md b/README.zh.md index b5f2b41d..d09397c3 100644 --- a/README.zh.md +++ b/README.zh.md @@ -26,7 +26,7 @@ _专为 AI Agent 打造,每个命令均可作为结构化工具调用。_ - **文本对话** — Qwen3.8-max:Agentic coding、前端编程、Vibe coding 等能力显著增强 - **全模态对话** — 文本 + 图像 + 音频 + 视频全模态支持 -- **图像生成与编辑** — Qwen-Image 2.0:专业文字渲染、真实质感、强语义遵循、多图合成 +- **图像生成与编辑** — Qwen-Image 3.0:专业文字渲染、真实质感、强语义遵循、多图合成 - **视频生成与编辑** — happyhorse-1.1 系列,支持文生 / 图生 / 参考生(最多 9 张图参考)/ 自然语言视频编辑 - **语音合成与识别** — CosyVoice 实时流式合成,5-20s 样本即可克隆;FunAudio-ASR 覆盖 30 种语种,含汉语七大方言与 20+ 口音官话 - **图像与视频理解** — Qwen-VL:长视频解析、复杂图表与文档识别、视觉推理、多语种 OCR diff --git a/packages/cli/README.md b/packages/cli/README.md index 1e869d13..bced4e78 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -26,7 +26,7 @@ Equip your AI Agent out-of-the-box with these capabilities, composable across co - **Text chat** — Qwen3.8-max: major gains in agentic coding, frontend coding, and vibe coding - **Multimodal (Omni)** — Full omni-modal support across text + image + audio + video -- **Image generation & editing** — Qwen-Image 2.0: pro text rendering, photorealism, strong semantic adherence, multi-image composition +- **Image generation & editing** — Qwen-Image 3.0: pro text rendering, photorealism, strong semantic adherence, multi-image composition - **Video generation & editing** — happyhorse-1.1 series: text-/image-/reference-to-video and natural-language video editing (up to 9-image reference) - **Speech synthesis & recognition** — CosyVoice streaming TTS, voice cloning from 5–20s samples; FunAudio-ASR covers 30 languages including 7 Chinese dialects and 20+ Mandarin accents - **Image & video understanding** — Qwen-VL: long-form video analysis, chart/document parsing, visual reasoning, multilingual OCR diff --git a/packages/cli/README.zh.md b/packages/cli/README.zh.md index b5f2b41d..d09397c3 100644 --- a/packages/cli/README.zh.md +++ b/packages/cli/README.zh.md @@ -26,7 +26,7 @@ _专为 AI Agent 打造,每个命令均可作为结构化工具调用。_ - **文本对话** — Qwen3.8-max:Agentic coding、前端编程、Vibe coding 等能力显著增强 - **全模态对话** — 文本 + 图像 + 音频 + 视频全模态支持 -- **图像生成与编辑** — Qwen-Image 2.0:专业文字渲染、真实质感、强语义遵循、多图合成 +- **图像生成与编辑** — Qwen-Image 3.0:专业文字渲染、真实质感、强语义遵循、多图合成 - **视频生成与编辑** — happyhorse-1.1 系列,支持文生 / 图生 / 参考生(最多 9 张图参考)/ 自然语言视频编辑 - **语音合成与识别** — CosyVoice 实时流式合成,5-20s 样本即可克隆;FunAudio-ASR 覆盖 30 种语种,含汉语七大方言与 20+ 口音官话 - **图像与视频理解** — Qwen-VL:长视频解析、复杂图表与文档识别、视觉推理、多语种 OCR diff --git a/packages/cli/package.json b/packages/cli/package.json index 5bcee6d3..58a7334e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "bailian-cli", - "version": "1.14.0", + "version": "1.14.1", "description": "CLI for Aliyun Model Studio (DashScope) AI Platform.", "keywords": [ "agent", diff --git a/packages/commands/package.json b/packages/commands/package.json index c736264b..fca0f593 100644 --- a/packages/commands/package.json +++ b/packages/commands/package.json @@ -1,6 +1,6 @@ { "name": "bailian-cli-commands", - "version": "1.14.0", + "version": "1.14.1", "description": "Command library for bailian-cli products (knowledge, memory, media, …). See https://www.npmjs.com/package/bailian-cli for usage.", "homepage": "https://bailian.console.aliyun.com/cli", "bugs": { diff --git a/packages/commands/src/commands/config/shared.ts b/packages/commands/src/commands/config/shared.ts index 66e5fd6f..2473f80c 100644 --- a/packages/commands/src/commands/config/shared.ts +++ b/packages/commands/src/commands/config/shared.ts @@ -61,7 +61,7 @@ export const UI_BOOLEAN_KEYS = new Set(["telemetry"]); // without persisting a value that would pin the model. export const UI_MODEL_DEFAULTS: Record = { default_text_model: "qwen3.8-max", - default_image_model: "qwen-image-2.0", + default_image_model: "qwen-image-3.0", default_video_model: "happyhorse-1.1-t2v", default_speech_model: "cosyvoice-v3-flash", default_omni_model: "qwen3.5-omni-plus", @@ -86,7 +86,8 @@ export const UI_MODEL_CATALOG: Record = { { id: "qwen3.6-flash", role: "fast · advisor intent" }, ], default_image_model: [ - { id: "qwen-image-2.0", role: "image/generate default · sync" }, + { id: "qwen-image-3.0", role: "image/generate default · sync" }, + { id: "qwen-image-2.0", role: "image/generate · sync" }, { id: "qwen-image-max", role: "image/generate · sync" }, { id: "qwen-image-edit-2.0", role: "image/edit · sync" }, { id: "wanx2.x", role: "image/generate · async series" }, diff --git a/packages/commands/src/commands/file/upload.ts b/packages/commands/src/commands/file/upload.ts index 6a76401e..e655beb1 100644 --- a/packages/commands/src/commands/file/upload.ts +++ b/packages/commands/src/commands/file/upload.ts @@ -23,7 +23,7 @@ export default defineCommand({ "--file photo.jpg --model qwen3-vl-plus", "--file video.mp4 --model wan2.1-t2v-plus", "--file audio.wav --model qwen3-asr-flash", - "--file cat.png --model qwen-image-2.0", + "--file cat.png --model qwen-image-3.0", ], async run(ctx) { const { settings, flags } = ctx; diff --git a/packages/commands/src/commands/image/edit.ts b/packages/commands/src/commands/image/edit.ts index 95d5054f..e0bfcc23 100644 --- a/packages/commands/src/commands/image/edit.ts +++ b/packages/commands/src/commands/image/edit.ts @@ -47,7 +47,7 @@ const EDIT_FLAGS = { model: { type: "string", valueHint: "", - description: "Model ID (default: qwen-image-2.0)", + description: "Model ID (default: qwen-image-3.0)", }, size: { type: "string", @@ -123,7 +123,7 @@ export default defineCommand({ } const prompt = flags.prompt; - const model = flags.model || settings.defaultImageModel || "qwen-image-2.0"; + const model = flags.model || settings.defaultImageModel || "qwen-image-3.0"; const route = resolveImageEditApi(model); // Auto-upload local files (resolve all images in parallel) diff --git a/packages/commands/src/commands/image/generate.ts b/packages/commands/src/commands/image/generate.ts index 31eaab52..03639281 100644 --- a/packages/commands/src/commands/image/generate.ts +++ b/packages/commands/src/commands/image/generate.ts @@ -35,7 +35,7 @@ const GENERATE_FLAGS = { model: { type: "string", valueHint: "", - description: "Model ID (default: qwen-image-2.0)", + description: "Model ID (default: qwen-image-3.0)", }, size: { type: "string", @@ -105,7 +105,7 @@ export default defineCommand({ const { settings, flags } = ctx; const prompt = flags.prompt; - const model = flags.model || settings.defaultImageModel || "qwen-image-2.0"; + const model = flags.model || settings.defaultImageModel || "qwen-image-3.0"; const route = resolveImageGenerateApi(model); const defaultSize = "1:1"; const sizeInput = flags.size || defaultSize; diff --git a/packages/commands/tests/config-ui.test.ts b/packages/commands/tests/config-ui.test.ts index a98f8db1..dbbabaa7 100644 --- a/packages/commands/tests/config-ui.test.ts +++ b/packages/commands/tests/config-ui.test.ts @@ -89,13 +89,13 @@ test("GET /api/config 返回全部 profile、明文密钥与持久化激活项", expect(res.json.enums.console_site).toEqual(["domestic", "international"]); expect(res.json.booleanKeys).toContain("telemetry"); // Default field hints are surfaced as prefilled values in the UI. - expect(res.json.fieldDefaults.default_image_model).toBe("qwen-image-2.0"); + expect(res.json.fieldDefaults.default_image_model).toBe("qwen-image-3.0"); expect(res.json.fieldDefaults.default_text_model).toBe("qwen3.8-max"); expect(res.json.fieldDefaults.output_dir).toContain("bailian-output"); expect(res.json.fieldDefaults.timeout).toBe("300"); expect(res.json.fieldDefaults.base_url).toBe("https://dashscope.aliyuncs.com"); // Per-category model catalog (click-to-fill suggestions) is exposed too. - expect(res.json.modelCatalog.default_image_model[0]).toMatchObject({ id: "qwen-image-2.0" }); + expect(res.json.modelCatalog.default_image_model[0]).toMatchObject({ id: "qwen-image-3.0" }); expect(res.json.modelCatalog.default_video_model.map((m: { id: string }) => m.id)).toContain( "happyhorse-1.1-i2v", ); diff --git a/packages/commands/tests/e2e/image-edit.e2e.test.ts b/packages/commands/tests/e2e/image-edit.e2e.test.ts index 3b405fa3..c17ad64d 100644 --- a/packages/commands/tests/e2e/image-edit.e2e.test.ts +++ b/packages/commands/tests/e2e/image-edit.e2e.test.ts @@ -194,13 +194,13 @@ describe.skipIf(!isBailianE2EMediaEnabled() || !isDashScopeE2EReady())("e2e: ima expect(stderr).toMatch(/--prompt|Usage:/i); }); - test("【qwen-image-2.0】图片编辑", async () => { + test("【qwen-image-3.0】图片编辑", async () => { const outDir = makeE2eOutputDir(e2eLabelFromMetaUrl(import.meta.url)); const gen = await runCommandE2e(IMAGE_ROUTES, [ "image", "generate", "--model", - "qwen-image-2.0", + "qwen-image-3.0", "--prompt", "一只简笔画小猫,白底", "--out-dir", @@ -220,7 +220,7 @@ describe.skipIf(!isBailianE2EMediaEnabled() || !isDashScopeE2EReady())("e2e: ima "image", "edit", "--model", - "qwen-image-2.0", + "qwen-image-3.0", "--image", imagePath!, "--prompt", diff --git a/packages/commands/tests/e2e/image-generate.e2e.test.ts b/packages/commands/tests/e2e/image-generate.e2e.test.ts index 913567ec..3a347e8a 100644 --- a/packages/commands/tests/e2e/image-generate.e2e.test.ts +++ b/packages/commands/tests/e2e/image-generate.e2e.test.ts @@ -202,19 +202,19 @@ describe.skipIf(!isBailianE2EMediaEnabled() || !isDashScopeE2EReady())( "image", "generate", "--model", - "qwen-image-2.0", + "qwen-image-3.0", ]); expect(exitCode).toBe(2); expect(stderr).toMatch(/--prompt|Usage:/i); }); - test("【qwen-image-2.0】图片生成", async () => { + test("【qwen-image-3.0】图片生成", async () => { const outDir = makeE2eOutputDir(e2eLabelFromMetaUrl(import.meta.url)); const { stdout, stderr, exitCode } = await runCommandE2e(IMAGE_ROUTES, [ "image", "generate", "--model", - "qwen-image-2.0", + "qwen-image-3.0", "--prompt", "一只简笔画小猫,白底", "--out-dir", diff --git a/packages/commands/tests/e2e/video-generate-i2v.e2e.test.ts b/packages/commands/tests/e2e/video-generate-i2v.e2e.test.ts index 1a26e2aa..5c194865 100644 --- a/packages/commands/tests/e2e/video-generate-i2v.e2e.test.ts +++ b/packages/commands/tests/e2e/video-generate-i2v.e2e.test.ts @@ -159,7 +159,7 @@ describe.skipIf(!isBailianE2EVideoEnabled() || !isDashScopeE2EReady())( "image", "generate", "--model", - "qwen-image-2.0", + "qwen-image-3.0", "--prompt", "一只简笔画小猫,白底", "--out-dir", diff --git a/packages/commands/tests/e2e/video-ref-r2v.e2e.test.ts b/packages/commands/tests/e2e/video-ref-r2v.e2e.test.ts index bd697f51..6d485686 100644 --- a/packages/commands/tests/e2e/video-ref-r2v.e2e.test.ts +++ b/packages/commands/tests/e2e/video-ref-r2v.e2e.test.ts @@ -169,7 +169,7 @@ describe.skipIf(!isBailianE2EVideoEnabled() || !isDashScopeE2EReady())( "image", "generate", "--model", - "qwen-image-2.0", + "qwen-image-3.0", "--prompt", "一片绿色的树叶,白底", "--out-dir", diff --git a/packages/core/package.json b/packages/core/package.json index ba510e7a..0e4dbe9d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "bailian-cli-core", - "version": "1.14.0", + "version": "1.14.1", "description": "Core SDK for bailian-cli. See https://www.npmjs.com/package/bailian-cli for usage.", "homepage": "https://bailian.console.aliyun.com/cli", "bugs": { diff --git a/packages/core/src/client/image-routes.ts b/packages/core/src/client/image-routes.ts index 2c532e8c..443e8a89 100644 --- a/packages/core/src/client/image-routes.ts +++ b/packages/core/src/client/image-routes.ts @@ -10,7 +10,7 @@ import { image2ImagePath, imagePath, imageSyncPath, imageText2ImagePath } from " * - async text2image + prompt: wan2.5/2.2/2.1-t2i*, wanx*-t2i* * * Edit (I2I): - * - sync multimodal + messages(+images): qwen-image-2.0*, qwen-image-edit*, wan2.6-image*, wan2.7-image* + * - sync multimodal + messages(+images): qwen-image-3.0*, qwen-image-2.0*, qwen-image-edit*, wan2.6-image*, wan2.7-image* * (pure T2I models such as z-image / qwen-image-plus / qwen-image-max are NOT edit models) * - async image2image + prompt/images: wan2.5-i2i* * - async image2image + function/base_image_url: *imageedit* (e.g. wanx2.1-imageedit) @@ -60,6 +60,7 @@ const SYNC_GENERATE_PREFIXES = ["qwen-image", "wan2.7-image", "z-image"] as cons * Pure T2I models (z-image / qwen-image-plus / qwen-image-max) are excluded. */ const SYNC_EDIT_PREFIXES = [ + "qwen-image-3.0", "qwen-image-2.0", "qwen-image-edit", "wan2.7-image", @@ -109,7 +110,12 @@ export function isWanxFunctionImageEditModel(model: string): boolean { } export function resolveImageSizeProfile(model: string): ImageSizeProfile { - if (model.startsWith("qwen-image-2.0") || model.startsWith("qwen-image-edit")) { + // 3.0 暂复用 2.0 高分比例表(CLI ratio→像素便捷映射);不做独立 3.0 profile。 + if ( + model.startsWith("qwen-image-3.0") || + model.startsWith("qwen-image-2.0") || + model.startsWith("qwen-image-edit") + ) { return "qwen-image-2.0"; } // Remaining qwen-image* (plus / max / bare qwen-image) share the fixed table. @@ -133,7 +139,13 @@ export function resolveImageSizeProfile(model: string): ImageSizeProfile { /** Official / CLI defaults for prompt_extend when the flag is omitted. */ export function resolvePromptExtendDefault(model: string): boolean | undefined { - if (model.startsWith("qwen-image-2.0") || model.startsWith("qwen-image-max")) return true; + if ( + model.startsWith("qwen-image-3.0") || + model.startsWith("qwen-image-2.0") || + model.startsWith("qwen-image-max") + ) { + return true; + } // Z-Image docs default prompt_extend to false. if (model.startsWith("z-image")) return false; return undefined; diff --git a/packages/core/tests/image-routes.test.ts b/packages/core/tests/image-routes.test.ts index 73e27f88..bd1afa02 100644 --- a/packages/core/tests/image-routes.test.ts +++ b/packages/core/tests/image-routes.test.ts @@ -11,6 +11,7 @@ import { } from "../src/client/image-routes.ts"; test("sync multimodal family covers qwen-image, wan2.6/2.7 image, and z-image", () => { + expect(isSyncMultimodalImageModel("qwen-image-3.0")).toBe(true); expect(isSyncMultimodalImageModel("qwen-image-2.0")).toBe(true); expect(isSyncMultimodalImageModel("qwen-image-2.0-pro")).toBe(true); expect(isSyncMultimodalImageModel("qwen-image-plus")).toBe(true); @@ -41,6 +42,7 @@ test("legacy image2image is wan2.5-i2i only; wanx imageedit uses function protoc }); test("size profiles are model-specific, not sync/async", () => { + expect(resolveImageSizeProfile("qwen-image-3.0")).toBe("qwen-image-2.0"); expect(resolveImageSizeProfile("qwen-image-2.0")).toBe("qwen-image-2.0"); expect(resolveImageSizeProfile("qwen-image")).toBe("qwen-image-fixed"); expect(resolveImageSizeProfile("qwen-image-plus")).toBe("qwen-image-fixed"); @@ -55,6 +57,7 @@ test("size profiles are model-specific, not sync/async", () => { }); test("prompt_extend defaults follow model docs", () => { + expect(resolvePromptExtendDefault("qwen-image-3.0")).toBe(true); expect(resolvePromptExtendDefault("qwen-image-2.0")).toBe(true); expect(resolvePromptExtendDefault("qwen-image-max")).toBe(true); expect(resolvePromptExtendDefault("z-image-turbo")).toBe(false); @@ -85,6 +88,11 @@ test("resolveImageGenerateApi picks path, input style, and size profile", () => kind: "async-image-generation", sizeProfile: "wan26", }); + expect(resolveImageGenerateApi("qwen-image-3.0")).toMatchObject({ + kind: "sync-multimodal", + sizeProfile: "qwen-image-2.0", + promptExtendDefault: true, + }); expect(resolveImageGenerateApi("qwen-image-2.0")).toMatchObject({ kind: "sync-multimodal", sizeProfile: "qwen-image-2.0", @@ -115,6 +123,10 @@ test("resolveImageEditApi excludes pure T2I models from sync edit", () => { kind: "sync-multimodal", useSync: true, }); + expect(resolveImageEditApi("qwen-image-3.0")).toMatchObject({ + kind: "sync-multimodal", + useSync: true, + }); expect(resolveImageEditApi("qwen-image-2.0")).toMatchObject({ kind: "sync-multimodal", useSync: true, diff --git a/packages/kscli/package.json b/packages/kscli/package.json index e3af352c..b61abc58 100644 --- a/packages/kscli/package.json +++ b/packages/kscli/package.json @@ -1,6 +1,6 @@ { "name": "knowledge-studio-cli", - "version": "1.14.0", + "version": "1.14.1", "description": "Lightweight RAG CLI for Aliyun Model Studio — focused on knowledge-base retrieval.", "keywords": [ "alibaba-cloud", diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 6b3cae9e..d887efa9 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "bailian-cli-runtime", - "version": "1.14.0", + "version": "1.14.1", "description": "Runtime framework for bailian-cli (createCli, registry, args, output, pipeline). See https://www.npmjs.com/package/bailian-cli for usage.", "homepage": "https://bailian.console.aliyun.com/cli", "bugs": { diff --git a/packages/runtime/src/pipeline/steps/bl-api.ts b/packages/runtime/src/pipeline/steps/bl-api.ts index 7c6987e5..886ad5b6 100644 --- a/packages/runtime/src/pipeline/steps/bl-api.ts +++ b/packages/runtime/src/pipeline/steps/bl-api.ts @@ -171,7 +171,7 @@ export async function imageGenerate( }); } - const model = input.model || "qwen-image-2.0"; + const model = input.model || "qwen-image-3.0"; const route = resolveImageGenerateApi(model); const n = input.n ?? 1; @@ -269,7 +269,7 @@ export async function imageEdit( } const images = Array.isArray(input.image) ? input.image : input.image ? [input.image] : []; - const model = input.model || "qwen-image-2.0"; + const model = input.model || "qwen-image-3.0"; const route = resolveImageEditApi(model); const n = input.n ?? 1; diff --git a/packages/runtime/src/utils/image-size.ts b/packages/runtime/src/utils/image-size.ts index d2fd1f7e..7ec7897d 100644 --- a/packages/runtime/src/utils/image-size.ts +++ b/packages/runtime/src/utils/image-size.ts @@ -8,7 +8,7 @@ import type { ImageSizeProfile } from "bailian-cli-core"; * Do not infer size from sync/async — that mismatches model constraints. */ -/** qwen-image-2.0 / qwen-image-edit recommended high-res presets. */ +/** qwen-image-2.0 / qwen-image-edit recommended high-res presets(3.0 经 profile 复用此表). */ export const QWEN_IMAGE_20_RATIO_MAP: Record = { "16:9": "2688*1536", "9:16": "1536*2688", diff --git a/skills/bailian-cli/SKILL.md b/skills/bailian-cli/SKILL.md index d06196a4..e6196352 100644 --- a/skills/bailian-cli/SKILL.md +++ b/skills/bailian-cli/SKILL.md @@ -1,7 +1,7 @@ --- name: bailian-cli metadata: - version: "1.14.0" + version: "1.14.1" requires: bins: ["bl"] description: >- diff --git a/skills/bailian-cli/reference/file.md b/skills/bailian-cli/reference/file.md index a81e14b1..12920876 100644 --- a/skills/bailian-cli/reference/file.md +++ b/skills/bailian-cli/reference/file.md @@ -45,5 +45,5 @@ bl file upload --file audio.wav --model qwen3-asr-flash ``` ```bash -bl file upload --file cat.png --model qwen-image-2.0 +bl file upload --file cat.png --model qwen-image-3.0 ``` diff --git a/skills/bailian-finetune/SKILL.md b/skills/bailian-finetune/SKILL.md index b647c8d9..bfb090b1 100644 --- a/skills/bailian-finetune/SKILL.md +++ b/skills/bailian-finetune/SKILL.md @@ -1,7 +1,7 @@ --- name: bailian-finetune metadata: - version: "1.14.0" + version: "1.14.1" requires: bins: ["bl"] description: >- diff --git a/skills/bailian-gen/SKILL.md b/skills/bailian-gen/SKILL.md index a15a0d57..9a6c3e88 100644 --- a/skills/bailian-gen/SKILL.md +++ b/skills/bailian-gen/SKILL.md @@ -1,7 +1,7 @@ --- name: bailian-gen metadata: - version: "1.14.0" + version: "1.14.1" requires: bins: ["bl"] description: >- @@ -29,8 +29,8 @@ description: >- | User intent | Command | Default model | | --------------------------------------------- | ---------------------------------- | ---------------------------------------------- | -| Text-to-image | `bl image generate` | `qwen-image-2.0` | -| Image edit / multi-image merge | `bl image edit` (repeat `--image`) | `qwen-image-2.0` | +| 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` | `happyhorse-1.1-t2v` / `-i2v` (with `--image`) | | Video edit / style transfer | `bl video edit` | `happyhorse-1.0-video-edit` | | Reference-to-video + voice | `bl video ref` | `happyhorse-1.1-r2v` | diff --git a/skills/bailian-gen/reference/image.md b/skills/bailian-gen/reference/image.md index 9b9a1f23..eb8b4c2b 100644 --- a/skills/bailian-gen/reference/image.md +++ b/skills/bailian-gen/reference/image.md @@ -28,7 +28,7 @@ Index: [index.md](index.md) | --------------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------- | | `--image ` | array | yes | Source image URL or local file path (repeatable for multi-image merge) | | `--prompt ` | string | yes | Edit instruction text | -| `--model ` | string | no | Model ID (default: qwen-image-2.0) | +| `--model ` | string | no | Model ID (default: qwen-image-3.0) | | `--size ` | string | no | Output image size: ratio (3:4, 16:9) or pixels (2048\*2048) | | `--n ` | number | no | Number of images (default: 1, max: 6) | | `--seed ` | number | no | Random seed for reproducible results | @@ -91,7 +91,7 @@ bl image edit --image ./photo.png --prompt "Replace the background with a beach" | Flag | Type | Required | Description | | --------------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------ | | `--prompt ` | string | yes | Image description | -| `--model ` | string | no | Model ID (default: qwen-image-2.0) | +| `--model ` | string | no | Model ID (default: qwen-image-3.0) | | `--size ` | string | no | Image size: ratio (3:4, 16:9, 1:1) or pixels (2048\*2048) | | `--n ` | number | no | Number of images per request (default: 1, max: 6) | | `--seed ` | number | no | Random seed for reproducible generation | diff --git a/skills/bailian-managed-agent/SKILL.md b/skills/bailian-managed-agent/SKILL.md index 1a1bd976..256028bb 100644 --- a/skills/bailian-managed-agent/SKILL.md +++ b/skills/bailian-managed-agent/SKILL.md @@ -1,7 +1,7 @@ --- name: bailian-managed-agent metadata: - version: "1.14.0" + version: "1.14.1" requires: bins: ["bl"] description: >- diff --git a/skills/bailian-protocol/SKILL.md b/skills/bailian-protocol/SKILL.md index 31f89b4b..eba7e95c 100644 --- a/skills/bailian-protocol/SKILL.md +++ b/skills/bailian-protocol/SKILL.md @@ -1,7 +1,7 @@ --- name: bailian-protocol metadata: - version: "1.14.0" + version: "1.14.1" requires: bins: ["bl"] description: >-