Spaces:
Runtime error
Runtime error
Update fooocusapi/routes/generate_v1.py
Browse files- fooocusapi/routes/generate_v1.py +42 -38
fooocusapi/routes/generate_v1.py
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
"""Generate API V1 routes
|
2 |
-
|
3 |
"""
|
4 |
from typing import List, Optional
|
5 |
from fastapi import APIRouter, Depends, Header, Query, UploadFile
|
@@ -39,10 +38,10 @@ def stop_worker():
|
|
39 |
|
40 |
|
41 |
@secure_router.post(
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
def text2img_generation(
|
47 |
req: Text2ImgRequest,
|
48 |
accept: str = Header(None),
|
@@ -65,10 +64,10 @@ def text2img_generation(
|
|
65 |
|
66 |
|
67 |
@secure_router.post(
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
def img_upscale_or_vary(
|
73 |
input_image: UploadFile,
|
74 |
req: ImgUpscaleOrVaryRequest = Depends(ImgUpscaleOrVaryRequest.as_form),
|
@@ -93,10 +92,10 @@ def img_upscale_or_vary(
|
|
93 |
|
94 |
|
95 |
@secure_router.post(
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
def img_inpaint_or_outpaint(
|
101 |
input_image: UploadFile,
|
102 |
req: ImgInpaintOrOutpaintRequest = Depends(ImgInpaintOrOutpaintRequest.as_form),
|
@@ -119,12 +118,15 @@ def img_inpaint_or_outpaint(
|
|
119 |
|
120 |
|
121 |
@secure_router.post(
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
def img_prompt(
|
127 |
-
cn_img1:
|
|
|
|
|
|
|
128 |
req: ImgPromptRequest = Depends(ImgPromptRequest.as_form),
|
129 |
accept: str = Header(None),
|
130 |
accept_query: str | None = Query(
|
@@ -132,10 +134,13 @@ def img_prompt(
|
|
132 |
description="Parameter to override 'Accept' header, 'image/png' for output bytes")):
|
133 |
"""\nImage Prompt\n
|
134 |
Image Prompt
|
135 |
-
A prompt-based image generation.
|
136 |
Arguments:
|
137 |
-
cn_img1 {UploadFile} --
|
138 |
-
|
|
|
|
|
|
|
139 |
accept {str} -- Accept header
|
140 |
accept_query {str} -- Parameter to override 'Accept' header, 'image/png' for output bytes
|
141 |
Returns:
|
@@ -148,22 +153,21 @@ def img_prompt(
|
|
148 |
|
149 |
|
150 |
@secure_router.post(
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
def
|
156 |
enhance_input_image: Optional[UploadFile] = File(None),
|
157 |
req: ImageEnhanceRequest = Depends(ImageEnhanceRequest.as_form),
|
158 |
accept: str = Header(None),
|
159 |
accept_query: str | None = Query(
|
160 |
None, alias='accept',
|
161 |
description="Parameter to override 'Accept' header, 'image/png' for output bytes")):
|
162 |
-
"""\nImage
|
163 |
-
|
164 |
-
A prompt-based image generation.
|
165 |
Arguments:
|
166 |
-
enhance_input_image {UploadFile} -- Input image file
|
167 |
req {ImageEnhanceRequest} -- Request body
|
168 |
accept {str} -- Accept header
|
169 |
accept_query {str} -- Parameter to override 'Accept' header, 'image/png' for output bytes
|
@@ -177,9 +181,9 @@ def img_prompt(
|
|
177 |
|
178 |
|
179 |
@secure_router.post(
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
def describe_image(
|
184 |
image: UploadFile,
|
185 |
image_type: DescribeImageType = Query(
|
@@ -205,11 +209,11 @@ def describe_image(
|
|
205 |
|
206 |
|
207 |
@secure_router.post(
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
def stop():
|
213 |
"""Interrupt worker"""
|
214 |
stop_worker()
|
215 |
-
return StopResponse(msg="success")
|
|
|
1 |
"""Generate API V1 routes
|
|
|
2 |
"""
|
3 |
from typing import List, Optional
|
4 |
from fastapi import APIRouter, Depends, Header, Query, UploadFile
|
|
|
38 |
|
39 |
|
40 |
@secure_router.post(
|
41 |
+
path="/v1/generation/text-to-image",
|
42 |
+
response_model=List[GeneratedImageResult] | AsyncJobResponse,
|
43 |
+
responses=img_generate_responses,
|
44 |
+
tags=["GenerateV1"])
|
45 |
def text2img_generation(
|
46 |
req: Text2ImgRequest,
|
47 |
accept: str = Header(None),
|
|
|
64 |
|
65 |
|
66 |
@secure_router.post(
|
67 |
+
path="/v1/generation/image-upscale-vary",
|
68 |
+
response_model=List[GeneratedImageResult] | AsyncJobResponse,
|
69 |
+
responses=img_generate_responses,
|
70 |
+
tags=["GenerateV1"])
|
71 |
def img_upscale_or_vary(
|
72 |
input_image: UploadFile,
|
73 |
req: ImgUpscaleOrVaryRequest = Depends(ImgUpscaleOrVaryRequest.as_form),
|
|
|
92 |
|
93 |
|
94 |
@secure_router.post(
|
95 |
+
path="/v1/generation/image-inpaint-outpaint",
|
96 |
+
response_model=List[GeneratedImageResult] | AsyncJobResponse,
|
97 |
+
responses=img_generate_responses,
|
98 |
+
tags=["GenerateV1"])
|
99 |
def img_inpaint_or_outpaint(
|
100 |
input_image: UploadFile,
|
101 |
req: ImgInpaintOrOutpaintRequest = Depends(ImgInpaintOrOutpaintRequest.as_form),
|
|
|
118 |
|
119 |
|
120 |
@secure_router.post(
|
121 |
+
path="/v1/generation/image-prompt",
|
122 |
+
response_model=List[GeneratedImageResult] | AsyncJobResponse,
|
123 |
+
responses=img_generate_responses,
|
124 |
+
tags=["GenerateV1"])
|
125 |
def img_prompt(
|
126 |
+
cn_img1: UploadFile, # Required field
|
127 |
+
cn_img2: Optional[UploadFile] = File(None),
|
128 |
+
cn_img3: Optional[UploadFile] = File(None),
|
129 |
+
cn_img4: Optional[UploadFile] = File(None),
|
130 |
req: ImgPromptRequest = Depends(ImgPromptRequest.as_form),
|
131 |
accept: str = Header(None),
|
132 |
accept_query: str | None = Query(
|
|
|
134 |
description="Parameter to override 'Accept' header, 'image/png' for output bytes")):
|
135 |
"""\nImage Prompt\n
|
136 |
Image Prompt
|
137 |
+
A prompt-based image generation with up to four control images.
|
138 |
Arguments:
|
139 |
+
cn_img1 {UploadFile} -- First control image (required)
|
140 |
+
cn_img2 {UploadFile} -- Second control image (optional)
|
141 |
+
cn_img3 {UploadFile} -- Third control image (optional)
|
142 |
+
cn_img4 {UploadFile} -- Fourth control image (optional)
|
143 |
+
req {ImgPromptRequest} -- Request body containing prompt and control parameters
|
144 |
accept {str} -- Accept header
|
145 |
accept_query {str} -- Parameter to override 'Accept' header, 'image/png' for output bytes
|
146 |
Returns:
|
|
|
153 |
|
154 |
|
155 |
@secure_router.post(
|
156 |
+
path="/v1/generation/image-enhance",
|
157 |
+
response_model=List[GeneratedImageResult] | AsyncJobResponse,
|
158 |
+
responses=img_generate_responses,
|
159 |
+
tags=["GenerateV1"])
|
160 |
+
def img_enhance( # Renamed to avoid function name collision
|
161 |
enhance_input_image: Optional[UploadFile] = File(None),
|
162 |
req: ImageEnhanceRequest = Depends(ImageEnhanceRequest.as_form),
|
163 |
accept: str = Header(None),
|
164 |
accept_query: str | None = Query(
|
165 |
None, alias='accept',
|
166 |
description="Parameter to override 'Accept' header, 'image/png' for output bytes")):
|
167 |
+
"""\nImage Enhance\n
|
168 |
+
Enhance an image with optional input.
|
|
|
169 |
Arguments:
|
170 |
+
enhance_input_image {UploadFile} -- Input image file (optional)
|
171 |
req {ImageEnhanceRequest} -- Request body
|
172 |
accept {str} -- Accept header
|
173 |
accept_query {str} -- Parameter to override 'Accept' header, 'image/png' for output bytes
|
|
|
181 |
|
182 |
|
183 |
@secure_router.post(
|
184 |
+
path="/v1/tools/describe-image",
|
185 |
+
response_model=DescribeImageResponse,
|
186 |
+
tags=["GenerateV1"])
|
187 |
def describe_image(
|
188 |
image: UploadFile,
|
189 |
image_type: DescribeImageType = Query(
|
|
|
209 |
|
210 |
|
211 |
@secure_router.post(
|
212 |
+
path="/v1/generation/stop",
|
213 |
+
response_model=StopResponse,
|
214 |
+
description="Job stopping",
|
215 |
+
tags=["Default"])
|
216 |
def stop():
|
217 |
"""Interrupt worker"""
|
218 |
stop_worker()
|
219 |
+
return StopResponse(msg="success")
|