This is a ComfyUI workflow using only components available in the Manager. It does:
A DynamicPrompts txt2img using Juggernaut SDXL and a LoRA - output 1 Megapixel size, 4X5 portrait.
It then does face detection for a SINGLE FACE with a reasonable amount of feathering/cropping around the discovered face (you need model 'face_yolov8m.pt'; It shows you what was detected, so you can trouble-shoot).
It then does ADetailer inpainting of that face using the same LoRA and same weight, but a different prompt. This improves the face a lot if the face is distant, and allows you to be very face-specific in the inpainting prompt.
Finally, it does an upscale using UltraSharp.
Advice:
To take advantage of Dynamic Prompts, press "Run" a bunch of times in succession. You CANNOT get different prompts by batching (not by batching the Run, nor by batching the latent images!)
This runs happily on an RTX3060, with each image taking about a minute to generate