Notice
Recent Posts
Recent Comments
반응형
오늘도 공부
Ollama에서 무료로 이미지를 생성해보자 본문
반응형

GitHub - bear2u/ollama-image-web-test
Contribute to bear2u/ollama-image-web-test development by creating an account on GitHub.
github.com
개요
Ollama v0.14.0부터 실험적으로 이미지 생성 모델을 지원합니다.
- 지원 환경: macOS, Linux (CUDA)
- 현재 사용 가능한 모델: x/z-image-turbo
- 예정된 모델: Qwen-Image-2512, Qwen-Image-Edit-2511, GLM-Image
중요: CLI vs API
방식지원 여부
| ollama run x/z-image-turbo | 지원 안됨 |
| /api/generate | 지원 안됨 |
| /api/chat | 지원 안됨 |
| /v1/images/generations | 지원됨 |
참고: 이미지 생성 모델은 기존 generate, chat 엔드포인트를 지원하지 않습니다. OpenAI 호환 API인 /v1/images/generations 엔드포인트만 사용 가능합니다.
설치
1. Ollama 버전 확인
ollama --version
# 0.14.0 이상 필요
2. 모델 다운로드
ollama pull x/z-image-turbo
3. 모델 정보 확인
ollama show x/z-image-turbo
출력 예시:
Model
architecture ZImagePipeline
parameters 10.3B
quantization FP8
requires 0.14.0
Capabilities
image
사용 방법
API 엔드포인트
POST http://localhost:11434/v1/images/generations
요청 형식
{
"model": "x/z-image-turbo",
"prompt": "이미지 설명"
}
응답 형식
{
"created": 1768630062,
"data": [
{
"b64_json": "base64로_인코딩된_PNG_이미지_데이터"
}
]
}
예제 코드
cURL
curl http://localhost:11434/v1/images/generations \
-H "Content-Type: application/json" \
-d '{
"model": "x/z-image-turbo",
"prompt": "A cute orange cat sitting on a cushion"
}' | python3 -c "
import json, base64, sys
data = json.load(sys.stdin)
img = data['data'][0]['b64_json']
with open('output.png', 'wb') as f:
f.write(base64.b64decode(img))
print('저장 완료: output.png')
"
Python
import requests
import base64
def generate_image(prompt: str, output_path: str = "output.png"):
"""Ollama를 사용하여 이미지 생성"""
response = requests.post(
"http://localhost:11434/v1/images/generations",
json={
"model": "x/z-image-turbo",
"prompt": prompt
}
)
if response.status_code == 200:
data = response.json()
img_data = data["data"][0]["b64_json"]
with open(output_path, "wb") as f:
f.write(base64.b64decode(img_data))
print(f"이미지 저장 완료: {output_path}")
return output_path
else:
print(f"에러: {response.text}")
return None
# 사용 예시
generate_image("A sunset over mountains", "sunset.png")
generate_image("A futuristic city at night", "city.png")
JavaScript (Node.js)
const fs = require('fs');
async function generateImage(prompt, outputPath = 'output.png') {
const response = await fetch('http://localhost:11434/v1/images/generations', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'x/z-image-turbo',
prompt: prompt
})
});
const data = await response.json();
const imgBuffer = Buffer.from(data.data[0].b64_json, 'base64');
fs.writeFileSync(outputPath, imgBuffer);
console.log(`이미지 저장 완료: ${outputPath}`);
}
// 사용 예시
generateImage('A cute puppy playing in the garden', 'puppy.png');
Shell 스크립트 (간단 버전)
#!/bin/bash
# ollama-image.sh
PROMPT="${1:-A beautiful landscape}"
OUTPUT="${2:-output.png}"
curl -s http://localhost:11434/v1/images/generations \
-H "Content-Type: application/json" \
-d "{\"model\": \"x/z-image-turbo\", \"prompt\": \"$PROMPT\"}" \
| python3 -c "
import json, base64, sys
data = json.load(sys.stdin)
with open('$OUTPUT', 'wb') as f:
f.write(base64.b64decode(data['data'][0]['b64_json']))
print('저장: $OUTPUT')
"
사용법:
chmod +x ollama-image.sh
./ollama-image.sh "A robot reading a book" robot.png
프롬프트 작성 팁
- 구체적으로 작성: 주제, 동작, 분위기를 명확히 설명
- 간결하게: 불필요한 형용사 제거
- 예시:
- "Minimal desk setup, soft morning light, open notebook, calm palette, overhead angle"
- "A futuristic cityscape at sunset, neon lights, cyberpunk style"
- "Watercolor painting of a serene forest with a small stream"
모델 버전
버전크기설명
| x/z-image-turbo:latest | 13GB | 기본 버전 (FP8) |
| x/z-image-turbo:fp8 | 13GB | FP8 양자화 |
| x/z-image-turbo:bf16 | 33GB | BF16 고정밀 버전 |
문제 해결
"does not support generate" 에러
Error: "x/z-image-turbo" does not support generate
원인: ollama run 또는 /api/generate 사용 시 발생 해결: /v1/images/generations 엔드포인트 사용
모델을 찾을 수 없음
# 모델 다시 다운로드
ollama pull x/z-image-turbo
Ollama 서버가 실행 중인지 확인
curl http://localhost:11434/api/tags
참고 자료
반응형
'AI' 카테고리의 다른 글
| AI로 프로급 디자인 뽑는 법: 7단계 계층적 프롬프트 설계 (0) | 2026.01.09 |
|---|---|
| 켄트백의 TDD claude.md 지침서 (0) | 2025.12.30 |
| 2026년을 향한 추천 LLM 코딩 워크플로우 (0) | 2025.12.23 |
| NVIDIA RTX GPU에서 Unsloth로 LLM 파인튜닝하는 방법 (0) | 2025.12.23 |
| Acontext: AI 에이전트를 위한 자기학습 컨텍스트 데이터 플랫폼 (0) | 2025.12.03 |
