Nodes/EcoHash/EcoHash Image Edit
ComfyUI Node

EcoHash Image Edit

Edit an image with a sentence — no masks, no ControlNet, no inpainting

By ecohash-ai·Created about a month ago·Updated about a month ago· 0
EcoHash Image Edit
  • image
  • IMAGE
model
prompt
sizeauto

If you've ever spent ten minutes hand-painting an inpainting mask just to recolor one object, you know exactly why this node exists. EcoHash Image Edit takes an IMAGE, takes an instruction like "make the apple bright green," and returns an edited IMAGE - no masks, no ControlNet, no latent surgery. The editing happens on EcoHash's servers, so this is also the no-GPU, no-model-download version of the job. It's one of six nodes in the ComfyUI-EcoHash pack, all of which are API clients rather than local inference.

Why you'd reach for it

Instruction-based editing ("make this daytime", "swap the background", "turn the subject into a cartoon") is a genuinely different workflow from masked inpainting - you describe the change, not the region. It's great for iterating on an image that's already in your graph: from LoadImage, from a local sampler, or from the pack's own Image Generate node. The catch is the standard hosted-API one: each edit is a paid call, your source image is uploaded to a server, and whatever the edit model's content policy refuses, it refuses - you can't abliterate your way around it.

How it works

The node converts the input IMAGE tensor to PNG bytes and sends them as a multipart upload to /images/edits, with your prompt and size. The model dropdown is filtered to catalog entries that actually support image editing - right now that's flux2-klein, BFL's small Apache-licensed Flux, a model built for this job. The response comes back as a base64 image and is decoded straight into a ComfyUI IMAGE.

One detail worth knowing: size = auto isn't a lazy shortcut. The node's source sends your source dimensions explicitly, because omitting size entirely makes the API fall back to 1024x1024 - a 512x512 source would silently come back quadrupled. With auto, the API floors each side to a multiple of 16, so a 900px-wide source comes back 896. If you want exact output resolution, pick a preset like 1024x1024 instead of auto.

The inputs that matter

  • image - an IMAGE tensor. One image per call.
  • model - catalog-filtered to edit-capable models (flux2-klein today).
  • prompt - the instruction. "Make it night." "Add a red scarf." Specific beats vague, same as any edit model.
  • size - auto (default, matches source, floored to 16) or a preset.

Output is IMAGEPreviewImage / SaveImage, or straight into another node in the chain.

Where people get burned

  • Batching. These nodes process one image per request, and they fail loudly rather than silently dropping frames: a batch input raises an error telling you to split it upstream with an "Image From Batch" node. Wire in a single image.
  • The cache. ComfyUI caches node outputs, so re-queueing an unchanged graph returns the cached edit with no new API call. Change any input to force a fresh one.
  • 401 / 402. Invalid key or out of credit - both are clearly worded errors from the pack's HTTP layer.
  • Filtering. The hosted model enforces its own moderation. A sentence the vendor refuses produces a refusal, and there's nothing local to patch.

Install

ComfyUI Manager: search EcoHash, install "ComfyUI-EcoHash", restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/ecohash-ai/ComfyUI-EcoHash.git
cd ComfyUI-EcoHash
pip install -r requirements.txt   # just `requests`

Then set your key - sign up at ecohash.com for a free starter credit - via the ECOHASH_API_KEY environment variable or by copying config.ini.example to config.ini and pasting the key there. There's deliberately no key widget on any node, so the key never ends up baked into a workflow JSON you share. Restart, drag in an image, type a change, and queue. The pack is very new with no community footprint yet, so the usual "read a fresh node first" caution applies - it's MIT and open, but you're still handing a key and your images to a service.

CategoryEcoHash

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
modelCOMBO1 options: flux2-klein
promptSTRING
sizeCOMBOautoauto = match the source image (rounded down to a multiple of 16)

Outputs (1)

NameTypeDescription
IMAGEIMAGE