Skip to content

Commit dede3d5

Browse files
committed
Add tests
1 parent 4eeb644 commit dede3d5

7 files changed

+443
-4
lines changed

lib/ruby_llm/aliases.json

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,49 @@
11
{
2+
"adirik/realvisxl-v3.0-turbo": {
3+
"replicate": "3dc73c805b11b4b01a60555e532fd3ab3f0e60d26f6584d9b8ba7e1b95858243"
4+
},
5+
"ai-forever/kandinsky-2": {
6+
"replicate": "3c6374e7a9a17e01afe306a5218cc67de55b19ea536466d6ea2602cfecea40a9"
7+
},
8+
"ai-forever/kandinsky-2.2": {
9+
"replicate": "ad9d7879fbffa2874e1d909d1d37d9bc682889cc65b31f7bb00d2362619f194a"
10+
},
11+
"black-forest-labs/flux-1.1-pro": {
12+
"replicate": "80a09d66baa990429c2f5ae8a4306bf778a1b3775afd01cc2cc8bdbe9033769c"
13+
},
14+
"black-forest-labs/flux-1.1-pro-ultra": {
15+
"replicate": "c6e5086a542c99e7e523a83d3017654e8618fe64ef427c772a1def05bb599f0c"
16+
},
17+
"black-forest-labs/flux-dev": {
18+
"replicate": "6e4a938f85952bdabcc15aa329178c4d681c52bf25a0342403287dc26944661d"
19+
},
20+
"black-forest-labs/flux-dev-lora": {
21+
"replicate": "ae0d7d645446924cf1871e3ca8796e8318f72465d2b5af9323a835df93bf0917"
22+
},
23+
"black-forest-labs/flux-kontext-max": {
24+
"replicate": "f72e27297d9c05a36b7fd8faff393d31e3b368543e0bc44bde521886700e166c"
25+
},
26+
"black-forest-labs/flux-kontext-pro": {
27+
"replicate": "2dfe45debca13e5ecfad755ef6ca9943fc56a6effb306f4c6e2ea4762df6e53e"
28+
},
29+
"black-forest-labs/flux-pro": {
30+
"replicate": "1e237aa703bf3a8ab480d5b595563128807af649c50afc0b4f22a9174e90d1d6"
31+
},
32+
"black-forest-labs/flux-schnell": {
33+
"replicate": "c846a69991daf4c0e5d016514849d14ee5b2e6846ce6b9d6f21369e564cfe51e"
34+
},
35+
"bria/image-3.2": {
36+
"replicate": "143afb950d3186f914f24b9eab35c297b3bbb0ddf9d77fb8ad47784e0a66053b"
37+
},
38+
"bytedance/sdxl-lightning-4step": {
39+
"replicate": "6f7a773af6fc3e8de9d5a3c00be77c17308914bf67772726aff83496ba1e3bbe"
40+
},
41+
"bytedance/seedream-3": {
42+
"replicate": "8eb3d789024549c43fb53ba6ad21450e4ee4e1ff87951fabf619b6b7a6a436ec"
43+
},
44+
"bytedance/seedream-4": {
45+
"replicate": "254faac883c3a411e95cc95d0fb02274a81e388aaa4394b3ce5b7d2a9f7a6569"
46+
},
247
"chatgpt-4o": {
348
"openai": "chatgpt-4o-latest",
449
"openrouter": "openai/chatgpt-4o-latest"
@@ -46,10 +91,37 @@
4691
"openrouter": "anthropic/claude-sonnet-4",
4792
"bedrock": "us.anthropic.claude-sonnet-4-20250514-v1:0"
4893
},
94+
"datacte/proteus-v0.2": {
95+
"replicate": "06775cd262843edbde5abab958abdbb65a0a6b58ca301c9fd78fa55c775fc019"
96+
},
97+
"datacte/proteus-v0.3": {
98+
"replicate": "b28b79d725c8548b173b6a19ff9bffd16b9b80df5b18b8dc5cb9e1ee471bfa48"
99+
},
49100
"deepseek-chat": {
50101
"deepseek": "deepseek-chat",
51102
"openrouter": "deepseek/deepseek-chat"
52103
},
104+
"fermatresearch/sdxl-controlnet-lora": {
105+
"replicate": "3bb13fe1c33c35987b33792b01b71ed6529d03f165d1c2416375859f09ca9fef"
106+
},
107+
"fofr/any-comfyui-workflow": {
108+
"replicate": "67ed4ba04ce0842446e16c428b1be131452815d01810861f71d171f63e8ba8f0"
109+
},
110+
"fofr/latent-consistency-model": {
111+
"replicate": "683d19dc312f7a9f0428b04429a9ccefd28dbf7785fef083ad5cf991b65f406f"
112+
},
113+
"fofr/realvisxl-v3-multi-controlnet-lora": {
114+
"replicate": "90a4a3604cd637cb9f1a2bdae1cfa9ed869362ca028814cdce310a78e27daade"
115+
},
116+
"fofr/sdxl-emoji": {
117+
"replicate": "dee76b5afde21b0f01ed7925f0665b7e879c50ee718c5f78a9d38e04d523cc5e"
118+
},
119+
"fofr/sdxl-multi-controlnet-lora": {
120+
"replicate": "89eb212b3d1366a83e949c12a4b45dfe6b6b313b594cb8268e864931ac9ffb16"
121+
},
122+
"fofr/sticker-maker": {
123+
"replicate": "4acb778eb059772225ec213948f0660867b2e03f277448f18cf1800b96a65a1a"
124+
},
53125
"gemini-1.5-flash": {
54126
"gemini": "gemini-1.5-flash",
55127
"vertexai": "gemini-1.5-flash"
@@ -139,6 +211,24 @@
139211
"gemini": "gemma-3n-e4b-it",
140212
"openrouter": "google/gemma-3n-e4b-it"
141213
},
214+
"google/imagen-3": {
215+
"replicate": "3e0b477743ff405dc5b77dd73456d7ef96705a9aad479c668d57743ce1d4ca96"
216+
},
217+
"google/imagen-3-fast": {
218+
"replicate": "5125f62df7e6d1ccb0ce5ac60f141646486c0cb74a2e3d9e8b63ed486c48313e"
219+
},
220+
"google/imagen-4": {
221+
"replicate": "1ddba0fad36734cd24c85ecc783d67c8973da8ea05044b56db4eb3b0cde5394d"
222+
},
223+
"google/imagen-4-fast": {
224+
"replicate": "4e5534950275f5d29aa1ea263a442018f34d90254bb89ba9a08de44bc68c5a33"
225+
},
226+
"google/imagen-4-ultra": {
227+
"replicate": "33db85c7f42cdfee3a7658d76a9097b8d856981aba0020b323d3e83683d2e2a2"
228+
},
229+
"google/nano-banana": {
230+
"replicate": "1b7b945e8f7edf7a034eba6cb2c20f2ab5dc7d090eea1c616e96da947be76aee"
231+
},
142232
"gpt-3.5-turbo": {
143233
"openai": "gpt-3.5-turbo",
144234
"openrouter": "openai/gpt-3.5-turbo"
@@ -227,6 +317,60 @@
227317
"openai": "gpt-5-nano",
228318
"openrouter": "openai/gpt-5-nano"
229319
},
320+
"ideogram-ai/ideogram-v2": {
321+
"replicate": "39ec2c0b3642ba5bc9357978a8fd060c7e363643c192776e38dd9b2b2c403442"
322+
},
323+
"ideogram-ai/ideogram-v2-turbo": {
324+
"replicate": "35eacd3dbd088d6421f7ee27646701b5e03ec5a9a0f68f43112fa228d6fc2522"
325+
},
326+
"ideogram-ai/ideogram-v2a": {
327+
"replicate": "1751e040eb5e766b3eea4f9e69160987e1854c28a87a08882c930ecc6cef0305"
328+
},
329+
"ideogram-ai/ideogram-v2a-turbo": {
330+
"replicate": "8b8447f69a32c73b5dc94c1aca2909b7aa702940281496d4ea2c9b260725a81a"
331+
},
332+
"ideogram-ai/ideogram-v3-balanced": {
333+
"replicate": "37b6362ab309164a8b5528a8b384d3788a9465d1095fa7cc3cb6fbc9e65b8702"
334+
},
335+
"ideogram-ai/ideogram-v3-quality": {
336+
"replicate": "c3b86e5c2118ee3469fd3fead8a90dc72cf23ea31e24eed8f8c359ebe7e546ba"
337+
},
338+
"ideogram-ai/ideogram-v3-turbo": {
339+
"replicate": "c238db25556f295de040a59b462cc212bb8ceb282bf2fc6bee6fbaf4ab014f23"
340+
},
341+
"jagilley/controlnet-scribble": {
342+
"replicate": "435061a1b5a4c1e26740464bf786efdfa9cb3a3ac488595a2de23e143fdb0117"
343+
},
344+
"leonardoai/lucid-origin": {
345+
"replicate": "97190d506c4a659bc58c9c8deaa96415592c7fdd42d4b1b624649c6211d83f1c"
346+
},
347+
"lucataco/dreamshaper-xl-turbo": {
348+
"replicate": "0a1710e0187b01a255302738ca0158ff02a22f4638679533e111082f9dd1b615"
349+
},
350+
"lucataco/open-dalle-v1.1": {
351+
"replicate": "1c7d4c8dec39c7306df7794b28419078cb9d18b9213ab1c21fdc46a1deca0144"
352+
},
353+
"lucataco/realistic-vision-v5.1": {
354+
"replicate": "2c8e954decbf70b7607a4414e5785ef9e4de4b8c51d50fb8b8b349160e0ef6bb"
355+
},
356+
"lucataco/ssd-1b": {
357+
"replicate": "b19e3639452c59ce8295b82aba70a231404cb062f2eb580ea894b31e8ce5bbb6"
358+
},
359+
"luma/photon": {
360+
"replicate": "fe142c037cf359764f2058c3a42ef0dc750d908311d02868cbc7769fe800b648"
361+
},
362+
"luma/photon-flash": {
363+
"replicate": "48705cf0e6223fbc49e81781ba235623c100713035f9866e04a6236b54e1a8d3"
364+
},
365+
"minimax/image-01": {
366+
"replicate": "47ca89ad46682c1dd0ca335601cd7ea2eb10fb94ce4e0a5abafa7e74f23ae7b6"
367+
},
368+
"nvidia/sana": {
369+
"replicate": "c6b5d2b7459910fec94432e9e1203c3cdce92d6db20f714f1355747990b52fa6"
370+
},
371+
"nvidia/sana-sprint-1.6b": {
372+
"replicate": "038aee6907b53a5c148780983e39a50ce7cd0747b4e2642e78387f48cf36039a"
373+
},
230374
"o1": {
231375
"openai": "o1",
232376
"openrouter": "openai/o1"
@@ -259,8 +403,56 @@
259403
"openai": "o4-mini",
260404
"openrouter": "openai/o4-mini"
261405
},
406+
"playgroundai/playground-v2.5-1024px-aesthetic": {
407+
"replicate": "a45f82a1382bed5c7aeb861dac7c7d191b0fdf74d8d57c4a0e6ed7d4d0bf7d24"
408+
},
409+
"prunaai/flux.1-dev": {
410+
"replicate": "b0306d92aa025bb747dc74162f3c27d6ed83798e08e5f8977adf3d859d0536a3"
411+
},
412+
"prunaai/hidream-l1-dev": {
413+
"replicate": "4dfcd146c0def4812455415f55556f6bc84025dcb15193cf1977f01bd384d191"
414+
},
415+
"prunaai/hidream-l1-fast": {
416+
"replicate": "06898b39cb00e42d31666b0dc8b9904f326169768129d756184f65ecf1986c8f"
417+
},
418+
"prunaai/hidream-l1-full": {
419+
"replicate": "03d58532fd29e39fd2ed80e86c3da1cebec28ef2734081cf1366710d30388f42"
420+
},
421+
"prunaai/sdxl-lightning": {
422+
"replicate": "123d4264aec4d1c81d8bf142e0d90d6fd4c346f1a869406019f6d1653882d7c3"
423+
},
424+
"prunaai/wan-2.2-image": {
425+
"replicate": "16e15e913fcc71c1a5defb335ea84739f99731fa1ee17995117c7d9adc6d176c"
426+
},
427+
"qwen/qwen-image": {
428+
"replicate": "905e345fe1dfe10d628daac2140dd8dea471c0d99793ef0fdc46a15c688b62fb"
429+
},
430+
"recraft-ai/recraft-v3": {
431+
"replicate": "0fea59248a8a1ddb8197792577f6627ec65482abc49f50c6e9da40ca8729d24d"
432+
},
433+
"recraft-ai/recraft-v3-svg": {
434+
"replicate": "81deed12bf1c7e762e46f53df3f85b4369abf876b1df1777ce795e0d7d5849e4"
435+
},
436+
"stability-ai/sdxl": {
437+
"replicate": "7762fd07cf82c948538e41f63f77d685e02b063e37e496e96eefd46c929f9bdc"
438+
},
439+
"stability-ai/stable-diffusion": {
440+
"replicate": "ac732df83cea7fff18b8472768c88ad041fa750ff7682a21affe81863cbe77e4"
441+
},
442+
"stability-ai/stable-diffusion-3.5-large": {
443+
"replicate": "feb36d70a9f2791ed9df99f795ea5684da18f52b5f6b488dfdef635ca19d6bd3"
444+
},
445+
"stability-ai/stable-diffusion-3.5-large-turbo": {
446+
"replicate": "8170d81b43c5b823dd15b0132720fdae8dadf9c46c7da484a24b8e98e6b161a2"
447+
},
448+
"stability-ai/stable-diffusion-3.5-medium": {
449+
"replicate": "e069811fe9b5815a6db8874c3054c15be99c8019d07ee5ad72aa63cea3cfffe3"
450+
},
262451
"text-embedding-004": {
263452
"gemini": "text-embedding-004",
264453
"vertexai": "text-embedding-004"
454+
},
455+
"tstramer/material-diffusion": {
456+
"replicate": "a42692c54c0f407f803a0a8a9066160976baedb77c91171a01730f9b0d7beeff"
265457
}
266458
}

