Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -257,6 +257,91 @@ with tab3:
|
|
257 |
help="画像の構図テクニックを指定します"
|
258 |
)
|
259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
advanced_params = st.text_area(
|
261 |
"カスタムパラメータ (JSONフォーマット)",
|
262 |
"{}",
|
@@ -318,7 +403,7 @@ if st.button("🚀 プロンプトを生成", type="primary", use_container_widt
|
|
318 |
"input": user_input,
|
319 |
"mode": mode.lower(),
|
320 |
"complexity": complexity,
|
321 |
-
"model": model,
|
322 |
"aspect_ratio": aspect_ratio,
|
323 |
"quality": quality,
|
324 |
"style": style,
|
@@ -338,11 +423,59 @@ if st.button("🚀 プロンプトを生成", type="primary", use_container_widt
|
|
338 |
}
|
339 |
}
|
340 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
# 実験的機能の詳細
|
342 |
-
if use_pattern_interrupt and pattern_concepts:
|
343 |
params["experimental"]["pattern_concepts"] = [c.strip() for c in pattern_concepts.split(",")]
|
344 |
|
345 |
-
if use_emotion_matrix:
|
346 |
params["experimental"]["emotions"] = {
|
347 |
"primary": primary_emotion,
|
348 |
"secondary": secondary_emotion
|
@@ -380,4 +513,4 @@ if st.button("🚀 プロンプトを生成", type="primary", use_container_widt
|
|
380 |
|
381 |
# フッター
|
382 |
st.markdown("---")
|
383 |
-
st.markdown("© 2025 AI Art Prompt Generator
|
|
|
257 |
help="画像の構図テクニックを指定します"
|
258 |
)
|
259 |
|
260 |
+
# MidJourney特有のパラメータセクションを追加
|
261 |
+
st.markdown("### MidJourney/nijiJourney特有のパラメータ")
|
262 |
+
|
263 |
+
# タブでパラメータをカテゴリ分け
|
264 |
+
param_tab1, param_tab2, param_tab3 = st.tabs(["スタイル参照", "パーソナライズ", "その他"])
|
265 |
+
|
266 |
+
with param_tab1:
|
267 |
+
# スタイルリファレンス (--sref) 設定
|
268 |
+
use_style_reference = st.checkbox("スタイルリファレンス (--sref) を使用",
|
269 |
+
help="別画像のスタイルを参照し、色調や質感を新規生成に適用します")
|
270 |
+
|
271 |
+
if use_style_reference:
|
272 |
+
sref_type = st.radio("参照方法", ["ランダム", "画像URL", "コード指定"], horizontal=True)
|
273 |
+
|
274 |
+
if sref_type == "ランダム":
|
275 |
+
st.info("ランダムに選ばれたスタイルが適用されます (--sref random)")
|
276 |
+
sref_value = "random"
|
277 |
+
elif sref_type == "画像URL":
|
278 |
+
sref_value = st.text_input("画像URL", help="スタイル参照する画像のURLを入力してください")
|
279 |
+
else:
|
280 |
+
sref_value = st.text_input("スタイルコード", help="以前生成されたsrefコードを入力 (例: 1234567)")
|
281 |
+
|
282 |
+
# スタイルウェイト
|
283 |
+
style_weight = st.slider("スタイルウェイト (--sw)", 0, 1000, 100,
|
284 |
+
help="参照画像の影響度を調整します。高いほど強く反映されます")
|
285 |
+
|
286 |
+
# スタイルバージョン
|
287 |
+
style_version = st.radio("スタイルバージョン (--sv)", [1, 2, 3, 4], index=3, horizontal=True,
|
288 |
+
help="Style Referenceアルゴリズムのバージョンを選択します")
|
289 |
+
|
290 |
+
with param_tab2:
|
291 |
+
# パーソナライゼーション (--p) 設定
|
292 |
+
use_personalization = st.checkbox("パーソナライゼーション (--p) を使用",
|
293 |
+
help="自身の好みに学習させたプロファイルを適用します")
|
294 |
+
|
295 |
+
if use_personalization:
|
296 |
+
personalization_type = st.radio("適用方法", ["デフォルト", "プロファイルID", "コード指定"], horizontal=True)
|
297 |
+
|
298 |
+
if personalization_type == "デフォルト":
|
299 |
+
st.info("設定済みのデフォルトプロファイルが適用されます (--p)")
|
300 |
+
personalization_value = ""
|
301 |
+
elif personalization_type == "プロファイルID":
|
302 |
+
personalization_value = st.text_input("プロファイルID", help="使用するプロファイルIDを入力")
|
303 |
+
else:
|
304 |
+
personalization_value = st.text_input("パーソナライズコード", help="以前生成されたコードを入力")
|
305 |
+
|
306 |
+
# パーソナライズ強度は --stylize を共用
|
307 |
+
st.caption("パーソナライズの適用度はスタイル強度 (--s) パラメータで調整されます")
|
308 |
+
|
309 |
+
with param_tab3:
|
310 |
+
# その他のパラメータ
|
311 |
+
col1, col2 = st.columns(2)
|
312 |
+
|
313 |
+
with col1:
|
314 |
+
use_character_reference = st.checkbox("キャラクター参照 (--cref)",
|
315 |
+
help="複数シーンで同一キャラクターを維持します")
|
316 |
+
|
317 |
+
if use_character_reference:
|
318 |
+
cref_value = st.text_input("キャラクター参照URL", help="キャラクターが写っている画像のURLを入力")
|
319 |
+
|
320 |
+
use_repeat = st.checkbox("繰り返し生成 (--repeat / --r)",
|
321 |
+
help="同一プロンプトで複数グリッドを生成します")
|
322 |
+
|
323 |
+
if use_repeat:
|
324 |
+
repeat_count = st.number_input("繰り返し回数", min_value=1, max_value=10, value=2)
|
325 |
+
|
326 |
+
with col2:
|
327 |
+
use_image_weight = st.checkbox("画像プロンプトの影響度 (--iw)",
|
328 |
+
help="画像プロンプト(イメージURL)の影響度を調整します")
|
329 |
+
|
330 |
+
if use_image_weight:
|
331 |
+
image_weight = st.slider("画像ウェイト", 0.0, 2.0, 1.0, 0.1)
|
332 |
+
|
333 |
+
generation_mode = st.radio("生成モード",
|
334 |
+
["デフォルト", "fast", "relax", "turbo", "draft"],
|
335 |
+
index=0, horizontal=True,
|
336 |
+
help="GPU速度やコストを最適化するモードを選択")
|
337 |
+
|
338 |
+
visibility = st.radio("共有設定",
|
339 |
+
["デフォルト", "public", "stealth"],
|
340 |
+
index=0, horizontal=True,
|
341 |
+
help="MidJourneyサイトへの���開/非公開を制御")
|
342 |
+
|
343 |
+
# カスタムパラメータセクション
|
344 |
+
st.markdown("### カスタムパラメータ")
|
345 |
advanced_params = st.text_area(
|
346 |
"カスタムパラメータ (JSONフォーマット)",
|
347 |
"{}",
|
|
|
403 |
"input": user_input,
|
404 |
"mode": mode.lower(),
|
405 |
"complexity": complexity,
|
406 |
+
"model": model,
|
407 |
"aspect_ratio": aspect_ratio,
|
408 |
"quality": quality,
|
409 |
"style": style,
|
|
|
423 |
}
|
424 |
}
|
425 |
|
426 |
+
# MidJourney特有のパラメータを追加
|
427 |
+
|
428 |
+
# スタイルリファレンス
|
429 |
+
if 'use_style_reference' in locals() and use_style_reference:
|
430 |
+
params["advanced"]["style_reference"] = {
|
431 |
+
"use": True,
|
432 |
+
"value": sref_value,
|
433 |
+
"style_weight": style_weight,
|
434 |
+
"style_version": style_version
|
435 |
+
}
|
436 |
+
|
437 |
+
# パーソナライゼーション
|
438 |
+
if 'use_personalization' in locals() and use_personalization:
|
439 |
+
params["advanced"]["personalization"] = {
|
440 |
+
"use": True,
|
441 |
+
"type": personalization_type,
|
442 |
+
"value": personalization_value
|
443 |
+
}
|
444 |
+
|
445 |
+
# キャラクター参照
|
446 |
+
if 'use_character_reference' in locals() and use_character_reference:
|
447 |
+
params["advanced"]["character_reference"] = {
|
448 |
+
"use": True,
|
449 |
+
"value": cref_value
|
450 |
+
}
|
451 |
+
|
452 |
+
# 繰り返し生成
|
453 |
+
if 'use_repeat' in locals() and use_repeat:
|
454 |
+
params["advanced"]["repeat"] = {
|
455 |
+
"use": True,
|
456 |
+
"count": repeat_count
|
457 |
+
}
|
458 |
+
|
459 |
+
# 画像プロンプトの影響度
|
460 |
+
if 'use_image_weight' in locals() and use_image_weight:
|
461 |
+
params["advanced"]["image_weight"] = {
|
462 |
+
"use": True,
|
463 |
+
"value": image_weight
|
464 |
+
}
|
465 |
+
|
466 |
+
# 生成モード
|
467 |
+
if 'generation_mode' in locals() and generation_mode != "デフォルト":
|
468 |
+
params["advanced"]["generation_mode"] = generation_mode
|
469 |
+
|
470 |
+
# 共有設定
|
471 |
+
if 'visibility' in locals() and visibility != "デフォルト":
|
472 |
+
params["advanced"]["visibility"] = visibility
|
473 |
+
|
474 |
# 実験的機能の詳細
|
475 |
+
if use_pattern_interrupt and 'pattern_concepts' in locals() and pattern_concepts:
|
476 |
params["experimental"]["pattern_concepts"] = [c.strip() for c in pattern_concepts.split(",")]
|
477 |
|
478 |
+
if use_emotion_matrix and 'primary_emotion' in locals() and 'secondary_emotion' in locals():
|
479 |
params["experimental"]["emotions"] = {
|
480 |
"primary": primary_emotion,
|
481 |
"secondary": secondary_emotion
|
|
|
513 |
|
514 |
# フッター
|
515 |
st.markdown("---")
|
516 |
+
st.markdown("© 2025 AI Art Prompt Generator")
|