SDXL IP-Adapter Plus Face (safetensors)
RealVisXL V4.0 Lightning with the SDXL IP-Adapter plus-face adapter and its image encoder, so TokForge can put one or two people from reference photos into any scene you describe.
Published by TokForge for on-device inference.
| What it is | Image generator (reference photo) |
| Format | safetensors for stable-diffusion.cpp: f16 SDXL base in one file, plus IP-Adapter and image encoder |
| Runs on | Android phones with a Snapdragon chip (stable-diffusion.cpp, CPU or Adreno OpenCL GPU) |
| Phone class | 16 GB RAM or more (TokForge catalog) |
| Download | 10.3 GB (5 files) |
| Base model | SG161222/RealVisXL_V4.0_Lightning, h94/IP-Adapter |
| License | Several: CreativeML OpenRAIL++-M plus SG_161222's Civitai terms (base), Apache-2.0 (adapter), MIT (image encoder) |
TokForge
- Website: https://tokforge.ai
- Discord: https://discord.gg/Acv3CBtfVm
- Google Play: https://play.google.com/store/apps/details?id=dev.tokforge
- iOS TestFlight: https://testflight.apple.com/join/jnufjzRr
Runs on-device in the TokForge app.
Use it in TokForge
- Install TokForge from Google Play.
- On Android, open Models > Recommended > Image and download SDXL IP-Adapter (Reference Identity). TokForge lists it on phones with 16 GB RAM or more.
- In a chat, attach a clear face photo of one person, or one photo each of two people, then describe the scene (for example "me as a superhero, unmasked, face visible"). The adapter keeps each face; the prompt drives everything else.
- The model runs on the phone; once it is downloaded, making pictures needs no connection.
For 8 GB phones, use the lighter darkmaniac7/TokForge-SD15-IPAdapter instead.
Collections: TokForge Image Models (Android).
Files
| File | Size | What it is |
|---|---|---|
ip-adapter-plus-face_sdxl_vit-h.safetensors |
848 MB | IP-Adapter plus-face for SDXL, ViT-H build (h94/IP-Adapter, Apache-2.0) |
ip_adapter_clip_vision_vith.safetensors |
2.53 GB | OpenCLIP ViT-H-14 image encoder for the reference photos (MIT) |
manifest.json |
1.60 KB | Render defaults, licences, sizes and md5 of the three model files |
realvisxl-v40-lightning-fp16.safetensors |
6.94 GB | RealVisXL V4.0 Lightning base: dual CLIP text encoders, UNet and VAE in one f16 sd.cpp safetensors |
MD5SUMS |
227 B | md5 of the three model files |
manifest.json and MD5SUMS carry the integrity hashes and render defaults.
About the model
The highest-fidelity reference-identity image route for the TokForge Android app, and the clean multi-subject path. The plus-face IP-Adapter transfers the face only while the prompt drives the whole scene. SDXL's stronger plus-face transfer (vs SD1.5) gives sharper single-subject identity, and makes the regional-mask two-subject path produce two distinct recognizable faces.
This bundle runs on the on-device stable-diffusion.cpp
engine (TokForge's IP-Adapter port) on CPU and Adreno OpenCL. Full SDXL is heavier
than the SD1.5 IP-Adapter tier, so TokForge offers it on 16 GB-class phones with a Snapdragon chip.
| File | License | Contents |
|---|---|---|
realvisxl-v40-lightning-fp16.safetensors |
OpenRAIL++ | RealVisXL V4.0 Lightning (SDXL photoreal finetune), dual CLIP text encoders + UNet + VAE in one self-contained f16 sd.cpp safetensors |
ip-adapter-plus-face_sdxl_vit-h.safetensors |
Apache-2.0 | IP-Adapter plus-face SDXL (h94/IP-Adapter), 16-token image_proj Resampler + 70 decoupled cross-attn layers (cross_attention_dim 2048) |
ip_adapter_clip_vision_vith.safetensors |
MIT | OpenCLIP ViT-H-14 image encoder (1280 hidden, 32 layers). The plus-face path needs ViT-H, not bigG: ViT-H is the same encoder the SD1.5 plus-face bundle ships |
Why this base, and why f16
The base is RealVisXL V4.0 Lightning, a strong photoreal SDXL finetune distilled
for a few-step (6-step) Lightning floor, from the same checkpoint as the TokForge RealVisXL Lightning GGUF tier.
It is kept at f16 (full precision) so the IP-Adapter's decoupled cross-attention and the face Resampler keep
subject quality high; a q4_0 base weakens the transferred identity (the same choice as the SD1.5 tier).
Why plus-face and ViT-H
The plus-face variant (ip-adapter-plus-face_sdxl_vit-h) runs a 16-token Resampler over the ViT-H
penultimate hidden state, so it extracts the face only: identity is preserved while the prompt controls the
scene. The standard ip-adapter_sdxl projects the whole pooled CLIP-bigG embedding and carries the reference's
whole scene with it. Because this adapter is the _vit-h build (image_proj.latents shape [1, 16, 1280]), it
pairs with the ViT-H encoder (1280 hidden), not the bigG encoder (1664 hidden) the base SDXL adapter uses. The
TokForge sd.cpp IP-Adapter loader auto-detects plus-face by image_proj.latents and the SDXL
adapter config (2048-dim, 70 layers) by the SDXL base.
Render settings
| Setting | Value |
|---|---|
| sampler | euler |
| scheduler | discrete |
| steps | 6 (Lightning few-step floor) |
| cfg-scale | 2.0 (Lightning low-CFG) |
| ip-adapter-scale | 0.75 (keeps the scene with strong recognizable identity; lower gives more scene freedom, higher stays closer to the reference) |
| resolution | 1024x1024 (SDXL native) |
Plus-face transfers the face only, so the rendered face must stay visible and unobstructed for a recognizable identity. Keep the face in frame ("unmasked, face visible, detailed face, looking at viewer"); the app appends this cue automatically.
TokForge runs it through its IP-Adapter port of stable-diffusion.cpp, equivalent to:
sd -M img_gen \
-m realvisxl-v40-lightning-fp16.safetensors \
-p "as a superhero, unmasked, face visible, detailed face" \
-n "<strong negative>" \
--clip_vision ip_adapter_clip_vision_vith.safetensors \
--ip-adapter ip-adapter-plus-face_sdxl_vit-h.safetensors \
--ip-adapter-image <your_face.jpg> \
--ip-adapter-scale 0.75 \
--cfg-scale 2.0 --sampling-method euler --scheduler discrete \
--steps 6 -H 1024 -W 1024
How it was made
- Base:
realvisxl-v40-lightning-fp16.safetensors, a self-contained sd.cpp SDXL safetensors built fromSG161222/RealVisXL_V4.0_Lightning. - Adapter + image encoder copied verbatim from
h94/IP-Adapter(sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors,models/image_encoder/model.safetensors); both files are byte-identical to the upstream ones.
Limitations
- The
--ip-adapteroptions belong to TokForge's IP-Adapter port; stock stable-diffusion.cpp builds may not have them. - Full SDXL at 1024x1024 needs a 16 GB-class phone.
License
This is an aggregate of three independently-licensed components, and each retains its own license:
- RealVisXL V4.0 Lightning base (
realvisxl-v40-lightning-fp16.safetensors): OpenRAIL++ (SG161222/RealVisXL_V4.0_Lightning, the SDXLopenrail++license). Use must comply with the OpenRAIL++ use-based restrictions. - IP-Adapter plus-face (SDXL, ViT-H) (
ip-adapter-plus-face_sdxl_vit-h.safetensors): Apache-2.0 (h94/IP-Adapter). - OpenCLIP ViT-H-14 image encoder (
ip_adapter_clip_vision_vith.safetensors): MIT (OpenCLIP / LAION ViT-H-14).
The non-commercial IP-Adapter-FaceID / InsightFace path is NOT used here, only the Apache-2.0 base + plus-face adapters from
h94/IP-Adapter.
RealVisXL is also under SG_161222's Civitai terms: credit required, no selling the model or merges of it.
Credits
- RealVisXL V4.0 Lightning by SG_161222 (Civitai, Hugging Face). Used under the CreativeML OpenRAIL++-M license and the creator's Civitai terms. SG_161222's Civitai terms: credit required, no selling the model or merges of it.
- Stable Diffusion XL 1.0 by Stability AI (Hugging Face). Used under the CreativeML OpenRAIL++-M license.
- IP-Adapter by Tencent AI Lab (h94) (Hugging Face). Used under the Apache-2.0 license.
- OpenCLIP ViT-H-14 image encoder by LAION (Hugging Face). Used under the MIT license.
- Runs on-device with stable-diffusion.cpp by leejet (MIT).
Model tree for darkmaniac7/TokForge-SDXL-IPAdapter
Base model
SG161222/RealVisXL_V4.0_Lightning