Next release
In developmentAdded
参考文件 page: a 🔎 图库 button on each image section searches free image libraries and adds picked images to that section (2026-10-23).
The 视觉风格, 封面, 角色, 场景, 生物, 道具 and 其他 sections each get a 🔎 图库 button next to 上传. It opens a search window whose target section is the one you clicked (a 子目录 typed in that section carries over). Click a section icon under a result to download it into that section; tick several results and press 加入参考文件 to add them together to the target section, with an optional 子目录 and note. A magnifier shows a larger image with the author, source page, license and size. Search and downloads go through the service (
GET /api/v1/stock/providers,POST /api/v1/stock/search,POST /api/v1/projects/<project>/references/import); the service takes the download address from its own search results, never from the page. Images whose long side is over 2560 px are scaled down to 2560 (transparent images stay PNG); smaller ones are saved as downloaded. Adding the same image to the same folder again does not download it twice. Sources: Openverse needs no key (Flickr, Wikimedia Commons, Europeana, The Met, Smithsonian, Cleveland and other collections; anonymous limit 20 searches a minute and 200 a day, and at most 240 results per search). Only CC0, public-domain and CC BY images are offered; BY-SA, NC and ND are left out, as for Openverse sound effects. If Client ID / Secret are saved under 音效 › Openverse on the 生成模型 page, image search uses them too. Pexels and Pixabay are listed but stay disabled until a free API key is set: on the ⚙️ 设置 → 存储与图库 page (a 🖼 图库 API Key card with a 测试 button that runs one real search with the key in the form), or, when that is blank, inPEXELS_API_KEY/PIXABAY_API_KEYor the footage library'sfootageconfig.json(pexels_api_key/pixabay_api_key). The footage library's Pexels / Pixabay video search reads the same keys from that page first. Search results are cached for 24 hours (Pixabay's terms require this), so repeating a search does not use quota. Openverse titles are mostly in English, so a 译成英文 button (enabled when the query contains Chinese, Japanese or Korean) translates the query into 1–3 English keywords with the Agentics engine's current text model and searches again; each click is one model call on that channel. Records: each imported image's source (site, author, license, page, attribution, search terms) is saved inrefs/annotations.jsonand shown on its card; when the image has a note, itsNOTES.mdline ends with the source and license. A newrefs/CREDITS.md, rewritten on every import or delete, lists all imported images and marks the CC BY ones that need a credit if they appear in the film. Clearing an imported image's note keeps its source record. All 11 UI dictionaries are covered (non-English ones not reviewed by native speakers). Not exercised: Pexels and Pixabay against the real services (no keys), and 译成英文 through the Agentics desktop account.
Changed
⚙️ 设置 → 文件托管 is renamed 存储与图库 (2026-10-23).
The page now holds two things: the object storage that turns local reference files into presigned links for video models (unchanged), and the image-library API keys for 🔎 图库 on the 参考文件 page. The menu entry, page title, the hints on the 虚拟人像资产库 page (its readiness line is now 对象存储自检), server error messages and the agent notes that point users to this page use the new name; the address is still
/storage, and saved settings are unchanged.Agents can no longer delete the data folder or a whole project, and each project is snapshotted before an Agent starts (2026-10-23).
In a reported case a pi Agent typed the data folder path with different letter case (
@videoAgentsinstead of@videoagents); macOS treats both as the same folder, but the tool echoed the wrong spelling, so the Agent believed it had made a duplicate folder and ranrm -rfon it, deleting every project, the bundled Python runtime and the sign-in data. Delete guard: the data folder, the runtime folder,projects/, every project folder, the install folder, the bundled Python, the snapshot folder and the home folder, plus every folder above them, are protected. Deleting one of them, or emptying it with something likerm -rf <project>/*, is refused and nothing is deleted; files and subfolders inside a project can still be deleted. Folders are compared as the same folder on disk, not by spelling, so different letter case, symlinks,..or a trailing slash make no difference. For the pi and Agentics engines an extension checks each tool call first: a literal delete of a protected folder (including/bin/rm,find … -deletewith no name or time filter, andshutil.rmtree('…')) is blocked and the reason goes back to the Agent as the tool result, which2>/dev/null || truecannot hide, and says the two spellings are the same folder when only the case differs; file paths given to read / write / edit / ls / find / grep are corrected to the spelling on disk, so the Agent never sees a wrong one. For every engine anrmplaced first on the Agent'sPATHchecks the arguments after the shell has expanded them, so variables and wildcards are covered; it only starts Python when an argument is a folder. Engines that run commands in a login or interactive shell may put the systemrmback in front, so for engines other than pi and Agentics this is best effort, and there is normstand-in on Windows yet. Snapshots: before an Agent starts, its project is copied outside the data folder, to~/Library/Application Support/VideoAgents-Snapshotson macOS (%LOCALAPPDATA%\VideoAgents-Snapshotson Windows,~/.local/share/videoagents-snapshotselsewhere, orVIDEOAGENTS_SNAPSHOT_DIR). On macOS this is an APFS clone that takes no extra space at first (a 15 GB project with 20,000 files took 0.65 s); elsewhere it is a tree of hard links, which survives deletion but not files rewritten in place; if the snapshot folder is on another drive the snapshot is skipped rather than copied in full. A project is snapshotted at most every 30 minutes; within 7 days the 3 newest are kept plus the newest of each day, and older ones are removed (VIDEOAGENTS_SNAPSHOT_INTERVAL/_KEEP/_DAYS;VIDEOAGENTS_SNAPSHOT=0turns snapshots off). Restore from the command line withpython -m services.runtime.project_snapshot listand… restore <snapshot> <new project folder>, which never overwrites; there is no button for it yet. Only project folders are snapshotted, not chats or settings. The Agentics engine's one-off image analysis in the footage library now gets only thereadtool. Not exercised: Windows.