add zimage local and qwen silliconflow

This commit is contained in:
JimmysAIPG
2026-03-26 22:07:32 +08:00
commit 14cad19e58
7 changed files with 1676 additions and 0 deletions

146
README.md Normal file
View File

@@ -0,0 +1,146 @@
# 古诗词意境图生成器
基于 LLM 古诗词分析 + Z-Image-Turbo 本地文生图的自动化工具。
输入一首古诗词唐诗、宋词、元曲等均可LLM 会以「信、雅、达」的标准分析意境,自动选择最合适的中国传统画风,并拆解为多个画面。然后调用本地 Z-Image-Turbo 模型逐一生成高质量图片。
## 特性
- 支持唐诗、宋词、元曲等所有中国古典诗词体裁
- LLM 自动识别体裁并匹配最佳画风(水墨写意、青绿山水、工笔花鸟等 9 种风格)
- 可选加载 LoRA 增强特定画风(如水墨风 LoRA
- Z-Image-Turbo 本地推理16GB 显存即可运行
## 环境要求
- Python >= 3.10
- GPU至少 16GB 显存),支持以下任一:
- NVIDIA CUDA GPU
- Intel Arc GPUA770 等,通过 XPU 支持)
- Apple SiliconMPS
- 兼容 OpenAI API 的 LLM 端点
## 安装
```bash
pip install -r requirements.txt
```
> diffusers 需要从源码安装requirements.txt 已配置)。
### Intel Arc GPU 额外步骤
```bash
# 安装 Intel Extension for PyTorch
pip install intel-extension-for-pytorch
```
`config.yaml` 中的 `device` 设为 `"auto"``"xpu"` 即可自动适配。脚本会自动将数据类型切换为 `float16`Intel Arc 对 bfloat16 兼容性不佳)。
## 配置
编辑 `config.yaml`
| 配置项 | 说明 |
|--------|------|
| `llm.base_url` | LLM API 端点地址(兼容 OpenAI 格式) |
| `llm.api_key` | API 密钥(也可通过环境变量 `LLM_API_KEY` 设置) |
| `llm.model` | 模型名称 |
| `image.model_id` | Z-Image-Turbo 的 HuggingFace ID 或本地 HF 格式目录 |
| `image.comfyui.*` | ComfyUI 拆分文件路径(见下方说明) |
| `image.device` | 推理设备:`auto` / `cuda` / `xpu` / `mps` / `cpu` |
| `lora.enabled` | 是否启用 LoRA |
| `lora.path` | LoRA 文件路径(.safetensors |
| `output.dir` | 图片输出目录 |
### 模型加载方式
支持两种模型来源,在 `config.yaml` 中二选一:
**方式一HuggingFace 格式**(默认)
```yaml
image:
model_id: "Tongyi-MAI/Z-Image-Turbo" # 或本地 HF 格式目录
```
**方式二ComfyUI 拆分文件**
如果你已通过 ComfyUI 下载了模型,直接填写三个文件的路径即可:
```yaml
image:
comfyui:
text_encoder: "/path/to/ComfyUI/models/text_encoders/qwen_3_4b.safetensors"
transformer: "/path/to/ComfyUI/models/diffusion_models/z_image_turbo_bf16.safetensors"
vae: "/path/to/ComfyUI/models/vae/ae.safetensors"
```
> 首次运行 ComfyUI 模式时,脚本会自动从 HuggingFace 下载微型配置文件(< 100KB之后自动缓存。
### LoRA 推荐
| LoRA | 风格 | 触发词 | 权重 | 来源 |
|------|------|--------|------|------|
| zyd232's Ink Style v1.2 | 水墨写意 | `ink style` | 0.6-1.2 | Civitai |
| Painterly - CE | 水彩/油画 | - | 0.8 | Civitai |
## 使用方法
### 交互式输入
```bash
python poetry_to_image.py
```
运行后按提示输入古诗词,输入空行结束。
### 命令行直接传入
```bash
# 唐诗
python poetry_to_image.py -p "床前明月光,疑是地上霜。举头望明月,低头思故乡。"
# 宋词
python poetry_to_image.py -p "明月几时有?把酒问青天。不知天上宫阙,今夕是何年。"
```
### 仅分析不生成图片
```bash
python poetry_to_image.py -p "大漠孤烟直,长河落日圆。" --analyze-only
```
### 指定配置文件和输出目录
```bash
python poetry_to_image.py -c my_config.yaml -o ./my_output -p "春江潮水连海平,海上明月共潮生。"
```
## 输出
- `output/poem_01.png` ... `poem_N.png` — 生成的图片
- `output/poem_01_prompt.txt` ... — 每张图片的 prompt 与画风记录
- `output/analysis.json` — LLM 完整分析结果(含体裁识别、风格选择)
## 工作流程
```
古诗词输入 → LLM 体裁识别 → 意境分析 & 画风匹配 → 生成 prompt → [可选 LoRA 增强] → Z-Image-Turbo 逐一生图 → 输出
```
## 支持的画风
LLM 会根据诗意自动选择:
| 画风 | 适用场景 |
|------|---------|
| 水墨写意 | 山水、边塞、禅意 |
| 青绿山水 | 春夏山水、壮丽河山 |
| 工笔花鸟 | 花卉、仕女、精致细腻 |
| 工笔重彩 | 华丽、宫廷、历史叙事 |
| 没骨画法 | 花卉、蔬果、清新淡雅 |
| 文人画 | 隐逸、高洁、书卷气 |
| 泼墨大写意 | 豪放、苍茫、气势磅礴 |
| 界画 | 楼阁、宫殿、城市 |
| 浅绛山水 | 秋冬山水、怀古 |