Shuttle 3.1 Aesthetic - v1.0
๊ด๋ จ ํค์๋ ๋ฐ ํ๊ทธ
์ถ์ฒ ํ๋กฌํํธ
A cat holding a sign that says hello world
์ถ์ฒ ๋งค๊ฐ๋ณ์
steps
resolution
ํ
ํจ์จ์ฑ์ ์ํด bfloat16 ํ ์ ํ์ ์ ์ฌ์ฉํ์ธ์.
ํ์ ์ VRAM ์ ์ฝ์ ์ํด ๋ชจ๋ธ CPU ์คํ๋ก๋๋ฅผ ํ์ฑํํ์ธ์.
ํธํ ๊ฐ๋ฅํ GPU์์ ์ฑ๋ฅ ํฅ์์ ์ํด torch.compile์ ํ์ฑํํ์ธ์ (๋ก๋ฉ ์๊ฐ์ด ๋์ด๋ ์ ์์).
์ฌํ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ฅผ ์ํด ์๋ ์๋๋ฅผ ์ฌ์ฉํ์ธ์.
ํฌ๋ฆฌ์์ดํฐ ์คํฐ์
์ต์ ์ ๋ฐ์ดํธ, ๋ด์ค ๋ฑ์ ๋ฐ์ผ๋ ค๋ฉด ์ ํฌ Discord์ ์ฐธ์ฌํ์ธ์.
์น์ฌ์ดํธ https://designer.shuttleai.com/์์ ๋ชจ๋ธ์ ์ฌ์ฉํด๋ณด์ธ์.
ShuttleAI๋ฅผ ํตํด API๋ก Shuttle 3.1 Aesthetic๋ฅผ ์ฌ์ฉํ๊ณ ShuttleAI ๋ฌธ์๋ ํ์ธํ์ธ์.
# Shuttle 3.1 Aesthetic
์ต์ ์ ๋ฐ์ดํธ, ๋ด์ค ๋ฑ์ ๋ฐ์ผ๋ ค๋ฉด ์ ํฌ Discord์ ์ฐธ์ฌํ์ธ์.
## ๋ชจ๋ธ ๋ณํ
๋ค์ํ ํ๋์จ์ด ์ฑ๋ฅ๊ณผ ์ฌ์ฉ ์ฌ๋ก์ ์ต์ ํ๋ ์๋ก ๋ค๋ฅธ ์ ๋ฐ๋ ๋ฐ ํ์์ ์ ๊ณตํ๋ ๋ชจ๋ธ ๋ณํ๋ค์ ๋๋ค.
- bfloat16
- fp8
- GGUF (๊ณง ์ ๊ณต ์์ )
Shuttle 3.1 Aesthetic๋ ํ ์คํธ ํ๋กฌํํธ๋ก๋ถํฐ 4~6๋จ๊ณ ๋ง์ ์ธ๋ฐํ๊ณ ์ฌ๋ฏธ์ ์ธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋๋ก ์ค๊ณ๋ ํ ์คํธ-์ด๋ฏธ์ง AI ๋ชจ๋ธ์ ๋๋ค. ์ด๋ฏธ์ง ํ์ง, ํ์ดํฌ๊ทธ๋ํผ, ๋ณต์กํ ํ๋กฌํํธ ์ดํด ๋ฐ ์์ ํจ์จ์ฑ์์ ํฅ์๋ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.

