CivArchive
    Preview 120285584
    Preview 120285588
    Preview 120285592
    Preview 120285579
    Preview 120285575
    Preview 120285573
    Preview 120285586
    Preview 120285590
    Preview 120285585
    Preview 120285583
    Preview 120285574
    Preview 120285580
    Preview 120285577
    Preview 120285582
    Preview 120285581
    Preview 120285576
    Preview 120285591
    Preview 120285587
    Preview 120285578
    Preview 120285589

    2603 ZIT — By Stable Yogi

    Fast photoreal Z-Image Turbo with a natural, real-life look — believable skin, faces, and lighting instead of the over-sharp "stock studio" feel. ~8-step renders, SFW → spicy.

    Highlights

    • 📷 Natural, real-photo realism — soft, believable lighting

    • 🧬 Clean skin texture, crisp faces, reliable anatomy (holds up on complex poses)

    • 🎨 Versatile — portraits, full-body, editorial, candid

    • 🧩 Excellent LoRA base

    What's new

    • Retuned for true-to-life realism — dialed back the over-processed studio look

    • Ships in fp8 (Forge + ComfyUI) and Q8_0 / Q4_0 GGUF (ComfyUI)

    Recommended settings

    • Steps 8–9 · CFG 1.0 · Sampler Euler · Scheduler Simple

    • Resolution 896×1152 or ~1024 square

    Which file — Q8_0 GGUF = best quality (ComfyUI) · fp8 = Forge or ComfyUI · Q4_0 = smallest / low-VRAM

    Want the stronger, higher-detail Pro build? → Get the Pro version of my models here

    Description

    null

    FAQ

    Comments (42)

    KaiserWilhelmFeb 7, 2026· 4 reactions
    CivitAI

    Your ZIT model seems to be listed as Illustrious. Maybe you did it cuz you are so used to uploading Illustrious :P?

    AFD_0Feb 8, 2026· 2 reactions

    Was just about to mention that. Only 2602-NSFW-BF16 is tagged as Illu instead of ZiT, the other versions seem fine.

    GenoMachinoFeb 8, 2026· 3 reactions
    CivitAI

    Well done my friend! I'm really liking your ZiTurbo models! (NSFW40BF16) Great colors, contrast, pretty faces! I posted a couple images also. Well worth the 1k Buzz to keep the development going! Thanks!!

    TezozomoctliFeb 10, 2026· 2 reactions
    CivitAI

    Dumb question: Can we successfully train loras using this? Something tells me it won't work because it is fp8. Am I right?

    freestuffpl0x42069Feb 10, 2026· 2 reactions

    Yes, you can. You can start by loading the fp8 version of the model as the “brain” you already have, then change its weights to a regular‑precision (fp16) format so they can be updated safely. Next, you'd attach small LoRA adjustment layers to that fp16 model and train those layers using normal‑precision arithmetic; the rest of the model stays frozen. After the training is finished, you'd merge the LoRA updates back into the fp16 weights, convert everything back to fp8, and use the new fp8 checkpoint for fast, low‑memory inference. This way you can keep the efficiency of the fp8 model while still being able to fine‑tune it with LoRA.

    If it's a task you want to tackle I can tell you how to do it. This is something that I am still learning myself but I don't mind a programming challenge.

    TezozomoctliFeb 11, 2026· 1 reaction

    @freestuffpl0x42069 Damn that's alot of steps lol. But yes, I absolutely would love to see a rough demo by you if you have the time. Or any tutorials you can point to that would be awesome.

    freestuffpl0x42069Feb 15, 2026· 1 reaction

    @Tezozomoctli Hey. Sorry for the delay, I am learning with you. There are a few routes to take. This workflow is one: https://civitai.com/models/808669/flux-dev2pro-fp8-special-use-for-training-flux-lora

    If you want to be handheld through it here is a great tutorial: https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/README_z_image.md

    what it does is it trains it as it is quantized so that you can run it with the quantized version.

    Your second option is to have your training software upcast to fp16 automatically. Most tools like Kohya SS will automatically convert the fp8 model to fp16 in memory during training. You train the LoRA normally at fp16, and the resulting LoRA works on both fp8 and fp16 versions of the base model. This is the easiest route if you have enough VRAM (around 16GB+).

    Another option is to train with native fp8 support. Newer versions of training tools (Kohya SS, SimpleTuner, ai-toolkit) support training directly in fp8. You’d enable fp8 precision in your training config. This uses less VRAM and trains faster while keeping everything in fp8. Quality is nearly identical to fp16 training based on recent research.

    The option for a mixed precision approach keeps the base model frozen at fp8 but train the LoRA adapter layers at fp16/bf16. Some frameworks like Unsloth handle this automatically, giving you the memory savings of fp8 with the training stability of fp16.

    The good news is that fp16 LoRAs generally work fine when applied to fp8 models during inference and the model just upcasts temporarily. So even if you train at fp16, it’ll still run on the fp8 version (with a slight VRAM increase during use ofc).

    Personally, I will probably train at FP16 with the fp8 model upcasted during training since it gives the best accuracy-to-practicality ratio. The slight VRAM increase during training is worth it for the quality gain. I am running on a RTX 5070 Ti so it’s at the sweet spot for training LoRAs, if you’re running on <12GB of VRAM I would say training at fp8 is your best option.

    I am going to be researching in the meantime and will touch base if I create anything. I would like to do the same I’ve just been slammed with learning how to merge checkpoints and bake in LoRAs. My goal is to make more checkpoints that are optimal for new users that run locally. I started with ComfyUI and ended with Forge Neo so I really want to bridge the gap for ease of use. I see a lot of people who should use Forge Neo on Pikokio but begin with ComfyUI as I initially did. Even with programming experience it has been a learning curve for me so I can assure you that you’re not dumb for asking questions.

    freestuffpl0x42069Feb 19, 2026· 1 reaction

    @Tezozomoctli 

    When training with AdamW (doesn't apply to prodigy) you can pass --use_8bit_adam to reduce the memory requirements of training. Make sure to install bitsandbytes if you want to do so.

    AdamW has better quality with precision imo but it also takes longer, if you are wanting time efficiency, I suggest using Prodigy

    To perform DreamBooth with LoRA on Z-Image, run:

    export MODEL_NAME="Tongyi-MAI/Z-Image" export INSTANCE_DIR="dog" export OUTPUT_DIR="trained-z-image-lora" accelerate launch train_dreambooth_lora_z_image.py \ --pretrained_model_name_or_path=$MODEL_NAME \ --instance_data_dir=$INSTANCE_DIR \ --output_dir=$OUTPUT_DIR \ --mixed_precision="bf16" \ --gradient_checkpointing \ --cache_latents \ --instance_prompt="a photo of sks dog" \ --resolution=1024 \ --train_batch_size=1 \ --guidance_scale=5.0 \ --use_8bit_adam \ --gradient_accumulation_steps=4 \ --optimizer="adamW" \ --learning_rate=1e-4 \ --report_to="wandb" \ --lr_scheduler="constant" \ --lr_warmup_steps=100 \ --max_train_steps=500 \ --validation_prompt="A photo of sks dog in a bucket" \ --validation_epochs=25 \ --seed="0" \ --push_to_hub

    To better track our training experiments, we're using the following flags in the command above:

    report_to="wandb" will ensure the training runs are tracked on Weights and Biases. To use it, be sure to install wandb with pip install wandb. Don't forget to call wandb login <your_api_key> before training if you haven't done it before.

    validation_prompt and validation_epochs to allow the script to do a few validation inference runs. This allows us to qualitatively check if the training is progressing as expected.

    Note

    If you want to train using long prompts, you can use --max_sequence_length to set the token limit. The default is 512. Note that this will use more resources and may slow down the training in some cases.

    Training with FP8 Quantization

    For reduced memory usage with FP8 training:

    export MODEL_NAME="Tongyi-MAI/Z-Image" export INSTANCE_DIR="dog" export OUTPUT_DIR="trained-z-image-lora-fp8" accelerate launch train_dreambooth_lora_z_image.py \ --pretrained_model_name_or_path=$MODEL_NAME \ --instance_data_dir=$INSTANCE_DIR \ --output_dir=$OUTPUT_DIR \ --do_fp8_training \ --gradient_checkpointing \ --cache_latents \ --instance_prompt="a photo of sks dog" \ --resolution=1024 \ --train_batch_size=1 \ --guidance_scale=5.0 \ --use_8bit_adam \ --gradient_accumulation_steps=4 \ --optimizer="adamW" \ --learning_rate=1e-4 \ --report_to="wandb" \ --lr_scheduler="constant" \ --lr_warmup_steps=100 \ --max_train_steps=500 \ --validation_prompt="A photo of sks dog in a bucket" \ --validation_epochs=25 \ --seed="0" \ --push_to_hub

    FSDP on the transformer

    By setting the accelerate configuration with FSDP, the transformer block will be wrapped automatically. E.g. set the configuration to:

    distributed_type: FSDP fsdp_config: fsdp_version: 2 fsdp_offload_params: false fsdp_sharding_strategy: HYBRID_SHARD fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP fsdp_transformer_layer_cls_to_wrap: ZImageTransformerBlock fsdp_forward_prefetch: true fsdp_sync_module_states: false fsdp_state_dict_type: FULL_STATE_DICT fsdp_use_orig_params: false fsdp_activation_checkpointing: true fsdp_reshard_after_forward: true fsdp_cpu_ram_efficient_loading: false

    Prodigy Optimizer

    Prodigy is an adaptive optimizer that dynamically adjusts the learning rate learned parameters based on past gradients, allowing for more efficient convergence. By using prodigy we can "eliminate" the need for manual learning rate tuning. Read more here.

    To use prodigy, first make sure to install the prodigyopt library: pip install prodigyopt, and then specify:

    --optimizer="prodigy"

    Tip

    When using prodigy it's generally good practice to set --learning_rate=1.0

    export MODEL_NAME="Tongyi-MAI/Z-Image" export INSTANCE_DIR="dog" export OUTPUT_DIR="trained-z-image-lora-prodigy" accelerate launch train_dreambooth_lora_z_image.py \ --pretrained_model_name_or_path=$MODEL_NAME \ --instance_data_dir=$INSTANCE_DIR \ --output_dir=$OUTPUT_DIR \ --mixed_precision="bf16" \ --gradient_checkpointing \ --cache_latents \ --instance_prompt="a photo of sks dog" \ --resolution=1024 \ --train_batch_size=1 \ --guidance_scale=5.0 \ --gradient_accumulation_steps=4 \ --optimizer="prodigy" \ --learning_rate=1.0 \ --report_to="wandb" \ --lr_scheduler="constant_with_warmup" \ --lr_warmup_steps=100 \ --max_train_steps=500 \ --validation_prompt="A photo of sks dog in a bucket" \ --validation_epochs=25 \ --seed="0" \ --push_to_hub

    LoRA Rank and Alpha

    Two key LoRA hyperparameters are LoRA rank and LoRA alpha:

    --rank: Defines the dimension of the trainable LoRA matrices. A higher rank means more expressiveness and capacity to learn (and more parameters).

    --lora_alpha: A scaling factor for the LoRA's output. The LoRA update is scaled by lora_alpha / lora_rank.

    lora_alpha vs. rank:

    This ratio dictates the LoRA's effective strength:

    lora_alpha == rank: Scaling factor is 1. The LoRA is applied with its learned strength. (e.g., alpha=16, rank=16)

    lora_alpha < rank: Scaling factor < 1. Reduces the LoRA's impact. Useful for subtle changes or to prevent overpowering the base model. (e.g., alpha=8, rank=16)

    lora_alpha > rank: Scaling factor > 1. Amplifies the LoRA's impact. Allows a lower rank LoRA to have a stronger effect. (e.g., alpha=32, rank=16)

    Tip

    A common starting point is to set lora_alpha equal to rank. Some also set lora_alpha to be twice the rank (e.g., lora_alpha=32 for lora_rank=16) to give the LoRA updates more influence without increasing parameter count. If you find your LoRA is "overcooking" or learning too aggressively, consider setting lora_alpha to half of rank (e.g., lora_alpha=8 for rank=16). Experimentation is often key to finding the optimal balance for your use case.

    Target Modules

    When LoRA was first adapted from language models to diffusion models, it was applied to the cross-attention layers in the UNet that relate the image representations with the prompts that describe them. More recently, SOTA text-to-image diffusion models replaced the UNet with a diffusion Transformer (DiT). With this change, we may also want to explore applying LoRA training onto different types of layers and blocks.

    To allow more flexibility and control over the targeted modules we added --lora_layers, in which you can specify in a comma separated string the exact modules for LoRA training. Here are some examples of target modules you can provide:

    For attention only layers: --lora_layers="to_k,to_q,to_v,to_out.0"

    For attention and feed-forward layers: --lora_layers="to_k,to_q,to_v,to_out.0,ff.net.0.proj,ff.net.2"

    Note

    --lora_layers can also be used to specify which blocks to apply LoRA training to. To do so, simply add a block prefix to each layer in the comma separated string.

    Note

    Keep in mind that while training more layers can improve quality and expressiveness, it also increases the size of the output LoRA weights.

    Aspect Ratio Bucketing

    We've added aspect ratio bucketing support which allows training on images with different aspect ratios without cropping them to a single square resolution. This technique helps preserve the original composition of training images and can improve training efficiency.

    To enable aspect ratio bucketing, pass --aspect_ratio_buckets argument with a semicolon-separated list of height,width pairs, such as:

    --aspect_ratio_buckets="672,1568;688,1504;720,1456;752,1392;800,1328;832,1248;880,1184;944,1104;1024,1024;1104,944;1184,880;1248,832;1328,800;1392,752;1456,720;1504,688;1568,672"

    Bilingual Prompts

    Z-Image has strong support for both Chinese and English prompts. When training with Chinese prompts, ensure your dataset captions are properly encoded in UTF-8:

    --instance_prompt="一只sks狗的照片" --validation_prompt="一只sks狗在桶里的照片"

    Tip

    Z-Image excels at text rendering in generated images, especially for Chinese characters. If your use case involves generating images with text, consider including text-related examples in your training data.

    Inference

    Once you have trained a LoRA, you can load it for inference:

    import torch from diffusers import ZImagePipeline pipe = ZImagePipeline.from_pretrained("Tongyi-MAI/Z-Image", torch_dtype=torch.bfloat16) pipe.to("cuda") # Load your trained LoRA pipe.load_lora_weights("path/to/your/trained-z-image-lora") # Generate an image image = pipe( prompt="A photo of sks dog in a bucket", height=1024, width=1024, num_inference_steps=50, guidance_scale=5.0, generator=torch.Generator("cuda").manual_seed(42), ).images[0] image.save("output.png")

    Since Z-Image finetuning is still in an experimental phase, we encourage you to explore different settings and share your insights! 🤗

    Source: https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/README_z_image.md

    krmdFeb 10, 2026· 1 reaction
    CivitAI

    Does this Checkpoint work with the character LoRA?

    ConejoquehaceFeb 10, 2026

    I have the same question.

    desplumao22Feb 10, 2026· 1 reaction

    not for me, it breaks completely with a character lora

    curiousasian86164Feb 10, 2026· 1 reaction

    My character lora, trained on ZI base, works great with this checkpoint

    ConejoquehaceFeb 14, 2026

    @curiousasian86164 How do you adjust the LORA strenght in this workflow?

    Stable_Yogi
    Author
    Feb 15, 2026

    @Conejoquehace adjust the math expression.
    or delete the math expression box to manage each lora individually.

    ConejoquehaceFeb 16, 2026

    @Stable_Yogi Thanks, Someone suggested something similar, but the tip of manage each individually sounds cool!, thanks man, Im starting to love this checkpoint, do the ones in your PATRON are "better" in regards to functionality?

    Stable_Yogi
    Author
    Feb 16, 2026· 1 reaction

    @Conejoquehace Currently Same, but different Quants.

    curiousasian86164Feb 20, 2026

    @Conejoquehace I use a basic workflow, and leave the lora strength at 1. I trained my character lora with AI Toolkit on Runpod with the following setting:

    linear_alpha: 64
    timestep_type: "sigmoid"
    lr: 0.0003
    differential_guidance_scale: 4


    The generated images were near perfect likeness to the subject

    babiswasterFeb 23, 2026

    @curiousasian86164 will it work if my lora is trained on de distilled model?

    babiswasterFeb 24, 2026

    @desplumao22 same here.., did you find any solution?

    VulkanmasterFeb 24, 2026· 3 reactions

    absolutely not, destroys the character

    persindon644May 1, 2026· 1 reaction

    Try the Z-Image LoRA Merger node from the ComfyUI-ZImage-LoRA-Merger package. It sometimes works wonders when using normalization and a general target_strength of 0.8.

    saintxxxFeb 20, 2026· 1 reaction
    CivitAI

    Do i put it in the checkpoint folder or stable diffusion folder

    BonticariusFeb 20, 2026

    Unet Folder

    freestuffpl0x42069Feb 24, 2026

    Checkpoint. Just use Neo forge on pikokio

    Melodic_Possible_582589Feb 20, 2026· 1 reaction
    CivitAI

    Looking at the photos from 2602 BF16:

    it looks promising with both amateur and cinematic styles in terms of realism that doesn't scream "professional studio photos." The realism looks like one that has been taken with a high quality camera that wasn't for a photoshoot, but rather for a place in our favorite "hub." *wink wink

    Melodic_Possible_582589Feb 26, 2026· 23 reactions
    CivitAI

    2-25-2026 REVIEW (Version 2602 BF16)

    Disclaimer: I am making an honest review based on my personal opinions and what I am think the checkpoint is trying to achieve. I'm not here to bash anyone's work. I am hoping the reviews will help others especially the authors to help them improve their work. I am using Forge Neo Classic with no loras for 2602 BF16.

    -res multi with beta at 9 steps

    -960 x 1280

    Output Quality for Realism: 4.5/5

    The output is like that from a professional DSLR shot for your favorite xxx website. Without prompting it in, it doesn't produce that studio/touch up feel we've been seeing with the original z-image turbo. A lot of the generations were like a photo snapshot that one couldn't tell if it was ai or not. Sometimes, images come out oversaturated. Sometimes there are extra limbs, heads, tails, artifacts, etc.

    Prompt Adherence: 3.5/5

    Prompt adherence in my case was a mixed bag. It followed prompt in some cases and not in others. It also gave huge variations in the output which is good for extra generations, but when one wants to dial in on a concept it gets frustrating that the prompt disobeys. I don't know if prompt adherence is due to certain lora mixing during training or not. Some checkpoints do better than others.

    Speed: 4.5/5

    I have a 3080 and usually generate one batch of three at 960x1280. Compared to other checkpoints its about the same, but faster than a few others I have tried. I don't remember the time output. Can add it in next time I remember.

    Advertised vs User Results: 4/5

    I was able to reproduce the quality that the author showcased without doing extra/hidden work. In some showcases from other authors, they run it through extra nodes and steps such as seedvr2 without disclosing it. This will obviously produce different results than advertised. The reason for the 1 point taken off is that the some of the prompts provided in the showcase does not match the photo output. Copy/Pasting the showcased prompts can sometimes produce weird things to happen. Like the photo the blondie was standing by the stairs. A copy/paste of the prompt made her have a long lion's tail and ears. I immediately deleted those photos.

    Overall: 4.1/5

    With more tweaking/mixing the quality will eventually become the one of the best. I hope the anatomy/artifact issues will be resolved within the next few versions. I hope prompt adherence can improve or perhaps even have two versions down the road. One for fine tuning a concept and one for variations.

    Congrats to the author's achievements. I'm excited to see what's next.

    Stable_Yogi
    Author
    Feb 26, 2026· 2 reactions

    Thanks for the detailed feedback. Much appreciated.
    ❤️👍

    miracc0014976Feb 27, 2026· 4 reactions
    CivitAI

    am i the only one who's having trouble downloading the latest model? like it's super slow and it cancelled downloading.

    oddly, recently it is requiring double the space for the initial download. I'm needing around 22gb-25gb to download.

    kahldris1287Feb 28, 2026· 7 reactions
    CivitAI

    2602 BF16 is amazing, my favourite out of Z-Image so far, keep up the great work!

    Breezy00Mar 6, 2026· 1 reaction
    CivitAI

    Why is there a trigger word for your most recent model (2602 BF16)? I understand the purpose of using for Loras, but I've never seen that before on checkpoints. Does it trigger NSFW easier or something? Btw, thank you for all your work. You've consistently uploaded awesome models, perhaps more than anyone else has on this site

    Stable_Yogi
    Author
    Mar 6, 2026· 1 reaction

    trigger word for model 2602 BF16, enables the Loras merged in the Checkpoint.

    persindon644May 1, 2026

    @Stable_Yogi Hello. Could you tell me if the trigger works on all models, including the 2602 Q8? Also, is the list of LORs included in the Q8 and BF16 models extensive?

    Stable_Yogi
    Author
    May 2, 2026· 1 reaction

    @persindon644 Only 2602, and there are some Lora's that will be triggered but results will be subtle.

    PracticalLetter44912Mar 25, 2026· 1 reaction
    CivitAI

    Question: I cannot figure out how to generate believable futanari, any idea?

    Stable_Yogi
    Author
    Mar 25, 2026· 2 reactions

    Use Lora for now. Next update i will add it

    @Stable_Yogi Thank you

    And one more question - I cannot generate st...on as well, is it possible to add it in the next update?

    flacidJun 6, 2026

    Yes, Don't! :P

    SkyreMar 27, 2026· 1 reaction
    CivitAI

    doesn't work well with zturbo character lora :/

    11635690Apr 6, 2026· 8 reactions
    CivitAI

    Very poor compatibility with LORAs.

    drgonozo2022Apr 6, 2026· 4 reactions
    CivitAI

    I just wanted to say that I am loving this model. I've found all your work very useful, but this is the best so far.