跳到主要内容

Ollama 画像生成

注意

Ollama の画像生成は実験的です。Ollama API および LangChain4j 統合は将来のバージョンで変更される可能性があります。

Maven 依存関係

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
<version>${latest version here}</version>
</dependency>

API

  • OllamaImageModel

OllamaImageModelImageModel を実装し、Ollama の標準 /api/generate エンドポイント経由でテキストから画像への生成をサポートします。画像編集、および同一プロンプトからの複数画像生成はサポートされません。

実験的な画像生成機能をサポートする Ollama のバージョンとモデルが必要です。通常のテキストモデルは画像ではなくテキストを返し、OllamaImageGenerationException で失敗します。

使い方

ImageModel imageModel = OllamaImageModel.builder()
.baseUrl("http://localhost:11434")
.modelName("x/z-image-turbo")
.width(1024)
.height(768)
.steps(20)
.seed(42)
.build();

Response<Image> response = imageModel.generate("a sunset over mountains");
Image image = response.content();
byte[] imageBytes = Base64.getDecoder().decode(image.base64Data());
Files.write(Path.of("ollama-image.png"), imageBytes);

パラメータ

ParameterDescriptionType
httpClientBuilderカスタマイズ可能な HTTP クライアント を参照HttpClientBuilder
baseUrlOllama サーバーのベース URL。String
modelNameOllama サーバーで使用する画像生成モデル。String
width生成画像の幅(ピクセル)。0 を使うか未設定の場合は Ollama/モデルのデフォルトを使用。設定時は 0〜4096。Integer
height生成画像の高さ(ピクセル)。0 を使うか未設定の場合は Ollama/モデルのデフォルトを使用。設定時は 0〜4096。Integer
steps拡散ステップ数。0 を使うか未設定の場合は Ollama/モデルのデフォルトを使用。負の値は不可。Integer
seedOllama の options.seed 経由で送る乱数シード。Integer
timeoutAPI 呼び出し完了までの最大時間。Duration
customHeadersカスタム HTTP ヘッダー。Map<String, String>
logRequestsリクエストをログするかどうか。Boolean
logResponsesレスポンスをログするかどうか。Boolean
maxRetriesAPI 呼び出し失敗時の最大リトライ回数。Integer

現時点では OllamaImageModel 用の Spring Boot starter 設定はありません。

生成された画像は Base64 エンコードされた PNG データとして返されます。URL 出力、トークン使用量、および Ollama のストリーミング進捗フィールド(completedtotal など)は公開されません。