DownloadModel
Fetch the Pic2Story model in-graph — no terminal, no digging through Hugging Face
- model_path
Every captioning node in this pack needs a model before it can run, and the model lives on Hugging Face. DownloadModel is the part that goes and gets it - a helper node that pulls the checkpoint down into a local folder and hands you the path it ended up in. No terminal, no huggingface-cli download, no guessing where the cache went. You run it once, and from then on the rest of the workflow can work offline.
It's an unusually clean example of the whole "first run is slow, every run after is instant" pattern in ComfyUI custom nodes. The node is essentially a thin wrapper around Hugging Face's snapshot_download - you give it a repo and a destination, it does the rest. If you've ever installed a custom node and then had the first queue run stall while it quietly pulled a multi-gigabyte model, this is the node that makes that download explicit instead of happening in the background.
The inputs that matter
Only a couple of these need your attention:
repo_id- the Hugging Face repo to fetch. Defaults toabhijit2111/Pic2Story, which is the BLIP fine-tune this pack is built around. Swap ingoogle/paligemma2-3b-pt-896if you want the newer PaliGemma route instead.model_local_dir- where the files land. Default is./models/diffusers, which is relative to wherever you launched ComfyUI from, so it usually ends up insideComfyUI/models/diffusers. Set an absolute path if you want it somewhere specific.max_workers- parallel download threads, 1 to 8. The default of 4 is fine; bump it if your connection is fast and you're pulling the 3B PaliGemma model.local_dir_use_symlinks- on by default. Leave it on unless you need the files to be real, standalone copies (say, to move them to another machine).use_hf_mirror- this one defaults to on, which looks odd to Western users but makes sense given the author is China-based. It just points downloads at the hf-mirror endpoint. If a download fails in a weird way, flip it off and retry.
The output
One output: model_path, a STRING with the local directory the model landed in. And here's the useful bit - that path isn't just for show. The Pic2Story_Loader's repo_id field accepts a local path too, so you can paste model_path straight into it and skip re-downloading entirely. That's the intended flow: DownloadModel once, Loader from the local path forever after.
How to install
The whole pack installs the same way as any custom node. Easiest is ComfyUI Manager - search "Pic2Story" and hit install, then restart ComfyUI. Or, manually:
cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_Pic2Story.git
then restart ComfyUI. One wrinkle: the pack ships no requirements.txt, so if your ComfyUI environment doesn't already have transformers, the nodes will fail to import. Fix it with pip install transformers into the same Python that runs ComfyUI.
Where people get burned: assuming the default ./models/diffusers path resolves relative to ComfyUI's install folder. It's relative to your current working directory - if you launch ComfyUI from somewhere else, the model lands somewhere you weren't looking. Set an absolute path and stop thinking about it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| repo_id | STRING | abhijit2111/Pic2Story | — |
| model_local_dir | STRING | ./models/diffusers | — |
| max_workers | INT | 41–8 | — |
| local_dir_use_symlinks | BOOLEAN | true | — |
| use_hf_mirror | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_path | STRING | — |