SynVow-Nano2 I2I
Edit an image in ComfyUI using Gemini, zero local diffusion
- image_1
- image_2
- image_3
- image_4
- image_5
- images
SynVow-Nano2 I2I is the image-to-image sibling of the pack's T2I node, and it plays the same trick: it's not a local diffusion model you load, it's a wrapper around an OpenAI-compatible image API. You hand it an image, it ships that image to a provider's server, and the edit happens on their hardware - by default through Google's Gemini image model (gemini-3-pro-image-preview), reached via a reseller endpoint. No checkpoint, no VRAM, no model download. If you have an API key and an internet connection, this is how you get model-grade image editing inside the ComfyUI graph on a machine that couldn't dream of running SDXL.
The interesting part is that it's genuinely a vision API. The node base64-encodes your input as a JPEG and sends it in OpenAI's image-message format, so the model actually sees the picture and follows your instruction rather than conditioning on a latent. That's a different beast from a classic img2img denoise pass, and it's why it can do things like "Make it 4k resolution" or restyle an existing character in ways local models often fight you on.
How it works
image_1 is required, and image_2 through image_5 are optional extra reference images. Each gets resized so its longest side is at most 1568px, compressed to JPEG quality 90, and base64-embedded in the request. Your prompt plus a size instruction ride along, the request goes to the provider's /v1/chat/completions endpoint, and the response's images - base64 data URIs or URLs - are scraped, decoded, and returned as a stacked IMAGE batch.
That "size instruction" is what size_mode controls, and it's the one field worth actually understanding:
- Match Image_1 (Smart Crop) - forces the output to your input image's exact dimensions using a center-crop (
ImageOps.fit). For "upscale this" and "keep the same composition" jobs, this is the one you want. - Keep Model Output - no forced resize; the first returned image sets the base size and the rest are resized to match it. Let the model decide.
- Custom Size - uses
custom_w/custom_h(64–16384, step 8, defaults 3840×2160) as a strict target.
count is 1–4 images per request, seed of 0 means random, and the output is a single images IMAGE that plugs straight into Save or Preview.
Installing it
Same pack as the T2I node - you install once and get both. Via ComfyUI Manager, search SynVow-Comfyui-Nanoapi, or:
cd ComfyUI/custom_nodes
git clone https://github.com/AJbeckliy/SynVow-Comfyui-Nanoapi
Then restart ComfyUI. Dependencies are torch, numpy, Pillow, requests, and urllib3 - every one already ships with ComfyUI, so there's nothing to download beyond the node itself. Watch out for the README's clone command, which is a placeholder (YOUR_USERNAME, wrong repo name); use the URL above. The dropdown only exposes T8Star and Apicore as API sources despite the README mentioning SynVow AI - the SynVow option is dead code.
Gotchas
The request timeout is a generous 1000 seconds, so a slow provider means a long, silent wait. Errors surface in the console as API Error: ... (the provider's raw error) or No images found (the response contained no parseable image - the log prints the first 200 characters so you can see why). The api_key is a plaintext widget, which means it gets saved into any workflow you save, so scrub it before sharing. And remember: your images are leaving your machine for a third party, so only send pictures you're comfortable with that. SSL verification is off by design for internal endpoints, another reason to only use a provider you actually trust.
If you've got a key and need real image editing without a local GPU grind, this is the easy route. It's thin on features and won't win any awards for polish, but it does one thing - take an image, follow an instruction, hand back a result - without pretending to be anything else.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| image_1 | IMAGE | — | |
| api_source | COMBO | 2 options: T8Star (ai.t8star.cn), Apicore (api.apicore.ai) | |
| api_key | STRING | — | |
| model_select | STRING | gemini-3-pro-image-preview | — |
| prompt | STRING | Make it 4k resolution | — |
| size_mode | COMBO | 3 options: Match Image_1 (Smart Crop), Keep Model Output, Custom Size | |
| custom_w | INT | 384064–16384 | — |
| custom_h | INT | 216064–16384 | — |
| count | INT | 11–4 | — |
| seed | INT | 00–2147483647 | — |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |