自定义命令与 AI 服务

什么是自定义命令?

自定义命令是 Found 纷得 v1.1 引入的一个全新模块,目前仅对 Pro 会员开放,该模块支持通过运行各种扩展脚本与程序来扩充 Found 纷得的功能。
自定义命令这一名词仅用于描述该功能的本质,尽管同样支持不使用脚本解释器而直接执行第三方的程序,但绝大多数时候,会以一个或者多个脚本的形式来实现这一功能,因此后文中"自定义命令"与"脚本"这两个词语常常可以互换。
在截止当前最新版 (v1.1)中,自定义命令支持在主浏览区的右键菜单与预览面板的右键菜单中调用扩展脚本。

欢迎加入 Found 用户交流 QQ 群 (431988548) 来和其他用户交流更多自定义命令的使用技巧。

如何查看并启用自定义命令?

在设置面板中的自定义命令选项卡内,你可以查看本地和在线社区的脚本(我们会不定期更新在线社区的脚本,所以请记得时不时查看以免错过新增功能)。在线社区中的脚本需要下载到本地后才可以被启用。
在本地脚本面板中,你可以通过左侧的复选框来激活或者关闭一个自定义命令,可以拖拽最右侧的控制按钮来调整一个命令在菜单中的显示顺序。

自定义命令是如何执行的?

通常情况下,自定义命令以一个或者多个脚本的形式被保存在 "文档/Found/scripts"目录内。你可以修改配置文件 found.ini 文件中的 "custom_commands_path" 的值来重新指向不同的目录,甚至包含多个路径(如 NAS 地址,以实现内网多终端复用一个动态更新的共享脚本文件夹);不同的地址需要用半角分号分隔。每个自定义命令会在 scripts 目录下存在一个自己的文件夹,包含一个 manifest.json 文件记载了自定义命令的各项关键参数。
Found 在运行时,会扫描 "custom_commands_path" 指向的目录,识别所有子文件夹中的 manifest.json 并解析为自定义命令。
同时 "文档/Found/enabled_scripts.json" 文件记录了所有被启用的脚本。 当一个自定义命令被执行时,会首先解析 param 参数中包含的变量,然后将 param 参数追加为解释器的命令行参数并运行解释器。因此你可以使用任意类型的解释器(例如 Python 或者 Powershell 等)、各种第三方支持命令行参数的程序,甚至自己编写的程序,来执行任意命令。我们推荐使用 Python 作为调用各种第三方命令与服务的转接语言。

如何修改/编写自定义命令?

一个自定义命令需要拥有自己的文件夹,该文件夹需要位于 found.ini 的 "custom_commands_path" 中指定的目录内,并在文件夹内存在一个 manifest.json 文件。
manifest.json 文件的参数如下:

  • Name: 当前自定义命令的名字。如果名字中包含半角冒号 ":" 则冒号前的字符会在菜单中以父级分组菜单的形式显示,冒号后的字符会在菜单中以子菜单项的形式显示。多个自定义命令如果拥有同样的父级分组名,则会被归类进同一个父级菜单内。例如存在两个自定义命令名为"AI: example1" 和 "AI: example2",那么当这两个自定义命令被启用时,会同时归类进"AI"父级菜单中作为并列的子项"example1" 与 "example2"。
  • Entry: 脚本在Found内的入口位置。 Found v1.1 中存在两个入口,"browser_context"为浏览区右键菜单,"preview_context"为预览面板右键菜单。
  • Desc: 该自定义命令的描述,通常包含了用途的详细描述等相关信息。
  • Filters: 支持的格式过滤器,以半角分号 ";"来区隔。特别地,过滤器"."代表该命令支持以文件夹为对象来执行。小技巧:如果该过滤器包含一段路径,则该命令只可以在对应路径下被执行。
  • Author: 命令的作者名。
  • Version: 版本号。
  • CMD: 执行程序或脚本解释器。
  • Param: 执行该命令时在解释器后追加的命令行参数,通常是主入口脚本文件和相关特殊变量与参数,也可以是其他参数。

特别地,Param 支持以下特殊变量:

  • "$FILES": 在浏览区内所有被选中的文件,存在多个文件时以竖线"|"符号分隔。
  • "$FOLDER": 如果在浏览区空白处右键调用,则为当前浏览区的路径;如果在浏览区对一个文件夹右键,则为该文件夹的路径。
  • "$ENTRY": 脚本的入口。
  • "$COLLECTION": 如果浏览的是收集,则该变量表示当前收集的 uuid。
  • "$ASSET_ID": 一个或者多个资产的ID,存在多个资产时以竖线 "|" 符号分隔。

假如你需要增加一个新的自定义命令,将浏览区内选中的 mp4 文件后缀名重命名为 m4v,该命令使用 Python 脚本来执行,那么你需要:

  1. 在 "文档/Found/scripts" 目录内新建一个文件夹;
  2. 在该文件夹下新建一个 "manifest.json" 文件,内容如下:
    {
     "name": "修改后缀为 m4v",
     "entry": ["browser_context"],
     "filters": "*.mp4",
     "author": "张三",
     "version": "1.0.0",
     "CMD": "python",
     "param": "to_m4v.py --files $FILES"
    }
    
  3. 在该文件夹下新建一个 "to_m4v.py" 文件,在里面读取参数 --files 并使用 Python 实现重命名的功能。

Found API

Found 提供了一系列 RESTful API,允许用户在一定程度上自定义 Found 的各项功能。同时,如果脚本涉及对资产文件进行修改,例如重命名等操作,我们强烈建议通过 API 进行,以保持数据库的完整性,避免丢失 Found 中各种数据的风险。
【查看 API 文档】 我们会在未来的版本中不断开放更多 API,敬请期待。

AI 算图功能

本地版 AI 算图功能(基于 Stable Diffusion)正在优化中,会稍晚些时候以自定义命令的形式提供,请留意在线脚本社区的更新。

我们通过自定义命令功能与 Found API 实现了本地版 AI 算图功能(基于 Stable Diffusion)与 AI 云服务算图功能(基于一系列自有高质量模型,同时面向企业客户开放定制需求)。

本地 AI 算图:使用本地 AI 脚本预设进行算图无需额外付费,但你需要完成 Stable Diffusion 的本地版的部署,相关步骤可参考我们后续推出的一系列视频教学(放B站主页超链接)。本地 AI 算图的生成速度和成功率与您的电脑配置相关。因为该功能的特殊性,我们无法保证所有用户的电脑上都能顺利完成相应部署,也不会提供针对每位用户的本地部署相关咨询服务,您可以加入我们的用户 QQ 群 (431988548) 和其他用户进行交流。

AI 云服务:使用 AI 云服务相关功能时会消耗相应云服务点数。目前在测试期间,我们对所有 Pro 用户每个月免费赠送相应服务点数,点数消耗完毕后需要购买额外的点数才可以继续使用。点击这里查看详情。

Copyright © Aalab 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-06-01 05:32:33

results matching ""

    No results matching ""