CivArchive

    The BFS (Best Face Swap) LoRA series was developed for Qwen Image Edit 2509, specialized in high-fidelity face and head replacement tasks with natural tone blending and consistent lighting.

    Each version builds upon the previous one:

    • đź§  Focus Faces: precise face swaps, keeping the original head shape and hair while transferring facial identity and expression.

    • đź§© Focus Head: stronger head swaps, replacing the full head (including hair and pose orientation).

    • The 2 versions complement each other, one is focused on face swapping and the other is focused on head swapping.

    Share your creations that do not involve public figures or individuals who have not given consent. By sharing, you will earn Buzz, and your posts directly help me improve future versions by identifying and correcting potential issues.

    Important Note: If you are going to use Qwen Image Edit 2511, update your comfyui before anything else, because without it you may have problems with completely distorted or ugly images.

    If this model was helpful to you in any way, please consider helping me continue creating more model for the price of a coffee.

    Workflows:
    Head/Face Swap Workflow - Qwen-Image-Edit-2509 | Civitai

    My Custom Lightning LoRA:

    Custom Lightning - Qwen Image Edit - 2511 | Qwen LoRA | Civitai

    Alissonerdx/CustomLightning · Hugging Face

    Test V3 here:

    BFS Best Face Swap - a Hugging Face Space by Alissonerdx

    Face Swap Video Tests (V1):
    Face Swap - Qwen Image Edit 2509 (English)

    Another important thing is to update ComfyUI. Many people are having terrible results because they haven't updated ComfyUI. The 2511 model has an architecture with a few more layers, and that's why ComfyUI needs to be updated.

    About Flux 2:

    I've done my best so far, but the results aren't as good as with QWEN. The base Flux 2 model can already handle head swapping, but with some difficulties. The goal of this LoRa was to try and improve that a bit, but I haven't achieved very good results. It might be a configuration issue, so here's this beta version for you to test.

    Try with CFG: 8.0

    PERSONAL NOTES:

    The swap quality will always depend heavily on the quality of your input images. Larger, clean images with little noise or compression artifacts generally produce the best results. Keep in mind that the model always follows the quality of the body image, since it becomes the final rendered frame—so even if the face source is high-quality, a low-resolution or noisy body image will limit the outcome.

    Most of the images I generate are created without using the LightX2V lighting LoRA, since I noticed that enabling it tends to make the skin appear more plastic-like and reddish, and finding the right balance requires extra tuning that I didn’t focus on. If anyone has discovered good configurations, feel free to share them in the comments of this template.

    In short, using LightX2V makes the model less versatile because it operates with a fixed CFG value of 1.0. So before assuming it “didn’t work,” I recommend first testing the workflow I published without LightX2V to compare the results.

    If you’re getting results with too much contrast, overly strong colors, or plastic-like textures while using LightX2V’s lightning models, try reducing the number of inference steps. For example, if you’re using the Qwen Image Edit 2509 Lightning (8 steps) model, try running it with 4 steps instead. The excessive contrast often comes from running too many steps while CFG remains fixed at 1.0.

    If you encounter similar issues without using the lighting LoRA, try lowering the steps as well—e.g., from 20 down to around 16 or fewer—and reduce CFG to values like 1.2 or 1.5, which can help produce smoother, more natural results.

    Another important detail: in images where the body is positioned farther from the camera, the face region becomes smaller, which can reduce swap accuracy and overall quality. This happens because the model has less pixel information to work with in that small facial area. To handle these cases, you can use my older workflow, which automatically crops the face region from the body image and performs an inpainting-like process to improve results in distant or small-face compositions.

    Finally, if you notice loss of similarity between faces or poses—especially when the reference and target images differ significantly in aesthetics or angles—try increasing the strength of your head swap LoRA slightly (for instance, to 1.2 or 1.3) to restore consistency.


    ⚙️ BFS — “Focus Faces”

    Trained on 240 image triplets (face, body, and result),
    with a LoRA rank of 16 → later increased to 32,
    and gradient accumulation = 2, running for 5500 steps on an NVIDIA L40S GPU.

    This version produces stable and detailed face swaps, preserving expression, lighting, and gaze direction while maintaining the body’s natural look.


    đź”§ Model Notes

    • You don't need to use my workflow to make this lora work, if you are having problems with it use yours, it is the simple workflow of qwen image edit + lora and the inputs in the right order: face image 1, body image 2.

    • Quantization: not guaranteed to work below FP8 (avoid GGUF Q4).

    • Face mask: optional — remove if MediaPipe or Planar Overlay cause issues.

    • Pose conditioning: use MediaPipe Face Mesh or DWPose if you need more alignment control.

    • Lightning LoRA: may produce plastic-like skin, especially when mixed with other Qwen-based LoRAs.


    Samplers:

    • er_sde + beta57 / kl_optimal / ddim_uniform (best results)

    • ddim + ddim_uniform (sometimes most realistic)

    • res_2s + beta57

    Don't get attached to one setting, sometimes if it doesn't work well with one, switch to another.

    Precision:

    • đź§  Best: fp16

    • ⚙️ Recommended: gguf q8 or fp8

    • ⚠️ Below fp8: noticeable degradation

    Inference Tips:

    • With Qwen Image Edit 2509 Lightining LoRA → use 4 / 8 steps for fast generation.

    • Without it → use 12–20 steps, CFG 1.0–2.5 for realism.


    🧬 BFS — “Focus Head”

    The “Focus Head” version was trained as a continuation of Focus Face, extending the dataset and shifting focus toward full head swaps.

    It was trained on a NVIDIA RTX 6000 PRO, rank 32, for 12,000 steps, using 628 image pairs (face, body, target, and sometimes pose maps generated via MediaPipe).

    🔹 Training Phases

    1. Standard Face Swap – same Focus Face, focusing on facial identity.

    2. Pose-Conditioned Face Swap – added pose maps to align gaze and head angle.

    3. Full Head Swap – replaced the entire head (including hair) for stronger identity control.

    After ~2000 steps, the focus moved toward head swap refinement.
    At ~4000 steps, the dataset was narrowed to perfect skin-tone matches, and by the end of training,
    the dataset evolved from 628 → 138 → 76 high-quality samples for final fine-tuning.

    ⚠️ Note:
    While Focus Face can still perform standard face swaps, it’s more naturally inclined toward full head swaps due to its data balance.
    This was intentional in part, but also a side-effect of dataset distribution and mixed conditioning.


    ⚠️ Important Notice

    Do not share results involving real people, celebrities, or public figures.
    Civitai’s moderation may disable posts that violate likeness or consent rules.
    This model is intended only for artistic and fictional characters, educational use, and AI experimentation.

    I take no responsibility for any misuse of this model. Please use it responsibly and respect all likeness rights.

    Description

    null

    FAQ

    Comments (66)

    Keroro_GunsoFeb 3, 2026· 1 reaction
    CivitAI

    There is now an LTX-2 Section for civit. You may want to consider moving this model over.

    sonofabeanFeb 3, 2026

    It's listed under there, but from what I've noticed from lots of Wan models that update with an additional LTX model, it also shows as an update in Wan search results too. Too many times I've seen a good Lora get an exciting new update only to find they've just ported it to LTX, or made a static Flux version or something. Not the creators' fault.

    Keroro_GunsoFeb 3, 2026

    @sonofabean It has been changed since I made this comment.

    ltcdrbroccoliFeb 3, 2026· 1 reaction
    CivitAI

    Is there a way to make the BFS LTX2 lora work within wan2gp?

    NRDX
    Author
    Feb 3, 2026

    I've never tested Wangp so I don't know, could you test it for us?

    SkuuurtFeb 3, 2026
    CivitAI

    I keep running into this error with your LTX workflow : The size of tensor a (11648) must match the size of tensor b (1507200) at non-singleton dimension 2

    Any clue on how to solve this ?

    NRDX
    Author
    Feb 3, 2026

    Do you have the latest version of ComfyUI? Where is this happening? Is there any way to share a screenshot?

    SkuuurtFeb 3, 2026

    @NRDX It is happening during the first sampling, on the first custom sampler node. Im pretty sure I am running all the required models without error cause I kept the names the same and just pressed "r" for my comfy to detect those.

    NRDX
    Author
    Feb 3, 2026

    @Skuuurt Please check all the models; the workflow I provided may have some inconsistencies with model names, because locally I sometimes use different ones.

    SkuuurtFeb 4, 2026

    @NRDX I checked it and it is ok from what I see :/

    divineblessingFeb 4, 2026
    CivitAI

    When the resolution exceeds 1280Ă—720, the synthesized video may exhibit a black screen issue while retaining audio playback. Have you encountered this problem? I succeeded with a 1024Ă—512 resolution, but the result is not as effective as what you demonstrated. I suspect the issue stems from my video materials, as most are full-body shots. Thank you for sharing.

    NRDX
    Author
    Feb 4, 2026

    That's very strange, I'll test it more. I actually had some problems after increasing the resolution; it might be a workflow issue that I'll investigate further today. Another thing, I wasn't using the second pass before because it alters the video. The first pass usually follows the process more correctly, but the second pass sometimes destroys the video, and I'll see if I can create a workflow without it.

    NRDX
    Author
    Feb 4, 2026

    Here's what happens: the model doesn't natively support very high resolutions. For example, the one I tested was always 720. What it does to allow these resolutions is simply halve the resolution. If, for example, the resolution set for generation is 1536, it will reduce it to 768 and perform the inference with that resolution. In the second pass, it applies a x2 upscale, which brings the resolution back to 1536. In my workflow, I don't do this because I didn't have a second pass before. I added the second pass recently and forgot to include that halved downscale.

    divineblessingFeb 5, 2026

    @NRDX Thank you for your sharing. I resolved the issue by replacing the initial video image scaling node with a fixed size. Currently, there's still the problem of inconsistent lip sync in some scenes, such as when the character in the footage speaks with a barely open mouth.

    divineblessingFeb 5, 2026

    @NRDX Additionally, I replaced Flux face-swapping with 2511 face-swapping, and the effect works better.

    NRDX
    Author
    Feb 5, 2026

    @divineblessing You can connect the audio node so it uses the audio to condition the mouth movement; by default, the part that does this receives empty audio.

    NRDX
    Author
    Feb 5, 2026

    @divineblessing Furthermore, in the workflow I left the flux klein 9b fp8 and noticed that its result is much lower than what is possible with flux klein 9b without quantization. I personally use it without quantization, but in the workflow I left this fp8 to save VRAM for whoever will use it.

    NRDX
    Author
    Feb 5, 2026· 1 reaction

    It is important to clarify that when training an IC LoRA, you cannot use audio conditioning. While standard LoRAs support this, the official IC LoRA training script does not. It is only possible if you manually modify the code. Therefore, any mouth movement you see during inference without audio conditioning is just the model attempting to mimic the lip-sync from the guide video. If you enable audio conditioning using the MelBandRoformer, the results will be significantly better, and it allows you to use any custom audio. These nodes are located in the yellow group in the workflow—simply connect them in place of the 'Empty Audio Latent' node.

    divineblessingFeb 5, 2026· 1 reaction

    @NRDX After replacing the LTXV empty audio latent space node with a vocal node, the lip movements of the speaking characters have significantly improved. Now, the video effects are almost the same as what you demonstrated. Thank you again for sharing!

    10789353Feb 4, 2026
    CivitAI

    Is there a known limit for the final video? Videos longer than 9s with 720*1280 and 24 fps are getting dark. If I reduce the resolution to 400 * 700, I can increase the lenght without getting dark videos. The dark videos are only about 200 KB large. Does not know yet why this happens or where the limit is. Otherwise great work!

    NRDX
    Author
    Feb 4, 2026

    Here's what happens: the model doesn't natively support very high resolutions. For example, the one I tested was always 720. What it does to allow these resolutions is simply halve the resolution. If, for example, the resolution set for generation is 1536, it will reduce it to 768 and perform the inference with that resolution. In the second pass, it applies a x2 upscale, which brings the resolution back to 1536. In my workflow, I don't do this because I didn't have a second pass before. I added the second pass recently and forgot to include that halved downscale.

    NRDX
    Author
    Feb 5, 2026· 1 reaction

    I solved this problem on the v1.1 workflow.

    og1BFGFeb 4, 2026· 1 reaction
    CivitAI

    very good however the qwen 2511 delivers much better quality than the flux klein 9b. flux klein 9b can rarely achieve blowjob faceswap, qwen does it like a walk in the park. from tinkering 3 days and getting both to run in 30s generations with stunning quality, flux beats realism skin and leaving the rest of the scene untouched, qwen 2511 does facial obstruction incredibly well, almost never fails. Flux will not transfer fluids at all but qwen does so amazingly well.

    I wish the two could be combined, it would be the ultimate lora for faceswapping still images

    og1BFGFeb 4, 2026

    it appears that using loras that do what would be included in a faceswap that retains the body reference facial occlusion , like a swap of a BJ scene, fixes the problem, to an extent. example. initial image is a BJ image with cum, you swap reference image onto initial image and the cum is gone. if you use cum lora however, it usually works. still, blowjob lora does not fix the mouth around penis problem. flux usually cuts off the penis and dreams up a closed mouth or doing anything but that

    JaysowenFeb 5, 2026

    Hi, what workflow are you using to do a swap of a BJ scene? I tried the 2511 V5 Simple workflow, but always got cuts off the penis and a closed mouth. Thanks

    NRDX
    Author
    Feb 5, 2026

    If there's one purpose that wasn't my goal when I trained this model, it was precisely this (NSFW): you're on your own to try and solve this "problem", hahaha

    og1BFGFeb 5, 2026· 2 reactions

    @NRDX of course i know that but you do understand people will "abuse" it for that :) I'm just sharing my findings for others with the same interest. Either way, you did an amazing job. thank you for the lora and i do hope you will develop it further.

    og1BFGFeb 5, 2026· 1 reaction

    @Jaysowen hi, I'm actually using the V4! i didnt realize there was v5, or maybe i tried it and couldnt get it to work. either way V4 with some tinkering to make it fit my machine already produced so extremely high quality results that i'm satisfied. combine with i2v and you can make ultimate next gen fakes. And yes you read correctly, I was using the 2509 Workflow on the 2511 model. it's amazing. i wonder what more factors play into successful and convincing swap. perhaps input images should have the same or similar or divisible by the same number dimensions. some body reference pictures will always produce shit output, and some face reference pictures will always produce shit output. im still working on it.

    JaysowenFeb 6, 2026

    @BlackForestGypsy Thank u so much

    AiNinja94Feb 5, 2026
    CivitAI

    Why does the LTX sampler process every time I run the workflow?
    What value is being changed? The seed id is fixed for both LTX and Klein.

    NRDX
    Author
    Feb 5, 2026

    This happens because FastCanvas is rebuilding the image every time. What you can do is set a padlock on the canvas, which will prevent this behavior, or use the new workflow I added called v1.1.

    AiNinja94Feb 6, 2026

    @NRDX The quality is low compared to the previous workflow.
    I tried increasing steps from 4 to 8 in Flux Klein, and the Basic-Scheduler from 8 to 20, but the quality is still bad then previous WF.
    The model used is the dev FP8 transformer as per the links given.

    Now comparing the difference with the older WF. Let me know if you have any inputs.

    edited: Override-start-frame was twice in the first WF :P

    dachhaus41200Feb 5, 2026
    CivitAI

    I am running your QIE 2509 V4 Focus Head lora with the respective workflow you provided. I am using the Q8 gguf model and the 4 step lightning lora.

    While the workflow runs smoothly, the outputs have zero likeness with the input face, no matter which combination of face and body reference I try.

    Any idea? Thank you!

    NRDX
    Author
    Feb 5, 2026· 1 reaction

    Test the V3

    dachhaus41200Feb 5, 2026

    @NRDX I did now. While the output is better, the likeness is still far off. I am putting a real face in, but the output looks too synthetic. Plastic skin and all. I'd apprechiate any help.

    NRDX
    Author
    Feb 5, 2026· 2 reactions

    @dachhaus41200 One thing I describe in the model descriptions is that if you use base models with a lot of quantization or use LoRAs like Lightning, the results will always be worse because these are models designed to speed things up, and speeding things up has the disadvantage of quality. You'll have more versatility to generate with less VRAM or faster, but the result will always be worse. In other words, consider not using Lightning if you want quality, or not using base models with very heavy quantization. I advise against anything below Q8. The quality also depends on your two images; if the body image has a more artificial look, the result will tend to reflect that as well. Try not to use a face image that is too far from the camera; always place it as close as possible.

    dachhaus41200Feb 6, 2026

    @NRDX Wow, thanks for all the input. I will try your suggestions.

    banditlevel200Feb 5, 2026· 2 reactions
    CivitAI

    Entirely new comfyui install + all nodes + 1.1 workflow are you using modified nodes? Because its just straight up not working. Regular LTX works fine but this is broken beyond repair it seems

    NRDX
    Author
    Feb 5, 2026

    It's not broken, or you're simply putting the models in the wrong places.

    banditlevel200Feb 5, 2026

    @NRDX Nope all the right models in the right places its just broken or you're using custom nodes/ modified nodes not included when downloading the required nodes

    NRDX
    Author
    Feb 5, 2026

    @banditlevel200 I'm not using custom nodes; to give you an idea, I'm making a video where I installed everything from scratch in a pod on Runpod and simply ran the workflow, and it worked without problems. The problem in your case is something in your ComfyUI or something you've done.

    Miyagi2300Feb 10, 2026

    I can get the face swap to work but the video it generates is a 1s black blob with a flash of color. also this line in comfyui server: [VideoHelperSuite] - WARNING - Output images were not of valid resolution and have had padding applied

    WhbgFeb 5, 2026
    CivitAI

    I am using this with the "Head Swap V1 LTX-2" workflow. However, I am getting very distorted blurry results still. Any pointers to get results like the samples?

    NRDX
    Author
    Feb 5, 2026

    Did you test v1.1?

    WhbgFeb 5, 2026

    Can you share the link? I did not see v1.1 for LTX-2

    spaz8Feb 6, 2026
    CivitAI

    Thanks for this, but even with v1.1 I only have my face swap on the first frame , and then it pops to the guy with the mustache from the video examples.. overfit model?

    spaz8Feb 6, 2026

    Also reading your notes. You recommend LANDSCAPE as in wide videos.. 16:9? I have been trying square.. I ask just because the videos you show are all tall.. tiktok style..
    Also increase the "first frame 13500 Lora from 1.0 to 1.4 helped... what is the 0.6 .. fro09 lora for? would tweaking that help? I have been trying to randomize seeds also..

    spaz8Feb 6, 2026

    Also wish I could prompt away the blinks or any emotes.. the head in my source vid is completely static.. but LTX adds adds emotes in seems

    NRDX
    Author
    Feb 6, 2026· 2 reactions

    There's no overfitting; the main issue here is the same one I've already mentioned in notes within the workflow and in the model descriptions: the only frame anchored to the new face's identity is the first, and all other frames show the face from the original video. This tends to revert to the original video's information. One way to try and solve this is to increase the LoRa strength of the first pass to 1.2 and leave it at 1.0 in the second pass, for example. The problem is that increasing the strength means the movement isn't as consistent, but it will strengthen the dissipation of information from the first frame to the others.

    spaz8Feb 14, 2026

    @NRDX DO you see any issue with using the LTZ2 distilled model instead of the guff Q8? I have the vram. This workflow is great, but struggling to get better quality and higher res, I might go back to 5s vid also instead of 10s. Been also playing with the LTXV Spatio temporal tiled Vae decode versus the tiled one you have.

    CyberAImaniaFeb 7, 2026
    CivitAI

    THanks for Lora. Good job. What WF is ready for LTX2 ?

    superacf135Feb 7, 2026

    The workflow link is in the text box description on the right.

    theowemFeb 8, 2026· 2 reactions
    CivitAI

    I'm using the QIE 2511 V.5. Sometimes the swapped image head is quite bigger than the proportion the their body. What could be the cause of this? Thank you for this workflow btw.

    emilkwokFeb 9, 2026
    CivitAI

    Thanks so much for your hard work! I've run into an issue and was hoping you could help. I'm using a video with a Western woman as the character, and I'm trying to swap her head with an Asian woman from an image. The head_swap_v1_13500_first_frame Lora is definitely working—she's clearly not the Western woman from the original video anymore—but she doesn't look like the Asian woman from the image either. At first, I thought it was just the Lora strength, but even after increasing it, I got the same result. Also, in the output video, the Asian woman's face gradually morphs into a Western woman's face. I'm guessing this might have something to do with the dataset you used to train the Lora. Do you have any ideas or solutions for this?

    Ezrtwey390Feb 9, 2026· 2 reactions
    CivitAI

    Anybody got workflow that copies expression of the body reference image?

    raidou88Feb 12, 2026· 1 reaction
    CivitAI

    anyone got some colorful dots on your results? how do i fix that

    bekejej6031201Feb 13, 2026· 4 reactions
    CivitAI

    WARNING, I INSTALLED THE CUSTOM NODES AND THIS COMPLETELY BRICKED MY INSTALL

    NRDX
    Author
    Feb 13, 2026· 1 reaction

    Seriously, I actually went through the whole process several times on the runpod with a completely clean comfyui and everything works as expected. There might be some custom node you're using that conflicts with the ones I used, but the ones I used are extremely common.

    EveTessFeb 14, 2026· 4 reactions

    Make sure to back anything up before you try installing new things (we've all been there). When you get your install back into working order, go into your venv - you can find it in the comfyui install location. once you have the path, enter command prompt and navigate to there. run 'venv\Scripts\activate' to activate the venv, and then run 'pip freeze > requirements_backup.txt'. this will make a backup of your packages.

    then the next time you brick, just repeat everything except the last step. instead of freeze, run 'pip install -r requirements_backup.txt' and it should get everything back.

    shd830Feb 14, 2026

    @NRDX Could you share the Runpod template? I would like to just get it going ASAP. I also tried using the latest 1.1 workflow, which also bricked my install unfortunately.

    bekejej6031201Feb 15, 2026

    hey guys, not the authors fault of course. its just a warning and reminder. For some reason the custom nodes after install -> restart. it started to automatically uninstall pytorch and trying to run in cpu mode.

    im far for an expert, but also tried revert with a backed up custom nodes folder and backup of python_embeded but never got it to work, i ended up just starting over.
    Evetess thanks for the recommendation will try that going forward

    JOWNMAINFeb 17, 2026

    That's why I avoid custom nodes. I knew this could be a problem so I don't even tried them except for the GGUF nodes (which I also don't need after the 1 model I tested).

    AnicardFeb 15, 2026
    CivitAI

    Does anyone know how can i fix the mouth movements, my video doesnt have any mouth movements, and no audio, but the characters mouth is still moving at the end result

    flamacoreFeb 15, 2026
    CivitAI

    Great LORA thanks! My question is that for v5 2511 (or 2509 for that matter), similarity is completely off. Face ends up to be much taller and expression is not kept. Instead it keeps the body image expression. No missing nodes or models. Am I missing something here? Using the lighting version. Swap lora at 1.3 or 1.2 does not matter much. It does vaguely remind of the face image but that's it. Any ideas?

    NRDX
    Author
    Feb 16, 2026

    So the expression that should be preserved is that of the body, not the new face.