Files
MediaCrawler/mac-agent-os-main/05_tools/09_ave/config/capabilities.yaml
T
butubb 2112c1a870
Deploy VitePress site to Pages / build (push) Canceled after 0s
Deploy VitePress site to Pages / Deploy (push) Canceled after 0s
feat(monitor): 抖音 Web 接口客户端 —— 绕开爬虫子进程,直接发 HTTP
移植自 mac-agent-os 的 mediacrawler_adapter:不起子进程、不开页面,用浏览器里那份
登录态直接调抖音 Web 接口。产物键名照抄 store/douyin,所以 ingest 那条链路一个字不用改。

**目前能用的(真环境实测,非推断)**:

    profile/other : 200, 7075 字节  —— 博主主页指标(粉丝/获赞/作品数/昵称)
    aweme/detail  : 200, 45425 字节 —— 单条作品详情(含点赞/评论/收藏/分享)

**目前不能用的:作品列表 `aweme/post`。** 两个互相独立的原因:
  1. 这个接口被抖音单独升级成了真校验:不带 x-tt-argus 回 403「Uifid Not Found」,
     带上 dummy 值回 200 + **空 body**。也就是说「头在不在」骗得过,「真校验」过不了。
     同一套头打 profile/other 和 aweme/detail 都是通的 —— 抖音是挑着接口加保护的,
     挑中的恰好是「批量拉作品列表」这个最敏感的动作。
  2. 改走页面截获也不行:CDP 浏览器打开博主主页会落到「验证码中间页」(当天大量探测的
     代价,过几小时要重测)。

  所以现在的边界是:**已知作品的指标刷新能做,自动发现新作品做不了**。

**排查中控住变量后得到的两条事实**(都写进注释了):
  · `Accept` / `Accept-Language` / `Referer` 才是主页接口能返回真数据的原因 —— 只有
    UA+client hints+Cookie 时是 200 但仅 121 字节的空壳,补上这三个头变 7074 字节。
    (我先前猜的 sec-ch-ua 不是关键。)
  · 因此 UA 与 client hints 必须**成套地取自同一个浏览器**,所以 BrowserIdentity 一次
    从 CDP 取齐 cookie + UA + hints,而不是各自写死。

「200 + 空 body 必须当场报错」也是刻意写死的:放过去它会在下游变成「这个博主没作品」,
把一次失败伪装成一条正常结果 —— 爬虫那条路正是这么栽的,还被翻译成「账号被封」。

测试 +11:cookie 解析、请求头成套性(含 uifid 缺失/回退)、产物键名与 store 对齐、
以及 _get 的三条失败路径(空 body / 403 带网关原话 / 正常返回)。
2026-10-10 17:12:25 +08:00

