Nodes/Ultra LoRA Reference Images/Ultra LoRA Reference Images
ComfyUI Node

Ultra LoRA Reference Images

One photo in, a 24-image training set out

By Yamoon-jjang·Created 14 days ago·Updated 14 days ago· 3
Ultra LoRA Reference Images
  • 얼굴_참조_이미지
  • 밸런스_참조_이미지_상반신이상
    ◄트리거►
    ◄피사체a korean woman►
    ◄생성_모드얼굴전용►
    ◄배치수24►
    ◄조명_옵션안정적분산►
    ◄의상_다양성보통►
    ◄배경_옵션단순►
    ◄표정_변화보통►
    ◄정체성_보존균형►
    ◄seed0►
    ◄steps8►
    ◄cfg1.0►
    ◄sampler_nameeuler►
    ◄schedulersimple►
    ◄denoise1.00►
    ◄출력_비율원본 비율►
    ◄모델_계열Qwen Image Edit 2511►
    ◄2511_확산모델<2511 확산 모델 없음>►
    ◄2511_텍스트인코더<2511 텍스트 인코더 없음>►
    ◄2511_VAE<2511 VAE 없음>►
    ◄2.1_확산모델<2.1 확산 모델 없음>►
    ◄2.1_텍스트인코더<2.1 텍스트 인코더 없음>►
    ◄2.1_VAE<2.1 VAE 없음>►
    ◄2.1_캐시_장치auto►
    ◄2.1_캐시_정밀도default►

    The part of a character LoRA that decides whether it works is the dataset, and the dataset is the part nobody wants to build. Twenty good images of one person, varied angles, light and framing, each with a caption file - that's an afternoon of work, and most people don't have twenty photos of the person they want.

    So the community answer became: manufacture the dataset with an instruction editor. Feed Qwen-Image-Edit one photo and twenty framing prompts, get twenty images of the same face back. That kind of workflow was among the most-upvoted posts of late 2025, and it survived because it works.

    This node is that idea crammed into one box. One photo, pick a number, press Queue, get a folder of PNGs with matching caption .txt files.

    What it actually is

    Mechanically it's not a generator - it's a graph expander. You see one node; the queue sees 24 (or 30, or 40) independent branches, each a full little Qwen edit graph: model loader, text encoder loader, VAE loader, your LoRA stack, CFGNorm on the 2511 path (or QwenImage21Cache on 2.1), an encode step, a KSampler, a VAEDecode, and an internal save node. Every branch gets its own framing, head angle, expression, gaze, lighting and background, planned in Python rather than in forty prompt nodes - which is why 24 face-only images use ten angle slugs in a fixed order rather than lopsided profiles.

    On the 2511 path it feeds two references to the editor: the balance image first (body proportions, framing, pose baseline) and the face image second (identity, skin tone, hair). That split is why balance mode can change outfit and framing while keeping the person.

    The inputs worth setting

    Face Reference Image (얼굴_참조_이미지) - required, one photo. In face-only mode it's the only reference, and it sets the ceiling on everything downstream.

    Generation Mode (생성_모드) - face-only or balance (the widget values are Korean: 얼굴전용 / 밸런스; the pack ships an English locale so you'll see the translations). Face-only gives you face framings only. Balance mixes face, upper-body, thigh-up and full-body, with a new outfit for each body shot.

    Image Count (배치수) - 24, 30 or 40. Balance mode splits them like this:

    | Count | Face | Upper body | Thighs-up | Full body | |---|---|---|---|---| | 24 | 9 | 7 | 5 | 3 | | 30 | 11 | 9 | 6 | 4 | | 40 | 14 | 12 | 8 | 6 |

    Balance Reference Image (밸런스_참조_이미지_상반신이상, optional input) - the second photo, same person, upper body or wider. A second face photo also runs fine per the tooltip; you just get less body-proportion information. Two different people is what quietly ruins the set.

    Then the dials: 표정_변화 (expression range), 의상_다양성 (outfit pool, 4/8/12), 배경_옵션, 조명_옵션, 정체성_보존 (strong keeps the likeness, free lets angles get bolder), and 출력_비율 (keep the reference's ratio, or let framing choose 3:4 for faces and upper body, 2:3 for the rest). 트리거 and 피사체 get prepended to every caption - that text is training data.

    Sampling defaults (steps 8, cfg 1.0, euler/simple) assume a few-step distilled setup: load a 4/8-step accelerate LoRA into the node's LoRA panel, or push steps into the 20s with CFG off 1.0 on stock 2511 weights.

    Model Variant (모델_계열) - Qwen Image Edit 2511 or Qwen Image 2.1. This switches which set of model dropdowns, which encode path, and which remembered LoRA stack you get; the two families never share either. On 2.1 there are also 2.1 Cache Device and 2.1 Cache Dtype widgets for the internal cache node, which only do anything if your ComfyUI build has it.

    Outputs: none. It's a terminal node. The images and captions land in ComfyUI/output/lora_dataset/<timestamp>_<count>_<mode>/.

    Installing it

    Manager → Custom Nodes Manager → search Ultra LoRA Reference Images. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Yamoon-jjang/comfyui-Ultra-LoRA-Reference-Images
    

    Restart afterwards. The README's "no extra pip install" claim holds - requirements.txt is comments only; torch, numpy, Pillow and aiohttp come from ComfyUI.

    You need one model family installed, in ComfyUI's standard folders:

    • 2511: diffusion_models/qwen_image_edit_2511_bf16.safetensors, text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors, vae/qwen_image_vae.safetensors
    • 2.1: qwen_image_2.1_bf16.safetensors, qwen3vl_8b_bf16.safetensors, qwen_image_2.1_vae_bf16.safetensors

    Both want a current ComfyUI: 2511 needs TextEncodeQwenImageEditPlus, FluxKontextMultiReferenceLatentMethod and VAEEncode; 2.1 needs TextEncodeQwenImage21. The example workflow in 예제/ is the fastest sanity check.

    Where it goes wrong

    The dropdowns only know a fixed list of filenames, matched case-insensitively. Rename a file, tuck it in a subfolder, or use a merge with a different name and it won't appear - you'll get a placeholder like <2511 diffusion model missing> and a validation error. GGUF is out; the graph uses UNETLoader, not a GGUF loader.

    Balance mode with no second image fails loudly and on purpose. The code won't substitute the face photo, because a tight face crop in the body slot produces giant heads.

    Check the set before you train on it. Edit models re-emit the whole frame, so hands break and a caption sometimes describes an expression the face isn't making. Twenty-five curated images beat forty sloppy ones - lora-training.md has the captioning rules, character-consistency.md explains why faces drift across a chain of edits.

    CategoryUltra/Batch

    Inputs (27)

    NameTypeDefaultDescription
    얼굴_참조_이미지IMAGE—
    트리거STRING—
    피사체STRINGa korean woman—
    생성_모드COMBO얼굴전용2 options: 얼굴전용, 밸런스
    배치수COMBO243 options: 24, 30, 40
    조명_옵션COMBO안정적분산3 options: 사용안함, 안정적분산, 다양한분산
    의상_다양성COMBO보통3 options: 낮음, 보통, 높음
    배경_옵션COMBO단순3 options: 단순, 실내실외혼합, 다양화
    표정_변화COMBO보통3 options: 낮음, 보통, 높음
    정체성_보존COMBO균형3 options: 강함, 균형, 자유
    seedINT00–18446744073709550000—
    stepsINT81–10000—
    cfgFLOAT1.00–100—
    sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
    schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
    denoiseFLOAT1.000–1—
    출력_비율COMBO원본 비율2 options: 원본 비율, 자동 구도별
    모델_계열COMBOQwen Image Edit 25112 options: Qwen Image Edit 2511, Qwen Image 2.1
    2511_확산모델COMBO<2511 확산 모델 없음>1 options: <2511 확산 모델 없음>
    2511_텍스트인코더COMBO<2511 텍스트 인코더 없음>1 options: <2511 텍스트 인코더 없음>
    2511_VAECOMBO<2511 VAE 없음>1 options: <2511 VAE 없음>
    2.1_확산모델COMBO<2.1 확산 모델 없음>1 options: <2.1 확산 모델 없음>
    2.1_텍스트인코더COMBO<2.1 텍스트 인코더 없음>1 options: <2.1 텍스트 인코더 없음>
    2.1_VAECOMBO<2.1 VAE 없음>1 options: <2.1 VAE 없음>
    2.1_캐시_장치COMBOauto4 options: auto, gpu, cpu, off
    2.1_캐시_정밀도COMBOdefault3 options: default, int8, int4
    밸런스_참조_이미지_상반신이상optIMAGE—

    Outputs (0)

    No outputs