續上篇 cloudflare實作ai繪圖,因為目前cloudflare提供的AI繪圖只可以輸入英文描述(輸入中文描述會也會出圖,不過完全看不出邏輯…),英文苦手的我,如果能直接輸入中文描述,那該有多好…
原本的想法是,先實作一個AI翻譯的Workers,讓AI繪圖的Workers呼叫取得翻譯,不過後來發現,一個Workers可以使用多個AI庫,所以最終的解決方案是,直接在同一個AI繪圖Workers內作文字翻譯,完整程式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| export default { async fetch(request, env) {
let oMatch = request.url.match(new RegExp(/\/([^\/]*)$/)); let name = oMatch?.[1] || "cat"; if(name){ name = decodeURI(name); }
console.log(`產生:${name} 的圖片`);
let res437 = await env.AI.run( "@cf/meta/m2m100-1.2b", { text: name, source_lang: 'chinese', target_lang: 'en', } );
let name437 = res437.translated_text || "Cat";
console.log(`翻譯英文:${name437}`);
const inputs = { prompt: name437 };
const response = await env.AI.run( '@cf/stabilityai/stable-diffusion-xl-base-1.0', inputs );
return new Response(response, { headers: { 'content-type': 'image/png' } }); } };
|
行14至行23就是此次加入的程式,透過「env.AI.run(@cf/meta/m2m100-1.2b, {…})」,就可以直接操作文字翻譯,後續就直接拿翻譯的文字進行AI繪圖。
調整後AI繪圖這個工具Workers就好用多了。

AI繪圖的圖片如下,品質還是不錯的(雖然還沒有吃到香蕉)
