{"connections":[{"sourceLocalID":1,"sourcePortID":"outlet_result","targetLocalID":0,"targetPortID":"inlet_input"},{"sourceLocalID":4,"sourcePortID":"outlet_yes","targetLocalID":1,"targetPortID":"inlet_input"},{"sourceLocalID":2,"sourcePortID":"outlet_output","targetLocalID":4,"targetPortID":"inlet_input"}],"hideGrid":false,"name":"Rename Desktop Images by Content","nodes":[{"config":{"newName":"{{result}}.{{fileExtension}}","overwrite":false},"customName":"Rename by Content","isDisabled":false,"localID":0,"typeID":"action.rename_file","x":1150,"y":200},{"config":{"imagePath":"{{filePath}}","maxTokens":0,"prompt":"Look at this image and produce a short filename-safe slug that describes what's in it: 2-5 lowercase words separated by hyphens, no punctuation, no spaces, no sentences. Examples: orange-wall-light-fixture, golden-retriever-park, coffee-cup-wooden-table. Respond with ONLY the slug and nothing else.","systemPrompt":"You are a vision model that names images. Output a short hyphenated slug and nothing else. No explanation, no quotes, no extra text.","temperature":0.7},"customName":"Describe Image","isDisabled":false,"localID":1,"typeID":"ai.prompt","x":800,"y":140},{"config":{"eventTypes":"created","recursive":false,"watchPath":"{{NEEDS_INPUT: choose the folder to watch, such as your Desktop}}"},"customName":"Watch Desktop","isDisabled":false,"localID":2,"typeID":"trigger.directory_changed","x":100,"y":200},{"config":{"_height":520,"_width":460,"text":"**Rename Desktop Images by Content gives each new image in a folder a short name that describes it, using an AI model that can see pictures.**\n\n**What it does**\n- New screenshots and saved images get names like coffee-cup-wooden-table.png.\n- Only images are renamed. Other files are left alone.\n- The file stays where it is. If the name is already taken, a number is added, so nothing is overwritten.\n\n**Set it up**\n- Choose the folder to watch on **Watch Desktop**, for example your Desktop. The flow cannot be turned on until you do.\n- On **Describe Image**, pick a provider and a model that can read images. Left blank, it uses your default provider and model, which must support images. Local models keep the image on this Mac. Cloud providers receive a copy.\n- Turn the flow on. If macOS asks, allow Watchflows to use the folder.\n\n**Make it yours**\n- Change the naming rules in Prompt on **Describe Image**.\n- Turn on Watch Subdirectories on **Watch Desktop** to include folders inside it."},"isDisabled":false,"localID":3,"typeID":"note","x":100,"y":-420},{"config":{"caseInsensitive":false,"field":"fileType","logic":"and","operator":"equals","value":"Images"},"customName":"Is Image?","isDisabled":false,"localID":4,"typeID":"condition.compare","x":450,"y":260}],"version":1}