Flux Control LoRA Canny
FLUX Control LoRA Canny is a high-performance endpoint that uses a control image to transfer structure to the generated image, using a Canny edge map.
Features
FLUX Control LoRA Canny enables precise structure control via Canny edge maps. This endpoint interprets edge input as a guide for composition, allowing users to direct the generated content using structural sketches. It’s particularly useful for workflows that begin with shape or silhouette design.LoRA stands for Low-Rank Adaptation, a technique for efficiently fine-tuning pre-trained models to generate videos with specified effects from reference images.
Key Features
- Edge-Guided Generation: Utilizes Canny edge maps to maintain structural integrity in generated images.
- LoRA Integration: Incorporates Low-Rank Adaptation for refined control over image generation.
- High-Fidelity Output: Produces detailed images that adhere closely to the provided edge structures.
- Flexible Workflow Integration: Suitable for various creative processes, including sketch-to-image and industrial design concepts.
ComfyUI
flux-control-lora-canny is also available on ComfyUI, providing local inference capabilities through a node-based workflow. This ensures flexible and efficient video generation on your system, catering to various creative workflows.
Limitations
- Input Quality Dependency: The quality of the generated image is heavily reliant on the clarity and accuracy of the input edge map.
- Computational Resources: High-resolution image generation may require substantial computational power.
- Learning Curve: Effective use may necessitate familiarity with image-to-image transformation workflows and edge map generation.
Out-of-Scope Use
The model and its derivatives may not be used in any way that violates applicable national, federal, state, local, or international law or regulation, including but not limited to:
- Exploiting, harming, or attempting to exploit or harm minors, including solicitation, creation, acquisition, or dissemination of child exploitative content.
- Generating or disseminating verifiably false information with the intent to harm others.
- Creating or distributing personal identifiable information that could be used to harm an individual.
- Harassing, abusing, threatening, stalking, or bullying individuals or groups.
- Producing non-consensual nudity or illegal pornographic content.
- Making fully automated decisions that adversely affect an individual’s legal rights or create binding obligations.
- Facilitating large-scale disinformation campaigns.
Accelerated Inference
Our accelerated inference approach leverages advanced optimization technology from WavespeedAI. This innovative fusion technique significantly reduces computational overhead and latency, enabling rapid image generation without compromising quality. The entire system is designed to efficiently handle large-scale inference tasks while ensuring that real-time applications achieve an optimal balance between speed and accuracy. For further details, please refer to the blog post.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v2/wavespeed-ai/flux-control-lora-canny" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"prompt": "A futuristic warrior wearing glasses, glowing blue lights, cinematic lighting, ultra detailed, in a sci-fi background",
"control_image": "https://d2g64w682n9w0w.cloudfront.net/media/images/1745415734811161257_WMLHEAws.jpg",
"size": "864*1636",
"control_scale": 1,
"seed": 0,
"num_images": 1,
"num_inference_steps": 28,
"guidance_scale": 3.5,
"enable_safety_checker": true
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v2/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
Parameter | Type | Required | Default | Range | Description |
---|---|---|---|---|---|
prompt | string | Yes | A futuristic warrior wearing glasses, glowing blue lights, cinematic lighting, ultra detailed, in a sci-fi background | - | |
control_image | string | No | https://d2g64w682n9w0w.cloudfront.net/media/images/1745415734811161257_WMLHEAws.jpg | - | The image to use for control lora. This is used to control the style of the generated image. |
size | string | No | 864*1636 | 512 ~ 1536 per dimension | The size of the generated image. |
control_scale | number | No | 1 | 0.00 ~ 2.00 | The scale of the control image. |
seed | integer | No | - | -1 ~ 9999999999 | The same seed and the same prompt given to the same version of the model will output the same image every time. |
num_images | integer | No | 1 | 1 ~ 4 | The number of images to generate |
num_inference_steps | integer | No | 28 | 1 ~ 50 | The number of inference steps to perform. |
guidance_scale | number | No | 3.5 | 1.0 ~ 30.0 | The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you |
enable_safety_checker | boolean | No | true | - | If set to true, the safety checker will be enabled. |
Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data.id | string | Unique identifier for the prediction, Task Id |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |
Result Query Parameters
Result Request Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
id | string | Yes | - | Task ID |
Result Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data | object | The prediction data object containing all details |
data.id | string | Unique identifier for the prediction |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |