Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -12,16 +12,6 @@ def get_random_api_key():
|
|
12 |
else:
|
13 |
raise ValueError("API keys not found. Please set the KEYS environment variable.")
|
14 |
|
15 |
-
def load_system_role(role_name):
|
16 |
-
with open('system_roles.json', 'r', encoding='utf-8') as file:
|
17 |
-
roles = json.load(file)
|
18 |
-
return roles.get(role_name, "Ты помощник по умолчанию.")
|
19 |
-
|
20 |
-
def load_role_names():
|
21 |
-
with open('system_roles.json', 'r', encoding='utf-8') as file:
|
22 |
-
roles = json.load(file)
|
23 |
-
return list(roles.keys())
|
24 |
-
|
25 |
def respond(
|
26 |
message,
|
27 |
history: list[tuple[str, str]],
|
@@ -33,7 +23,41 @@ def respond(
|
|
33 |
if not message:
|
34 |
return history, ""
|
35 |
|
36 |
-
system_role =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
# Формируем сообщения для отправки в API
|
38 |
messages = [{"role": "system", "content": system_role}]
|
39 |
|
@@ -94,8 +118,6 @@ with gr.Blocks(css=css) as demo:
|
|
94 |
submit = gr.Button("Отправить", variant='primary')
|
95 |
|
96 |
with gr.Accordion("Настройки помощника", open=False):
|
97 |
-
with gr.Accordion(label="Помощник", open=False):
|
98 |
-
helper_role = gr.Radio(show_label=True, label="Выберите помощника", interactive=True, choices=role_names, value=role_names[0])
|
99 |
max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
|
100 |
temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
|
101 |
top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")
|
@@ -103,7 +125,7 @@ with gr.Blocks(css=css) as demo:
|
|
103 |
# Обработка отправки сообщения
|
104 |
submit.click(
|
105 |
fn=respond,
|
106 |
-
inputs=[message, chatbot,
|
107 |
outputs=[chatbot, message],
|
108 |
concurrency_limit=250
|
109 |
)
|
@@ -111,7 +133,7 @@ with gr.Blocks(css=css) as demo:
|
|
111 |
# Обработка отправки сообщения при нажатии Ctrl+Enter
|
112 |
message.submit(
|
113 |
fn=respond,
|
114 |
-
inputs=[message, chatbot,
|
115 |
outputs=[chatbot, message],
|
116 |
concurrency_limit=250
|
117 |
)
|
|
|
12 |
else:
|
13 |
raise ValueError("API keys not found. Please set the KEYS environment variable.")
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
def respond(
|
16 |
message,
|
17 |
history: list[tuple[str, str]],
|
|
|
23 |
if not message:
|
24 |
return history, ""
|
25 |
|
26 |
+
system_role = """Ты ии чат для создания изображений!
|
27 |
+
|
28 |
+
**!Отвечай Markdown разметкой!**
|
29 |
+
Жирный, список и тд всё html разметкой
|
30 |
+
|
31 |
+
Не пиши "пример запроса", "как делать запрос" и тп. Я программа, а обычному пользователю не нужны подробности как да что за api. У него просто начинается генерация и всё, ему не нужно знать как устроены запросы
|
32 |
+
|
33 |
+
Чтобы создать изображение, напиши ссылку изображения в теге "SimpleAiImageGen", вставив промпт (обязательно на английском), ширину, высоту, сид и другие переменные. (по умолчанию указывай: nologo=true это чтобы не было водяного знака нейросети, nofeed чтобы изображение было приватным)
|
34 |
+
Можно не указывать модель (рекомендуется, автоматически выберется), но можно указать &model= одну из доступных: Flux,Flux-Pro,Flux-Realism,Flux-Anime,Flux-3D,Flux-CablyAl,Turbo
|
35 |
+
Чтобы ИЗМЕНИТЬ изображение, можно чуть чуть поменять промпт или добавить к нему, сохраняя тот же сид! Чтобы получить другое изображение с тем же промптом, напиши рандомный сид.
|
36 |
+
!За раз ты можешь создать МАКСИМУМ 6 изображений, но поумолчанию 1 делай! (Больше не пиши!)
|
37 |
+
|
38 |
+
Примеры (писать нужно так, в особенном теге):
|
39 |
+
![Краткий заголовок](https://image.pollinations.ai/prompt/logo%20with%20text%20pollinations?width=1024&height=512&seed=4&nologo=true&nofeed=true)
|
40 |
+
|
41 |
+
![Краткий заголовок](https://image.pollinations.ai/prompt/logo%20with%20text%20YUFI?width=1024&height=512&seed=4&nologo=true&nofeed=true)
|
42 |
+
|
43 |
+
У пользователя начнётся генерация.
|
44 |
+
|
45 |
+
Подробные промпты, ты умеешь ТОЛЬКО создавать изображения и помогать в обучении промптингу, больше НЕ ЧЕГО!
|
46 |
+
|
47 |
+
Есть ещё один api (с ним тоже можешь генерировать. Но он рисует дольше, может генерироваться до 2 минут): "https://yufi-api-serverimgsgens.hf.space/prompt/":
|
48 |
+
У него запрос такой же, но модели (название модели для пользователя, показывай пользователю только его (ключевое слово которое должно быть в начале промпта): как указывать в запросе):
|
49 |
+
Flux-logo (при использовании указывай ключевое слово "logo"): Shakker-Labs/FLUX.1-dev-LoRA-Logo-Design
|
50 |
+
Schnell: black-forest-labs/FLUX.1-schnell
|
51 |
+
Midjourney (ключ. слово: "midjourney mix"): strangerzonehf/Flux-Midjourney-Mix-LoRA
|
52 |
+
Animex (ключ. слово: "animex"): strangerzonehf/Flux-Animex-v2-LoRA
|
53 |
+
In Context: ali-vilab/In-Context-LoRA
|
54 |
+
Aura (ключ. слово: "aura 9999"): prithivMLmods/Aura-9999
|
55 |
+
PixelArt: nerijs/pixel-art-xl
|
56 |
+
PencilArt (ключ. слово: "Simple Pencil"): prithivMLmods/Super-Pencil-Flux-LoRA
|
57 |
+
WallpaperArt: prithivMLmods/Canopus-Liquid-Wallpaper-Art
|
58 |
+
|
59 |
+
![Краткий заголовок](https://yufi-api-serverimgsgens.hf.space/prompt/Animex.%20logo%20with%20text%20YUFI?width=1024&height=512&seed=325346?model=strangerzonehf/Flux-Animex-v2-LoRA)
|
60 |
+
"""
|
61 |
# Формируем сообщения для отправки в API
|
62 |
messages = [{"role": "system", "content": system_role}]
|
63 |
|
|
|
118 |
submit = gr.Button("Отправить", variant='primary')
|
119 |
|
120 |
with gr.Accordion("Настройки помощника", open=False):
|
|
|
|
|
121 |
max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
|
122 |
temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
|
123 |
top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")
|
|
|
125 |
# Обработка отправки сообщения
|
126 |
submit.click(
|
127 |
fn=respond,
|
128 |
+
inputs=[message, chatbot, max_tokens, temperature, top_p],
|
129 |
outputs=[chatbot, message],
|
130 |
concurrency_limit=250
|
131 |
)
|
|
|
133 |
# Обработка отправки сообщения при нажатии Ctrl+Enter
|
134 |
message.submit(
|
135 |
fn=respond,
|
136 |
+
inputs=[message, chatbot, max_tokens, temperature, top_p],
|
137 |
outputs=[chatbot, message],
|
138 |
concurrency_limit=250
|
139 |
)
|