mcpField
A
AdAnvil

AdAnvil

本地服务
github.com/maxbuildog媒体与设计11 周前更新

关于 AdAnvil

AdAnvil 是面向 Agent 的 MCP 服务,可根据视频素材、参考广告或创意制作竖版 9:16 视频广告。它结合基于分镜的编辑、确定性渲染和图像质量检查。

主要功能

  1. 01分析参考广告
  2. 02为素材建立索引并生成联系表
  3. 03提供 9 种广告配方
  4. 04添加字幕、音频和视觉叠加
  5. 05验证分镜并渲染视频
  6. 06检查成片质量

适用场景

  1. 01用品牌素材制作广告
  2. 02将参考广告改编为品牌广告
  3. 03把口播录制剪辑成 UGC 广告

MCP 相关

AdAnvil 向 Claude Code、Codex 和 Cursor 等 MCP 客户端提供视频广告编辑工具。Agent 可索引媒体、创建并验证分镜、渲染视频,以及查看质量检查图像。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"maxbuildog-adanvil": {
"command": "uvx",
"args": [
"adanvil"
]
}
}
}
启动命令uvx adanvil

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiadanvil0.4.0

工具

43

收录的工具列表 · 更新于 1 周前

参数类型必填说明
namestring是
project_dirstring是

详细介绍

AdAnvil

一种让 AI Agent 编辑竖屏 9:16 视频广告的 MCP 服务。

AdAnvil 可与 Claude Code、Codex、Cursor 或任何 MCP 客户端配合使用。它可以用品牌自己的素材、参考广告或一个创意来制作广告。由 Agent 做判断(选择哪些片段、文案内容,以及成片效果是否合适)。AdAnvil 以确定性方式渲染并检查结果:相同的分镜始终会生成相同的视频。

它不局限于某个细分领域。配方和编辑指南采用通用表述(产品、优势、问题、目标客户),并以多个领域为例:咖啡、时尚、健身、宠物、软件、家居、美妆。

演示

上方演示使用 examples/demo/ 中的 CC0 演示素材包制作(四段来自 Wikimedia Commons 的片段、一张产品静帧,以及一个名为 Ember & Oak 的虚构品牌)。此仓库不存储任何视频素材:需要时才会获取该素材包。

功能

  • 参考素材解析:镜头、节奏、画面内文字和语音,以及由 Agent 编写并与编辑结果对比的逐镜头拆解。
  • 素材库:建立索引、生成联系表和马赛克图,让 Agent 在使用前查看每个片段;并转录每个视频和音频文件中的语音(包含词语时间戳,每个文件处理完成后即可搜索),这样可以在口播创作者停顿处剪辑。逐帧查找剪辑点,因此长手机视频中不同镜头之间的跳剪会被识别为独立镜头;当一个片段跨越剪辑点时,验证器会发出警告(先闪现一个镜头,再闪现另一个)。
  • 9 种常见广告形式配方(YAML):文字钩子、钩子加产品、前后对比、客户日记、评论回复、梗图文字、旁白广告、长版改编、口播 UGC。
  • 7 种字幕样式(pill、meme、outline、outline_soft、box、label、comment),支持表情符号。
  • 移除参考素材中的画面内文字。
  • 将 HDR(HLG 和 PQ)色调映射为 SDR。
  • 音乐匹配和响度控制。
  • 可选的开源旁白(Chatterbox),字幕与口述词语同步,并可使用 start/end 窗口暂停;如果重复句子的结尾,重复部分会被剪掉并标记。
  • 口播 UGC:从多段录制中为每句挑选最佳镜头,在停顿处剪辑并去除犹豫语气词,保留创作者本人的声音(在语音上叠加 B-roll),并根据语音生成字幕。
  • 视觉效果:前后对比揭示(分隔线扫过,将一幅画面移开以展示另一幅)、分屏、图片卡片(照片或屏幕截图叠加在视频上)、视频画中画、贴纸和箭头、进度条和推近缩放,以及由 AdAnvil 绘制的信息卡(每张卡片讲述一个创意,一次显示一张,并在画面上与旁白同步)。
  • 音效设计:约 18 种音效组成的素材包(CC0 或合成生成,不存储在仓库中)、在剪辑点和字幕处使用 sfx 叠加和 audio.sfx_auto,以及卡在音乐节拍上的剪辑。
  • 使用真实产品照片制作片尾卡,以及用于公告和潜在客户收集广告的优惠分镜(story: "offer"),从第一秒起就展示产品。
  • 结合图像进行质量控制:自动检查、成片联系表、全分辨率帧。
  • 用于索引、语音处理和渲染的分离式后台任务,确保长时间运行的工作不会因连接断开而中断。

