tori29umai's picture
Update app.py
5354773 verified
raw
history blame
3.62 kB
import gradio as gr
# FramePack - 画像から動画生成 アプリケーション
def make_custom_css():
"""カスタムCSSを作成してレスポンシブ対応およびエラースタイルを定義"""
# (省略: 既存のCSS定義をそのまま利用)
return combined_css # 前述のCSSを返す
css = make_custom_css()
gr_ui = gr.Blocks(css=css).queue()
with gr_ui:
# アプリタイトル
gr.HTML("<h1>FramePack - 画像から動画生成</h1>")
# レイアウト: 左側は入力、右側は出力
with gr.Row():
with gr.Column():
# 画像アップロード
input_image = gr.Image(
source='upload',
type="numpy",
label="画像をアップロード",
height=320
)
# プロンプト入力
prompt = gr.Textbox(
label="プロンプト",
placeholder="The camera smoothly orbits around the center of the scene, keeping the center point fixed and always in view"
)
# クイックプロンプト一覧
quick_prompts = [
["The camera smoothly orbits around the center of the scene, keeping the center point fixed and always in view"],
]
example_prompts = gr.Dataset(
samples=quick_prompts,
label='クイックプロンプト',
samples_per_page=10,
components=[prompt]
)
example_prompts.click(lambda x: x[0], inputs=[example_prompts], outputs=prompt)
# 操作ボタン
with gr.Row():
start_button = gr.Button("生成開始", variant="primary")
stop_button = gr.Button("生成停止", interactive=False)
# 設定パネル
seed = gr.Number(
label="シード値",
value=31337,
precision=0
)
video_length = gr.Slider(
label="動画の長さ (最大5秒)",
minimum=1,
maximum=5,
value=3,
step=0.1
)
steps = gr.Slider(
label="推論ステップ数",
minimum=1,
maximum=100,
value=25,
step=1
)
teacache = gr.Checkbox(
label="TeaCacheを使用",
value=True,
info="高速化しますが、手指の生成品質が若干低下する可能性があります。"
)
with gr.Column():
# プレビュー表示
preview = gr.Image(
label="プレビュー",
visible=False,
height=200
)
# 生成結果動画
result_video = gr.Video(
label="生成された動画",
autoplay=True,
loop=True,
height=512
)
# 進捗表示
progress_desc = gr.Markdown("")
progress_bar = gr.HTML("")
# エラーメッセージ表示
error_html = gr.HTML("", visible=True)
# 各種処理関数との紐付け
inputs = [input_image, prompt, seed, video_length, steps, teacache]
start_button.click(fn=process, inputs=inputs,
outputs=[result_video, preview, progress_desc, progress_bar, start_button, stop_button])
stop_button.click(fn=end_process)
# アプリ起動
gr_ui.launch()