全部产品
Search
文档中心

Alibaba Cloud Model Studio:Pengeditan gambar - Wan 2.1

更新时间:Nov 27, 2025

Model pengeditan gambar umum Wan mengedit gambar berdasarkan prompt teks dan mendukung berbagai tugas, seperti outpainting, penghapusan watermark, style transfer, pengeditan berbasis instruksi, inpainting lokal, serta restorasi gambar.

Penting

Dokumen ini hanya berlaku untuk wilayah China (Beijing). Untuk menggunakan model ini, Anda harus menggunakan API Key dari wilayah China (Beijing).

Ikhtisar model

Tampilan performa

image

Gambar asli

image

Ubah rambutnya menjadi merah

35779519-bfc3-4b0a-a594-d764fe9a46d83005601501

Tambahkan sepasang kacamata hitam padanya

image

Konversi ke gaya buku bergambar Prancis

Untuk contoh lainnya, lihat Fitur utama.

Model dan harga

Wilayah Beijing

Penting

Wilayah Beijing tidak menyediakan kuota gratis. Semua panggilan dikenai biaya. Harap konfirmasi sebelum melanjutkan.

Model

Harga satuan

Batas laju (dibagi bersama oleh Akun Alibaba Cloud dan Pengguna RAM)

Batas RPS untuk pengiriman task

Jumlah task konkuren

wanx2.1-imageedit

$0,020070/gambar

2

2

Mulai

Prasyarat

Sebelum memulai, peroleh dan konfigurasikan API key serta tetapkan sebagai variabel lingkungan. Jika Anda menggunakan SDK DashScope untuk melakukan panggilan, Anda juga perlu menginstal SDK.

Kode contoh

Bagian ini menunjukkan cara memanggil API pengeditan gambar umum untuk menjalankan task inpainting lokal.

SDK mengenkapsulasi logika pemrosesan asinkron. Antarmukanya berperilaku seperti panggilan sinkron, di mana satu permintaan menunggu hasil akhir. Contoh curl menunjukkan dua operasi API asinkron terpisah: mengirimkan task dan menanyakan hasilnya.

Python

Contoh ini mendukung tiga metode input gambar: URL publik, encoding Base64, dan jalur file lokal.

Permintaan contoh

import base64
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import mimetypes

"""
Persyaratan lingkungan:
    dashscope python SDK >= 1.23.8
Instal/Perbarui SDK:
    pip install -U dashscope
"""

# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")