安装

选择一种方式。第一种最简单。

1. Claude Desktop 扩展(一键安装)

从最新版本下载 adanvil-<version>.mcpb,双击文件,然后在 Claude Desktop 中点击“安装”。它会要求选择项目文件夹,并可选填 Freesound 密钥(安全存储)。你的电脑上仍需安装 ffmpeg 6.1 或更高版本(brew install ffmpeg、winget install Gyan.FFmpeg、sudo apt install ffmpeg);如果未安装该程序,扩展会提示并显示适用于你系统的命令。

2. Docker(无需安装 Python 或 ffmpeg)
git clone https://github.com/maxbuildog/adanvil && cd adanvil
docker build -t adanvil .

该镜像包含 ffmpeg 6.1,以非 root 用户身份运行,并通过 stdio 使用 MCP。将存放项目的文件夹挂载到 /projects;Agent 必须使用 /projects 下的路径调用工具(例如 /projects/my-ad):镜像设置了 ADANVIL_PROJECTS_DIR=/projects,因此会拒绝任何其他文件夹,以及 /projects 本身。

# Claude Code
claude mcp add adanvil -- docker run -i --rm -v "$PWD:/projects" adanvil

在 Linux 上添加 --user "$(id -u):$(id -g)",这样写入该文件夹的文件就归你所有。

Codex,在 ~/.codex/config.toml 中:

[mcp_servers.adanvil]
command = "docker"
args = ["run", "-i", "--rm", "-v", "/home/you/ads:/projects", "adanvil"]
tool_timeout_sec = 900
default_tools_approval_mode = "approve"  # needed with approval_policy = "never" (codex exec)

Cursor,在 .cursor/mcp.json 中:

{
  "mcpServers": {
    "adanvil": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-v", "/home/you/ads:/projects", "adanvil"]
    }
  }
}

该镜像仅包含基础包。可通过 docker build --build-arg EXTRAS=transcribe -t adanvil:transcribe . 使用转录功能。不包含语音、视觉和音乐生成环境(adanvil voice-setup、vision_setup、music-setup):它们需要数 GB 的模型,因此请使用 uvx 方式。

3. uvx

要求:Python 3.11 或更高版本、uv(提供 uvx)以及 ffmpeg 6.1 或更高版本(需使用 libzimg 构建),并且位于 PATH 中(使用 ffmpeg -version 检查;如果它位于其他位置,请将 ADANVIL_FFMPEG 和 ADANVIL_FFPROBE 设置为完整路径)。

# 1. Check the install (the first run downloads the package)
uvx --from adanvil adanvil --version

# 2. Register the server in Claude Code
claude mcp add adanvil -e ADANVIL_PROJECTS_DIR="$HOME/AdAnvil" -- uvx --from adanvil adanvil-mcp

# 3. Then ask your agent:
#    "Make a 9:16 ad from the footage in ./my-project"

ADANVIL_PROJECTS_DIR(推荐)是存放项目的文件夹:服务器会拒绝其外部的任何项目。项目是该文件夹下的子文件夹(例如 ~/AdAnvil/summer-ad)。请参阅 SECURITY.md。

该包名为 adanvil。它会安装两个命令:adanvil(命令行)和 adanvil-mcp(通过 stdio 运行的 MCP 服务)。单独使用 uvx adanvil-mcp 无法运行,因为 uvx 会查找同名包:请务必添加 --from。

Agent 会创建项目文件夹,并告诉你将文件放在哪里:素材放在 footage/,参考广告放在 reference/,音乐放在 music/,徽标和片尾卡放在 brand/。它会通过 editing_guide 工具和 AGENTS.md 学习方法。

Codex,在 ~/.codex/config.toml 中:

[mcp_servers.adanvil]
command = "uvx"
args = ["--from", "adanvil", "adanvil-mcp"]
env = { ADANVIL_PROJECTS_DIR = "/home/you/AdAnvil" }
tool_timeout_sec = 900                   # indexing long footage can take minutes
default_tools_approval_mode = "approve"  # needed with approval_policy = "never" (codex exec)

如果不设置 default_tools_approval_mode,非交互式 codex exec 运行会拒绝所有 AdAnvil 工具调用,并显示“需要批准 MCP 工具调用”。

Cursor,在 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局)中:

{
  "mcpServers": {
    "adanvil": {
      "command": "uvx",
      "args": ["--from", "adanvil", "adanvil-mcp"],
      "env": { "ADANVIL_PROJECTS_DIR": "/home/you/AdAnvil" }
    }
  }
}

其他 MCP 客户端(通用 stdio 配置项):

{
  "mcpServers": {
    "adanvil": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "adanvil", "adanvil-mcp"],
      "env": { "ADANVIL_PROJECTS_DIR": "/home/you/AdAnvil" }
    }
  }
}

编辑配置后重启客户端,然后让 Agent 调用 recipe_list。如果显示九个配方,说明服务器已连接。

可选:参考内容转录需要 transcribe 扩展(faster-whisper)。请使用 --from "adanvil[transcribe]" 替代上文中的普通 --from 值。

使用演示包试用

演示需要一个仓库检出副本,因为获取脚本位于仓库中:

git clone https://github.com/maxbuildog/adanvil
cd adanvil
uv sync
uv run python examples/demo/fetch_demo.py ./demo-project
uv run adanvil index ./demo-project --source footage

然后注册 MCP 服务,并让你的 Agent 使用 ./demo-project 制作广告(提供绝对路径),或者按照 examples/demo/README.md 中的命令行教程操作。

工作原理

所有内容都位于一个项目文件夹中:footage/、brand/、music/、reference/、renders/、cache/,以及 adanvil.json、brand.yaml 和 catalog.json。每个工具都需要绝对路径 project_dir;其他所有路径都相对于该路径,且无法越出该目录。

  1. Agent 为素材编制索引、查看联系表,并可选择解析参考广告。
  2. 它选择一个配方,并编写分镜脚本(JSON):镜头、字幕、音频。
  3. storyboard_validate 会根据配方规则检查分镜脚本,然后 render_start 在后台渲染。
  4. qc_run 会检查文件并返回控制图像,Agent 会查看这些图像后再交付;ad_score 会为其创意质量评分(目标是 80 分或更高)。

详情:管线说明见 docs/ARCHITECTURE.md,剪辑原则见 docs/EDITING_GUIDE.md,Agent 遵循的分步指南见 AGENTS.md(内容与 skill/SKILL.md 相同,后者是 Claude Code 技能版本)。

选择模型

结果取决于驱动 AdAnvil 的模型。参考分析和镜头选择都需要判断力:请尽量使用能力最强的模型(例如 Claude Opus)来完成。较小的模型也能很好地执行这些步骤,但它们往往会照搬参考内容的表面形式(相同的措辞、相同的镜头),而不是为你的品牌重新构建其逻辑。

工具(43)

工具功能
project_init创建 AdAnvil 项目骨架。
project_read_text读取项目中 AdAnvil 自带的一个文本文件(许可说明、JSON、YAML;最大 1 MB)。
brand_onboard读取品牌网站,然后根据回答撰写品牌档案。
brand_get读取品牌档案和简报。
library_index为素材建立索引或刷新索引(长时间运行的任务会转为独立作业;refresh_shots 会重新测量剪辑点)。
library_view查看一个目录条目及其联系表。
library_annotate保存 Agent 在片段中看到的内容(描述、人物、情绪、质量、排除项)。
library_search按文本(包括片段中的语音内容)、标签、人物、情绪、时长或句子(使用视觉环境时通过 query)搜索已建立索引的素材。
speech_view查看一个片段语音中的简短语句(含标记)、填充词、重新开始的语句和干净的剪辑片段。
speech_takes查看某个脚本在多段录音中每句台词的最佳录制版本。
speech_refine使用更强大的模型和品牌词汇重新转录选定片段(独立作业)。
library_overview查看素材文件夹概览(不建立索引),并生成拼贴图。
frame_view查看 t 时刻屏幕上显示的完整分辨率帧(floor(t * fps);距离帧边界 1 ms 以内的 t 视为该帧),或按 frame 查看,并显示准确时间。
reference_decode将参考视频解码为镜头、节奏、文字、语音和图表。
reference_breakdown保存 Agent 对参考视频逐镜头的拆解。
recipe_list列出广告方案及其用途和时长。
recipe_get查看一个完整方案及其规则和示例。
editing_guide关于素材、文案、渲染和 QC 的剪辑准则。
storyboard_schema故事板的 JSON Schema。
storyboard_save将故事板保存为 storyboards/<name>.json;保存一次后,后续工具使用该路径而非对象。
storyboard_patch使用 {path, value} 更改项列表编辑已保存的故事板。
caption_preview在真实的 9:16 帧上绘制字幕、评论或信息卡片。
end_card使用真实产品照片合成片尾卡图片。
storyboard_validate根据其架构和方案规则验证故事板。
render_start验证并排队执行后台渲染(预览或最终版)。
voice_generate排队执行经过检查的旁白生成作业。
voice_view查看语音清单和建议的镜头边界。
music_profile查看音乐曲目的节奏、响度和能量。
music_search在 Openverse 和 Freesound 上查找许可允许用于广告的音乐(CC0、PDM、CC BY、CC BY-SA);fit_to="storyboard" 会按广告适配度排序。
music_fetch将找到的曲目下载到 music/,并保存其许可记录(.licence.json、LICENCES.txt),然后分析曲目。
music_generate在本地制作曲目(可选 ACE-Step 环境,adanvil music-setup),作为一项作业执行。
music_beats查看音乐曲目在广告中播放时的节拍时间点。
sfx_list列出项目的音效;fetch=true 会在 sfx/ 中构建 CC0 音效包。
storyboard_snap将故事板的剪辑点移动到音乐节拍上。
job_status查看渲染、批次、语音或索引作业的状态,可选择等待。
qc_run对已渲染视频执行技术 QC,并生成控制图像(叠加裁剪会跟随格式重新排版后的字幕;caption_on_face)。可选的 storyboard:该渲染使用的实际故事板。
ad_score对已渲染广告进行创意评分(满分 100;评估钩子、节奏、可读性、故事、平台安全区域、音频),并提供待修正的问题和安全区域预览。
variants_build生成故事板变体矩阵(钩子 x 主体 x 行动号召,最多 24 个):应用补丁或替换插槽、验证并保存,同时为每个变体生成开头和结尾各 3 秒的联系表。
render_batch创建一个独立作业,使用共享片段缓存渲染多个故事板(及格式),并写入 renders/<batch>/manifest.csv。
timeline_export将故事板导出为 OpenTimelineIO、Final Cut XML、EDL 和 SRT,以及叠加 PNG(按故事板索引命名)、音效和音乐音量,并附上真实媒体描述符和 not_exported 列表,以便在 DaVinci Resolve 或 Premiere Pro 中完成编辑(CLI:adanvil export)。
render_formats将一个故事板输出为 9:16、4:5 和 1:1 格式(重新裁剪素材、按带状区域重新排版字幕、适配发布位置的安全区域)。
compare_pair比较前后画面的差异程度(0 到 100),可比较人脸或整个画面,并提供并排预览,以便挑选一组画面。
vision_setup安装可选视觉环境(支持按句子搜索、自动打标签、产品版本和人脸识别)。
CLI 命令(adanvil <command> --help):mcp、voice-setup、vision-setup、init、cat、onboard、index、decode、recipes、validate、render、voice、qc、preview-caption、end-card、sfx-fetch。添加 --json 可输出机器可读的内容。

