# Thực hành vẽ tranh AI với Stable Diffusion

## 1. Tạo Host GPU
Để biết quy trình tạo, vui lòng tham khảo [Tạo Host đầu tiên](/docs/uhost/newuser/briefguide).
Khi tạo Host GPU, vui lòng chọn image là "Nền tảng vẽ tranh AI stable diffusion". Đường dẫn thao tác là: Chợ Image—>Nền tảng vẽ tranh AI stable diffusion. Image này cung cấp một bản cài đặt stable diffusion tiện lợi và đi kèm với môi trường tích hợp sẵn: CentOS 7.8.
Loại và cấu hình đề xuất:
Cấu hình tối thiểu GPU Host T4/T4S: 8 lõi 32G một GPU
Cấu hình tối thiểu GPU Host V100S: 10 lõi 32G một GPU
Cấu hình tối thiểu GPU Host P40: 8 lõi 32G một GPU

> Vui lòng chọn bộ nhớ từ 32GB trở lên, nếu không có thể gây ra OOM khi tải model.
Gắn EIP và cho phép cổng TCP 8888 trong tường lửa mạng ngoài.

## 2. Sử dụng Stable Diffusion
### 2.1 Phương pháp 1: Sử dụng Jupyter Notebook để tạo môi trường LDM mới (Đề xuất)
Truy cập Jupyter bằng địa chỉ IP mạng ngoài của bạn: http://EIP:8888
Nhập token (Bạn có thể kiểm tra cấu hình của c.NotebookApp.token trong /root/.jupyter/jupyter_notebook_config.py và có thể sửa đổi theo ý muốn.)

![img](https://cdn.udelivrs.com/2025/04/75c0a55abfbf3ff0b087e05889cb842b_1744189490014.png)
<br>
Tạo một LDM mới.

![img](https://cdn.udelivrs.com/2025/04/bd2a45d0c61ed2f7cc418b6f09e95047_1744189490025.png)
<br>
Nếu bạn sử dụng mô tả **phiên bản tiếng Anh**, vui lòng tham khảo ví dụ sau:

Thêm và chạy mã mẫu sau (lấy ví dụ "Một khung cảnh thịnh vượng bên cạnh Minh Châu Phương Đông ở Thượng Hải, bởi Van Gogh, tranh sơn dầu thịnh hành trên artstation HQ").
```
from torch import autocast
from diffusers import StableDiffusionPipeline
from IPython.display import Image
 
width = 512
height = 512
 
pipe = StableDiffusionPipeline.from_pretrained(
    "/root/demo/stable-diffusion-v1-4").to("cuda")
 
prompt = "Một khung cảnh thịnh vượng bên cạnh Minh Châu Phương Đông ở Thượng Hải, bởi Van Gogh, tranh sơn dầu thịnh hành trên artstation HQ"
with autocast("cuda"):
    image = pipe(prompt, height, width)["sample"][0] 
     
image.save("Van_Gogh_Style_Shanghai.png")
 
# Hiển thị hình ảnh trên web
Image(filename = 'Van_Gogh_Style_Shanghai.png', width=width, height=height)
```
Bạn có thể xem ngay hình ảnh được tạo.<br>

![img](https://cdn.udelivrs.com/2025/04/bea24501090efdedb3f39a8bbc88a763_1744189490051.png)
<br>

Nếu bạn sử dụng mô tả **phiên bản tiếng Trung**, vui lòng tham khảo ví dụ sau:

Thêm và chạy mã mẫu sau (lấy ví dụ "Sa mạc mênh mông, khói cô độc bay thẳng; sông dài, mặt trời lặn tròn, tranh sơn dầu").
```
from diffusers import StableDiffusionPipeline
from IPython.display import Image

width = 512
height = 512

pipe = StableDiffusionPipeline.from_pretrained("IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1").to("cuda")

prompt = 'Sa mạc mênh mông, khói cô độc bay thẳng; sông dài, mặt trời lặn tròn, tranh sơn dầu'
image = pipe(prompt, guidance_scale=7.5).images[0]  
image.save("Oil_painting.png")

# Hiển thị hình ảnh trên web
Image(filename = 'Oil_painting.png', width=width, height=height) 
```
Bạn có thể xem ngay hình ảnh được tạo.<br>

![img](https://cdn.udelivrs.com/2025/04/c3a9c372c79ab366f0f0e385e20b34dc_1744189490061.png)
<br>
> 1. Chọn ô mã và nhấp vào [Run]. Nếu bạn thấy "In[*]", điều đó có nghĩa là mã đang chạy. Vui lòng kiên nhẫn chờ kết quả tạo hình ảnh.
> 2. Khi điều chỉnh kích thước canvas, hãy đảm bảo cả chiều rộng và chiều cao đều là bội số của 8.

**Để bắt đầu nhanh, bạn cũng có thể sử dụng trực tiếp SD_Demos.ipynb trong thư mục demo/. Nó được cài đặt sẵn với cả mô hình ngôn ngữ tiếng Anh và tiếng Trung, như hình dưới đây:**<br>

![img](https://cdn.udelivrs.com/2025/04/bcf2489a282d86eaddfda07d62ee9e70_1744189490065.png)
<br>

### 2.2 Phương pháp 2: Sử dụng Script mẫu của Stable Diffusion
#### 2.2.1 Chuyển sang môi trường Conda

```
conda activate ldm
```
#### 2.2.2 Chạy Script mẫu
Chạy script, nhập mô tả bức tranh bạn mong muốn và bạn sẽ nhận được hình ảnh (Lấy ví dụ "Một thung lũng đầy hoa, bởi Van Gogh, tranh sơn dầu thịnh hành trên artstation HQ"), hình ảnh được tạo sẽ được tìm thấy trong thư mục /root/stable-diffusion/outputs/txt2img-samples/.
```
cd stable-diffusion
python scripts/txt2img.py --prompt "Một thung lũng đầy hoa, bởi Van Gogh, tranh sơn dầu thịnh hành trên artstation HQ"
```
#### 2.2.3 Kiểm tra hình ảnh qua trang Jupyter
Truy cập Jupyter bằng địa chỉ IP mạng ngoài của bạn: http://EIP:8888

Nhập token (Bạn có thể kiểm tra cấu hình của c.NotebookApp.token trong /root/.jupyter/jupyter_notebook_config.py và có thể sửa đổi theo ý muốn.)<br>

![img](https://cdn.udelivrs.com/2025/04/bd2a45d0c61ed2f7cc418b6f09e95047_1744189490025.png)
<br>

![img](https://cdn.udelivrs.com/2025/04/9c0b56622ac1777b8aa06d7d1607fa1d_1744189490027.png)
<br>
Nhấp để xem trước hình ảnh theo hướng dẫn.<br>

![img](https://cdn.udelivrs.com/2025/04/9adce15970244f95ce5367ccbd93cdbe_1744189490037.png)
<br>