Spaces:
Running
Running
Commit ·
a907317
1
Parent(s): 890b9fd
app.py: added controlnet configs.
Browse files
app.py
CHANGED
|
@@ -18,7 +18,7 @@ from style_template import styles
|
|
| 18 |
MAX_SEED = np.iinfo(np.int32).max
|
| 19 |
STYLE_NAMES = list(styles.keys())
|
| 20 |
DEFAULT_STYLE_NAME = 'Watercolor'
|
| 21 |
-
DEFAULT_MODEL_NAME = '
|
| 22 |
enable_lcm_arg = False
|
| 23 |
|
| 24 |
# Path to InstantID models
|
|
@@ -100,6 +100,25 @@ SDXL_MODELS = [
|
|
| 100 |
"zavychromaxl_v21_129006",
|
| 101 |
]
|
| 102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
|
| 104 |
def get_novita_client (novita_key):
|
| 105 |
client = NovitaClient(novita_key, os.getenv('NOVITA_API_URI', None))
|
|
@@ -263,6 +282,10 @@ def generate_image (
|
|
| 263 |
ref_image = PIL.Image.open(ref_image_path)
|
| 264 |
width, height = ref_image.size
|
| 265 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 266 |
res = client._post('/v3/async/instant-id', {
|
| 267 |
'extra': {
|
| 268 |
'response_image_type': 'jpeg',
|
|
@@ -273,7 +296,7 @@ def generate_image (
|
|
| 273 |
'prompt': prompt,
|
| 274 |
'negative_prompt': negative_prompt,
|
| 275 |
'controlnet': {
|
| 276 |
-
'units': []
|
| 277 |
},
|
| 278 |
'image_num': 1,
|
| 279 |
'steps': num_steps,
|
|
@@ -290,9 +313,9 @@ def generate_image (
|
|
| 290 |
def progress (x):
|
| 291 |
print('progress:', x.task.status)
|
| 292 |
final_res = client.wait_for_task_v3(res['task_id'], callback=progress)
|
|
|
|
|
|
|
| 293 |
print('status:', final_res.task.status)
|
| 294 |
-
if final_res.task.status == V3TaskResponseStatus.TASK_STATUS_FAILED:
|
| 295 |
-
raise RuntimeError(f'Novita task failed: {final_res.task.status}')
|
| 296 |
|
| 297 |
final_res.download_images()
|
| 298 |
except Exception as e:
|
|
|
|
| 18 |
MAX_SEED = np.iinfo(np.int32).max
|
| 19 |
STYLE_NAMES = list(styles.keys())
|
| 20 |
DEFAULT_STYLE_NAME = 'Watercolor'
|
| 21 |
+
DEFAULT_MODEL_NAME = 'sdxlUnstableDiffusers_v8HEAVENSWRATH_133813'
|
| 22 |
enable_lcm_arg = False
|
| 23 |
|
| 24 |
# Path to InstantID models
|
|
|
|
| 100 |
"zavychromaxl_v21_129006",
|
| 101 |
]
|
| 102 |
|
| 103 |
+
CONTROLNET_DICT = dict(
|
| 104 |
+
pose={
|
| 105 |
+
'model_name': 'controlnet-openpose-sdxl-1.0',
|
| 106 |
+
'strength': 1,
|
| 107 |
+
'preprocessor': 'openpose',
|
| 108 |
+
},
|
| 109 |
+
depth={
|
| 110 |
+
'model_name': 'controlnet-depth-sdxl-1.0',
|
| 111 |
+
'strength': 1,
|
| 112 |
+
'preprocessor': 'depth',
|
| 113 |
+
},
|
| 114 |
+
canny={
|
| 115 |
+
'model_name': 'controlnet-canny-sdxl-1.0',
|
| 116 |
+
'strength': 1,
|
| 117 |
+
'preprocessor': 'canny',
|
| 118 |
+
},
|
| 119 |
+
)
|
| 120 |
+
|
| 121 |
+
|
| 122 |
|
| 123 |
def get_novita_client (novita_key):
|
| 124 |
client = NovitaClient(novita_key, os.getenv('NOVITA_API_URI', None))
|
|
|
|
| 282 |
ref_image = PIL.Image.open(ref_image_path)
|
| 283 |
width, height = ref_image.size
|
| 284 |
|
| 285 |
+
CONTROLNET_DICT['pose']['strength'] = pose_strength
|
| 286 |
+
CONTROLNET_DICT['canny']['strength'] = canny_strength
|
| 287 |
+
CONTROLNET_DICT['depth']['strength'] = depth_strength
|
| 288 |
+
|
| 289 |
res = client._post('/v3/async/instant-id', {
|
| 290 |
'extra': {
|
| 291 |
'response_image_type': 'jpeg',
|
|
|
|
| 296 |
'prompt': prompt,
|
| 297 |
'negative_prompt': negative_prompt,
|
| 298 |
'controlnet': {
|
| 299 |
+
'units': [CONTROLNET_DICT[name] for name in controlnet_selection if name in CONTROLNET_DICT],
|
| 300 |
},
|
| 301 |
'image_num': 1,
|
| 302 |
'steps': num_steps,
|
|
|
|
| 313 |
def progress (x):
|
| 314 |
print('progress:', x.task.status)
|
| 315 |
final_res = client.wait_for_task_v3(res['task_id'], callback=progress)
|
| 316 |
+
if final_res is None or final_res.task.status == V3TaskResponseStatus.TASK_STATUS_FAILED:
|
| 317 |
+
raise RuntimeError(f'Novita task failed: {final_res and final_res.task.status}')
|
| 318 |
print('status:', final_res.task.status)
|
|
|
|
|
|
|
| 319 |
|
| 320 |
final_res.download_images()
|
| 321 |
except Exception as e:
|