CivArchive
    Olemara's High Quality 2pass Qwen 2.1 Image Workflow v.1.01 - v1.01
    NSFW
    Preview 148060820
    Preview 148060826
    Preview 148063775
    Preview 148063774
    Preview 148063777
    Preview 148063778
    Preview 148063780
    Preview 148063781

    Generated image with BHS Lora, Upscaled Latent, not a real actor or character

    This image made in the workflow Olemara's High Quality 2pass Qwen 2.1 Image Workflow v.1.01 and
    based on generated before image below


    High Quality 2pass-Upscaling Qwen 2.1 Image Workflow v.1.01

    Why this workflow

    Most people still bolt old face-swap stacks onto Qwen (InstantID-style helpers, separate swap pipelines, extra detectors). On Qwen-Image 2.1 that is mostly unnecessary.

    This graph is a Turbo DiT setup with an experimental but stable LoRA stack, a two-pass latent upscale, and one clear job in the default prompt path:

    *<image1> = full base frame (body, light, background)**

    *<image2> = donor head**

    BHS (Best Head Swap) LoRA does the head replacement inside the same generate — no second tool.

    On top of that:

    - Lightning / turbo LoRA — native few-step sampling (about 4–8 steps)

    - Multiple Angles LoRA — <mva> + azimuth / elevation labels (camera orbit without reshooting the ref)

    - Detail enhancer LoRA — enhance this image / 1_enhance this image

    - Natural Exposure LoRA — more believable light and skin response

    - Optional NSFW / MysticXXX LoRAs when you need adult anatomy without fighting the base model

    - Wildcard prompt node so one graph can randomize angle + shot height every run

    - Texture-fix VAE + 2-pass latent upscale so the second pass tightens skin, edges, and micro-contrast instead of only blowing up pixels

    Free to use. If something breaks on your machine, ask in the comments — happy to help.

    ---

    Core idea (head swap done right)

    1. Load base as <image1> (pose, wardrobe, room, lighting).

    2. Load face/head donor as <image2>. Optionaly - background <image3>

    3. Keep the head_swap block in the prompt (see below).

    4. Run. BHS LoRA strength usually 1.0; if it copies the whole ref instead of swapping, drop to ~0.8.

    You are not running a separate “face replace” app. The diffusion pass is the swap.

    ---

    Models (what the graph expects)

    • DiT / UNET | qwen-image-2.1-turbo-int8_convrot.safetensors or …-fp8.safetensors - Turbo quant from Qwen-Image-2.1-Turbo-Quantized, Can be used with 8 steps without any lightning loras
      Text encoder | qwen3vl_8b_nvfp4_heretic.safetensors | CLIP type: qwen_image (Abliterated / Heretic NVFP4) |

    • VAE | texture_fix_vae_for_qwen_image_2.1_bf16.safetensors | Prefer this over a random VAE |


    LoRAs used in the workflow

    • Lightning (few-step) | pytorch_lora_weights.safetensors | Optional Enables stable 4–8 step turbo sampling |

    • BHS – Best Head Swap | bfs_head_v1.1_alternative_qwen_2.1.safetensors | head_swap: block; strength 1.0 → 0.8 if needed |

    • Detail enhancer | elusarcas-qwen2-1-detailer-v1.safetensors | enhance this image / 1_enhance this image |

    • Multiple angles | multiple_angles_step1000.safetensors | Start prompt with <mva> + labeled angle |

    • Natural Exposure | Qwen-Image-2.1-Natural-Exposure-LoRA-4000.safetensors | Natural light / exposure response |

    • MysticXXX (optional) | Qwen-MysticXXX-v1.safetensors | Adult / denser detail when needed |

    • NSFW 2.1 (optional) | nsfw_lora_2.1_v2.safetensors | Adult anatomy helper |

    ---

    Default wildcard-style prompt (as in the graph)

    Uses [custom-willdcard-prompt](https://github.com/eliseipanov/custom-willdcard-prompt) so {a\|b\|c} picks one option per run:

    <mva> {front view 0°|front-right view 30°|front-right quarter view 60°|right side view 90°|back-right quarter view 120°|back-right view 150°|back view 180°|back-left view 210°|back-left quarter view 240°|left side view 270°|front-left quarter view 300°|front-left view 330°}, {high-angle shot|top-down shot|eye-level shot}.

    head_swap: start with <image1> as the base image, keeping its lighting, environment, and background. Remove completely the head of the Woman from <image1> and replace it with the head of the Woman from <image2>, strictly preserving the hair, eye color, nose structure from <image2>. Copy the direction of the eye, head rotation, micro expressions from <image1>, high quality, sharp details, 4k. Keep the colour scheme of <image1>

    camera and lighting: Cinematic realistic lighting, soft even light, realistic skin texture, realistic skin highlights, high detail. No text, no logos, no watermark. Shot made by fullframe Nikon camera with prime lens 85mm f/1.8. film grain, Dramatic lighting, cold long shadows.

    enhance this image: make all details of skin better, improve micro contrast, the point of black and point of white, sharp manual focus and white balance

    *<mva> rules (Multiple Angles LoRA)**

    - Put <mva> at the start of the prompt.

    - Use labels only (not raw degrees like 47°).

    - Azimuth examples: front view 0°, right side view 90°, back view 180°, …

    - Elevation: eye-level shot, elevated shot 30°, high-angle shot, top-down shot.

    - Optional: add close-up at the end of the angle line.

    - LoRA strength ~**0.8–1.0** (lower if it pastes the ref instead of changing camera).

    BHS tip: if the head “sticks” wrong, lower BHS toward 0.8 and keep the head_swap: sentence explicit about hair / eyes / nose from <image2> and pose / gaze from <image1>.

    ---

    Sampler / quality (practical)

    - Turbo model in workflow can be used as is with 8 steps.
    - Turbo model + Lightning Lora: about 4-5 steps, low CFG (graph example ~**1.1**), euler + beta is a known-good combo on this stack. You also can use er_sde + sgm_uniform or Euler_ancestral / Beta *(or sgm_uniform)

    - Always run the second pass / latent upscale if you care about skin pores, wet highlights, fabric, hair edges

    - Output size: keep multiples of 32; ResolutionSelector-style ~1.5 MP 3:2 is a solid default before upscale

    ---

    Nodes you need

    - ComfyUI build that includes TextEncodeQwenImage21 (Qwen-Image 2.1 path)

    - UNETLoader / CLIPLoader qwen_image) / VAELoader

    - LoadImage ×2 minimum <image1> base, <image2> head)

    - KSampler (+ second pass / latent upscaler node and model as in the graph)

    - Wildcard / custom-willdcard-prompt (or paste a fixed angle line)

    - Optional: LUT-from-reference (Just load the image you want you generated photo looks like by style) + light grade nodes if you keep the color group

    ---

    Honest limitations

    - Quantized Turbo is fast, not magic — garbage refs in → garbage swap out

    - <mva> wants named angles; random degree numbers are unreliable

    - Stacking every LoRA at 1.0 can muddy the image; if detail collapses, turn optional NSFW/Mystic down first, not BHS

    - VRAM: INT8/FP8 Turbo is the point; the 2nd latent pass + texture VAE is what usually hurts small GPUs

    ---

    License / tone

    Workflow and notes are shared free for the community. Remix it, post results, tag the LoRA authors. Questions welcome in the comments — especially if BHS or <mva> misbehave on your exact quant.

    ---

    ### Workflow Notes (short install list)

    Weights

    1. DiT: qwen-image-2.1-turbo-int8_convrot.safetensors or FP8 twin → models/diffusion_models

    2. TE: qwen3vl_8b_nvfp4_heretic.safetensors → models/text_encoders (type qwen_image)

    3. VAE: texture_fix_vae_for_qwen_image_2.1_bf16.safetensors → models/vae

    4. LoRAs → models/loras/:

    - pytorch_lora_weights.safetensors (Lightning Lora from )

    - bfs_head_v1.1_alternative_qwen_2.1.safetensors (BHS)

    - elusarcas-qwen2-1-detailer-v1.safetensors

    - multiple_angles_step1000.safetensors

    - Qwen-Image-2.1-Natural-Exposure-LoRA-4000.safetensors

    - optional: Qwen-MysticXXX-v1.safetensors, nsfw_lora_2.1_v2.safetensors

    Custom nodes

    - Qwen-Image 2.1 encoder support (stock recent Comfy or pack that ships TextEncodeQwenImage21)

    - [custom-willdcard-prompt](https://github.com/eliseipanov/custom-willdcard-prompt) for {a|b|c}

    - Whatever upscale/2pass nodes are already wired in the uploaded graph

    Run order

    1. <image1> base, <image2> head, also optional (disabled) <image3> for background

    2. Confirm BHS + Lightning + (optional) angles/detail/exposure strengths

    3. Generate few-step turbo → let 2pass latent upscale finish

    4. Only then push grade/LUT

    Support:

    comment with GPU, quant (INT8/FP8), and which LoRA strengths you used if the head swap or <mva> drifts.

    Description

    Free and rady for use Workflow Olemara's High Quality 2pass Qwen 2.1 Image Workflow v.1.01, working without any bugs with VRAM 24 Gb + (For example on vast.ai instances here https://cloud.vast.ai/?ref_id=398237)

    Workflows
    Qwen 2.1

    Details

    Downloads
    61
    Platform
    CivitAI
    Platform Status
    Available
    Created
    11/5/2026
    Updated
    11/6/2026
    Deleted
    -

    Files

    Olemara-Qwen2.1-BHS-comfyUI-wokrflow.json