MiniMax H3 Image LoRA · Image Editing
Put the same face in a new scene, from one prompt
- image_urls
- loras
- images
- task id
The problem this node is aimed at
Keeping the same character across images is the ecosystem's oldest unsolved complaint, and the interesting thing is how the answer changed. Through 2025 the recommended route was injection: IP-Adapter, FaceID, PuLID, a pile of adapters fighting your prompt for control. By 2026 the answer had been rerouted rather than solved - the community stopped trying to encode a character at generation time and started editing the image they already had. If the model produced the character you wanted once, you keep that picture and ask an edit model to move it somewhere else.
That's precisely what this node does. One to nine reference images in, one description of the change, one image out at about one or four megapixels. Identity carries over into a new scene, outfit, pose or style. From about $0.054 an image.
Inputs
- image_urls - one to nine references, an Autogrow group: you start with one socket and each connected image grows another. Every reference after the first raises the quote, so nine is a decision, not a free upgrade. Refer to them in the prompt by position: "Picture 1, Picture 2", in the node's own words.
- prompt - say what to change, and use that numbering. The identity work is the model's job; your job is describing the destination rather than re-describing the source.
- aspect_ratio - set to model default by default, which means "follow the first reference image". That's the right answer most of the time, and the reason it's a combo rather than a fixed rule is that you may genuinely want to reframe - a portrait reference and a landscape output is a legitimate ask.
- resolution -
1k(about one megapixel) by default,2k(about four) above it. Note that these are megapixel budgets, not widths: actual dimensions follow the aspect ratio. The tooltip also notes that extra references raise the price, so check the node's badge before you queue. - output_format - JPEG by default; PNG and WebP available.
- seed - repeatable. Hold it while you change wording, and you can tell your prompt apart from the roll.
- loras - up to three weights trained for MiniMax H3, each with its own strength from 0 to 4, supplied through a SpicyAPI LoRA node as direct
.safetensorslinks that open without a login. A weight from a different base model won't transfer; architecture lock-in is the one training rule with no exceptions.
Outputs: images - an IMAGE batch, ready for Save Image or further editing - and task id, the identifier for this exact request on SpicyAPI.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart ComfyUI, then Settings > SpicyAPI and paste a key from spicyapi.ai/console/keys; restart once so the node list comes from your account. On a server, export SPICY_API_KEY - the key is kept in the ComfyUI user folder and never in your workflows or your images' metadata. ComfyUI Manager users can search the pack title, SpicyAPI. No dependencies, no weights, no GPU required. Recent ComfyUI (V3 node API, tested on 0.39), Python 3.10+.
What to watch
Reference images each carry an upload and a price bump. They're re-encoded to PNG - JPEG fallback if the PNG exceeds the 10 MiB ceiling, hard failure after that - and cached per account by content hash for twelve hours, so a rerun with a new prompt doesn't re-send them. But the quote itself rises with each reference, so a nine-image run is materially more expensive than a two-image one. Start minimal: one source picture and one identity reference usually beats piling on nine.
Say what must stay. Edit models get vague when the instruction is vague. "Copy the face from Picture 1; new scene: snowy street at night, same coat" does more than "make it winter", because the second one leaves the coat fair game.
The licence is about the weights, not this call. MiniMax's H3 Community License excludes the US, EU, UK and South Korea from its grant, outputs included - a restriction on downloading H3, not on a hosted endpoint. That asymmetry is the practical reason a node like this exists at all.
Billing mechanics. Seeds default to fixed, so re-queueing an unchanged graph reuses the cached image; Max cost per run in the settings panel refuses an over-budget quote before anything is charged; and cancelling stops your wait rather than the job, which keeps running on SpicyAPI, is charged if it succeeds, and stays in your console for up to 14 days.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Say what to change. Refer to the references as Picture 1, Picture 2 and so on. | |
| image_urls | COMFY_AUTOGROW_V3 | One to nine reference images. Each one after the first raises the quote. | |
| aspect_ratio | COMBO | model default | Output aspect ratio. Leave it unset to follow the first reference image. |
| resolution | COMBO | 1k | Output resolution tier: 1k is about one megapixel, 2k about four. |
| output_format | COMBO | jpeg | Container of the returned image. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| lorasopt | SPICY_LORAS | Up to three LoRA weight files trained for MiniMax H3, each with its own strength. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |