🙌

Cloudflare Workers AI が Stable Diffusion に対応したぞ!

2023/12/04に公開

https://zenn.dev/kameoncloud/articles/707b3b623bdb87
こちらの記事でWorkersの新機能であるWorkers AIを紹介しました。

今回新たにWorkers AIで利用可能なモデルとしてStable Diffusionに対応したのでやってみました。たった数分で画像生成AIが使える時代が来たんですね。本当にこの領域に進化は早く毎日ワクワクします。

やってみる

手順はとても簡単です。まずは以下のシナリオを実行しておきます。
https://zenn.dev/kameoncloud/articles/707b3b623bdb87

次にindex.tsもしくはworkers.tsを以下に置換します。

index.ts
import { Ai } from '@cloudflare/ai';
export default {
  async fetch(request, env) {
    const ai = new Ai(env.AI);
    const response = await ai.run('@cf/stabilityai/stable-diffusion-xl-base-1.0', {
      prompt: 'A happy llama running through an orange cloud'
    });
    return new Response(response, {
      headers: {
          "content-type": "image/png",
      },
  });
  }
}

wrangler deployでデプロイを行い再度読み込むと以下ようなの画像がしばらくして表示されるはずです。

'A happy llama running through an orange cloud'を解釈したものです。

URLインプットパラメータから入力を取るため以下にコードを編集します

index.ts
import { Ai } from '@cloudflare/ai';
export default {
  async fetch(request, env) {
    const ai = new Ai(env.AI);

	const url = new URL(request.url);
	const params = new URLSearchParams(url.search);
	const input = params.get('input');

    const response = await ai.run('@cf/stabilityai/stable-diffusion-xl-base-1.0', {
      prompt: String(input)
    });
    return new Response(response, {
      headers: {
          "content-type": "image/png",
      },
  });
  }
}

こうすることで

https://<domain>/?input=<question>

で入力を受け付けます。

Discussion