Instagram Downloader
This node scrapes Instagram profiles into your ComfyUI output folder
- download_path
The name is not a lie. Instagram Downloader is a thin wrapper around the Python library instaloader that pulls every public post from an Instagram profile and drops it into a folder inside your ComfyUI output directory. No API key, no token, no Instagram developer account - it just scrapes the public endpoints the same way the instaloader CLI does, and hands you back a path.
Why would you want that inside ComfyUI? Because a surprising amount of "real photo" work starts with reference material. You grab a handful of someone's public posts and suddenly you've got inputs for ControlNet depth/pose matching, img2img restyling, face-swap, or a candidate set for a LoRA dataset. The KB's LoRA training essay keeps hammering one line: dataset curation beats every other knob. This node is a (very blunt) curation tool - it gets the raw material into a folder where you can sort it. It's a small one-person MIT pack by Rohit Saini, so temper expectations, but for "I want that account's photos in my graph" it does exactly one job and does it.
How it works
Under the hood it creates ComfyUI/output/<download_path>/<username>, then calls instaloader with download_pictures=True, download_videos=True, save_metadata=False. The profile's posts land in that folder, images and videos jumbled together, alongside caption .txt files. That mess is deliberate - the sibling node, Media Organizer, is what tidies it.
The inputs that matter
You'll set exactly one of these most of the time:
- username - the Instagram handle, no
@. The node appends it to the folder path, so two usernames never collide. - download_path - defaults to
downloads, resolved relative to ComfyUI's output directory. You can also pass an absolute path; the join just works out. - profile_pic_only - a boolean, default
false. Flip it on and you get just the avatar instead of the full post history. Handy for quick identity-reference work.
The single output, download_path, is a STRING giving the folder it wrote to. Wire it straight into the Media Organizer's input_path.
Installing it
Via ComfyUI Manager, search for "Instagram Downloader". Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/rohitsainier/ComfyUI-InstagramDownloader
cd ComfyUI-InstagramDownloader
pip install -r requirements.txt
Then restart ComfyUI. The only dependency is instaloader>=4.10.0 - no model downloads, no weights, nothing heavy. This is one of those rare nodes that won't fight your Python environment.
Where people get burned
The big one isn't the node, it's Instagram. Anonymous scraping has been getting locked down for years, and instaloader increasingly runs into Login required for profiles it used to read freely. There's no login field on this node, so if a profile refuses to download, it's Instagram blocking anonymous access, not a config mistake on your end. Your options are limited: only use public accounts, don't hammer them, and accept that some will just fail.
Two more things worth knowing before you queue a big profile. First, this node runs synchronously in ComfyUI's server process - downloading a large account will freeze the UI and the whole queue until it finishes. Keep targets small. Second, private profiles never work, full stop. And the README mentions a "Cleanup" node that doesn't exist in the shipped code - there are only two nodes in this pack, so don't go hunting for the third.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| username | STRING | — | |
| download_path | STRING | downloads | — |
| profile_pic_only | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| download_path | STRING | — |