# --- Fungsi pembantu: untuk encoding Base64 ---
# Format: data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
    if not mime_type or not mime_type.startswith("image/"):
        raise ValueError("Format gambar tidak didukung atau tidak dikenali")
    with open(file_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:{mime_type};base64,{encoded_string}"

"""
Deskripsi metode input gambar:
Tiga metode input gambar berikut disediakan. Anda dapat memilih salah satunya.

1. Gunakan URL publik - cocok untuk gambar yang dapat diakses publik.
2. Gunakan file lokal - cocok untuk pengembangan dan pengujian lokal.
3. Gunakan encoding Base64 - cocok untuk gambar pribadi atau skenario yang memerlukan transmisi terenkripsi.
"""

# [Metode 1] Gunakan URL gambar publik
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"

# [Metode 2] Gunakan file lokal (jalur absolut dan relatif didukung)
# Persyaratan format: file:// + jalur file
# Contoh (jalur absolut):
# mask_image_url = "file://" + "/path/to/your/mask_image.png"     # Linux/macOS
# base_image_url = "file://" + "C:/path/to/your/base_image.jpeg"  # Windows
# Contoh (jalur relatif):
# mask_image_url = "file://" + "./mask_image.png"                 # Sesuai jalur aktual
# base_image_url = "file://" + "./base_image.jpeg"                # Sesuai jalur aktual

# [Metode 3] Gunakan gambar yang di-encode Base64
# mask_image_url = encode_file("./mask_image.png")               # Sesuai jalur aktual
# base_image_url = encode_file("./base_image.jpeg")              # Sesuai jalur aktual


def sample_sync_call_imageedit():
    print('mohon tunggu...')
    rsp = ImageSynthesis.call(api_key=api_key,
                              model="wanx2.1-imageedit",
                              function="description_edit_with_mask",
                              prompt="A ceramic rabbit holding a ceramic flower",
                              mask_image_url=mask_image_url,
                              base_image_url=base_image_url,
                              n=1)
    assert rsp.status_code == HTTPStatus.OK

    print('response: %s' % rsp)
    if rsp.status_code == HTTPStatus.OK:
        for result in rsp.output.results:
            print("---------------------------")
            print(result.url)
    else:
        print('sync_call Gagal, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))


if __name__ == '__main__':
    sample_sync_call_imageedit()

Tanggapan contoh

URL berlaku selama 24 jam. Unduh gambar segera.
{
    "status_code": 200,
    "request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "6e319d88-a07a-420c-9493-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "submit_time": "2025-05-26 14:58:27.320",
        "scheduled_time": "2025-05-26 14:58:27.339",
        "end_time": "2025-05-26 14:58:39.170",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Java

Contoh ini mendukung tiga metode input gambar: URL publik, encoding Base64, dan jalur file lokal.

Permintaan contoh

// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

/**
 * Persyaratan lingkungan
 *      dashscope java SDK >=2.20.9
 * Perbarui dependensi Maven:
 *      https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
 */
 
public class ImageEditSync {

    // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Deskripsi metode input gambar: Pilih salah satu dari tiga metode
     *
     * 1. Gunakan URL publik - cocok untuk gambar yang dapat diakses publik.
     * 2. Gunakan file lokal - cocok untuk pengembangan dan pengujian lokal.
     * 3. Gunakan encoding Base64 - cocok untuk gambar pribadi atau skenario yang memerlukan transmisi terenkripsi.
     */

    //[Metode 1] URL publik
    static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
    static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";

    //[Metode 2] Jalur file lokal (file://+jalur absolut atau file:///+jalur absolut)
    // static String maskImageUrl = "file://" + "/your/path/to/mask_image.png";    // Linux/macOS
    // static String baseImageUrl = "file:///" + "C:/your/path/to/base_image.png";  // Windows

    //[Metode 3] Encoding Base64
    // static String maskImageUrl = encodeFile("/your/path/to/mask_image.png");
    // static String baseImageUrl = encodeFile("/your/path/to/base_image.png");


    public static void syncCall() {
        // Setel parameter parameters
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);

        ImageSynthesisParam param =
                ImageSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wanx2.1-imageedit")
                        .function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
                        .prompt("A ceramic rabbit holding a ceramic flower")
                        .maskImageUrl(maskImageUrl)
                        .baseImageUrl(baseImageUrl)
                        .n(1)
                        .size("1024*1024")
                        .parameters(parameters)
                        .build();

        ImageSynthesis imageSynthesis = new ImageSynthesis();
        ImageSynthesisResult result = null;
        try {
            System.out.println("---panggilan sinkron, mohon tunggu sebentar----");
            result = imageSynthesis.call(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
    }

    /**
     * Encode file menjadi string Base64
     * @param filePath Jalur file
     * @return String Base64 dalam format data:{MIME_type};base64,{base64_data}
     */
    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File tidak ada: " + filePath);
        }
        // Deteksi jenis MIME
        String mimeType = null;
        try {
            mimeType = Files.probeContentType(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Tidak dapat mendeteksi jenis file: " + filePath);
        }
        if (mimeType == null || !mimeType.startsWith("image/")) {
            throw new IllegalArgumentException("Format gambar tidak didukung atau tidak dikenali");
        }
        // Baca konten file dan encode
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Tidak dapat membaca konten file: " + filePath);
        }

        String encodedString = Base64.getEncoder().encodeToString(fileBytes);
        return "data:" + mimeType + ";base64," + encodedString;
    }

    public static void main(String[] args) {
        syncCall();
    }
}

Tanggapan contoh

URL berlaku selama 24 jam. Unduh gambar segera.
{
    "request_id": "bf6c6361-f0fc-949c-9d60-xxxxxx",
    "output": {
        "task_id": "958db858-153b-4c81-b243-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

curl

Contoh ini mencakup seluruh proses: membuat task, memeriksa statusnya secara berkala, dan mengambil serta menyimpan hasilnya.

Catatan
  • Untuk panggilan asinkron, atur header X-DashScope-Async ke enable.

  • task_id untuk task asinkron berlaku selama 24 jam. Setelah kedaluwarsa, status task berubah menjadi UNKNOWN.

Langkah 1: Buat task

Permintaan ini mengembalikan ID task (task_id).

Permintaan contoh

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \--data '{
  "model": "wanx2.1-imageedit",
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
  },
  "parameters": {
    "n": 1
  }
}'

Tanggapan contoh

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Langkah 2: Tanyakan hasil berdasarkan ID task

Gunakan task_id dari langkah sebelumnya untuk memeriksa status task secara berkala hingga nilai task_status menjadi SUCCEEDED atau FAILED.

Permintaan contoh

Ganti 86ecf553-d340-4e21-xxxxxxxxx dengan ID task yang sebenarnya.

curl -X GET https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Tanggapan contoh

URL gambar berlaku selama 24 jam. Harap unduh gambar segera.
{
    "request_id": "eeef0935-02e9-9742-bb55-xxxxxx",
    "output": {
        "task_id": "a425c46f-dc0a-400f-879e-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-02-21 17:56:31.786",
        "scheduled_time": "2025-02-21 17:56:31.821",
        "end_time": "2025-02-21 17:56:42.530",
        "results": [
            {
                "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/aaa.png"
            }
        ],
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 1,
            "FAILED": 0
        }
    },
    "usage": {
        "image_count": 1
    }
}

Fitur utama

API pengeditan gambar umum menggunakan parameter function untuk menentukan fitur pengeditan gambar yang berbeda. Semua fitur mengikuti prosedur yang dijelaskan di bagian Mulai.

Bagian berikut menggunakan panggilan curl sebagai contoh. Bagian ini hanya mencantumkan cuplikan JSON input dan parameters yang spesifik untuk setiap fitur guna menunjukkan konfigurasi badan permintaan yang diperlukan.

Catatan: Permintaan curl lengkap harus mencakup bidang tingkat atas seperti model, input, dan parameters. Untuk informasi lebih lanjut tentang struktur, lihat Referensi API pengeditan gambar umum.

Stilisasi global

Menerapkan gaya artistik tertentu ke seluruh gambar. Skenario termasuk pembuatan buku bergambar dan pembuatan konten media sosial, seperti latar belakang atau gambar konsep yang sesuai dengan gaya visual tertentu.

  • Cara menggunakan: Atur parameter function ke stylization_all.

  • Gaya yang didukung:

    • Gaya buku bergambar Prancis

    • Gaya seni foil emas

  • Parameter terkait: parameters.strength (0,0 hingga 1,0, default: 0,5) mengontrol tingkat modifikasi. Nilai yang lebih kecil menghasilkan gambar yang lebih mirip gambar asli.

  • Kiat prompt: Gunakan format "Konversi ke gaya xx", seperti "Konversi ke gaya buku bergambar Prancis".

Permintaan contoh

{
  "input": {
    "function": "stylization_all",
    "prompt": "Convert to French picture book style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_all_3.png"
  },
  "parameters": {
    "strength": 0.5
  }
}

Gambar input

Gambar output

Prompt: Konversi ke gaya buku bergambar Prancis

Prompt: Konversi ke gaya seni foil emas

image

image

image

image

image

image

Kontrol tingkat modifikasi gambar dengan strength

Gunakan parameter opsional parameters.strength untuk mengontrol tingkat modifikasi gambar. Nilainya berkisar antara 0,0 hingga 1,0, dengan nilai default 0,5. Nilai yang lebih dekat ke 0 menghasilkan gambar yang lebih mirip gambar asli, sedangkan nilai yang lebih dekat ke 1 menunjukkan tingkat modifikasi yang lebih besar.

Prompt input: Konversi ke gaya buku bergambar Prancis.

Gambar input

Gambar output

strength=0.0 (nilai minimum)

strength=0.5 (nilai default)

strength=1.0 (nilai maksimum)

image

image

image

image

Stilisasi lokal

Menerapkan style transfer hanya pada area tertentu gambar. Skenario termasuk kustomisasi personalisasi, seperti memberi gaya pada pakaian karakter, dan desain iklan untuk menyorot produk.

  • Cara menggunakan: Atur parameter function ke stylization_local.

  • Gaya yang didukung: Gaya yang didukung beserta nilainya adalah:

    • Patung es: ice

    • Cloud: cloud

    • Lentera festival Tiongkok

    • Papan kayu

    • Porselen biru putih: blue and white porcelain

    • Fluffy: fluffy

    • Benang: weaving

    • Balon: balloon

  • Kiat prompt: Gunakan format "Ubah xx menjadi gaya xx", seperti "Ubah rumah menjadi gaya kayu".

Permintaan contoh

{
  "input": {
    "function": "stylization_local",
    "prompt": "Change the house to wooden style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/stylization_local_1.png"
  }
}

Gambar input

Gambar output

image

image

Patung es

image

Awan

image

Lentera festival Tiongkok

image

Papan

image

Porselen biru putih

image

Fluffy

imageBenang

image

Balon

Pengeditan berbasis instruksi

Menambahkan atau memodifikasi konten gambar hanya dengan instruksi teks, tanpa menentukan area. Skenario termasuk pengeditan sederhana yang tidak memerlukan penempatan tepat, seperti menambahkan aksesori pada karakter atau mengubah warna rambut.

  • Cara menggunakan: Atur parameter function ke description_edit.

  • Parameter terkait: parameters.strength (0,0 hingga 1,0, default: 0,5) mengontrol tingkat modifikasi. Nilai yang lebih kecil menghasilkan gambar yang lebih mirip gambar asli.

  • Kiat prompt: Sertakan deskripsi aksi secara eksplisit seperti "tambahkan" atau "modifikasi". Untuk operasi penghapusan, gunakan Inpainting lokal.

Permintaan contoh

{
  "input": {
    "function": "description_edit",
    "prompt": "Add a pair of sunglasses to the kitten",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_1.png"
  },
  "parameters": {
    "strength": 0.5
  }
}

Kemampuan

Gambar input

Gambar output

Tambahkan elemen

image

image

Tambahkan sepasang kacamata hitam pada anak kucing.

Modifikasi elemen

image

image

Ubah rambutnya menjadi merah.

Kontrol tingkat modifikasi gambar dengan strength

Gunakan parameter opsional parameters.strength untuk mengontrol tingkat modifikasi gambar. Nilainya berkisar antara 0,0 hingga 1,0, dengan nilai default 0,5. Nilai yang lebih dekat ke 0 menghasilkan gambar yang lebih mirip gambar asli, sedangkan nilai yang lebih dekat ke 1 menunjukkan tingkat modifikasi yang lebih besar.

Prompt input: Ubah pakaiannya menjadi kemeja pantai bermotif warna-warni.

Gambar input

Gambar output

strength=0.0 (nilai minimum)

strength=0.5 (nilai default)

strength=1.0 (nilai maksimum)

image

image

image

image

Inpainting lokal

Menambahkan, memodifikasi, atau menghapus konten di area tertentu dengan menyediakan gambar mask. Skenario termasuk pengeditan yang memerlukan kontrol tepat, seperti mengganti pakaian, mengganti objek, dan menghapus elemen yang mengganggu.

  • Cara menggunakan: Atur parameter function ke description_edit_with_mask.

  • Persyaratan mask: Sediakan mask_image_url. Area putih pada gambar mask menunjukkan area yang akan diedit, dan area hitam menunjukkan area yang dipertahankan.

  • Kiat prompt: Sertakan deskripsi aksi secara eksplisit seperti "tambahkan", "modifikasi", dan jelaskan konten yang diinginkan setelah penghapusan.

    • Tambahkan/Modifikasi: Anda dapat mendeskripsikan aksi ("Tambahkan topi pada anak anjing") atau hasil akhir ("Anak anjing mengenakan topi").

    • Hapus: Jika objek yang akan dihapus kecil, Anda dapat membiarkan prompt kosong (""). Jika objeknya besar, prompt harus mendeskripsikan konten latar belakang yang seharusnya muncul setelah penghapusan (misalnya "Vas kaca transparan di atas meja"), bukan "Hapus beruang".

Permintaan contoh

{
  "input": {
    "function": "description_edit_with_mask",
    "prompt": "A ceramic rabbit holding a ceramic flower",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_1.jpeg",
    "mask_image_url": "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_1_mask.png"
  }
}

Kemampuan

Gambar input

Gambar mask input

(Putih adalah area yang akan diedit)

Gambar output

Tambahkan elemen

image

image

image

Tambahkan topi pada anak anjing.

Anda juga dapat menulis prompt sebagai "Anak anjing mengenakan topi" untuk mendeskripsikan konten gambar yang diharapkan.

Modifikasi elemen

image

image

image

Kelinci keramik memegang bunga keramik.

Anda juga dapat menulis prompt sebagai "Ganti wortel yang dipegang kelinci keramik dengan bunga keramik" untuk mendeskripsikan aksi.

Hapus elemen

image

image

image

Vas kaca transparan di atas meja.

Prompt perlu mendeskripsikan konten setelah penghapusan. Jangan menulisnya sebagai "Hapus beruang cokelat".

Penghapusan teks dan watermark

Catatan

Peringatan risiko hukum

Menggunakan fitur ini untuk memproses gambar berhak cipta, seperti menghapus watermark merek lain, dapat merupakan pelanggaran hak cipta. Pastikan Anda memiliki hak hukum untuk menggunakan gambar yang telah diproses dan bertanggung jawab atas semua konsekuensi hukum terkait.

Menghapus karakter Tiongkok dan Inggris atau watermark umum dari gambar. Skenario termasuk memproses ulang materi dan membersihkan gambar iklan.

  • Cara menggunakan: Atur parameter function ke remove_watermark.

  • Kiat prompt: Anda dapat menggunakan instruksi umum seperti "Hapus teks dalam gambar", atau menentukan jenisnya seperti "Hapus teks Inggris".

Permintaan contoh

{
  "input": {
    "function": "remove_watermark",
    "prompt": "Remove the text in the image",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/remove_watermark_1.png"
  }
}

Gambar input

Gambar output (Hapus teks dalam gambar)

image

image

image

image

Outpainting

Memperluas kanvas secara proporsional ke atas, bawah, kiri, dan kanan, serta mengisi konten secara cerdas. Skenario termasuk menyesuaikan komposisi dan memperluas gambar vertikal menjadi horizontal agar sesuai dengan ukuran media yang berbeda.

  • Cara menggunakan: Atur parameter function ke expand.

  • Parameter terkait: Parameter top_scale, bottom_scale, left_scale, dan right_scale dalam parameters mengontrol rasio perluasan untuk arah atas, bawah, kiri, dan kanan. Misalnya, mengatur semua parameter skala ke 1,5 memperluas gambar menjadi 1,5 kali ukuran aslinya ke segala arah.

  • Kiat prompt: Deskripsikan adegan lengkap yang Anda harapkan setelah perluasan.

Permintaan contoh

{
  "input": {
    "function": "expand",
    "prompt": "A family on the lawn in a park",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/expand_1.jpeg"
  },
  "parameters": {
    "top_scale": 1.5,
    "bottom_scale": 1.5,
    "left_scale": 1.5,
    "right_scale": 1.5
  }
}

Gambar input

Gambar output

image

image

Super resolusi gambar

Meningkatkan definisi gambar dan mendukung upscaling untuk meningkatkan gambar beresolusi rendah atau buram. Skenario termasuk memulihkan foto lama dan meningkatkan resolusi materi agar memenuhi persyaratan pencetakan atau tampilan definisi tinggi.

  • Cara menggunakan: Atur parameter function ke super_resolution.

  • Parameter terkait: parameters.upscale_factor (1 hingga 4, default: 1) mengontrol faktor upscaling. Saat nilainya 1, hanya definisi yang ditingkatkan tanpa upscaling.

  • Kiat prompt: Anda dapat menggunakan "Super resolusi gambar" atau mendeskripsikan konten gambar.

Permintaan contoh

{
  "input": {
    "function": "super_resolution",
    "prompt": "Image super resolution",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/super_resolution_1.jpeg"
  },
  "parameters": {
    "upscale_factor": 2
  }
}

Gambar input (gambar buram)

Gambar output (gambar jernih)

image

image

Pewarnaan gambar

Mengonversi gambar hitam-putih atau grayscale menjadi gambar berwarna. Kasus penggunaan umum termasuk mewarnai foto sejarah dan menambahkan warna pada gambar garis.

  • Cara menggunakan: Atur parameter function ke colorization.

  • Kiat prompt: Anda dapat membiarkan prompt kosong agar model mewarnai gambar secara otomatis, atau Anda dapat menentukan warna elemen kunci dalam prompt, seperti "latar belakang biru, daun kuning".

Permintaan contoh

{
  "input": {
    "function": "colorization",
    "prompt": "blue background, yellow leaves",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/colorization_1.jpeg"
  }
}

Gambar input

Gambar output

image

image

Gambar garis ke gambar (mendukung doodle-to-image)

Fitur ini menghasilkan gambar baru berdasarkan garis luar (gambar garis) dari gambar input dan prompt. Aplikasi umum termasuk desain konsep arsitektur, desain ilustrasi, dan generasi doodle-to-image.

  • Cara menggunakan: Atur parameter function ke doodle.

  • Parameter terkait: Parameter parameters.is_sketch mengontrol hasil generasi gambar.

    • false (default): Input adalah gambar RGB. Model pertama-tama mengekstraksi gambar garis lalu menghasilkan gambar (gambar RGB → gambar garis → gambar baru).

    • true: Input adalah gambar RGB, seperti doodle atau gambar garis. Model langsung menghasilkan gambar berdasarkan input ini (gambar RGB → gambar baru).

  • Kiat prompting: Deskripsikan konten gambar yang diinginkan. Semakin spesifik deskripsinya, semakin baik hasil yang dihasilkan.

Contoh permintaan 1: Gambar garis ke gambar

{
  "input": {
    "function": "doodle",
    "prompt": "A living room in a minimalist Nordic style.",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_1.png"
  },
  "parameters": {
    "is_sketch": false
  }
}

Contoh permintaan 2: Doodle-to-image

{
  "input": {
    "function": "doodle",
    "prompt": "A tree, in a two-dimensional anime style",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/doodle_2.png"
  },
  "parameters": {
    "is_sketch": true
  }
}

Kemampuan

Gambar input

Gambar output

Seni Garis ke Citra

(is_sketch=false)

image

image

Ruang tamu bergaya Nordik minimalis.

Doodle-to-image

(is_sketch=true)

image

image

Pohon, dalam gaya anime dua dimensi.

Hasilkan gambar berdasarkan karakter kartun referensi

Catatan

Peringatan risiko hukum

Menggunakan fitur ini untuk memproses karakter kartun berhak cipta dapat merupakan pelanggaran hak cipta. Anda harus memiliki hak hukum untuk menggunakan karakter referensi tersebut atau menggunakan karakter orisinal Anda sendiri. Anda juga harus bertanggung jawab atas semua konsekuensi hukum terkait.

  • Cara menggunakan: Atur parameter function ke control_cartoon_feature.

  • Kiat prompt: Gunakan format "Karakter kartun..." dan deskripsikan aksi serta lingkungan karakter secara detail.

Contoh Permintaan 2: Scribble-to-Image

{
  "input": {
    "function": "control_cartoon_feature",
    "prompt": "The cartoon character cautiously peeks out, peering at a brilliant blue gem in the room",
    "base_image_url": "http://wanx.alicdn.com/material/20250318/control_cartoon_feature_1.png"
  }
}

Gambar input

Gambar output

image

image

Tayang

Praktik terbaik

  • Polling asinkron: Saat memeriksa hasil task asinkron, gunakan kebijakan polling yang masuk akal. Misalnya, Anda dapat memeriksa setiap 3 detik selama 30 detik pertama lalu meningkatkan intervalnya. Hal ini membantu menghindari pemicuan batas laju akibat permintaan yang terlalu sering.

  • Penyetelan parameter: Untuk parameter kunci yang memengaruhi hasil, seperti strength, Anda dapat melakukan pengujian skala kecil sebelum produksi untuk menentukan nilai optimal bagi skenario Anda.

  • Penyimpanan gambar: URL gambar yang dikembalikan oleh API berlaku selama 24 jam. Anda harus segera mengunduh dan memindahkan gambar yang dihasilkan ke layanan penyimpanan persisten Anda sendiri, seperti OSS Alibaba Cloud.

Pencegahan risiko

  • Penanganan kesalahan: Periksa task_status dalam hasil query task. Jika statusnya FAILED, catat code dan message untuk troubleshooting. Anda dapat menerapkan logika retry untuk kesalahan sementara, seperti timeout sistem.

  • Moderasi Konten: API melakukan tinjauan keamanan terhadap semua konten input dan output. Jika konten tidak sesuai, API mengembalikan kesalahan DataInspectionFailed.

Referensi API

Untuk informasi lebih lanjut tentang parameter input dan respons model pengeditan gambar umum Wan, lihat Referensi API pengeditan gambar umum.

Penagihan dan pembatasan laju

  • Untuk kuota gratis dan harga satuan model, lihat Model dan harga.

  • Untuk batas laju model, lihat Wan.

  • Detail penagihan:

    • Anda ditagih berdasarkan durasi dalam detik video yang berhasil dihasilkan. Anda hanya dikenai biaya ketika API mengembalikan task_status bernilai SUCCEEDED.

    • Panggilan model yang gagal atau kesalahan pemrosesan tidak dikenai biaya atau tidak mengurangi kuota gratis Anda.

Kode kesalahan

Jika panggilan gagal, lihat Pesan kesalahan untuk troubleshooting.

FAQ

T: Mengapa task saya gagal (FAILED)?

J: Alasan umum kegagalan task meliputi hal berikut:

  1. Kegagalan moderasi konten: Konten input atau gambar yang dihasilkan memicu kebijakan keamanan.

  2. Kesalahan parameter: Parameter dalam permintaan tidak valid, seperti nama function yang salah atau URL yang tidak dapat diakses.

  3. Kesalahan internal model: Model mengalami masalah tak terduga selama pemrosesan. Anda dapat memeriksa bidang code dan error dalam tanggapan query task untuk mendapatkan kode kesalahan dan pesan spesifik guna troubleshooting.