Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

Check and diagnose Spotlight problems with SpotTest 1.1

By: hoakley
28 August 2025 at 14:30

Local Spotlight search problems appear common, and are all too often tackled blindly by forcing a volume’s indexes to be rebuilt. Although that can sometimes resolve the problem, without knowing what its cause is, it can just waste time and effort. Indeed, in some cases rebuilding the indexes can worsen the problem, at least temporarily. This article explains how you can use SpotTest 1.1 to perform systematic testing and arrive at a diagnosis before hazarding a guess at what the treatment should be.

1. Spotlight settings

Before opening SpotTest, check that Spotlight settings are in order, and don’t exclude the volume or folder you’re trying to search, or the document type you’re looking for. Then open Activity Monitor and watch its CPU % listing to verify that Spotlight isn’t currently in the process of reindexing or performing other maintenance to its indexes. If it is, delay testing until those have completed. Searching using Spotlight while it’s actively working on its indexes will give odd results, or none at all.

If you’re going to use SpotTest on any location with privacy control, such as your Home Documents folder, or an external disk, consider adding the app to the Full Disk Access list in Privacy & Security settings, before opening it.

2. Home folder test

Even if your interest is in a different volume, you should perform a basic test of a new test folder in your current Home folder, to establish a baseline and confirm that Spotlight is working there.

Open SpotTest and set it to defaults, with a Term of cattle, a Scope of [Home], and both Search Keywords and Search EXIF ticked.

Click the Create Tests tool (the leftmost of the tools) to create the folder of test files at the top level of your Home folder. Make a note of the time you do this to the second.

About 10-15 seconds after that, click either the Run NSMetadata test or Run mdfind test tool. You should then see a list of files found, including those in the test folder ~/0_SpotTestFiles, including A, B, C, D, E, F, G, K, L, M

If you don’t see those listed, open Mints and use the Log Window button in its Spotlight section to obtain a log extract from the time the test files were created, or use LogUI to do the same. You’ll then need to look at that log extract to see if there are clues as to why indexing didn’t take place in the period.

Leave the test folder where it is, and anything from 1 hour to 2 days later, repeat the search using either or both of those tools. Once additional indexing has been undertaken:

  • NSMetadata should now find A, B, C, D, E, F, G, I, K, L, M but not H
  • mdfind should now find A, B, C, D, E, F, G, H, I, K, L, M.

I is found by the Live Text process, and H by Visual Look Up, the latter only being found by the mdfind search.

These tests have demonstrated:

  • mdworker and mds indexing of files supported by system mdimporters;
  • delayed background mediaanalysisd image analysis and mds indexing of Live Text and Visual Look Up content.

To match test files with their importers, click the Check importers tool. Note that file L doesn’t use a plugin, and N uses a plugin but can’t be found because the search term is inside an image in the PDF document, which currently isn’t recoverable content.

3. Custom mdimporter

Many apps come with their own custom mdimporter that provides Spotlight indexing support for document types not supported by macOS. In the past, these were normally installed in /Library/Spotlight, but more recent apps typically keep them inside the app bundle in Library/Spotlight. These can be tested easily.

Create and save one of those custom document types, so that it contains the word cattle in a way that should be searchable by Spotlight. Copy that document to the ~/0_SpotTestFiles folder, wait 10-15 seconds, then repeat the test search. You may well notice that NSMetadata search doesn’t find your custom test document, but mdfind does. This is because of the difference in the search criteria they use.

You should also click the Check importers tool to check that the correct mdimporter was recognised and used for the custom document type.

4. Volume test

If Spotlight works correctly with the test folder in your Home folder, you may wish to progress to testing a different volume or location. Having created its test folder in ~/0_SpotTestFiles, copy that to the other location. Before you try to change the Scope of the search, click on the 🔄 button to list available volumes, then select the volume containing the copied test folder in the Scope menu.

When you perform the two types of search on that volume, the same rules should apply as to which will be found. Note though that finding files I and H can take much longer, or they may not appear at all.

5. Search term test

When you’re confident that a search term of cattle can be found reliably, you may wish to extend your testing to other terms. Take care when choosing custom terms, as you want to be confident that they should be found, but not in such numbers that the results are overwhelming. You will also need to create your own test files containing the custom term.

Diagnosis

SpotTest can thus provide key information on:

  • delay or absence of find following creation of test files. If no indexing activity is seen in the log, that suggests indexing failure. If the test files are indexed promptly, it suggests search failure;
  • delay or absence in finding files H and I, indicating an indexing failure;
  • failure of a custom mdimporter to index a custom document type;
  • failure to index another volume.

Those should fit in with the overall scheme used by Spotlight, as shown below.

spotlightsteps1

Happy hunting!

SpotTest 1.1 has search scopes for volumes

By: hoakley
25 August 2025 at 14:30