智能素材库(可选)

找到合适的镜头是剪辑中最耗时的部分。adanvil vision-setup(或 vision_setup 工具)会一次性安装一个独立环境(约 2.5 GB,仅使用 CPU,无需 GPU),其中包含一个小型多语言图像与文本模型(SigLIP 2,Apache-2.0)和人脸检测器(YuNet,MIT);许可证见 THIRD_PARTY.md。不安装它不会有其他变化,此时 library_index 会显示 vision: unavailable。

  • 使用视觉功能建立索引。 library_index 还会为每张联系表中的帧生成嵌入并检测人脸(cache/vision/<file key>.npz),为每个条目提供 auto_tags(固定标签列表,例如 person、bathroom、hands、smiling、text on screen),这些标签与你自己的 tags 分开保存。
  • 按句子搜索。 library_search(query="a woman with a sad face touching her jaw") 支持任何语言,会先应用常规筛选条件,再为整个素材库中的镜头排序,并通过一张带编号的马赛克图返回最佳结果:无需打开联系表。
  • 根据照片识别产品版本。 brand.yaml 中的 product_versions: [{name: current, photos: [...]}, {name: old, photos: [...]}] 会列出产品版本;建立索引时会推测每个镜头中显示的版本,library_search(product_version="current") 会使用此推测,除非存在人工标注(人工标注始终优先)。请提供照片,而非文字。
  • 人脸感知取景。 在片段、图像、分屏面板和揭示画面侧边中,focus: "face" 会让主要人脸居中于 face_y 位置(默认值为画面高度的 0.38);reveal 默认还会将两张人脸放在相同的位置和大小(align_faces)。compare_pair 也会使用人脸检测器。

旁白(可选)

AdAnvil 可以通过 Chatterbox(一款开源文本转语音模型)添加生成的旁白,并将字幕与口播内容同步。

  • 运行一次 adanvil voice-setup。它会创建一个独立的 Python 环境(位于 AdAnvil 缓存文件夹中),并下载约 3 GB 的模型。adanvil voice-setup --engine kokoro 会将快速引擎(见下文)添加到同一环境中。
  • 生成过程在 CPU 上运行。每个任务由一个工作进程处理,该进程会为每个模型加载一次,并完成所有步骤(语音、对齐、检查)。在一台空闲的 8 核服务器上测得(法语,3 到 9 行,每行约 5 秒):Chatterbox 语音每行约需 25 到 35 秒,因此 9 行约需 5.5 分钟(V2.6 之前需 10.5 分钟);机器繁忙时速度会更慢,每句话最多按 5 分钟估算。
  • 有两种引擎。chatterbox 是默认引擎,也是广告推荐使用的语音(所有者试听过两种语音后选择了它):它会克隆 reference 语音,因此也适合需要匹配品牌语音的场景。kokoro(Apache-2.0)使用固定语音,不支持克隆({"engine": "kokoro", "voice": "ff_siwis"},法语默认使用 ff_siwis,英语默认使用 af_heart,英式英语可选 bf_emma 等):这是适合草稿和预览的快速选项(在为正式语音付费前,先检查脚本、时长和字幕),在同一台服务器上,9 行约需 25 秒,另加 50 秒用于对齐和检查。它只支持法语和英语。
  • 如果每个词的置信度都足够高(check_confidence,默认值为 0.6),且朗读内容与书面内容一致,发音检查会复用对齐转录文本;只有存疑的行才会由 check_model 重新转录。将 check_confidence 设为 null(或设为 ADANVIL_VOICE_CHECK_CONFIDENCE=off),即可使用 check_model 检查每一行。
  • 语音代表品牌发声,担任旁白。不得冒充虚假的客户。
  • 语音语言由语音配置中的 language 决定。如果配置中未设置,AdAnvil 会使用项目 brand.yaml 中的 language(fr-FR 会按 fr 处理);如果品牌未指定语言,则使用 en。
  • 如果语音重复了句尾内容,会在脚本最后一个词之后截断,并标记为 trimmed_extra;无法截断的重复会使该行被标记为可疑。外语词应在 say 中按发音写出({"say": "...", "show": "..."}),并避免使用语音容易读错的缩写。
  • Chatterbox 会在音频中嵌入 Perth 水印。AdAnvil 会保留该水印。请勿移除。
  • 只能使用你有权使用的参考语音。

