character-studio / README_TH.md
mamungtai-sat's picture
Add Character Studio app, registry, requirements, docs (#1)
5d0bada
|
Raw
History Blame
6.14 kB
# 🎭 Character Studio — คู่มือภาษาไทย
Space รวมโมเดลสร้างตัวละครหลายตัวไว้ใน UI เดียว ทำงานบน **ZeroGPU**
เลือกโมเดลจากรายการ → พิมพ์ prompt → (ถ้าต้องการ) ใส่รูปต้นแบบ → กด Generate
---
## 1) วิธีนำขึ้น Hugging Face
1. สร้าง Space ใหม่: https://huggingface.co/new-space
- **SDK = Gradio**
- **Hardware = ZeroGPU** (Nvidia, dynamic)
2. อัปโหลดไฟล์ทั้งหมดในโฟลเดอร์นี้ (`app.py`, `pipeline_manager.py`, `models.json`,
`requirements.txt`, `README.md`) ขึ้นไปที่ root ของ Space
- ผ่านเว็บ (ลากวาง) หรือผ่าน git:
```bash
git clone https://huggingface.co/spaces/<user>/<space-name>
# คัดลอกไฟล์ในโฟลเดอร์นี้เข้าไป แล้ว
git add . && git commit -m "init character studio" && git push
```
3. ไปที่ **Settings → Variables and secrets** ใส่ค่า (เท่าที่จำเป็น):
- `HF_TOKEN` — เฉพาะโมเดล gated เช่น FLUX.1-dev
- `CIVITAI_TOKEN` — เฉพาะเมื่อโหลดจากลิงก์ Civitai
---
## 2) เพิ่ม / ลบ / ปิดโมเดล (แก้ `models.json` อย่างเดียว)
แก้ไฟล์ `models.json` แล้วกดปุ่ม **🔄 Reload models** ใน UI (หรือ restart Space)
### โครงสร้างแต่ละโมเดล
| field | ความหมาย |
|---|---|
| `id` | รหัสไม่ซ้ำ (อังกฤษ-ขีดกลาง) |
| `label` | ชื่อที่โชว์ใน UI |
| `base` | `"sd15"` / `"sdxl"` / `"flux"`**สำคัญมาก** กำหนดว่าโหมดไหนใช้ได้ |
| `type` | `"checkpoint"` (โมเดลเต็ม) หรือ `"lora"` |
| `repo_id` | repo บน HF (สำหรับ checkpoint) หรือ **base checkpoint** (สำหรับ lora) |
| `single_file_url` | ลิงก์ `.safetensors` โดยตรง เช่น Civitai (ใช้แทน repo_id ได้) |
| `lora_repo_id` / `lora_weight_name` | สำหรับ LoRA ที่อยู่บน HF |
| `lora_url` | สำหรับ LoRA จาก Civitai (ลิงก์ download) |
| `lora_scale` | น้ำหนัก LoRA เช่น 0.8 |
| `trigger` | คำ trigger ที่จะเติมหน้า prompt อัตโนมัติ |
| `recommended_prompt` | prompt ตัวอย่าง (โชว์เป็น placeholder) |
| `negative_prompt` | negative เริ่มต้น |
| `default_steps` / `default_guidance` | ค่าเริ่มต้นเวลาเลือกโมเดลนี้ |
| `enabled` | `true`/`false` ปิดชั่วคราวได้โดยไม่ต้องลบ |
### ตัวอย่าง — checkpoint จาก Civitai (SD1.5)
```json
{
"id": "asian-realistic-v6",
"label": "AsianRealistic SDLife V6 (SD1.5)",
"base": "sd15",
"type": "checkpoint",
"repo_id": null,
"single_file_url": "https://civitai.com/api/download/models/130072",
"default_steps": 28,
"default_guidance": 6.5,
"enabled": true
}
```
> ต้องใส่ `CIVITAI_TOKEN` ใน Secrets ด้วย
### ตัวอย่าง — LoRA จาก Civitai (วางบน base SD1.5)
```json
{
"id": "asian-girls-face",
"label": "Asian Girls Face (LoRA)",
"base": "sd15",
"type": "lora",
"repo_id": "stable-diffusion-v1-5/stable-diffusion-v1-5",
"lora_url": "https://civitai.com/api/download/models/67980",
"lora_scale": 0.8,
"enabled": true
}
```
### ตัวอย่าง — โมเดลบน HF (SDXL)
```json
{
"id": "my-sdxl",
"label": "My SDXL model",
"base": "sdxl",
"type": "checkpoint",
"repo_id": "author/my-sdxl-repo",
"default_steps": 30,
"default_guidance": 6.0,
"enabled": true
}
```
**ลบโมเดล** = ลบ block นั้นออกจาก array `models` หรือตั้ง `"enabled": false`
---
## 3) โหมดรูปต้นแบบ (Input mode)
| โหมด | ทำอะไร | ใช้กับ base |
|---|---|---|
| Text → Image | สร้างจาก prompt อย่างเดียว | ทุก base |
| Image → Image | แปลงรูปเดิม (ปรับ denoise) | ทุก base |
| IP-Adapter | ดึงสไตล์/องค์ประกอบจากรูป | sd15, sdxl |
| Face identity | ล็อกใบหน้าจากรูปต้นแบบ (FaceID) | sd15, sdxl |
> FLUX รองรับเฉพาะ txt2img / img2img (IP-Adapter/FaceID ของ FLUX ยังไม่รวมในเวอร์ชันนี้)
---
## 4) ข้อควรรู้เรื่อง ZeroGPU
- โมเดลใหญ่จะถูกเก็บทีละตัว สลับโมเดล = โหลดใหม่ (ครั้งแรกช้าหน่อย)
- หนึ่งครั้ง generate จำกัดเวลา GPU ~120 วินาที (ปรับใน `@spaces.GPU(duration=...)`)
- โมเดล Civitai/checkpoint เต็มก้อนใหญ่ ดาวน์โหลดครั้งแรกใช้เวลา — ใจเย็น
---
## 5) การใช้งานอย่างรับผิดชอบ
เครื่องมือนี้สำหรับงานสร้างสรรค์ตัวละครต้นฉบับ/งานที่ได้รับอนุญาต
**อย่าใช้โหมด Face identity สร้างภาพบุคคลจริงโดยไม่ได้รับความยินยอม**