As promised, this new version of my Spotlight indexing and search utility SpotTest extends its reach beyond the user’s Home folder, and can now test and search any regular volume that’s connected to your Mac and mounted in /Volumes.

By default, its searches remain restricted to the user’s Home folder, where SpotTest’s folder of crafted test files is installed. That applies whether you opt to use the search using its NSMetadataQuery tool, or the much faster option of the mdfind tool instead. If you want to search another mounted volume, click on the 🔄 button for the app to check which volumes are available, then select one from its new Scope menu items. Volumes listed there exclude Time Machine backups and any hidden volumes whose names start with a dot, which will in any case be excluded from Spotlight indexing as they’re hidden.

This new version also fixes a weird bug that you’re unlikely to encounter in the previous version, but in rare circumstances could be infuriating. When searching using the NSMetadataQuery tool, if you had two windows open both with results from that tool, both would be updated with the same search results, and the time taken in them could rise to the absurd. This occurred because both windows were being updated with the data returned from the most recent search, as the NSMetadataQuery is shared in the app’s MainActor. After some fraught debugging, windows in this version ignore any search result updates initiated by other windows. I hope!

Volumes set in the Scope menu only affect search scope. Test folders are created in and removed from the user’s Home folder, and mdimporters are checked there as well. If you want to investigate indexing and search performance on other volumes, then you should manually create your own test folders as necessary. One quick and simple approach is to create a standard test folder in the Home folder, and copy that onto the volume(s) you want to test. A little later this week I’ll illustrate this in an article explaining how to get the best out of SpotTest and how it can help diagnose Spotlight problems.

I have taken the opportunity to improve SpotTest’s reporting of errors, such as trying to remove a test folder that doesn’t exist. I have also thoroughly revised the Help book, and added a page about search scopes.

SpotTest version 1.1 for macOS 14.6 and later, including Tahoe, is now available from here: spottest11
from Downloads above, and from its Product Page.

Enjoy!

SpotTest 1.0 will help you diagnose Spotlight problems

By: hoakley
18 August 2025 at 14:30

There are some topics that invariably generate comments from those who have either abandoned a major feature in macOS, or are struggling with it. Some of the most persistent are problems with Spotlight, particularly with its local search of files on your Mac. To help grapple with those, four years ago I added some Spotlight tests to Mints that can be used to work out where those problems are occurring. I’m delighted now to offer an extension to those in a whole new app, perhaps predictably named SpotTest.

Spotlight is so substantial, almost silent in the log, and impenetrable that the best approach to diagnosing its problems is to test it out in a controlled way. Mints has been doing that by creating a folder of files containing an unusual word, then searching for that. Although that’s still useful for a quick test, we need something more focused and flexible, and that’s what SpotTest aims to deliver.

Following deep dives into how Spotlight indexes and searches metadata and contents of files, and how it can search text extracted from images and the results of image analysis, I’ve realised that different test files are required, together with alternative means of search. For example, the standard approach used in compiled apps, with NSMetadataQuery, is incapable of finding content tags obtained using Visual Look Up, which only appear when using the mdfind command. SpotTest takes these into account.

There are now 15 carefully crafted test files, of which one cannot currently be found, no matter what method of search you try.

A perfect 13/15 result from NSMetadataQuery is only possible after waiting a day or more for background mediaanalysisd processing to recognise and extract the text in file I, a PNG image. The other 12 here should all be found when running this test a few seconds after the test files have been created. They rely on a range of mdimporter modules bundled in macOS, apart from file L, an XML property list.

Another of SpotTest’s tools will list the mdimporters used for each of the test files.

Run the search using the mdfind command within SpotTest and, once mediaanalysisd has done its image recognition, you should get a perfect 14/15.

The only current limitation of SpotTest version 1.0 is that it can only run tests on the Data volume that your Mac started up from, using a folder at the top level of your Home folder. A future version will let you test other volumes as well. Its Help book runs to nine pages: please read them, as its test might seem deceptively simple but provide a lot of useful information about how Spotlight local search is functioning. Coupled with log extracts using LogUI it should shine light in the darkness.

SpotTest 1.0, which requires macOS 14.6 or later, is now available from here: spottest10
and from its new place in its Product Page.

I wish you successful searching.

镜头的变幻就是故事|Midjourney V5.2 Zoomout 测试

By: Steven
26 June 2023 at 00:18

➡阅读更多 AIGC 相关内容

最近一直都非常忙,所以连续 20 来天都没有碰过 Midjourney 了。前两天在社交媒体上看到,新推出的 V5.2 中有一个向外扩写的功能,因为此前已经在 PS+SD 的组合中见过这类拓展画面的应用思路,所以很想看看 MJ 的 Zoomout 能做出什么样的东西来。趁着端午假期这个空档,我集中跑了几波测试,有一些小小的心得,在此记录一下。

