Sign In

HiDream O1 Detailer: Skin Texture & Detail Without Losing the Soul

0

HiDream O1 Detailer: Skin Texture & Detail Without Losing the Soul

HiDream O1 is awesome! I love the outputs it produces but they are smooth and lack details in some areas. So decided to create yet another detailer for HiDream O1. It is sufficient for my workflows so thought I would share it. Also this is my first real workflow mashup using what others have so skillfully created and frankly a lot better than what I could even hope to achieve. The attributions for their work and more workflow details are in the github repo which provides better markdown for documentation.

What's happening and why

If you've tried running HiDream O1 output through Z-Image Turbo for detail enhancement, you probably noticed problems with changes to the character's facial structure or the expressions they carried as the skin begins to looks better. That pensive downward gaze turns into a neutral stare or that subtle brow tension just disappears. This workflow provides a way to address that.

HiDream-O1 is a Pixel level UIT (Universal Image Transformer), a completely different architecture from diffusion models. When you hand its output to Z-Image Turbo for refinement, the image gets re-encoded into a diffusion latent space that interprets things differently. Micro-expressions live in tiny tonal relationships where the dark iris sits within the eye, how a shadow falls under the brow, and those get overwritten during refinement. Edge-based ControlNets like Canny can lock the facial structure, but the gaze direction isn't captured in the edges. It's a tonal relationship and Canny doesn't know about it.

The two-pass workflow

comfyui-hidream-o1-detailer-nodegraph.png

The workflow uses two ControlNet passes in a sequence that solves different parts of the problem.

Pass 1: Canny Lock: This is really too basic at the moment. Extracts edges from the original and uses Z-Image ControlNet Union to freeze the geometry. Facial contours, hand positions and silhouette get frozen (It is bypassed by default in the workflow since Tile itself handles most of the portrait work)

Pass 2: Tile Anchor: Uses the original HiDream output (not Pass 1's output) as a Tile ControlNet reference. This freezes the tonal relationships that encode emotion, gaze direction, brow shadow, lighting mood while letting the skin texture LoRAs and detail prompt do the work.

Pass 2's control_image bypasses Pass 1 entirely and references the original. So it's always pulling tonal qualities back toward the source truth and not toward Pass 1's interpretation.

Before: HiDream O1 BF16 output

hidream-o1-output.png

After:

hidream-o1-detailer-prompt-conditioned.png

Three modes via Ctrl+B

  • Tile Only (default) - bypass Pass 1. Probably good for portraits and close-ups.

  • Canny Only - bypass Pass 2. Maybe good for architecture, products and structural things.

  • Full Blend - both active. Two independent control_context_scale sliders to play with

Quick start settings that work mostly

  • Steps: 8 on both passes (matched to the 8-step distilled ControlNet models)

  • control_context_scale: 0.50 to 0.55 on the Tile pass. Higher causes horrible artifacts on beards and hair. Lower lets gaze drift back.

  • LoRA strengths: 0.1 for both Z-Detail-Slider and ZIT-skin texture. The ControlNet pipeline does the heavy lifting.

  • Upscale mode: 2x refine (ZiTUpscaleRefine halves internally, so 2x restores to your original input resolution)

  • Aura: 0. It behaves like an on/off switch, not a slider. Even 0.01 seems to change the sampling trajectory significantly.

What you need

Models: HiDream-O1-Image-bf16, Z-Image Turbo, qwen_3_4b, flux_vae, 4x-UltraSharp, Z-Image-Turbo-Fun-ControlNet-Union-2.1-2602-8steps, Z-Image-Turbo-Fun-ControlNet-Tile-2.1-2601-8steps, Z-Detail-Slider, ZIT-skin texture Photorealistic v4.5

Custom nodes: ComfyUI-uit-hidream-o1, comfyui-ZiT-Upscale, ComfyUI ControlNet Aux, rgthree-comfy

I put in more details in the repo.

Get the workflow Here

GitHub: https://github.com/biosynthart/comfyui-HiDream-O1-Detailer.git

The repo includes the workflow JSON, a detailed README and some architecture notes (also download links for everything). I will likely add more stuff there in the future.

Credits

Built on the work of: HiDream-ai (HiDream-O1), easygoing0114 (UIT ComfyUI integration), Alibaba PAI (Z-Image Turbo + ControlNets), thevesperhouse (original SDXL ZiT refine workflow and comfyui-ZiT-Upscale), Fannovel16 (ControlNet Aux), and rgthree (Power LoRA Loader / Image Comparer).

Special thanks to thevesperhouse's SDXL HQ ZiT Refine workflow. This project started as an adaptation of that workflow for HiDream's UIT and evolved into the 2-pass approach to try and address the emotional drift problem while adding details.

0