uploadandnap.com

Consistent AI influencer faces with Z-Image: the LoRA workflow.

There's no magic secret to a face that stays the same across every shot. It comes down to clean training data and a few settings that matter. Here's the full pipeline, start to finish.

This is a high-level walkthrough for people who already have a LoRA training setup. If you've never installed AI Toolkit or configured your machine for training, start with a setup guide first — this post assumes you know your way around and just want the recipe for consistent faces in Z-Image.

what you'll need
→ ComfyUI with Z-Image loaded
→ Ostris AI Toolkit (it has native Z-Image support)
→ an NVIDIA GPU — low-VRAM mode makes this practical on smaller cards
→ 20–40 images of one fictional character

01Build a dataset of someone who doesn't exist

Every image of the example character, "Jenny Jones," was generated in Midjourney. Using a fictional person sidesteps the likeness and consent problems that come with training on real people, and it means you can use the result commercially without worrying about who's in it.

You don't need a fresh dataset for every model, either. This one was originally built for Wan 2.2 and reused here unchanged. A good, varied set of one character — different outfits, lighting and angles, but the same face — is the asset that keeps paying off.

A grid of training images of the same fictional woman in different outfits and settings
the training set: one fictional face, lots of variety in everything else.

02Caption every image

Every training image needs a matching .txt file describing it. You can write these by hand, but for a full dataset that's hours of work. Instead, run the folder through a LoRA dataset prep tool: it sends each image to Google Gemini, writes a caption tuned to the model you're training, and hands you back a zip of image + text pairs in about 5–10 minutes.

At the time of recording there wasn't a dedicated Z-Image captioning preset, so the Wan 2.2 preset was used — and it worked fine. Flux-style captions are reported to work too.

The dataset helper is one of the in-house tools in the smallzero.io toolkit, alongside the Prompt Alchemy and upscaler tools covered below.

03Train the LoRA in AI Toolkit

Drop the captioned dataset into Ostris AI Toolkit and set up a new job. The settings that matter:

Ostris AI Toolkit training job configured for Z-Image
the AI Toolkit job page with Z-Image selected.
SETTINGVALUEWHY
ModelZ-ImageNative support was added to AI Toolkit.
Low VRAMOnUsed even on a 5090. Turn it on.
Trigger wordMatches captionsMust be the same keyword your captions use.
Linear rank8464 is the common default; going higher noticeably improved face consistency.
Resolution512Fast to train and enough to lock the identity.
Sample promptsA few scenesLets you watch the face settle in as it trains.

The rank bump is the one change worth calling out. With 84 instead of 64, the face held together noticeably better across different scenes.

04Generate in ComfyUI

Load the finished LoRA into your Z-Image workflow and render. Z-Image is quick, so you can iterate fast. Here's Jenny in a Pilates studio holding a green drink — the same face across separate generations.

ComfyUI workflow with a generated image of the character in a Pilates studio
z-image + the trained lora in comfyui.

Be honest with yourself about the results: it's consistent most of the time, not 100%. Generate a few, keep the best, and keep refining.

05Steal poses without ControlNet

For prompts, a lazy trick: upload any reference photo to Prompt Alchemy and it reads the pose and mood, then writes a prompt for your model. It's a way to borrow a shot's vibe without setting up ControlNet or training a pose LoRA.

Prompt Alchemy turning a reference image into a text prompt
reference image in, ready-to-use prompt out.

06Add skin realism and upscale

Raw generations often come out a little too smooth. The last pass runs the image through the smallzero.io upscaler and skin-realism tool — built as a cheaper alternative to paid enhancers. It uses your own Gemini API key, and requests are sent from your browser rather than a server, so your images stay private.

The smallzero.io upscaler comparing the original and enhanced image
before/after slider: subtle skin texture, tan lines and tone come through.

It's surprisingly good at rescuing bad inputs too. Fed a low-resolution, plastic-looking Stable Diffusion face pulled from Google, it rebuilt a believable portrait:

Low-resolution AI face restored into a realistic portrait
a low-res sd face, restored. lower the effect strength if it adds too much detail.

With very little information to work from, it can over-add detail — dial the effect strength down for tiny source images.

The short version

  1. Generate a varied dataset of one fictional character.
  2. Auto-caption it for the model you're training.
  3. Train in AI Toolkit: Z-Image, low VRAM, rank 84, 512px, trigger word matching your captions.
  4. Generate in ComfyUI and keep the best takes.
  5. Borrow poses from reference photos with Prompt Alchemy.
  6. Finish with a skin-realism and upscale pass.

Z-Image is still young and the LoRA scene around it is thin. Go train some, and share what you make.

$ ls ../related

SeedVR2: Upscale AI Video From 720p to 1440p→ ComfyUI MCP: Connect Claude Code or Codex to ComfyUI→ LTX 2.3 Low VRAM Workflow: AI Video on 8GB GPUs→
next steps

$want the datasets, workflows and LoRAs behind posts like this?

they're shared inside the skool community. come join us.