ShanglinHG's picture
Upload folder using huggingface_hub
ad79891 verified
|
Raw
History Blame Contribute Delete
2.28 kB
# PortraitCraft Challenge Track 2: Portrait Composition Generation - Top 1 Solution
This repository contains the Top 1 solution code for the **PortraitCraft Challenge Track 2: Portrait Composition Generation**.
Our solution leverages a powerful diffusion pipeline built upon Z-Image-Turbo, enhanced with ControlNet for precise pose conditioning and fine-tuned using DPO-LoRA.
***
## 🚀 Getting Started
### 1. Model Preparation
Before running the code, you need to download the required base models and ControlNet models into the `models` directory. You can choose to download them from either Hugging Face or ModelScope.
**From Hugging Face:**
- `Tongyi-MAI/Z-Image-Turbo`
- `alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union-2.1`
**From ModelScope:**
- `Tongyi-MAI/Z-Image-Turbo`
- `PAI/Z-Image-Turbo-Fun-Controlnet-Union-2.1`
Ensure the downloaded weights are placed correctly so the scripts can load them properly.
***
### 2. Inference
To generate portrait images based on the provided JSON tasks (which include text prompts and control pose prompt), run the evaluation script:
```bash
python inference/eval.py
```
The script will load the base model, ControlNet, and the trained LoRA weights to generate the final submitted images.
***
### 3. Calculate Parameters
If you want to check the parameter count of the complete model pipeline (including DiT, Text Encoder, VAE, ControlNet, and LoRA), run:
```bash
python inference/calculate_params.py
```
**Expected Output:**
```text
=== Components Parameter Count ===
DiT (Transformer): 6.1549 B
Text Encoder: 4.0225 B
VAE (Encoder + Decoder): 0.0838 B
ControlNet: 3.3562 B
LoRA (Included in DiT): 0.1588 B
=== Parameter Summary ===
Total Model Parameters: 13.6174 B
Total Model Parameters: 13,617,422,307
```
*(Note: During inference, the LoRA weights are fused directly into the DiT transformer backbone to avoid extra computation overhead. Thus, the total parameter count remains highly efficient.)*
***
### 4. Training
We use a DPO-based LoRA training strategy combined with ControlNet to align the model with human preferences and improve composition quality.
To start the training process, execute the provided bash script:
```bash
bash train/train_ai4va_pose_controlnet_dpo_lora_8x1.sh
```