banao-tech commited on
Commit
8748573
Β·
verified Β·
1 Parent(s): c7bb665

Update fooocusapi/routes/generate_v1.py

Browse files
Files changed (1) hide show
  1. 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
- path="/v1/generation/text-to-image",
43
- response_model=List[GeneratedImageResult] | AsyncJobResponse,
44
- responses=img_generate_responses,
45
- tags=["GenerateV1"])
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
- path="/v1/generation/image-upscale-vary",
69
- response_model=List[GeneratedImageResult] | AsyncJobResponse,
70
- responses=img_generate_responses,
71
- tags=["GenerateV1"])
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
- path="/v1/generation/image-inpaint-outpaint",
97
- response_model=List[GeneratedImageResult] | AsyncJobResponse,
98
- responses=img_generate_responses,
99
- tags=["GenerateV1"])
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
- path="/v1/generation/image-prompt",
123
- response_model=List[GeneratedImageResult] | AsyncJobResponse,
124
- responses=img_generate_responses,
125
- tags=["GenerateV1"])
126
  def img_prompt(
127
- cn_img1: Optional[UploadFile] = File(None),
 
 
 
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} -- Input image file
138
- req {ImgPromptRequest} -- Request body
 
 
 
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
- path="/v1/generation/image-enhance",
152
- response_model=List[GeneratedImageResult] | AsyncJobResponse,
153
- responses=img_generate_responses,
154
- tags=["GenerateV1"])
155
- def img_prompt(
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 Prompt\n
163
- Image Prompt
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
- path="/v1/tools/describe-image",
181
- response_model=DescribeImageResponse,
182
- tags=["GenerateV1"])
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
- path="/v1/generation/stop",
209
- response_model=StopResponse,
210
- description="Job stopping",
211
- tags=["Default"])
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")