总体结论有三个:

1、Zoomout 可以无限次数地向外扩展,但随着镜头的拉远,Midjourney 自身的联想能力并不足以做出任何有意思的画面,不刻意控制地放大出来的画面,到了第 3~5 步之后,就会明显变得乏味和缺乏美感。

2、通过刻意地控制画幅比例、扩张倍数,以及针对性地调整 prompt 的描述,可以利用这个功能讲出有意思的故事。关键在于,使用者对于「镜头语言」的理解,以及对运镜和故事之间联系的掌控程度。

3、对工业设计的辅助甚微,做点「花活儿」可以,一旦涉及到逻辑,依旧不行。

Zoomout 功能的主交互界面

测试内容目录:

1、通过默认的 Zoomout X2 按钮连续放大 3 次

2、通过默认的 Zoomout X2 按钮连续放大 15 次

3、通过自定义 Zoomout 微调构图

4、通过自定义 Zoomout 构建人物画像

5、通过自定义 Zoomout 构建人物性格

6、通过自定义 Zoomout 完善场景氛围

7、在 niji 中应用自定义 Zoomout 构建人物和场景

8、自定义 Zoomout 构建情绪与故事

9、通过焦点变化构建故事的场景

10、通过镜头变化,构建故事的起承转合

以下为部分测试过程记录:

test case no.1:通过默认的 Zoomout X2 按钮连续放大 3 次

⬆ 点击以全屏查看图片 Click to view the image in full screen

操作方式:连续 3 次放大图像两倍,不对 prompt 进行修改,也不对画幅做设置。

输出成果:在奔跑的场景中增加了后方的人,有一点点故事性,但继续放大后会明显失焦,花面焦点始终在最开始的小女孩身上,继续放大生成的场景和人物都是模糊的。

test case no.2:通过默认的 Zoomout X2 按钮连续放大 15 次

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:连续 15 次放大图像两倍,不对 prompt 进行修改,也不对画幅做设置。

输出成果:外围拓展的场景越宏大,有效信息和故事性就越低,除了在阴影中无意间冒出的人影,没有任何惊喜和意料之外,拓展的画面也很单调乏味。

test case no.3:通过自定义 Zoomout 微调构图

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:不对 prompt 进行修改,按 1.1 和 1.2 的拓展比例小幅度调整画幅。

输出成果: 初始图像是近景特写,根据图像本身的特点,对画幅进行小幅度地微调来获得完整的全景镜头,以及合适的构图比例。

test case no.4:通过自定义 Zoomout 构建人物画像

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:先生成一个黄色漩涡图案,然后拓展时改写 prompt 为一只眼睛,进而生成一个带特征的面部局部画面,再次拓展时修改描述词为一个洞穴中的原始部落男性。

输出成果: 成功构建了一个有目标特征「黄色漩涡瞳孔」的男性角色,通过控制拓展比例以达到最终效果—-人物整体和局部特征均得以完整呈现的画面。

test case no.5:通过自定义 Zoomout 构建人物性格

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:先生成一个红色皮夹克的女性胸像,再改写 prompt 获得其坐在摩托车上的局部画面,再改写画幅比例获得完整的人物与车辆的全景照。

输出成果: 成功构建了一个有目标特征「红色皮衣+摩托车」的女性角色,通过控制拓展比例以达到最终效果—-人物细节和整体氛均衡的画面。

test case no.6:通过自定义 Zoomout 完善场景氛围

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:在初次生成的几批图像中,选择合适的画风和画面主体,再根据已有画面特征修改画幅比例。

输出成果: 在选定风格和主体后,将竖幅主体拓展为气势更足的全景影像。关键是拓展比例并非默认的 2 倍或 1.5 倍,而是根据实际需求来控制比例,同时也需要关注怎样的画幅比例可以传达对应的氛围。最终图像画幅比例是 3:1,适合展现有足够细节的宽幅场景。

test case no.7:在 niji 中应用自定义 Zoomout 构建人物和场景

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:

step 1、使用 niji 5 的 style original 生成一个细节丰富的初始人物;

step 2、以 1.2 的 Zoomout 比例纵向拓展出人物的半身画像,画幅比例是 1:2;

step 3、以 1.1 的 Zoomout 比例和 2:1 的画幅比例重构画面,得到外围场景;

step 4、以 1.2 的 Zoomout 比例和 3:4 的画幅比例重构画面,生成人物全身像;

step 5、改写 prompt 添加「宫殿」关键词,以 1.65 的 Zoomout 比例和 3:2 的画幅比例重构画面,生成人物在场景中的全景画面。

输出成果: 虽然人物细节和场景氛围的融合程度还不错,但因为漫画角色的细节较多,在多次 Zoomout 的过程中,场景的丰富会逐渐抢掉中心人物的视觉焦点。因此在每一次修改画幅比例与关键词的时候,需要多加注意对视觉元素的控制。

