0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

「Dream Machine Image API」を JavaScript SDK(公式)で試す(Text to Image)

Posted at

以下の記事の中で扱った「Dream Machine」の話です。

●「Luma Dream Machine」公式の JavaScript SDK で動画生成(Text to Video) - Qiita
 https://qiita.com/youtoy/items/8de9def353715c6b4e91

上記ではテキスト入力による動画生成を試しましたが、今回はテキスト入力による画像生成をやってみます。

実際に試してみる

公式の情報を見ながら試していきます。

公式ドキュメント

「Dream Machine Image API」について、公式のドキュメントは以下になります。

●Image Generation
 https://docs.lumalabs.ai/docs/javascript-image-generation

事前の準備

前回と同様、今回も公式の JavaScript SDK を使うので、未インストールの場合はインストールをします。また、環境変数に APIキーを設定する形にします。

自分が試した環境は Mac ですが、以下のように進めました(前回と同じ内容)。

npm install lumaai
export LUMAAI_API_KEY=【自分のAPIキー】

実際に試していく

それでは、コードを準備して実際に試します。
以下の公式サンプルをほぼそのまま使う形でやりました。

const fetch = require('node-fetch');
const fs = require('fs');
const { LumaAI } = require('lumaai');

const client = new LumaAI({ authToken: process.env.LUMAAI_API_KEY });

async function generateImage() {
    let generation = await client.generations.image.create({
        prompt: "A teddy bear in sunglasses playing electric guitar and dancing"
    });

    let completed = false;

    while (!completed) {
        generation = await client.generations.get(generation.id);

        if (generation.state === "completed") {
            completed = true;
        } else if (generation.state === "failed") {
            throw new Error(`Generation failed: ${generation.failure_reason}`);
        } else {
            console.log("Dreaming...");
            await new Promise(r => setTimeout(r, 3000)); // Wait for 3 seconds
        }
    }

    const imageUrl = generation.assets.image;

    const response = await fetch(imageUrl);
    const fileStream = fs.createWriteStream(`${generation.id}.jpg`);
    await new Promise((resolve, reject) => {
        response.body.pipe(fileStream);
        response.body.on('error', reject);
        fileStream.on('finish', resolve);
    });

    console.log(`File downloaded as ${generation.id}.jpg`);
}

generateImage();

変更した箇所は、プロンプトを「氷と雷と炎のドラゴン、合計3匹が対峙しているシーン」という内容にしたくらいです。

出力結果

上記の内容で試して、得られた結果は以下のとおりです。

雷は出てきてますが、雷のドラゴンは出てないものになりました。

その他

API利用状況

前回と今回の API利用の状況を、以下で見てみました。

https://lumalabs.ai/dream-machine/api/usage
image.png

お試しをした時の利用履歴が出ています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?