1602 lines
36 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
version: '1.0'
updated: '2026-10-04'
categories:
image:
name: 图像
icon: 🖼️
order: 2
visual:
name: 视觉
icon: 🎨
order: 3
video:
name: 视频
icon: 🎞️
order: 4
audio:
name: 音频
icon: 🔊
order: 5
analysis:
name: 分析
icon: 🧠
order: 6
external:
name: 外部
icon: 🧩
order: 7
capabilities:
- id: tts_generate
name: 语音合成
category: audio
description: 文本 → 语音音频(支持情绪/语速)
input:
text: string
emotion: string?
output:
audio_path: string
duration: number
params_schema:
emotion:
type: enum
options:
- normal
- happy
- sad
- angry
- warm
default: normal
label: 情绪
speed:
type: number
min: 0.5
max: 2.0
default: 1
label: 语速
providers:
- id: volcano
name: 火山语音
api_key_ref: volcano.voice_app_key
model: cosyvoice
default: true
- id: aliyun
name: 阿里语音
api_key_ref: aliyun.api_key
model: cosyvoice-v1
default: false
defaults:
provider: volcano
emotion: normal
speed: 1
execution: local
impl: voice_synthesizer/aliyun.py + voice_synthesizer/volcano.py
status: partial
note: 阿里百炼账号欠费(Arrearage)+ 火山缺 access_token → 充值/配置后可用
source: 现有资产(voice_synthesizer/,391 行)
- id: bgm_generate
name: BGM 生成
category: audio
description: 按风格/情绪生成背景音乐
input:
genre: string
mood: string?
duration: number
output:
audio_path: string
params_schema:
genre:
type: enum
options:
- cinematic
- lofi
- upbeat
- calm
- inspirational
default: cinematic
label: 风格
mood:
type: string
default: ''
label: 情绪描述
providers:
- id: suno
name: Suno
api_key_ref: suno.api_key
default: true
- id: ace_step
name: ACE-Step
api_key_ref: ''
model: ace-step
defaults:
provider: suno
genre: cinematic
execution: remote
impl: bgm_generator/suno.py + bgm_generator/chord_pad.py
status: ready
source: 现有资产(bgm_generator/,654 行)
- id: music_select
name: 配乐选择
category: audio
description: 从曲库按场景/情绪挑选 BGM(不生成)
input:
scene_type: string
mood: string
output:
audio_path: string
params_schema:
max_duration:
type: number
default: 60
min: 5
max: 300
label: 最长时长(秒)
providers:
- id: local_lib
name: 本地曲库
api_key_ref: ''
default: true
defaults:
provider: local_lib
execution: local
impl: music_selector/
status: ready
source: 现有资产(music_selector/,371 行)
- id: beat_analyze
name: 节拍分析
category: audio
description: 分析音频节拍/BPM → 拍点时间轴(卡点视频用)
input:
audio_path: string
output:
bpm: number
beats: number[]
params_schema:
sensitivity:
type: number
min: 0.1
max: 1.0
default: 0.5
label: 灵敏度
providers:
- id: local
name: 本地分析
api_key_ref: ''
default: true
defaults:
provider: local
sensitivity: 0.5
execution: local
impl: composer/beat_sync.py
status: ready
source: 现有资产(composer/beat_sync)
- id: emotion_analyze
name: 情绪分析
category: audio
description: 分析音频情绪曲线(驱动剪辑节奏)
input:
audio_path: string
output:
emotion_curve: object[]
params_schema: {}
providers:
- id: local
name: 本地分析
api_key_ref: ''
default: true
defaults:
provider: local
execution: local
impl: story_director/(本地规则)
status: ready
source: 现有资产(audio_line/,3530 行)
- id: audio_mix
name: 混音
category: audio
description: 人声 + BGM + 音效混音(音量/淡入淡出)
input:
voice: file
bgm: file?
sfx: file[]?
output:
audio_path: string
params_schema:
voice_volume:
type: number
min: 0
max: 2
default: 1.0
label: 人声音量
bgm_volume:
type: number
min: 0
max: 1
default: 0.15
label: BGM 音量
fade_in:
type: number
min: 0
max: 5
default: 1.0
label: 淡入(秒)
fade_out:
type: number
min: 0
max: 5
default: 1.0
label: 淡出(秒)
providers:
- id: ffmpeg
name: 本地 FFmpeg
api_key_ref: ''
default: true
defaults:
provider: ffmpeg
voice_volume: 1.0
bgm_volume: 0.15
fade_in: 1.0
fade_out: 1.0
execution: local
impl: 'composer/pipeline.py: mux_final'
status: ready
source: 现有资产(audio_line/)
- id: image_to_video
name: 图生视频
category: visual
description: 参考图 + 提示词 → 视频片段(故事/短剧主力)
input:
image: file
prompt: string
duration: number
output:
video_path: string
params_schema:
duration:
type: number
min: 3
max: 10
default: 5
label: 时长(秒)
seed:
type: number
default: 42
label: 随机种子
camera_move:
type: enum
options:
- none
- pan
- tilt
- zoom
- roll
- orbit
default: none
label: 运镜
providers:
- id: kling
name: 可灵
api_key_ref: kling.api_key
model: kling-v3
default: true
- id: jimeng
name: 即梦
api_key_ref: volcano.ark_api_key
model: seedance
defaults:
provider: kling
duration: 5
seed: 42
camera_move: none
execution: remote
impl: capabilities/kling_video.py
status: ready
source: 现有资产(batch_generator,664 行);⚠️ 可灵余额不足,可切即梦
- id: person_swap
name: 人物置换
category: image
description: 已有视频 → 替换人物(保持动作/场景)
input:
video: file
character_image: file
output:
video_path: string
params_schema:
mode:
type: enum
options:
- mix
- animate
default: mix
label: 模式
providers:
- id: bailian
name: 阿里百炼
api_key_ref: aliyun.api_key
model: wan2.2-animate-mix
default: true
defaults:
provider: bailian
mode: mix
execution: remote
impl: person_swap/api.py
status: ready
source: 2026-10-02 实测校准(真名 wan2.2-animate-mix;std ¥0.6/秒 · pro ¥0.9/秒)
- id: lipsync
name: 对口型
category: visual
description: 人物视频 + 人声 → 口型匹配的新视频(仅"有台词"的镜头做)
input:
image: file
audio: file
output:
video_path: string
params_schema:
resolution:
type: enum
options:
- 720p
- 1080p
default: 1080p
label: 分辨率
providers:
- id: bailian
name: 阿里百炼 VideoRetalk
api_key_ref: aliyun.api_key
model: videoretalk
default: true
note: ¥0.08/秒 · 1800 秒免费额度 · 支持 ref_image_url
- id: fal
name: fal.ai(Kling Lipsync)
api_key_ref: fal.api_key
model: fal-ai/kling-video/lipsync/audio-to-video
note: ⚠️ 缺 fal key,未启用
- id: volcano
name: 火山 OmniHuman
api_key_ref: volcano.voice_app_key
defaults:
provider: bailian
resolution: 1080p
limits:
- 视频需正面近景 · 2~120s · mp4/mov · 15~60fps · 边长 640~2048
- 音频需干净人声(TTS 产物天然满足)
execution: remote
impl: composer/lipsync.py(lipsync_videoretalk)
status: ready
source: 2026-10-03 实测跑通(百炼 VideoRetalk · ¥0.08/秒 · 1800 秒免费额度)
- id: character_lock
name: 角色锁定
category: visual
description: 跨镜头角色一致性(固定描述块 + seed)
input:
character_id: string
shots: object[]
output:
locked_prompts: string[]
params_schema:
consistency_seed:
type: number
default: 42
label: 一致性种子
providers:
- id: local
name: 本地处理
api_key_ref: ''
default: true
defaults:
provider: local
consistency_seed: 42
execution: local
impl: assets_manager/ + character_generator/
status: ready
source: 现有资产(character_locker,68 行)
- id: video_concat
name: 视频拼接
category: video
description: 多片段拼接 + 转场
input:
clips: file[]
output:
video_path: string
params_schema:
transition:
type: enum
options:
- cut
- dissolve
- fade
- wipe
default: cut
label: 转场
transition_duration:
type: number
min: 0
max: 2
default: 0.5
label: 转场时长(秒)
resolution:
type: string
default: 1080x1920
label: 分辨率
fps:
type: number
default: 30
label: 帧率
providers:
- id: ffmpeg
name: 本地 FFmpeg
api_key_ref: ''
default: true
defaults:
provider: ffmpeg
transition: cut
resolution: 1080x1920
fps: 30
execution: local
impl: 'composer/pipeline.py: render_from_clips'
status: ready
source: 现有资产(composer/ffmpeg,702 行)
- id: speed_ramp
name: 变速
category: video
description: 视频变速 / 速度斜坡(卡点用)
input:
video: file
output:
video_path: string
params_schema:
factor:
type: number
min: 0.25
max: 4.0
default: 1.0
label: 速度倍率
ramp:
type: string
default: ''
label: 斜坡描述
providers:
- id: ffmpeg
name: 本地 FFmpeg
api_key_ref: ''
default: true
defaults:
provider: ffmpeg
factor: 1.0
execution: local
impl: composer/pipeline.py(_build_atempo_filter)
status: ready
source: 现有资产(speed_ramp,370 行)
- id: de_ai
name: 去 AI 化
category: video
description: 后处理链:模糊 → 颗粒 → 调色 → S曲线 → 色温(消除 AI 感)
input:
video: file
output:
video_path: string
params_schema:
blur_sigma:
type: number
min: 0
max: 2.0
default: 0.4
label: 模糊 sigma
grain:
type: number
min: 0
max: 50
default: 12
label: 颗粒强度
saturation:
type: number
min: -1
max: 1
default: -0.12
label: 饱和偏移
temperature:
type: number
min: 2000
max: 10000
default: 5300
label: 色温(K)
providers:
- id: ffmpeg
name: 本地 FFmpeg
api_key_ref: ''
default: true
defaults:
provider: ffmpeg
blur_sigma: 0.4
grain: 12
saturation: -0.12
temperature: 5300
execution: local
impl: 'composer/pipeline.py: de_ai 处理'
status: ready
consumer: 合成节点(video_concat)自动调用
source: 🆕 待建(S2);参数来自 DCS 第八节
- id: subtitle
name: 字幕生成
category: video
description: 台词文本 → 时间轴字幕(SRT/ASS)+ 烧录
input:
text: string
audio_duration: number
output:
subtitle_path: string
video_path: string?
params_schema:
style:
type: enum
options:
- 手机系统默认
- 简洁
- 强调
default: 手机系统默认
label: 样式
position:
type: enum
options:
- bottom_center
- bottom_left
- top_center
default: bottom_center
label: 位置
providers:
- id: local
name: 本地生成
api_key_ref: ''
default: true
defaults:
provider: local
style: 手机系统默认
position: bottom_center
execution: local
impl: composer/ffmpeg.py(ASS 字幕)
status: ready
consumer: 工作流 subtitle 节点
source: 现有资产(部分实现)
- id: script_generate
name: 脚本生成
category: analysis
description: 主题/素材 → 完整脚本(口播稿 / 短剧剧本)
input:
topic: string
style: string
duration: number
output:
script: string
script_path: string
params_schema:
style:
type: enum
options:
- 口播
- 短剧
- 科普
- 剧情
default: 口播
label: 脚本类型
duration:
type: number
min: 15
max: 300
default: 60
label: 目标时长(秒)
detail:
type: enum
options:
- simple
- detailed
- stepwise
default: detailed
label: 详细度
providers:
- id: deepseek
name: DeepSeek
api_key_ref: llm.api_key
model: deepseek-v4-flash
default: true
defaults:
provider: deepseek
style: 口播
duration: 60
detail: detailed
execution: local
impl: directors/llm.py(+ 各导演)
status: ready
source: 现有资产(script_generator/,377 行)
- id: script_parse
name: 文案解析
category: analysis
description: 文案/故事 → 结构化导演脚本
input:
script: string
style: string
output:
director_script: object
params_schema:
style:
type: enum
options:
- knowledge_lecture
- bedtime_story
- funny_talk
- personal_vlog
default: knowledge_lecture
label: 内容类型
providers:
- id: deepseek
name: DeepSeek
api_key_ref: llm.api_key
model: deepseek-v4-flash
default: true
defaults:
provider: deepseek
style: knowledge_lecture
execution: local
impl: story_director/
status: ready
source: 现有资产(director_parser,323 行)
- id: storyboard_plan
name: 分镜规划
category: analysis
description: 导演脚本/故事 → 分镜(景别/机位/运镜/时长/画面/台词)
input:
story: string
character_block: string?
outline: string?
output:
shots: object[]
params_schema:
shot_count:
type: number
min: 3
max: 20
default: 6
label: 镜头数
shot_duration:
type: number
min: 3
max: 15
default: 5
label: 单镜头时长(秒)
style:
type: string
default: documentary_realism
label: 拍摄风格
providers:
- id: storyboard_v52
name: AI Storyboard Director v5.2
api_key_ref: llm.api_key
model: deepseek-v4-flash
default: true
- id: clip_storyboard
name: clip-storyboard-director
api_key_ref: llm.api_key
model: deepseek-v4-flash
- id: legacy_scene_planner
name: 本地场景规划(legacy)
api_key_ref: llm.api_key
model: deepseek-v4-flash
defaults:
provider: legacy_scene_planner
shot_count: 6
shot_duration: 5
style: documentary_realism
execution: local
impl: directors/(storyboard_v52 / seedance_director / legacy)
status: ready
source: 现有资产(scene_planner 444 行);v5.2 待接(S2)
- id: prompt_gen
name: 提示词生成
category: analysis
description: 分镜 + 角色 → 每镜头视频生成提示词
input:
shots: object[]
character_block: string
output:
prompts: string[]
params_schema:
detail:
type: enum
options:
- simple
- detailed
- stepwise
default: detailed
label: 详细度
providers:
- id: deepseek
name: DeepSeek
api_key_ref: llm.api_key
model: deepseek-v4-flash
default: true
defaults:
provider: deepseek
detail: detailed
execution: local
impl: 'composer/pipeline.py: build_shot_prompt'
status: ready
source: 现有资产
- id: anchor_extract
name: 锚点提取
category: analysis
description: 脚本 → 一致性锚点(角色/场景/道具/风格)
input:
script: object
output:
anchors: object
params_schema: {}
providers:
- id: local
name: 本地处理
api_key_ref: ''
default: true
defaults:
provider: local
execution: local
impl: story_director/
status: ready
source: 现有资产(anchor_extractor,155 行)
- id: material_search
name: 素材搜索
category: analysis
description: 关键词 → 素材片段(背景/空镜)
input:
search: string
count: number
orientation: string
output:
clips: file[]
params_schema:
count:
type: number
min: 1
max: 20
default: 3
label: 数量
orientation:
type: enum
options:
- portrait
- landscape
default: portrait
label: 画幅方向
providers:
- id: pexels
name: Pexels
api_key_ref: pexels.api_key
default: true
- id: wan2_2
name: 通义万相
api_key_ref: aliyun.api_key
model: wan2.2
- id: fallback
name: 本地兜底素材
api_key_ref: ''
defaults:
provider: pexels
count: 3
orientation: portrait
execution: remote
impl: material_producer/{pexels,kling,wan2_2,fallback}/
status: ready
source: 现有资产(material_producer,902 行)
- id: comfyui_workflow
name: ComfyUI 工作流
category: external
description: 调用 RunningHub 上的 ComfyUI 工作流(**一个工作流 = 一个新能力**,可长出面部件表情/风格渲染等)
input:
workflow_id: string
images: file[]?
text: string?
output:
output_files: file[]
params_schema:
workflow_id:
type: string
default: ''
label: 工作流 ID
node_overrides:
type: object
default: {}
label: 节点覆盖参数
providers:
- id: runninghub
name: RunningHub
api_key_ref: runninghub.api_key
default: true
- id: comfydeploy
name: ComfyDeploy
api_key_ref: comfydeploy.api_key
defaults:
provider: runninghub
execution: remote
impl: capabilities/external/comfyui.py
status: planned
source: 🆕 待接(S5)
- id: text_to_video
name: 文生视频
category: external
description: 纯文本 → 视频(无参考图,成本较高)
input:
prompt: string
duration: number
output:
video_path: string
params_schema:
duration:
type: number
min: 3
max: 10
default: 5
label: 时长(秒)
providers:
- id: kling
name: 可灵
api_key_ref: kling.api_key
model: kling-v3
default: true
- id: wanxiang
name: 通义万相
api_key_ref: aliyun.api_key
model: wan2.2-t2v
defaults:
provider: kling
duration: 5
execution: remote
impl: 'capabilities/kling_video.py: submit_text2video'
status: ready
source: ✅ 实测可用(kling-v3,2026-10-01 生成 5 秒视频成功)
- id: vfx_apply
name: 特效
category: external
description: 子弹时间 / 环绕运镜 / 慢动作 / 焦点锁定
input:
image: file?
video: file?
vfx_type: string
output:
video_path: string
params_schema:
vfx_type:
type: enum
options:
- bullet_time
- orbit
- slow_motion
- focus_lock
- custom
default: orbit
label: 特效类型
pan:
type: number
min: -10
max: 10
default: 0
label: pan(水平摇)
tilt:
type: number
min: -10
max: 10
default: 0
label: tilt(垂直摇)
roll:
type: number
min: -10
max: 10
default: 0
label: roll(旋转)
zoom:
type: number
min: -10
max: 10
default: 0
label: zoom(变焦)
providers:
- id: kling
name: 可灵运镜
api_key_ref: kling.api_key
default: true
- id: tianmu
name: 万兴天幕
api_key_ref: wondershare.api_key
- id: hailuo
name: 海螺AI
api_key_ref: hailuo.api_key
- id: comfyui
name: ComfyUI
api_key_ref: runninghub.api_key
defaults:
provider: kling
vfx_type: orbit
execution: remote
impl: capabilities/kling_video.py:270 build_camera_control
status: partial
source: 🆕 待接(S5);参数来自 DCS 第七节
- id: character_3d
name: 3D 角色
category: external
description: 概念图 → 多视图 3D 模型 + 骨骼绑定
input:
image: file
prompt: string?
output:
model_file: string
preview: string
params_schema:
format:
type: enum
options:
- glb
- fbx
- obj
default: glb
label: 格式
rigging:
type: boolean
default: true
label: 自动绑骨
providers:
- id: hunyuan_3d
name: 混元3D
api_key_ref: hunyuan_3d.secret_id
default: true
defaults:
provider: hunyuan_3d
format: glb
rigging: true
execution: remote
impl: ''
status: planned
source: 🆕 待接(S5);接口见 DCS 第六节
- id: frame_chain
name: 首尾帧衔接
category: video
description: 上一镜尾帧 → 作为下一镜首帧/尾帧,长镜头分段生成后无缝接续
input:
tail_image: file
prompt: string
output:
video_path: string
params_schema:
mode:
type: enum
options:
- tail
- head
default: tail
label: 衔接方式
providers:
- id: kling
name: 可灵(image_tail)
api_key_ref: kling.api_key
param: image_tail
default: true
defaults:
provider: kling
mode: tail
execution: remote
impl: capabilities/kling_video.py:143-152
status: partial
source: 代码已实现 image_tail;⚠️ 分镜流程尚未接线(P1 待做)
- id: voice_lock
name: 声线锁
category: audio
description: 一个角色 = 一个固定音色(跨镜/跨集逐字复用,外观变体不换锁)
input:
cast: list
text: string
output:
audio_path: string
providers:
- id: local_lib
name: 音色库(演员表绑定)
api_key_ref: aliyun.api_key
default: true
defaults:
provider: local_lib
execution: local
impl: composer/dubbing.py(resolve_voice_map / pick_voice_for_shot)
status: ready
source: 2026-10-03 配音链路实测;音色库见 config/cosyvoice_voices.yaml
- id: text_to_image
name: 文生图
category: image
description: 文本 → 图片(角色定妆照 / 概念图 / 场景图 / 关键帧草图)
input:
prompt: string
output:
image_path: string
params_schema:
size:
type: enum
options:
- 1K
- 2K
- 4K
default: 2K
label: 分辨率档
n:
type: number
min: 1
max: 12
default: 1
label: 输出张数
negative_prompt:
type: string
default: ''
label: 负向提示词(排除不要的)
providers:
- id: qwen
name: 千问AI平台·万相2.7
api_key_ref: aliyun.api_key
model: wan2.7-image-pro
default: true
- id: qwen
name: 千问AI平台·Qwen-Image
api_key_ref: aliyun.api_key
model: qwen-image-3.0-pro
- id: qwen
name: 千问AI平台·Z-Image(快/便宜)
api_key_ref: aliyun.api_key
model: z-image-turbo
- id: kling
name: 可灵
api_key_ref: kling.api_key
model: kling-v3
- id: jimeng
name: 即梦
api_key_ref: volcano.ark_api_key
model: seedream
defaults:
provider: qwen
model: wan2.7-image-pro
size: 2K
n: 1
execution: remote
status: ready
impl: character_sheet.py / 待接 qwen-image
docs:
- source: qwen
slug: api-reference-image-generation-wan27-image-gen-edit-synchronous
title: Wan 2.7 — 同步调用
- id: ref_to_image
name: 参考图生图(多图融合)★
category: image
description: 1~9 张参考图(角色多角度 + 场景多机位 + 道具)+ 文本指令 → 融合成一张画面 —— 关键帧创作的核心能力:角色与场景不再二选一
input:
prompt: string
ref_images: list[file]
output:
image_path: string
params_schema:
size:
type: enum
options:
- 1K
- 2K
- 4K
default: 2K
label: 输出档
n:
type: number
min: 1
max: 6
default: 1
label: 输出张数
mode:
type: enum
options:
- single
- sequential
default: single
label: 单张 / 顺序模式(一次多张且角色一致)
providers:
- id: qwen
name: 千问AI平台·万相2.7 Pro(最多 9 图 + 顺序 12 张)
api_key_ref: aliyun.api_key
model: wan2.7-image-pro
default: true
- id: qwen
name: 千问AI平台·Qwen-Image-2.1 Pro(最多 10 图 + 透明通道)
api_key_ref: aliyun.api_key
model: qwen-image-2.1-pro
- id: kling
name: 可灵(主体1-4 + 场景 + 风格分离)
api_key_ref: kling.api_key
model: kling-v2-1
defaults:
provider: qwen
model: wan2.7-image-pro
mode: single
n: 1
execution: remote
status: partial
impl: 待接(capabilities/kling_video.submit_multi_image2image 已有可灵版)
note: 关键帧创作的主力;可灵版接口已实现但从未接入流程
docs:
- source: qwen
slug: developer-guides-image-generation-wan-image-editing
title: 图像编辑 - 万相2.7/2.6/2.5(多图输入多图输出)
- source: kling
slug: multiImage2Image
title: 可灵·多图参考生图
- id: image_edit
name: 图像编辑(指令)
category: image
description: 文本指令修改图片(换主体 / 换环境 / 改细节),保留其余部分
input:
prompt: string
ref_images: list[file]
output:
image_path: string
params_schema:
size:
type: enum
options:
- 1K
- 2K
default: 2K
label: 分辨率档
providers:
- id: qwen
name: 千问AI平台·Qwen-Image-Edit
api_key_ref: aliyun.api_key
model: qwen-image-3.0-pro
default: true
- id: qwen
name: 千问AI平台·Wan 2.5 图像编辑
api_key_ref: aliyun.api_key
model: wan2.5-i2i-preview
defaults:
provider: qwen
model: qwen-image-3.0-pro
execution: remote
status: ready
impl: 待接(同步接口 ImageGeneration.call 支持 text+image 混排)
docs:
- source: qwen
slug: developer-guides-image-generation-image-editing
title: 图像编辑
- id: image_inpaint
name: 局部重绘
category: image
description: 给定原图 + 涂抹掩码 + 描述,只重绘指定区域
input:
prompt: string
image: file
mask: file
output:
image_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·wanx-x-painting
api_key_ref: aliyun.api_key
model: wanx-x-painting
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-image-inpainting
title: 图像局部重绘
- id: image_outpaint
name: 画面扩展(扩图)
category: image
description: 按宽高比 / 比例 / 方向扩展画面,或旋转扩图
input:
image: file
output:
image_path: string
params_schema:
expand_ratio:
type: number
default: 1.5
label: 扩展比例
providers:
- id: qwen
name: 千问AI平台·image-out-painting
api_key_ref: aliyun.api_key
model: image-out-painting
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-image-out-painting
title: 图像画面扩展
- id: image_erase
name: 擦除补全
category: image
description: 保留背景的同时擦除指定区域(去杂物 / 去路人)
input:
image: file
mask: file
keep_mask: file?
output:
image_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·图像擦除补全
api_key_ref: aliyun.api_key
model: image-erase-completion
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-image-erase-completion
title: 图像擦除补全
- id: image_style_transfer
name: 图像风格迁移
category: image
description: 把写实图转成指定美术风格(漫画 / 3D / 国风 / 纸艺 …)
input:
image: file
style: string
output:
image_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·万相2.1 通用编辑(风格迁移)
api_key_ref: aliyun.api_key
model: wanx2.1-imageedit
default: true
- id: qwen
name: 千问AI平台·Wan(背景生成/风格)
api_key_ref: aliyun.api_key
model: wan2.7-image-pro
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-wan21-image-editing
title: 万相2.1 通用图像编辑(含风格迁移)
- id: sketch_to_image
name: 涂鸦作画
category: image
description: 手绘草图 + 文字描述 → 成品画面
input:
image: file
prompt: string
output:
image_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·涂鸦作画
api_key_ref: aliyun.api_key
model: wanx-sketch-to-image
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-sketch-to-image
title: 涂鸦作画
- id: background_generate
name: 背景生成
category: image
description: 为商品/人物图生成高质量背景(文本引导 / 图像引导 / 边缘引导)
input:
image: file
prompt: string
output:
image_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·图像背景生成
api_key_ref: aliyun.api_key
model: wanx-background-generation
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-background-generation
title: 图像背景生成
- id: virtual_model
name: 虚拟模特 / 换装
category: image
description: 保持真人站姿不变,替换背景与模特(服装试穿 / 模特图批量生成)
input:
image: file
template: file
output:
image_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·虚拟模特
api_key_ref: aliyun.api_key
model: wanx-virtualmodel
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-virtual-model
title: 虚拟模特生成
- id: person_segment
name: 人物分割(抠图)
category: image
description: 识别图中人物并输出像素级掩码(抠人 / 合成前置)
input:
image: file
output:
mask_path: string
params_schema: {}
providers:
- id: qwen
name: 千问AI平台·人物实例分割
api_key_ref: aliyun.api_key
model: person-instance-segmentation
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: developer-guides-image-generation-person-instance-segmentation
title: 人物实例分割
- id: ref_to_video
name: 参考驱动生视频(R2V)★
category: video
description: 参考图/视频(最多 5 个混合)+ 文本 → 视频;可同时给角色图 + 场景图 + 首帧,还可绑音色(reference_voice)
input:
prompt: string
media: list[{type,url}]
output:
video_path: string
params_schema:
resolution:
type: enum
options:
- 720P
- 1080P
default: 720P
label: 清晰度
duration:
type: number
min: 2
max: 10
default: 5
label: 时长(秒)
ratio:
type: enum
options:
- '16:9'
- '9:16'
- '1:1'
default: '9:16'
label: 宽高比
providers:
- id: qwen
name: 千问AI平台·Wan2.7-R2V(5 参考 + 音色)
api_key_ref: aliyun.api_key
model: wan2.7-r2v
default: true
- id: qwen
name: 千问AI平台·Wan2.6-R2V-Flash(¥0.3/秒)
api_key_ref: aliyun.api_key
model: wan2.6-r2v-flash
defaults:
provider: qwen
model: wan2.6-r2v-flash
resolution: 720P
duration: 5
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: api-reference-video-generation-wan27-image-to-video-create-task
title: Wan 2.7 参考生视频
- id: keyframe_video
name: 首尾帧生视频(KF2V)★
category: video
description: 首帧图 + 尾帧图 + 过渡描述 → 平滑过渡视频(固定 5 秒)—— 关键帧 → 视频的主力
input:
prompt: string?
first_frame_url: file
last_frame_url: file
output:
video_path: string
params_schema:
resolution:
type: enum
options:
- 480P
- 720P
- 1080P
default: 480P
label: 清晰度
duration:
type: number
default: 5
label: 时长(秒) · 固定 5
template:
type: string
default: ''
label: 特效模板(填了则只需首帧)
providers:
- id: qwen
name: 千问AI平台·Wan2.2-KF2V-Flash(¥0.1/秒·480P)
api_key_ref: aliyun.api_key
model: wan2.2-kf2v-flash
default: true
- id: qwen
name: 千问AI平台·Wan2.1-KF2V-Plus
api_key_ref: aliyun.api_key
model: wanx2.1-kf2v-plus
defaults:
provider: qwen
model: wan2.2-kf2v-flash
resolution: 480P
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: api-reference-video-generation-wan-image-to-video-first-last-frames-create-task
title: Wan — 首尾帧图生视频
- id: video_style_transform
name: 视频风格重绘
category: video
description: 把视频转成 8 种艺术风格(日式漫画 / 美式漫画 / 清新漫画 / 3D卡通 / 国风 / 纸艺 / 简易插画 …)
input:
video_url: file
output:
video_path: string
params_schema:
style:
type: enum
options:
- 0 日式漫画
- 1 美式漫画
- 2 清新漫画
- 3 3D卡通
- 4 国风卡通
- 5 纸艺风格
- 6 简易插画
- '7'
default: 3 3D卡通
label: 目标风格
animate_emotion:
type: bool
default: false
label: 情绪表情迁移
use_SR:
type: bool
default: false
label: 超分辨率增强
min_len:
type: enum
options:
- 720
- 540
default: 540
label: 短边分辨率
providers:
- id: qwen
name: 千问AI平台·视频风格重绘
api_key_ref: aliyun.api_key
model: video-style-transform
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: api-reference-video-generation-video-style-transform-create-task
title: 视频风格重绘
- id: video_edit
name: 统一视频编辑
category: video
description: 一个接口靠 function 切换五大能力:多图参考 / 视频重绘 / 局部编辑 / 视频续写 / 画面扩展
input:
function: enum
prompt: string
ref_images_url: list[file]
video_url: file?
mask_*: any
output:
video_path: string
params_schema:
function:
type: enum
options:
- 多图参考
- 视频重绘
- 局部编辑
- 视频续写
- 画面扩展
default: 局部编辑
label: 编辑类型
strength:
type: number
default: 0.8
label: 强度
providers:
- id: qwen
name: 千问AI平台·Wan 统一视频编辑
api_key_ref: aliyun.api_key
model: wan-video-editing
default: true
defaults:
provider: qwen
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: openapi-wan-video-editing
title: Wan 统一视频编辑
- id: character_swap
name: 视频换人(保留场景光线)
category: video
description: 把我的角色图换到别人的视频里,保留原视频的场景、光线与色调
input:
image_url: file
video_url: file
output:
video_path: string
params_schema:
mode:
type: enum
options:
- wan-std
- wan-pro
default: wan-std
label: 模式(std 快/便宜 · pro 专业)
check_image:
type: bool
default: true
label: 图片合规检测
providers:
- id: qwen
name: 千问AI平台·视频换脸
api_key_ref: aliyun.api_key
model: wan-character-swap
default: true
defaults:
provider: qwen
mode: wan-std
execution: remote
status: ready
impl: 待接
docs:
- source: qwen
slug: openapi-wan-character-swap
title: Wan 视频换脸