AtlasCloud Image to Image
Turn any ComfyUI image into an edit job for OpenAI's GPT Image 2
- image_1
- image_2
- image_3
- images
- info
What it is
The sibling of AtlasCloud Text to Image in the same pack, and it answers the question everyone hits after playing with the text node: "can it edit what I already have?" Yes - that's this node. Up to three reference images plus a prompt describing the change, and OpenAI's closed gpt-image-2/edit model does the rest. It's the closest thing to GPT Image editing inside a ComfyUI graph without ever leaving the canvas.
Same caveat as its sibling, stated once: AtlasCloud is a pay-per-call hosted-inference provider, and GPT Image 2 has no open weights. There's no local diffusion here, no VRAM spent, just your key and a network call.
How it works
Mechanically it's the text node with one extra step. Your IMAGE inputs get converted to base64 data URIs and dropped into an images array in the request body; the node POSTs to the same /api/v1/model/generateImage endpoint and polls until the job finishes. One detail worth knowing: the code iterates every frame of every input tensor, not just the first. Feed a batch of two into image_1 and one into image_2 and all three frames go up as reference images.
The inputs that matter
Required: base_url, api_key, image_1 (the primary reference) and prompt - and prompt should describe the edit ("make them stand in the rain"), not the image. The optional fields are where this node earns its keep:
input_fidelity- the editing-specific control, and the one beginners miss.high(default) keeps faces and logos intact;lowgives the model creative freedom to reinterpret. A lot of "why did it change my face" complaints live here: pickhighwhen identity matters,lowwhen you want a restyle.image_2/image_3- secondary and tertiary references for multi-image jobs (subject + outfit + location, that sort of thing).size,quality,output_format,seed,extra_params- behave exactly like the text node:sizeis the same 11-preset enum (1K/2K/3K),qualityislow/medium/high,seed-1= random.
Outputs: images (IMAGE, straight into a preview or save node) and info (STRING, a JSON blob with model, size, quality, fidelity, and how many input images were sent - genuinely useful for logging).
Installing it
Identical to the text node: ComfyUI Manager → search "ComfyUI-AtlasCloud", or:
cd ComfyUI/custom_nodes
git clone https://github.com/clownvary/ComfyUI-AtlasCloud.git
Restart, and it appears under the AtlasCloud category as "AtlasCloud Image to Image." No models, no heavy dependencies - the pack relies only on torch/pillow/numpy/requests, which ComfyUI already has.
Gotchas
- It needs at least one reference image, a key, and a prompt; each produces a clear exception if missing.
input_fidelity: highpreserves details - but it also tends to preserve the thing you wanted gone. It's a fidelity knob, not a strictness slider.- Your reference images leave the machine and go to AtlasCloud. If you're editing something private, that's the deal.
- Same 300-second timeout and same non-200 → error-with-status-code behavior as the text node; long complex edits can brush the timeout.
- It's per-call metered, so it shines for one specific edit you can't pull off locally - not something to run on autopilot through a batch.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| base_url | STRING | https://api.atlascloud.ai | Base URL for the AtlasCloud API endpoint |
| api_key | STRING | AtlasCloud API key (required) | |
| image_1 | IMAGE | Primary reference image (required) | |
| prompt | STRING | Text description of how to edit the reference image(s) | |
| image_2opt | IMAGE | Secondary reference image (optional) | |
| image_3opt | IMAGE | Tertiary reference image (optional) | |
| modelopt | STRING | openai/gpt-image-2/edit | AI model to use for image editing |
| sizeopt | COMBO | 1024x1024 | Output image resolution (width x height) |
| qualityopt | COMBO | medium | Image quality — higher quality takes longer to generate |
| output_formatopt | COMBO | jpeg | Output image file format |
| input_fidelityopt | COMBO | high | Detail preservation: high keeps faces/logos intact, low allows more creative freedom |
| seedopt | INT | -1-1–2147483647 | Random seed for reproducibility (-1 = random) |
| extra_paramsopt | STRING | Additional JSON parameters to merge into the API request body |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| info | STRING | — |