lib/ruby_llm/providers/replicate/images.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def render_image_payload(prompt, model:, **params)
2020

2121
{}.tap do |payload|
2222
payload[:webhook] = @config.replicate_webhook_url
23-
payload[:version] = model.id unless official_model?
23+
payload[:version] = self.model.id unless official_model?
2424
payload[:input] = { prompt: prompt }.merge(params)
2525

2626
if @config.replicate_webhook_events_filter
@@ -30,18 +30,18 @@ def render_image_payload(prompt, model:, **params)
3030
end
3131

3232
def parse_image_response(response, **)
33-
response
33+
response.body
3434
end
3535

3636
private
3737

3838
def model_id=(id)
3939
@model_id = id
40-
@model = Models.find(@model_id, 'replicate')
40+
@model = RubyLLM::Models.find(@model_id, 'replicate')
4141
end
4242

4343
def official_model?
44-
model.metadata['is_official'] == true
44+
model.metadata[:is_official] == true
4545
end
4646
end
4747
end

lib/tasks/models.rake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,10 @@ def generate_aliases # rubocop:disable Metrics/PerceivedComplexity
429429
}
430430
end
431431

432+
models['replicate'].each do |model|
433+
aliases[RubyLLM.models.find(model).name] = { 'replicate' => model }
434+
end
435+
432436
sorted_aliases = aliases.sort.to_h
433437
File.write(RubyLLM::Aliases.aliases_file, JSON.pretty_generate(sorted_aliases))
434438

spec/fixtures/vcr_cassettes/image_basic_functionality_google_imagen-4-ultra_an_official_replicate_model_can_paint_images.yml

Lines changed: 73 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)