Files
aigen/docs/image-v2.md
T
TowstyandCursor 21fe2412f9 Add Image v2 as a sibling of Image edit, with separate Klein graphs.
Keep the v1 Image tab on its dual-branch template. The host agent follows Desktop's live port so Coolify stays on :8198.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 21:22:37 -05:00

3.1 KiB

Image v1 vs Image v2

Image edit (v1) and Image v2 are siblings. v1 is unchanged. Do not mute-fix workflow_flux2_klein_edit.json (the dual-branch template that deletes 75:* or 92:* at runtime).

Image edit (v1) Image v2
Tab Image edit Image v2
Route POST /api/edit POST /api/v2/generate and POST /v2/generate
Graphs One file, prune unused branch klein_v2_edit.json or klein_v2_compose.json
Second still Optional; switches branch Compose only; required. Mismatch is a 400
LoRAs Optional user picker SNOFS + Consistency, four strengths
Defaults 20 steps, CFG 1 24 steps, CFG 4 (turbo: 8 / 1)

Poll v2 jobs the same way as v1: GET /api/generate/{id}/stream and GET /api/generate/{id}.

Modes

  • edit — one image + text. Task is scene. Sending image_b is rejected.
  • compose — two images + text. image_b is required. No silent one-image fallback.

Compose tasks:

  • identity — person from A; B reinforces the face; prompt changes pose/scene
  • outfit — person, body, pose, background from A; clothing only from B
  • face_lock — body/pose/scene from A; face from B
  • scene — A is the edit image; B is style/background

Dummy test: Compose + two unrelated photos + “keep everything the same” must change the output. If it matches old v1 gens, still B is not connected.

Nodes the mapper patches

Both graphs:

Node Role
1 Load Image A (inputs.image)
2 / 23 Scale to MP, lanczos (megapixels)
7 SNOFS LoRA (lora_name, strength_model, strength_clip)
8 Consistency LoRA (lora_name, strength_model, strength_clip)
9 Positive CLIPTextEncode.text (role header + user prompt)
10 Negative CLIPTextEncode.text
15 Seed
17 Steps (Flux2Scheduler; Klein-native, euler sampler)
18 CFG
21 SaveImage prefix

Compose only:

Node Role
22 Load Image B
23 Scale B
24 VAE encode B
25 / 26 Second ReferenceLatent (B fused into pos/neg)

If image_b is sent and the executed graph has fewer than two LoadImage nodes, the job fails.

Default sliders

Slider Default
SNOFS Model 0.65
SNOFS CLIP 0.35
Consistency Model 0.70
Consistency CLIP 0.70
Steps 24 (turbo 8)
CFG 4 (turbo 1)
Scale to MP 1.0 lanczos

There is no Denoise slider. This is reference-latent Klein, not inpaint.

NSFW identity vs outfit swap

  • identity / face_lock — keep Consistency at 0.70 / 0.70 so the face from A (identity) or B (face_lock) holds. Do not drop SNOFS CLIP below ~0.30 or the skin/body read falls apart.
  • outfit — keep SNOFS Model ~0.65 so cloth reads; do not raise it past ~0.85 or it starts rewriting the body from A. Consistency stays at 0.70 so the person in A does not become the person in B.
  • scene / edit — start at the table defaults. Turbo is for drafts only.

Presets on this tab store sliders + mode + task only. They do not load v1 LoRA stacks or a cached latent.