对镜口播 UGC(可选)

从素材中的讲话内容剪辑创作者对镜头讲话的片段。library_index 会转录有声音的视频片段和音频文件(词语时间戳,在同一个任务中处理,每个文件转录一次,每个文件完成后立即保存);如果已安装 faster-whisper(pip install 'adanvil[transcribe]'),则使用它,否则使用语音环境(adanvil voice-setup);两者都不可用时,索引仍会成功,并在条目中说明这一点。索引使用速度快的模型,让语音内容可供搜索;speech_refine 会用更强的模型重新转录你保留的片段,并将品牌名称、产品名称和 brand.yaml 中的 speech.vocabulary 提供给转录器。通过名称查找单独录制的语音文件(在声音静音的视频上使用 separate_audio_candidates),并用 audio_from 将其铺在视频上;同步由 Agent 根据预览完成。然后,speech_takes 会为每句台词挑选最佳片段,speech_view 会提供保留语音、去掉停顿和犹豫的剪辑,最后,带有 audio.clips、audio_from(语音上方的 B-roll)和 speech_captions 叠加层的故事板会渲染出广告。ugc_talking 配方会将这些步骤串联起来;指南会逐步说明每个环节。

  • ADANVIL_SPEECH_MODEL 设置索引模型(默认为 base:速度快,足以用于搜索)。除非另有指定,speech_refine 使用 medium。语言取自 brand.yaml 的 language,否则自动检测。
  • ADANVIL_SPEECH=off 会阻止 library_index 自动转录(transcribe="auto");但 transcribe=true 仍会转录。
  • 创作者说的话可能构成宣传声明:如果保留的词语出现在品牌的禁用词列表中,验证器会发出 banned_word_spoken 警告;如果剪辑点落在一个词语中间(而不是语音跨越剪辑点继续),则会发出 cut_mid_word 警告。被剪掉的填充词(euh、um、uh、er、genre……)可在 brand.yaml 的 speech 下替换;其中还可设置用于正确拼写词语的 vocabulary 列表。start 和 end 可将 speech_captions 叠加层限制在某个时间段。听错的词可通过 speech_captions.corrections 在字幕中修正,但只能改为拼写相近的词(转录器粘连在一起的词最多可拆分为三个);每项修正都会列出供审核(speech_corrections)。

视觉元素(可选)

reveal 片段(分隔线扫过前一张图片,展示后一张图片;图片可以是真实照片,也可以是两个视频片段,标签会跟随各自所在的一侧),适用于呈现观众眼看着发生的前后对比;split 片段(左右或上下并排,并可添加 FROM THIS 和 TO THIS 等标签)适用于对比;带有 animation、frame 和 rotate 的 image 叠加层(照片或评价截图以卡片形式叠加到视频上);video 叠加层(画中画,可使用 rect、rounded 或 circle 形状,并可添加边框和阴影);sticker 叠加层(箭头、手绘圆圈和下划线、徽章、表情符号、图像,并带有弹出或绘制动画);progress 进度条;对片段进行瞬间缩放的 punch;以及 info_card(由 AdAnvil 自行绘制的信息卡:先显示一张强调色开场卡片,然后逐张显示带编号的条目卡片,每张卡片都与语音内容同步,并带有入场和退场效果,默认无阴影)。每条广告使用一到两种即可。字段和规则见:AGENTS.md 和剪辑指南。

音效设计(可选)

音效叠加在广告的音频底轨上:剪辑处加入呼啸声,字幕处加入弹出声,价格处加入叮声,揭晓前加入渐强声。

  • adanvil sfx-fetch <project_dir>(或使用 fetch=true 的 sfx_list)会在项目的 sfx/ 文件夹中生成一组约 18 个短音效。每个音效都从固定的 CC0 来源下载(通过 SHA-1 校验),或由代码合成,然后经过裁剪并统一音量。本仓库不存储任何音效;来源和许可信息列在 examples/sfx/README.md 中,并写入 sfx/LICENCES.txt。也可以使用你自己的 sfx/ 文件。
  • {"type": "sfx", "source": "sfx/pop.wav", "at": 3.2, "volume": 0.8} 用于放置音效;audio.sfx_auto 会在剪辑处和字幕处自动放置音效。音效不会削波,也不会超出结尾。
  • music_beats 会提供曲目播放时的节拍,storyboard_snap 会将剪辑点移至这些节拍上(验证器会报告已有多少剪辑点落在节拍上)。

性能设置

  • ADANVIL_WORKERS:同时处理的文件、缩略图或片段数量。默认值为 max(1, min(4, cpus // 2));机器内存低于 12 GB 时最多为 2。
  • ADANVIL_FFMPEG_THREADS:每个 ffmpeg 解码器或编码器使用的线程数。默认值为 max(1, cpus // workers)。
  • 语音:ADANVIL_VOICE_CHECK_MODEL 设置发音检查所用的 Whisper 模型(除非语音规格设置了 check_model)。ADANVIL_VOICE_THREADS 设置 torch 和 Whisper 的线程数(默认值:可用核心数)。ADANVIL_VOICE_CHECK_CONFIDENCE 设置词语置信度阈值,范围为 0 到 1;超过该阈值时,对齐转录文本会替代检查模型(设为 off 可始终运行检查模型;若规格中设置了 check_confidence,则以规格中的设置为准)。ADANVIL_VOICE_PERSISTENT=0 会恢复为每个步骤使用一个进程,而不是每个作业使用一个工作进程。
  • 语音识别:ADANVIL_SPEECH_MODEL(默认值:base)、ADANVIL_SPEECH=off(关闭自动转录)、ADANVIL_SPEECH_PROMPT(用于引导转录器的可选文本,例如让它保留犹豫语)。
  • 其他:ADANVIL_CACHE 用于更改缓存文件夹位置;ADANVIL_FFMPEG 和 ADANVIL_FFPROBE 用于指定二进制文件路径(绝对路径;否则会在 PATH 中查找,不会在当前文件夹中查找)。
  • 安全:ADANVIL_PROJECTS_DIR 会将所有项目存放在同一个文件夹下;ADANVIL_ALLOW_PRIVATE_URLS=1 会允许 brand_onboard 和下载操作访问 localhost 及本地网络(仅限开发用途)。请参阅 SECURITY.md。
  • 基准测试:uv run python scripts/bench.py --files 12 --seconds 4。

负责任地使用

AdAnvil 用于编辑广告;广告中的内容和画面由你负责。

  • 只使用真实评论和真实客户原话。工具不会编造优惠、价格、保证或宣传声明;这些内容须由人工确认。
  • 获得出现在素材中的人员的同意。
  • 检查所用音乐和素材的许可(演示素材包采用 CC0 许可,你自己的文件可能并非如此)。
  • 确保广告中的每项声明都真实,且符合你所在市场的规定。
  • 未获授权不得克隆语音,也不得将生成的语音冒充为真实客户的声音。

贡献

请参阅 CONTRIBUTING.md。

许可与状态

MIT,详见 LICENSE。字体、表情符号及其他第三方材料列在 THIRD_PARTY.md 中。

状态:alpha,版本 0.4.0。接口仍可能变更。请参阅 CHANGELOG.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。