test case no.8:自定义 Zoomout 构建情绪与故事

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:

step 1、生成一个情绪和神情符合目标的初始人物;

step 2、改写 prompt 同时添加「马」关键词,以 2 的 Zoomout 比例和 3:4 的画幅比例重构画面,生成后续画面的基础,此时需要注意人物与马的位置关系,否则后续生成的画面会非常扭曲怪异;

step 3、以 1.05 的 Zoomout 比例和 2:1 的画幅比例重构画面,生成完整的马匹造型与部份环境信息;

step 4、对比改写 prompt 产生的变化,黑发组不改描述词,以 1.1 的 Zoomout 比例和 3:4 的画幅比例重构画面;白发组添加「巨大镜子」关键词,以 1.6 的 Zoomout 比例和 3:4 的画幅比例重构画面。

输出成果:通过控制 Zoomout 的幅度、画幅比例和 prompt 的调整,可以生成指定场景的画面,且人物的神态到位、情绪饱满,整体画面焦点清晰。但美中不足是,构图不够自由。

test case no.9:通过焦点变化构建故事的场景

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:

step 1、生成一个在河岸上的粽子;

step 2、修改 prompt 为「熊宝宝正准备吃粽子」,以 2 的 Zoomout 比例和 3:4 的画幅比例重构画面;

step 3、修改 prompt 为「小熊一家在野餐」,以 1.2 的 Zoomout 比例和 4:3 的画幅比例重构画面。

输出成果:通过对 prompt 的修改,控制 Zoomout 的幅度、画幅比例,可以改变画面中的焦点和表达主题,适合不同文化元素之间的混搭。

test case no.10:通过镜头变化,构建故事的起承转合

⬇ 点击以全屏查看图片 Click to view the image in full screen

操作方式:

step 1、生成一幅鲜花山谷的画面,人物要明显;

step 2、修改 prompt 为「一面巨大的镜子在草地上」,以 2 的 Zoomout 比例和 3:4 的画幅比例重构画面,此处竖构图是为了生成较高的全身落地镜;

step 3、修改 prompt 为「少女站在镜子前」,以 1.5 的 Zoomout 比例和 3:2 的画幅比例重构画面,改为横构图是为了囊括少女全身以及环境信息。

输出成果:通过改变画面中的焦点和增加元素,在镜头逐渐拉远的过程中,故事缓缓托出。

➡阅读更多 AIGC 相关内容


我的整体感受是:

通过 Midjourney V5.2 的 Zoomout 无限拓展,一次次修改画幅比例、提示词内容,可以用镜头语言的变化来讲故事了,也可以基于一些初始的「点子」延展成有意思的融合作品。但越是这样,越发显得对话式、指令式的交互界面( SD 那种也不算图形交互 )的局限太大了,我很希望今年之内能发展出图形交互界面。

没错,今年 AI 的爆发指向了一个新的趋势:对话式交互界面。但人类之所以发明绘画,开始通过设计图来制作各式各样的新工具,恰恰就是因为语言本身的效率太低。这个逻辑其实也可以从媒体形态上找到端倪:文字–> 图像–> 视频。仅仅依靠对话,我们无法构建出一个一把剪刀;仅仅通过语言表达的播客,也无法传达任何需要视觉才可以精准理解的信息。对话指令的交互界面与图形交互界面之间的关系,并非只是 dos 和 windows 之间的差异,更重要的点在于,后者可以更直观地完成交互,以及精准地进行创作行为。AIGC 的重点不仅仅只是 AI,而是我们如何使用 AI 进行「Generative Content」。

我说一句话,AI 给我一个东西,这不是创作。

创作是一个生命在主观意志的驱使下,刻意的、有目的地表达其心中所想。

因为 GPT 的爆发而说对话式交互是未来,这样的断言是过于冲动的。只要是一个严肃的创作者,就会立刻意识到,真正的创作一定需要多纬度的交互界面。这其中不仅仅包含对话指令,同样更需要图形界面以及在数字虚拟空间中的三维交互。AIGC 工具与 PS、表格、PPT、思维导图等已有工具的结合,就是这类多维交互的雏形。

那一刻,我们不会等太久。

➡阅读更多 AIGC 相关内容

你的投票会让 Midjourney 更懂你

By: Steven
13 June 2024 at 14:22

Midjourney 今早更新了测试版 Personalization (–p) 的新功能,通过你在 Ranking 中投票的选择来提供个性化的输出。

我用之前的 prompt 测试了一下:

第一张图是之前制作的,后面三张是用同样的 prompt 加上 –p 之后出的图。

对比之下可以看到,个人喜好对风格的影响非常明显。

但是这个功能还在处于测试阶段,局部修整的功能还无法使用。

❌
❌