์น์ฌ์ดํธ https://designer.shuttleai.com/์์ ๋ชจ๋ธ์ ์ฌ์ฉํด๋ณผ ์ ์์ต๋๋ค.
## API๋ฅผ ํตํ ๋ชจ๋ธ ์ฌ์ฉ๋ฒ
ShuttleAI๋ฅผ ํตํด Shuttle 3.1 Aesthetic๋ฅผ API๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
## ๐งจ Diffusers๋ฅผ ์ด์ฉํ ๋ชจ๋ธ ์ฌ์ฉ๋ฒ
diffusers๋ฅผ ์ค์นํ๊ฑฐ๋ ์ ๊ทธ๋ ์ด๋ํ์ธ์.
```shell
pip install -U diffusers
```
๊ทธ ๋ค์ DiffusionPipeline์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์คํํ ์ ์์ต๋๋ค.
```python
import torch
from diffusers import DiffusionPipeline
# ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์์ bfloat16 ํ ์ ํ์ ์ ์ฌ์ฉํด diffusion ํ์ดํ๋ผ์ธ ๋ก๋
pipe = DiffusionPipeline.from_pretrained(
"shuttleai/shuttle-3.1-aesthetic", torch_dtype=torch.bfloat16
).to("cuda")
# ํ์ ์ ๋ชจ๋ธ์ CPU๋ก ์คํ๋ก๋ํ์ฌ VRAM ์ ์ฝ ๊ฐ๋ฅ
# pipe.enable_model_cpu_offload()
# ํธํ ๊ฐ๋ฅํ GPU์์ torch.compile์ ์ฌ์ฉํด ์ฑ๋ฅ ํฅ์ ๊ฐ๋ฅ (๋ก๋ฉ ์๊ฐ ์ฆ๊ฐํ ์ ์์)
# pipe.transformer.to(memory_format=torch.channels_last)
# pipe.transformer = torch.compile(pipe.transformer, mode="max-autotune", fullgraph=True)
# ์ด๋ฏธ์ง ์์ฑ์ ์ํ ํ๋กฌํํธ ์ค์
prompt = "A cat holding a sign that says hello world"
# diffusion ํ์ดํ๋ผ์ธ์ ์ด์ฉํด ์ด๋ฏธ์ง ์์ฑ
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
num_inference_steps=4,
max_sequence_length=256,
# ์ฌํ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ฅผ ์ํด ์๋ ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
# generator=torch.Generator("cpu").manual_seed(0)
).images[0]
# ์์ฑ๋ ์ด๋ฏธ์ง ์ ์ฅ
image.save("shuttle.png")
```
์์ธํ ๋ด์ฉ์ diffusers ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
## ComfyUI๋ก ๋ชจ๋ธ ์ฌ์ฉํ๊ธฐ
Shuttle 3.1 Aesthetic๋ฅผ ๋ก์ปฌ ์ถ๋ก ํ๊ฒฝ์์ [ComfyUI](https://github.com/comfyanonymous/ComfyUI)์ ํจ๊ป ์ฌ์ฉํ๋ ค๋ฉด ์ด safetensors ํ์ผ์ ์ฌ์ฉํ์ธ์.
## ํ๋ จ ์ธ๋ถ ์ ๋ณด
Shuttle 3.1 Aesthetic๋ Shuttle 3 Diffusion์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋จ 4๋จ๊ณ ๋ง์ Flux Dev์ ์ ์ฌํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ Apache 2 ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค. ํ๋ จ ๊ณผ์ ์์ ๋ชจ๋ธ ์ผ๋ถ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ๋๋์คํธ๋ง(de-distilled) ํ์์ต๋๋ค. Schnell ์๋ฆฌ์ฆ ๋ชจ๋ธ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ํน๋ณํ ํ๋ จ ๋ฐฉ์์ ์ ์ฉํ์ฌ ๋ํ ์ผ๊ณผ ์์ ํํ์ด ๊ฐ์ ๋์์ต๋๋ค.
๋ชจ๋ธ ์ธ๋ถ์ฌํญ
๋ชจ๋ธ ์ ํ
๊ธฐ๋ณธ ๋ชจ๋ธ
๋ชจ๋ธ ๋ฒ์
๋ชจ๋ธ ํด์
์ ์์
ํ ๋ก
๋๊ธ์ ๋จ๊ธฐ๋ ค๋ฉด log inํ์ธ์.















