
ImageAI now lets you choose where your files live
We merged ImageAI #42: a DataPaths resolver, four relocatable storage groups (Images, Video, Models, Logs), a Storage Locations settings panel and a safe migration path.
One PR this week, and it's a good one. On August 24 we merged ImageAI #42: configurable storage locations, plus the hardening pass that came right after. Two versions in one merge, 0.45.0 and 0.46.0. Nothing else landed this week across QuickStock, RealtyShield, HealthCheck, Maestro AI or Tincture Studio, and we're fine with that. Some weeks are one-repo weeks here because we're busy with open-source projects that are not included here. One this week it included Standard Licensing Generator.
Where the files used to go
ImageAI generates images and video, and it downloads models. Local Stable Diffusion checkpoints are big. The HuggingFace cache grows whether you look at it or not. Until this week all of that landed wherever the app decided, and the app decided "next to everything else." If your system drive was small, you found that out the hard way. (We did. More than once.)
One resolver, four groups
The fix starts in core/paths.py with a new DataPaths resolver. It owns every data location in the app. Four groups can move on their own: Images, Video, Models and Logs. Core code, the GUI, the video pipeline, logging and the HuggingFace cache all route their paths through that one resolver now. No module gets to invent its own path anymore, which was the actual bug underneath the symptom.
On the user side, the Settings tab has a new Storage Locations section. Pick a folder for each group and the app handles the move. The PR title says "safe migration," and that word choice is deliberate. Moving a models directory is exactly the kind of operation that eats data when it's done carelessly, so we spent the time to not do it carelessly. Pick the folder, let it finish, keep working.
Then the second half
v0.46.0 is what happened after code review: post-review hardening and GUI cleanup. Not glamorous. A reviewer found things, we fixed them, and we shipped the fixes in the same PR instead of pretending the first cut was done. That's the part of the process we'd actually brag about. Making a feature hold up takes longer than building it, and we'd rather eat that time before the merge than after.
Why we bothered
Because we wanted it ourselves. Machines fill up. Fast drives are small and big drives are slow, so the sane layout is models on the big one and logs somewhere you can find them at 2 a.m. when something breaks. Having every path in ImageAI go through one place also means the next storage feature (whatever it turns out to be) has one file to touch instead of six. We like that trade a lot.
That's the week. One repo, one PR, one real problem solved. If you run ImageAI with models on an external drive, we'd like to hear how the migration went for you. Where do you keep your model files?