https://ai.nuevo.jp/icon/
ユーザーのみ
開発環境
Server | lightSail |
Language | Python3.11 |
Framework | Django |
DB | sqlite3 |
ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
目的
トップページのアイコンがあまりに統一感がないので、統一感が出るようにプロンプトを作成した。
日本語よりも英語の方が精度がアップするだろうと考え、イメージのみDeeplで英語に翻訳している。
フォームはセレクトボックスにして、固定。
プロンプトにもプレースホルダーを設置し、変数を外から挿入できるようにした。
コード
qiita.rb
@login_required
def index(request):
OPENAI_API_KEY = os.environ['OPENAI_API_IMAGE_KEY']
API_KEY = os.environ['DEEPL_API_KEY']
translator = ""
image_url = ""
if request.method == "POST":
form = ChatForm(request.POST)
if form.is_valid():
color = form.cleaned_data['color']
background = form.cleaned_data['background']
image = form.cleaned_data['image']
def translate_text(text, auth_key):
translator = deepl.Translator(auth_key)
result = translator.translate_text(text, target_lang="JA")
return result.text
image = translate_text(image, API_KEY)
client = OpenAI(
api_key = OPENAI_API_KEY,
)
response = client.images.generate(
model = "dall-e-3",
prompt = f"""Design a pictogram-style app icon, using only two HEX color codes: ‘{color}’ for the icon itself and ‘{background}’ for the background. The theme is based around {image}, and the icon should feature a single, central symbolic element related to {image}. The design must strictly adhere to using only these two specified colors, creating a clear and simple two-tone image that effectively communicates the theme.""",
size="1024x1024"
)
image_url = response.data[0].url
else:
form = ChatForm()
比較的統一感のあるアイコンを作成できるようになった。バラバすぎて少しキモい漢字だったトップ画面のアイコンが整理された気がする。
TOP画面
アプリ画面
感想
統一感がなかったアイコンたちの並びが綺麗になった。
日本語のプロンプトをサーバ側で英語に翻訳して精度をあげること。テンプレート側でプロンプトを制限させること。プロンプトにプレイスホルダーを使用すること、chatGPT4にプロンプトを考えさせることなど新しい試みもあった。
今回は画像をたくさん作ったのでコストがかかって怖かった。画像生成はお金がかかるのでね、プロンプトの精度には気をつけたい。