Nodes/Node_Fun_ComfyUI/WaveSpeedAI Flux 2 LoRA Edit
ComfyUI Node

WaveSpeedAI Flux 2 LoRA Edit

Cloud Flux 2 Editing for People Who Don’t Have 24 GB of VRAM

By nofunstudio·Created 2 years ago·Updated about a month ago· 9
WaveSpeedAI Flux 2 LoRA Edit
  • image1
  • image2
  • image3
  • image
  • image_path
  • generation_info
  • generation_time
api_key
promptmake this picture berthe_morisot style
width1024
height1024
lora_url
lora_scale1.00
seed-1

Flux 2 is the most capable open-weights image model around - 4MP output, generation and editing in one checkpoint - and it's heavy: it wants 18–24 GB of VRAM even quantized, with a vision-language encoder on top. If your rig can't hold that, this node is a workaround. Feed it a source image, type an edit prompt, optionally hang a LoRA off it, and WaveSpeedAI's hosted flux-2-dev/edit-lora endpoint does the heavy lifting and hands the result back into your graph.

The default prompt is the giveaway: "make this picture berthe_morisot style." Berthe Morisot, the Impressionist. This node is built for restyling and image-to-image edits - show it a picture and tell it what to become - not for generating from nothing. image1 is required, same as the pack's other edit wrappers. That's exactly the niche Flux 2 is best at, so lean in.

How it works

Identical machinery to its sibling in the same pack, WaveSpeedAI_Image: your image tensors get base64-encoded, POSTed to the API with the prompt and size, and the node polls the result endpoint every two seconds until it says completed, then downloads and returns the image. Outputs are the same quartet - image, image_path, generation_info (a JSON string), generation_time - and the file lands in ComfyUI's temp directory with a sidecar metadata JSON.

The inputs that matter

  • api_key - WaveSpeedAI key, or WAVESPEED_API_KEY env var.
  • prompt - the edit instruction.
  • image1 - required, from a Load Image node.
  • width / height - default 1024×1024, range 512–2048, step 8. Tighter range than the Image node's 4096 max.

The LoRA part is the reason the name says "LoRA Edit." lora_url takes a hosted LoRA - a direct download URL, not a path on your disk - and lora_scale (default 1.0) sets how strongly it applies. One caveat from LoRA 101: architecture lock-in. A LoRA trained for SDXL or even Flux.1 won't do anything useful on Flux 2; you need a LoRA trained for the Flux family. Style LoRAs tend to want a slightly lower scale, so if a style overshoots, back lora_scale off toward 0.8 rather than dialing the prompt. seed defaults to -1 for random.

Install

Same pack as its sibling, so same steps. ComfyUI Manager → search "Node_Fun_ComfyUI", or:

cd ComfyUI/custom_nodes
git clone https://github.com/nofunstudio/Node_Fun_ComfyUI
cd Node_Fun_ComfyUI
pip install -r requirements.txt

Restart ComfyUI and you're done. No model files to download - that's the entire point of an API node. The requirements.txt only adds replicate and fal-client for the other nodes in the pack; these WaveSpeedAI nodes run on requests and PIL, which ComfyUI already has.

Where people get burned

  • The silent black square. Unlike WaveSpeedAI_Image, which returns None on failure, this node's error path returns a black 64×64 tensor. If your output suddenly shrinks to a tiny black image, the generation failed and the node handed you a zero tensor. Read the generation_info output for the actual error - don't waste time wondering what the model did.
  • Temp-directory outputs. Files go to ComfyUI's temp folder and get wiped on restart; grab whatever you want via image_path.
  • Paid API, grumbly billing. WaveSpeedAI is real and fast, but users have complained about minimum credit top-ups. Check the pricing before you queue a big edit run.
  • The async footgun. The worker is an async def, and ComfyUI's executor doesn't await node functions - a pattern shared by every API node in this pack. As shipped, execution can fail with a coroutine error in the console. This is a young, single-commit pack, so treat it as beta: if you hit that error, check for an update before assuming your workflow is broken.
CategoryWaveSpeedAI

Inputs (10)

NameTypeDefaultDescription
api_keySTRING
promptSTRINGmake this picture berthe_morisot style
image1IMAGE
widthINT1024512–2048
heightINT1024512–2048
image2optIMAGE
image3optIMAGE
lora_urloptSTRING
lora_scaleoptFLOAT1.000–2
seedoptINT-1-1–2147483647

Outputs (4)

NameTypeDescription
imageIMAGE
image_pathSTRING
generation_infoSTRING
generation_timeSTRING