Poe Multi-Image Edit
The 'combine these images' node, minus the ControlNet setup
- image
- reference_image
- image
- raw_response
Two images, one prompt, zero local models
PoeMultiImageEdit is the most ambitious node in the ComfyPoe pack: instead of editing a single image, it feeds two into a closed image model and lets a text prompt decide how they interact. Use cases you'll actually hit: "draw my character into this scene," "redraw this product shot in that painting's style," "combine the lighting from image A with the subject of image B." The pack calls it multi-image edit - which is a slight exaggeration, since you get a main image plus exactly one reference, so really it's two-image edit. But the idea is right: one of them is the thing, the other is the influence.
Everything else about it is the same ComfyPoe formula - a thin wrapper over Poe's OpenAI-compatible API at https://api.poe.com/v1, no local models, no VRAM, and a Poe account with API access required.
How it works
Both images are base64-encoded as PNGs and sent as content blocks in a single chat-completions message, alongside your text prompt. The API doesn't give you labels for the images - you can't mark one "this is the subject, this is the style" - so the model figures out the relationship from your words and the order you wired them in. Your prompt does all the disambiguation work, which is both the feature and the trap. Then the model replies with text containing an image URL; the node grabs it, downloads it, and returns a standard ComfyUI IMAGE tensor.
Because the images arrive unlabeled, phrasing matters more than anywhere else in this pack. "Use the style of the second image, keep the subject of the first" is the shape of a working prompt. Vague requests like "combine these" leave the model guessing, and it shows in the output.
The inputs that matter
Three required:
image- the mainIMAGEtensor. Think of it as the base / subject.prompt- the instruction explaining what the two images are and what to do with them.api_key- from https://poe.com/api_key.
The one that makes it "multi":
reference_image- the secondIMAGEtensor, optional but it's the whole point of the node. Leave it unplugged and this is just a slower PoeImageEdit, so plug it in.
Also optional:
model- the 10-model dropdown, defaultGPT-Image-1. For any job that requires actually understanding two images, the multimodal GPT-Image-1 is the right default; some of the older text-to-image models in the list barely handle one.aspect- defaultauto.quality- low / medium / high.seed--1for random.
Outputs
image - the combined result as an IMAGE tensor, into PreviewImage or SaveImage as usual. raw_response - the full API reply text, your debugging window when the model does something unexpected.
Installing
Search ComfyPoe in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/mrf/ComfyPoe.git
Restart ComfyUI; openai and requests install automatically on first load, and there are no model files to fetch.
Gotchas
- Unlabeled images, so prompt like a referee. Say which image is which and what role each plays. This is the single biggest quality lever and the easiest to get wrong.
- "API key is required" - blank field, paste your key.
- "No image URL found in response" - the model replied with text, usually a refusal. DALL-E-3 is the likely offender; check
raw_response. - Order matters, but it's a hint, not a contract. The main image is sent first and the reference second, but the model ultimately decides what that means. If it ignores your "keep the first, borrow from the second," rephrase rather than reorder.
- Two base64 PNGs make a chunky request. Keep inputs reasonably sized or each call gets slow.
- Blocking round-trip. The node waits on Poe's servers, synchronously.
- Plaintext API key in the workflow JSON. Strip it before sharing the file.
Bottom line: if you've been wanting IPAdapter-style style transfer without installing IPAdapter or a second model, this node is a legit shortcut - as long as you accept that the "adapter" is a prompt and the "model" lives on Poe's servers. Same trade as the rest of the pack: easy setup, paid API, results you can't fully predict but that land surprisingly often.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| prompt | STRING | Combine these images... | — |
| api_key | STRING | — | |
| reference_imageopt | IMAGE | — | |
| modelopt | COMBO | GPT-Image-1 | 10 options: GPT-Image-1, DALL-E-3, Imagen-4, FLUX-pro-1.1, FLUX-schnell, Playground-v3, +4 |
| aspectopt | COMBO | auto | 8 options: 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, +2 |
| qualityopt | COMBO | high | 3 options: low, medium, high |
| seedopt | INT | -1-1–2147483647 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| raw_response | STRING | — |