Meta AI Image Generator
Free text-to-image from Meta, wired into your graph — no key, no VRAM, but you'll wait
- preview_images
Want text-to-image in a ComfyUI graph without loading a single model? This node generates four images on Meta's free web interface and feeds them back into ComfyUI as a normal IMAGE tensor. No API key, no checkpoint download, no GPU work - just a real Chrome window that drives meta.ai for you and scrapes the results.
That's the pitch, and it's genuinely useful if you want to sample what Meta's model produces mid-workflow without leaving ComfyUI. Just know what you're signing up for: this is the slowest "free" text-to-image node you'll wire into a graph, and on failure it silently hands you a black placeholder image instead of an error.
How it works
Under the hood it's Playwright, same as the rest of the pack. The node launches a persistent Chromium profile (visible, not headless), opens meta.ai/media, sets the aspect ratio from the dropdown, then pastes your prompt into the composer via the clipboard and hits Enter. It polls the page for generated images (img[data-testid="generated-image"]) until it counts four new ones or your timeout runs out. Then it downloads the first four image URLs, saves them to ComfyUI/output/meta_ai_image/, and hands ComfyUI a batched IMAGE tensor. It even tidies up afterward by deleting the chat history so your account's gallery doesn't fill with test prompts.
The node always re-runs on queue (IS_CHANGED returns NaN), so every execution is a fresh generation - no caching surprises.
The inputs that matter
- prompt - multiline string. This is the only creative input; nothing else conditions the output, so write what you actually want.
- timeout - an INT in seconds, default 60, range 10–300. How long the node waits for the four images to appear. Meta's free tier can drag during peak hours; if you keep getting the black placeholder, bump this toward 120–180.
- aspect_ratio - a dropdown with exactly three choices:
1:1,16:9,9:16. No custom ratios; Meta's UI doesn't offer more here. - profile_name - optional, defaults to
meta_playwright_profile. Note the difference from the pack's other default (meta_playwright_profile3); use whichever profile you actually logged in with.
The single output, preview_images (IMAGE), is a batch of up to four images you can wire into a VAE decode, a Save Image node, an upscaler, or anything that eats a normal image batch. On failure it returns a 512×512 black tensor instead of erroring - handy for not crashing your workflow, annoying because you get a black image and no obvious error.
Installing it
Standard ComfyUI custom node install:
cd ComfyUI/custom_nodes
git clone https://github.com/systemaiofinterest-wq/ComfyUI-MetaAI.git
cd ComfyUI-MetaAI
pip install -r requirements.txt
playwright install
Or just search "ComfyUI-MetaAI" in ComfyUI Manager. Dependencies are the usual scraping stack (playwright, numpy, Pillow, requests, psutil, torch, opencv-python) - nothing exotic, no model files to fetch. Windows users will also want the README's instalar_ffmpeg.bat if they plan to touch the video node; for images alone you can skip it.
Where people get burned
- Log in first with the Meta AI Browser Launcher, or point this node at a profile you've already logged into. It defaults to
meta_playwright_profile, so if your logged-in session lives undermeta_playwright_profile3, setprofile_nameexplicitly. - The timeout is both friend and enemy. Too short and you get the black placeholder; too long and every run blocks your queue for minutes. The 60s default is fine on a good day, less so at peak times.
- A real browser window appears on your screen and the queue blocks while it works. It's scraping, not an API - if Meta changes their page selectors, this node breaks until the author catches up, and it's not something to build a commercial pipeline on.
- No seed, no negative prompt, no control over which of the four images you keep. You get whatever Meta gives you. If you need reproducible, controllable generation, generate locally with Flux or SDXL and treat this node as an occasional side-branch.
Used honestly, this is a fun "what does Meta's free model think of this prompt?" node with zero setup cost beyond a browser login. For serious work, it's a toy.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| timeout | INT | 6010–300 | — |
| aspect_ratio | COMBO | 1:1 | 3 options: 1:1, 16:9, 9:16 |
| profile_nameopt | STRING | meta_playwright_profile | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| preview_images | IMAGE | — |