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 (61)

    9832676Feb 17, 2026
    CivitAI

    Just curious mate, if this lora is to basically help keep the consistency of the headswap, (i assume an image generator pre swaps the head)
    shouldn't it also work to keep image to video character consistency by default? i'll try it when im not training, was just a thought

    OVYRLORDFeb 17, 2026

    I've tested it for about 4 runs now and not only does it not work for that purpose, it also breaks the NSFW LoRAs applied with it.

    NRDX
    Author
    Feb 17, 2026

    @OVYRLORD You were unable to use LoRa? What problem did you encounter?

    9832676Feb 17, 2026

    @OVYRLORD alright it was worth a thought, guess it will stay for its intended purpose

    NRDX
    Author
    Feb 17, 2026

    It's already been answered, but I don't think it will work. I literally trained with a dataset focused on head swapping, but are there problems with image consistency by default? If that's a big problem, I can try training a LoRa for it.

    9832676Feb 17, 2026· 1 reaction

    @NRDX yeah it was just an idea as it kind of stems close to your inital lora, a dedicated lora for it would be great!
    the biggest issue in LTX-2 at the moment is the face shift in I2V

    thanks for your hard work bro

    OVYRLORDFeb 18, 2026· 1 reaction

    @LoRa_Daddy I'm running the Phr00t merge for the base model. Although this LoRA didn't help maintain the facial consistency with the I2V; what DID help was applying the the default distill LoRA after the other LoRAs with a weight of -0.60. Apparently, at least in the model I'm testing, the I2V gets 'over cooked' so reversing the distill effect by applying the LoRA with the negative weight pulls the generation back in line and fixed my facial consistency issue to within an acceptable result. It wasn't 100%, but about 95% which was way better than before. I should also mention that my setup pulls the LoRA weights for each of the 2 passes so all applied LoRAs get applied at their defined weight for both sampling rounds.

    @OVYRLORD have u also tried the transformers only models?

    banditlevel200Feb 17, 2026· 1 reaction
    CivitAI

    In case you have the issue of getting a black video that is broken in the final nodes where the video is saved and should be shown there's a crf option that is set to 0 change that to 19 and it will work.

    _crz_Feb 18, 2026
    CivitAI

    LTX loras: I ran 7-8 tests with different vids/faces and the loras did pretty much nothing.
    Same result with first frame lora.
    Same result with first/last frame lora.
    And same result with v2 lora, nothing.
    After the first frame it just flips back to the original person with original hair in the original video and the result is the original person - but with a slightly different face that doesnt resemble the original or swapped person.
    And the hair didnt change at all either at any point.
    Have no idea.

    NRDX
    Author
    Feb 18, 2026

    I'll release a video soon showing how to use it. The most important thing is that the face is completely covered by the mask in the video guide; this is for the v2 model. Otherwise, it will restore the face shown in the video guide.

    NRDX
    Author
    Feb 18, 2026

    Nothing is magic, haha. If he doesn't see the head in the video guide and there's a mask, he only needs to find the only head he'll see, which is the one you provide as the first image. That's why the mask in v2 is very important; any detail of the old face showing up makes the model tend to be lazy. For better results, you can also try a head swap in the first frame so the model can continue, because if you only provide the image of the face, which was the goal of this v2, the result won't always be the best, because it has difficulty transforming a random image into a face and a head.

    @NRDX Actually, Reactor Face Swap is magic. I suspect PuLID or whatever newer things are even better.

    I just wish that kind of magic could be done to the whole body, not just the face.

    I suspect a better route might be to first generate the video with LTX-2, then have Wan S2V or BindWeave do a quick low noise pass.

    Come to think of it, I actually have gotten pretty decent results with Wan Animate as well.

    _crz_Feb 19, 2026

    @NRDX I dont remember seeing any masking options you provided in the workflow. Unless you have other workflows or something. I dunno, your workflows are spread all over the place in amongst other models and other loras for different models, its hard to even know which one you're referring to. Nothing is clear

    SwapThatLadFeb 19, 2026· 2 reactions
    CivitAI

    Do you have a workflow for LTXV2 BFS? Cant find it

    NRDX
    Author
    Feb 20, 2026· 4 reactions
    roger3435331Mar 19, 2026

    I try that workflow and its very good. Is there a workflow to that does not need a source video file? What I mean is using LTX2 to do T2V and then have a head image that will be used in the T2V generated video?

    BocekAdamFeb 22, 2026
    CivitAI

    There is a mismatch between the models and workflows; the workflow scenario is very fragmented, requiring you to select the workflow for each model and then make adjustments related to the nodes, which is a significant time waste.

    NRDX
    Author
    Feb 22, 2026

    I'm not sure I understand, but what would your solution be?

    BocekAdamFeb 23, 2026· 1 reaction

    @NRDX I appreciate your work, but there's a bit of confusion. For example, there should be clearer descriptions like "Face Swap Model V1," "Other Face Swap Model V4 (face can also preserve hair, background, or any style)," etc. I've reviewed all your pages; HungingFace is the most detailed, but I'm still encountering some complexities there. Also, the workflows are very old, and some nodes are no longer supported. Even a basic user might struggle with these settings. Perhaps updated versions of HungingFace could be presented with more accessible and user-friendly aspects. I've used most of the models; it's a successful effort. I appreciate your work and offer my respects.

    NRDX
    Author
    Feb 24, 2026

    I understand your point; I really don't spend much time writing good documentation on how to use it or creating wonderful workflows. My focus is on training the model and simply providing a way to understand how to use it. I think it's a minimal effort for people to try to apply it with the information I provide, or to better organize the workflow, but I will take your feedback into consideration to improve future versions.

    shd830Feb 23, 2026
    CivitAI

    I appreciate the effort of this workflow but when you download everything and put everything to where it needs to be, click Run and expect everything to work (as it should), and 99% it doesnt, and when it works, the first frame never copies over to the other frames of the video, there is a serious issue. The only solution I can see right now is a comprehensive video tutorial video of how to use this V2 worfklow to work as intended. The common issue I run into is the first frame (so the Flux swap), works 100% correct, but the LTXV2 part of copying the face never actually swaps the face onto all the other frames. It's either 1) the face swap sort of resembles the first frame or 2) the remaining frames don't resemble the first frame at all, usually a different person entirely OR a blurry useless mess. I can't be the only one.

    divineblessingFeb 24, 2026· 2 reactions
    CivitAI

    I tested a few 5-second clips to compare V1 and V2. To sum it up, the main problem with V2 is the stiff face and weird mouth movements when it speaks. V1 is great across the board and looks just like the original. V2 might be better for silent videos, I guess. I'm sticking with V1 for now. Thanks.

    NRDX
    Author
    Feb 24, 2026

    Yes, the v1 version is really very precise in terms of facial movements and lip-syncing. The problem is when there are abrupt changes in the scene, and that's something I'm trying to solve for future versions, trying to find a more precise way to unify the qualities of each one.

    1241445614831Feb 24, 2026
    CivitAI

    Hello, I've noticed that the model's performance in head replacement for Asians is not very satisfactory. Would you consider training a model specifically tailored for Asians? I am using Klein's LoRa

    NRDX
    Author
    Feb 24, 2026· 5 reactions

    Yes, it really tends to be bad because I don't use many images of Asian people in my dataset, but I'll consider adding more samples for the next version.

    TribalDiffusionMar 8, 2026

    @NRDX Looks like OP has a point. I tried the WFs out today (V3 and V5) and even with Sam Segmentation (faces), the faces turn out or lean towards Caucasian.

    siwewi1562839Feb 25, 2026
    CivitAI

    well done - keep on - big thanks! One Question i have Problems with items (Body Image) in the mouth for example Cigars, Corn or Bottles. I want to save the Items in the Body Image. Any Ideas?

    b16tranFeb 26, 2026
    CivitAI

    If I have a low quality head source image, will this upres it to match the target body image? If not, any suggestions to do so?

    Ponder_StibbonsMar 12, 2026· 1 reaction

    I found half a cheeseburger in the dumpster. If I bring it to a fancy restaurant and have a chef sprinkle parsley on it, will it be delicious and not kill me?

    That sounds mean when I read it. This is a golden rule however. Garbage in, garbage out. You can denoise a tiny and/or crappy source image into something that doesn't look like crap. But it will look nothing like the source. And preserving a likeness is the whole point.

    NRDX
    Author
    Mar 15, 2026

    @Ponder_Stibbons exactly

    mbaskett95106Mar 4, 2026
    CivitAI

    For the Qwen image edit 2511 v5 work flow, what are your thoughts using clown shark sampler node instead and adding noise eta = 100?

    I seem to be able to get much much better results by using Euler at 20+ steps and eta 100 cfg 8+ and bong tangent scheduler.

    noc233Mar 4, 2026
    CivitAI

    for Qwen image edit 2511 v5 work flow, i have very nice result with original images generated with pony, if the original image comes from z-image turbo the output quality is very noisy... can't understand why...

    yenkunu44666969Mar 6, 2026· 6 reactions
    CivitAI

    Just so you know, euler ancestral + beta works extremely well with this LoRA

    andreic1292265Mar 13, 2026
    CivitAI

    Hi guys. I am not very technical, can anyone help pls? I am running this is a private model on tensorhub. It ran fine yesterday but idk what heppened today, some settings must have changed, brcause the quality is not as good. Can you please tell me what settings you use if you use tensorhub?

    edit: reducing CFG to 1 helped a lot. but I am still open to suggestions to get it perfect

    https://i.imgur.com/Dgu66CN.png
    https://i.imgur.com/saSRDbk.png
    https://i.imgur.com/GAMkTCR.png

    NRDX
    Author
    Mar 15, 2026· 1 reaction

    yes, if you is using the distilled version you need put CFG to 1.0

    ken942Mar 13, 2026· 1 reaction
    CivitAI

    Dude - love this. Used it with Qwen 2511 and it worked like a charm. I used my own workflow and kept the Lighting Lora and didn't notice any issues. Bought you a cup of coffee for your efforts. Keep up the great work.

    NRDX
    Author
    Mar 15, 2026

    thank you very much for your contributions and feedback ken !!!

    soyv4Mar 19, 2026

    Can you please send me your workflow?

    1015Mar 15, 2026
    CivitAI

    Hello,

    I have a problem with the LTX version.
    The workflow works but in the end the face gets only replaced with a purple square instead of the ref face.

    WeazeMar 15, 2026

    where is the ltx wf ? i would like to test it

    1015Mar 15, 2026

    I also get

    Failed to validate prompt for output 351:

    * (prompt):

    - Required input is missing: images

    * VHS_VideoCombine 351:

    - Required input is missing: images

    Output will be ignored

    1015Mar 15, 2026

    https://imgur.com/a/OgjJmp0 here are some screenshots with the purple sqaure. It generates a first frame with new head but in the video it is just the purple square

    fallenleviathon847Mar 18, 2026

    I'm getting the same issue unfortunately. Not sure how to fix it yet.

    lades666528Mar 18, 2026

    @1015 I'm currently running tests, and it probably depends on the LoRa version you're using... with head_swap_v2_multimodes, I can get a face swap on every frame, but it's not very expressive... head_swap_first_frame only swaps the face on the first frame... I don't know if you're using these workflows, but you also need to set the switch to false in first_frame_mode... anyway, for now, I'm still in the testing phase, and it's not very convincing yet. I see the potential, but I haven't quite got the workflow working properly yet.

    1015Mar 18, 2026

    @lades666528 I am pretty sure the problem is that it didn't acutally swap the head for the video. It just stopped after replacing the first frame head. When I tried to only run the LTX I just get errors after errors. Fixed one can gen a node or 2 more and another error. Currently getting Tensor mismatch and idk where that comes from.

    1015Mar 16, 2026
    CivitAI

    I have a problem with the customksampler in the LTX group.
    SamplerCustomAdvanced
    RuntimeError: Tensors must have same number of dimensions: got 4 and 3
    Is this because of the random noise ?

    NRDX
    Author
    Mar 17, 2026

    Probably not. This looks more like a dimension or channel mismatch. For example, imagine you have a normal image and you want to remove the background. By default, the image usually has 3 channels, RGB. When you remove the background, an alpha channel is often added, so it becomes 4 channels, RGBA. If a node is designed to work only with 3-channel images and you pass it a 4-channel image instead, this kind of error can happen. This is just an example, but the issue could be something along those lines.

    1015Mar 17, 2026

    @NRDX So i happens somewhere at the masking process of the ref image ?

    1015Mar 17, 2026

    @NRDX I just paste the V2 workflow but i still get the mismatch error.

    happylittleteapotMar 18, 2026

    @1015 you could have a node conflict error? Like just make sure you're using the proper nodes throughout the workflow.

    1015Mar 19, 2026

    @happylittleteapot okay so i made a fresh comfy install. Turns out most of my problems were caused by the gemma model ? I change from dev fp4 to dev 6km gguf and downloaded the gguf gemma model and now it works...the quality is just really bad. But at least if executes completely

    1015Mar 19, 2026

    but v2 still gives me the purple square

    NRDX
    Author
    Mar 19, 2026

    @1015 One question: are you using a highly quantized model? Like a GGUF Q4 as a base for the LTX-2? Or something different? Because this tends to happen if the LoRa has reduced strength. If you don't reduce the LoRa strength below 1.0 and use a version with at least an FP8, you shouldn't have a problem.

    NRDX
    Author
    Mar 19, 2026

    @1015 Ah, now I see, that's probably your problem. You're using highly quantized versions, and that causes the model to lose its potential. I train the original model on the BF16 model, so if you take a model trained on BF16 and try to apply it to the highly quantized model, in theory the effect will be different.

    1015Mar 19, 2026

    @NRDX Ah yeah, well i only have 16 gb vram. Even fp8 is like 19 gb or something.

    happylittleteapotMar 20, 2026

    @1015 i have 16gb of vram and just run the base ltx 23 gb model fine enough. t2v @ 15 seconds takes 2-3 mins

    1015Mar 20, 2026

    @happylittleteapot How ? I always get "Header too small" error

    happylittleteapotMar 23, 2026

    @1015 I use kijais workflow pretty much default. I do have enough RAM + VRAM to load the entire model, so maybe thats it